/* A Bison parser, made by GNU Bison 2.3.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C

   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   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 2, 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, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.  */

/* 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.3"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 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

/* 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,
     EQUALS_GREATER = 269,
     POWER_OF = 270,
     LAMBDA_ARROW = 271,
     DOUBLE_ARROW = 272,
     LESS_EQUALS = 273,
     GREATER_EQUALS = 274,
     NOT_EQUALS = 275,
     ABORT_P = 276,
     ABSOLUTE_P = 277,
     ACCESS = 278,
     ACTION = 279,
     ADD_P = 280,
     ADMIN = 281,
     AFTER = 282,
     AGGREGATE = 283,
     ALL = 284,
     ALSO = 285,
     ALTER = 286,
     ALWAYS = 287,
     ANALYSE = 288,
     ANALYZE = 289,
     AND = 290,
     ANY = 291,
     ARRAY = 292,
     AS = 293,
     ASC_P = 294,
     ASSERTION = 295,
     ASSIGNMENT = 296,
     ASYMMETRIC = 297,
     AT = 298,
     ATTACH = 299,
     ATTRIBUTE = 300,
     AUTHORIZATION = 301,
     BACKWARD = 302,
     BEFORE = 303,
     BEGIN_P = 304,
     BETWEEN = 305,
     BIGINT = 306,
     BINARY = 307,
     BIT = 308,
     BOOLEAN_P = 309,
     BOTH = 310,
     BY = 311,
     CACHE = 312,
     CALL_P = 313,
     CALLED = 314,
     CASCADE = 315,
     CASCADED = 316,
     CASE = 317,
     CAST = 318,
     CATALOG_P = 319,
     CHAIN = 320,
     CHAR_P = 321,
     CHARACTER = 322,
     CHARACTERISTICS = 323,
     CHECK_P = 324,
     CHECKPOINT = 325,
     CLASS = 326,
     CLOSE = 327,
     CLUSTER = 328,
     COALESCE = 329,
     COLLATE = 330,
     COLLATION = 331,
     COLUMN = 332,
     COLUMNS = 333,
     COMMENT = 334,
     COMMENTS = 335,
     COMMIT = 336,
     COMMITTED = 337,
     COMPRESSION = 338,
     CONCURRENTLY = 339,
     CONFIGURATION = 340,
     CONFLICT = 341,
     CONNECTION = 342,
     CONSTRAINT = 343,
     CONSTRAINTS = 344,
     CONTENT_P = 345,
     CONTINUE_P = 346,
     CONVERSION_P = 347,
     COPY = 348,
     COST = 349,
     CREATE_P = 350,
     CROSS = 351,
     CSV = 352,
     CUBE = 353,
     CURRENT_P = 354,
     CURRENT_CATALOG = 355,
     CURRENT_DATE = 356,
     CURRENT_ROLE = 357,
     CURRENT_SCHEMA = 358,
     CURRENT_TIME = 359,
     CURRENT_TIMESTAMP = 360,
     CURRENT_USER = 361,
     CURSOR = 362,
     CYCLE = 363,
     DATA_P = 364,
     DATABASE = 365,
     DAY_P = 366,
     DAYS_P = 367,
     DEALLOCATE = 368,
     DEC = 369,
     DECIMAL_P = 370,
     DECLARE = 371,
     DEFAULT = 372,
     DEFAULTS = 373,
     DEFERRABLE = 374,
     DEFERRED = 375,
     DEFINER = 376,
     DELETE_P = 377,
     DELIMITER = 378,
     DELIMITERS = 379,
     DEPENDS = 380,
     DESC_P = 381,
     DESCRIBE = 382,
     DETACH = 383,
     DICTIONARY = 384,
     DISABLE_P = 385,
     DISCARD = 386,
     DISTINCT = 387,
     DO = 388,
     DOCUMENT_P = 389,
     DOMAIN_P = 390,
     DOUBLE_P = 391,
     DROP = 392,
     EACH = 393,
     ELSE = 394,
     ENABLE_P = 395,
     ENCODING = 396,
     ENCRYPTED = 397,
     END_P = 398,
     ENUM_P = 399,
     ESCAPE = 400,
     EVENT = 401,
     EXCEPT = 402,
     EXCLUDE = 403,
     EXCLUDING = 404,
     EXCLUSIVE = 405,
     EXECUTE = 406,
     EXISTS = 407,
     EXPLAIN = 408,
     EXPORT_P = 409,
     EXPORT_STATE = 410,
     EXTENSION = 411,
     EXTERNAL = 412,
     EXTRACT = 413,
     FALSE_P = 414,
     FAMILY = 415,
     FETCH = 416,
     FILTER = 417,
     FIRST_P = 418,
     FLOAT_P = 419,
     FOLLOWING = 420,
     FOR = 421,
     FORCE = 422,
     FOREIGN = 423,
     FORWARD = 424,
     FREEZE = 425,
     FROM = 426,
     FULL = 427,
     FUNCTION = 428,
     FUNCTIONS = 429,
     GENERATED = 430,
     GLOB = 431,
     GLOBAL = 432,
     GRANT = 433,
     GRANTED = 434,
     GROUP_P = 435,
     GROUPING = 436,
     GROUPING_ID = 437,
     HANDLER = 438,
     HAVING = 439,
     HEADER_P = 440,
     HOLD = 441,
     HOUR_P = 442,
     HOURS_P = 443,
     IDENTITY_P = 444,
     IF_P = 445,
     IGNORE_P = 446,
     ILIKE = 447,
     IMMEDIATE = 448,
     IMMUTABLE = 449,
     IMPLICIT_P = 450,
     IMPORT_P = 451,
     IN_P = 452,
     INCLUDING = 453,
     INCREMENT = 454,
     INDEX = 455,
     INDEXES = 456,
     INHERIT = 457,
     INHERITS = 458,
     INITIALLY = 459,
     INLINE_P = 460,
     INNER_P = 461,
     INOUT = 462,
     INPUT_P = 463,
     INSENSITIVE = 464,
     INSERT = 465,
     INSTALL = 466,
     INSTEAD = 467,
     INT_P = 468,
     INTEGER = 469,
     INTERSECT = 470,
     INTERVAL = 471,
     INTO = 472,
     INVOKER = 473,
     IS = 474,
     ISNULL = 475,
     ISOLATION = 476,
     JOIN = 477,
     JSON = 478,
     KEY = 479,
     LABEL = 480,
     LANGUAGE = 481,
     LARGE_P = 482,
     LAST_P = 483,
     LATERAL_P = 484,
     LEADING = 485,
     LEAKPROOF = 486,
     LEFT = 487,
     LEVEL = 488,
     LIKE = 489,
     LIMIT = 490,
     LISTEN = 491,
     LOAD = 492,
     LOCAL = 493,
     LOCALTIME = 494,
     LOCALTIMESTAMP = 495,
     LOCATION = 496,
     LOCK_P = 497,
     LOCKED = 498,
     LOGGED = 499,
     MACRO = 500,
     MAP = 501,
     MAPPING = 502,
     MATCH = 503,
     MATERIALIZED = 504,
     MAXVALUE = 505,
     METHOD = 506,
     MICROSECOND_P = 507,
     MICROSECONDS_P = 508,
     MILLISECOND_P = 509,
     MILLISECONDS_P = 510,
     MINUTE_P = 511,
     MINUTES_P = 512,
     MINVALUE = 513,
     MODE = 514,
     MONTH_P = 515,
     MONTHS_P = 516,
     MOVE = 517,
     NAME_P = 518,
     NAMES = 519,
     NATIONAL = 520,
     NATURAL = 521,
     NCHAR = 522,
     NEW = 523,
     NEXT = 524,
     NO = 525,
     NONE = 526,
     NOT = 527,
     NOTHING = 528,
     NOTIFY = 529,
     NOTNULL = 530,
     NOWAIT = 531,
     NULL_P = 532,
     NULLIF = 533,
     NULLS_P = 534,
     NUMERIC = 535,
     OBJECT_P = 536,
     OF = 537,
     OFF = 538,
     OFFSET = 539,
     OIDS = 540,
     OLD = 541,
     ON = 542,
     ONLY = 543,
     OPERATOR = 544,
     OPTION = 545,
     OPTIONS = 546,
     OR = 547,
     ORDER = 548,
     ORDINALITY = 549,
     OUT_P = 550,
     OUTER_P = 551,
     OVER = 552,
     OVERLAPS = 553,
     OVERLAY = 554,
     OVERRIDING = 555,
     OWNED = 556,
     OWNER = 557,
     PARALLEL = 558,
     PARSER = 559,
     PARTIAL = 560,
     PARTITION = 561,
     PASSING = 562,
     PASSWORD = 563,
     PERCENT = 564,
     PLACING = 565,
     PLANS = 566,
     POLICY = 567,
     POSITION = 568,
     PRAGMA_P = 569,
     PRECEDING = 570,
     PRECISION = 571,
     PREPARE = 572,
     PREPARED = 573,
     PRESERVE = 574,
     PRIMARY = 575,
     PRIOR = 576,
     PRIVILEGES = 577,
     PROCEDURAL = 578,
     PROCEDURE = 579,
     PROGRAM = 580,
     PUBLICATION = 581,
     QUALIFY = 582,
     QUOTE = 583,
     RANGE = 584,
     READ_P = 585,
     REAL = 586,
     REASSIGN = 587,
     RECHECK = 588,
     RECURSIVE = 589,
     REF = 590,
     REFERENCES = 591,
     REFERENCING = 592,
     REFRESH = 593,
     REINDEX = 594,
     RELATIVE_P = 595,
     RELEASE = 596,
     RENAME = 597,
     REPEATABLE = 598,
     REPLACE = 599,
     REPLICA = 600,
     RESET = 601,
     RESPECT_P = 602,
     RESTART = 603,
     RESTRICT = 604,
     RETURNING = 605,
     RETURNS = 606,
     REVOKE = 607,
     RIGHT = 608,
     ROLE = 609,
     ROLLBACK = 610,
     ROLLUP = 611,
     ROW = 612,
     ROWS = 613,
     RULE = 614,
     SAMPLE = 615,
     SAVEPOINT = 616,
     SCHEMA = 617,
     SCHEMAS = 618,
     SCROLL = 619,
     SEARCH = 620,
     SECOND_P = 621,
     SECONDS_P = 622,
     SECURITY = 623,
     SELECT = 624,
     SEQUENCE = 625,
     SEQUENCES = 626,
     SERIALIZABLE = 627,
     SERVER = 628,
     SESSION = 629,
     SESSION_USER = 630,
     SET = 631,
     SETOF = 632,
     SETS = 633,
     SHARE = 634,
     SHOW = 635,
     SIMILAR = 636,
     SIMPLE = 637,
     SKIP = 638,
     SMALLINT = 639,
     SNAPSHOT = 640,
     SOME = 641,
     SQL_P = 642,
     STABLE = 643,
     STANDALONE_P = 644,
     START = 645,
     STATEMENT = 646,
     STATISTICS = 647,
     STDIN = 648,
     STDOUT = 649,
     STORAGE = 650,
     STORED = 651,
     STRICT_P = 652,
     STRIP_P = 653,
     STRUCT = 654,
     SUBSCRIPTION = 655,
     SUBSTRING = 656,
     SUMMARIZE = 657,
     SYMMETRIC = 658,
     SYSID = 659,
     SYSTEM_P = 660,
     TABLE = 661,
     TABLES = 662,
     TABLESAMPLE = 663,
     TABLESPACE = 664,
     TEMP = 665,
     TEMPLATE = 666,
     TEMPORARY = 667,
     TEXT_P = 668,
     THEN = 669,
     TIME = 670,
     TIMESTAMP = 671,
     TO = 672,
     TRAILING = 673,
     TRANSACTION = 674,
     TRANSFORM = 675,
     TREAT = 676,
     TRIGGER = 677,
     TRIM = 678,
     TRUE_P = 679,
     TRUNCATE = 680,
     TRUSTED = 681,
     TRY_CAST = 682,
     TYPE_P = 683,
     TYPES_P = 684,
     UNBOUNDED = 685,
     UNCOMMITTED = 686,
     UNENCRYPTED = 687,
     UNION = 688,
     UNIQUE = 689,
     UNKNOWN = 690,
     UNLISTEN = 691,
     UNLOGGED = 692,
     UNTIL = 693,
     UPDATE = 694,
     USER = 695,
     USING = 696,
     VACUUM = 697,
     VALID = 698,
     VALIDATE = 699,
     VALIDATOR = 700,
     VALUE_P = 701,
     VALUES = 702,
     VARCHAR = 703,
     VARIADIC = 704,
     VARYING = 705,
     VERBOSE = 706,
     VERSION_P = 707,
     VIEW = 708,
     VIEWS = 709,
     VIRTUAL = 710,
     VOLATILE = 711,
     WHEN = 712,
     WHERE = 713,
     WHITESPACE_P = 714,
     WINDOW = 715,
     WITH = 716,
     WITHIN = 717,
     WITHOUT = 718,
     WORK = 719,
     WRAPPER = 720,
     WRITE_P = 721,
     XML_P = 722,
     XMLATTRIBUTES = 723,
     XMLCONCAT = 724,
     XMLELEMENT = 725,
     XMLEXISTS = 726,
     XMLFOREST = 727,
     XMLNAMESPACES = 728,
     XMLPARSE = 729,
     XMLPI = 730,
     XMLROOT = 731,
     XMLSERIALIZE = 732,
     XMLTABLE = 733,
     YEAR_P = 734,
     YEARS_P = 735,
     YES_P = 736,
     ZONE = 737,
     NOT_LA = 738,
     NULLS_LA = 739,
     WITH_LA = 740,
     POSTFIXOP = 741,
     UMINUS = 742
   };
#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 EQUALS_GREATER 269
#define POWER_OF 270
#define LAMBDA_ARROW 271
#define DOUBLE_ARROW 272
#define LESS_EQUALS 273
#define GREATER_EQUALS 274
#define NOT_EQUALS 275
#define ABORT_P 276
#define ABSOLUTE_P 277
#define ACCESS 278
#define ACTION 279
#define ADD_P 280
#define ADMIN 281
#define AFTER 282
#define AGGREGATE 283
#define ALL 284
#define ALSO 285
#define ALTER 286
#define ALWAYS 287
#define ANALYSE 288
#define ANALYZE 289
#define AND 290
#define ANY 291
#define ARRAY 292
#define AS 293
#define ASC_P 294
#define ASSERTION 295
#define ASSIGNMENT 296
#define ASYMMETRIC 297
#define AT 298
#define ATTACH 299
#define ATTRIBUTE 300
#define AUTHORIZATION 301
#define BACKWARD 302
#define BEFORE 303
#define BEGIN_P 304
#define BETWEEN 305
#define BIGINT 306
#define BINARY 307
#define BIT 308
#define BOOLEAN_P 309
#define BOTH 310
#define BY 311
#define CACHE 312
#define CALL_P 313
#define CALLED 314
#define CASCADE 315
#define CASCADED 316
#define CASE 317
#define CAST 318
#define CATALOG_P 319
#define CHAIN 320
#define CHAR_P 321
#define CHARACTER 322
#define CHARACTERISTICS 323
#define CHECK_P 324
#define CHECKPOINT 325
#define CLASS 326
#define CLOSE 327
#define CLUSTER 328
#define COALESCE 329
#define COLLATE 330
#define COLLATION 331
#define COLUMN 332
#define COLUMNS 333
#define COMMENT 334
#define COMMENTS 335
#define COMMIT 336
#define COMMITTED 337
#define COMPRESSION 338
#define CONCURRENTLY 339
#define CONFIGURATION 340
#define CONFLICT 341
#define CONNECTION 342
#define CONSTRAINT 343
#define CONSTRAINTS 344
#define CONTENT_P 345
#define CONTINUE_P 346
#define CONVERSION_P 347
#define COPY 348
#define COST 349
#define CREATE_P 350
#define CROSS 351
#define CSV 352
#define CUBE 353
#define CURRENT_P 354
#define CURRENT_CATALOG 355
#define CURRENT_DATE 356
#define CURRENT_ROLE 357
#define CURRENT_SCHEMA 358
#define CURRENT_TIME 359
#define CURRENT_TIMESTAMP 360
#define CURRENT_USER 361
#define CURSOR 362
#define CYCLE 363
#define DATA_P 364
#define DATABASE 365
#define DAY_P 366
#define DAYS_P 367
#define DEALLOCATE 368
#define DEC 369
#define DECIMAL_P 370
#define DECLARE 371
#define DEFAULT 372
#define DEFAULTS 373
#define DEFERRABLE 374
#define DEFERRED 375
#define DEFINER 376
#define DELETE_P 377
#define DELIMITER 378
#define DELIMITERS 379
#define DEPENDS 380
#define DESC_P 381
#define DESCRIBE 382
#define DETACH 383
#define DICTIONARY 384
#define DISABLE_P 385
#define DISCARD 386
#define DISTINCT 387
#define DO 388
#define DOCUMENT_P 389
#define DOMAIN_P 390
#define DOUBLE_P 391
#define DROP 392
#define EACH 393
#define ELSE 394
#define ENABLE_P 395
#define ENCODING 396
#define ENCRYPTED 397
#define END_P 398
#define ENUM_P 399
#define ESCAPE 400
#define EVENT 401
#define EXCEPT 402
#define EXCLUDE 403
#define EXCLUDING 404
#define EXCLUSIVE 405
#define EXECUTE 406
#define EXISTS 407
#define EXPLAIN 408
#define EXPORT_P 409
#define EXPORT_STATE 410
#define EXTENSION 411
#define EXTERNAL 412
#define EXTRACT 413
#define FALSE_P 414
#define FAMILY 415
#define FETCH 416
#define FILTER 417
#define FIRST_P 418
#define FLOAT_P 419
#define FOLLOWING 420
#define FOR 421
#define FORCE 422
#define FOREIGN 423
#define FORWARD 424
#define FREEZE 425
#define FROM 426
#define FULL 427
#define FUNCTION 428
#define FUNCTIONS 429
#define GENERATED 430
#define GLOB 431
#define GLOBAL 432
#define GRANT 433
#define GRANTED 434
#define GROUP_P 435
#define GROUPING 436
#define GROUPING_ID 437
#define HANDLER 438
#define HAVING 439
#define HEADER_P 440
#define HOLD 441
#define HOUR_P 442
#define HOURS_P 443
#define IDENTITY_P 444
#define IF_P 445
#define IGNORE_P 446
#define ILIKE 447
#define IMMEDIATE 448
#define IMMUTABLE 449
#define IMPLICIT_P 450
#define IMPORT_P 451
#define IN_P 452
#define INCLUDING 453
#define INCREMENT 454
#define INDEX 455
#define INDEXES 456
#define INHERIT 457
#define INHERITS 458
#define INITIALLY 459
#define INLINE_P 460
#define INNER_P 461
#define INOUT 462
#define INPUT_P 463
#define INSENSITIVE 464
#define INSERT 465
#define INSTALL 466
#define INSTEAD 467
#define INT_P 468
#define INTEGER 469
#define INTERSECT 470
#define INTERVAL 471
#define INTO 472
#define INVOKER 473
#define IS 474
#define ISNULL 475
#define ISOLATION 476
#define JOIN 477
#define JSON 478
#define KEY 479
#define LABEL 480
#define LANGUAGE 481
#define LARGE_P 482
#define LAST_P 483
#define LATERAL_P 484
#define LEADING 485
#define LEAKPROOF 486
#define LEFT 487
#define LEVEL 488
#define LIKE 489
#define LIMIT 490
#define LISTEN 491
#define LOAD 492
#define LOCAL 493
#define LOCALTIME 494
#define LOCALTIMESTAMP 495
#define LOCATION 496
#define LOCK_P 497
#define LOCKED 498
#define LOGGED 499
#define MACRO 500
#define MAP 501
#define MAPPING 502
#define MATCH 503
#define MATERIALIZED 504
#define MAXVALUE 505
#define METHOD 506
#define MICROSECOND_P 507
#define MICROSECONDS_P 508
#define MILLISECOND_P 509
#define MILLISECONDS_P 510
#define MINUTE_P 511
#define MINUTES_P 512
#define MINVALUE 513
#define MODE 514
#define MONTH_P 515
#define MONTHS_P 516
#define MOVE 517
#define NAME_P 518
#define NAMES 519
#define NATIONAL 520
#define NATURAL 521
#define NCHAR 522
#define NEW 523
#define NEXT 524
#define NO 525
#define NONE 526
#define NOT 527
#define NOTHING 528
#define NOTIFY 529
#define NOTNULL 530
#define NOWAIT 531
#define NULL_P 532
#define NULLIF 533
#define NULLS_P 534
#define NUMERIC 535
#define OBJECT_P 536
#define OF 537
#define OFF 538
#define OFFSET 539
#define OIDS 540
#define OLD 541
#define ON 542
#define ONLY 543
#define OPERATOR 544
#define OPTION 545
#define OPTIONS 546
#define OR 547
#define ORDER 548
#define ORDINALITY 549
#define OUT_P 550
#define OUTER_P 551
#define OVER 552
#define OVERLAPS 553
#define OVERLAY 554
#define OVERRIDING 555
#define OWNED 556
#define OWNER 557
#define PARALLEL 558
#define PARSER 559
#define PARTIAL 560
#define PARTITION 561
#define PASSING 562
#define PASSWORD 563
#define PERCENT 564
#define PLACING 565
#define PLANS 566
#define POLICY 567
#define POSITION 568
#define PRAGMA_P 569
#define PRECEDING 570
#define PRECISION 571
#define PREPARE 572
#define PREPARED 573
#define PRESERVE 574
#define PRIMARY 575
#define PRIOR 576
#define PRIVILEGES 577
#define PROCEDURAL 578
#define PROCEDURE 579
#define PROGRAM 580
#define PUBLICATION 581
#define QUALIFY 582
#define QUOTE 583
#define RANGE 584
#define READ_P 585
#define REAL 586
#define REASSIGN 587
#define RECHECK 588
#define RECURSIVE 589
#define REF 590
#define REFERENCES 591
#define REFERENCING 592
#define REFRESH 593
#define REINDEX 594
#define RELATIVE_P 595
#define RELEASE 596
#define RENAME 597
#define REPEATABLE 598
#define REPLACE 599
#define REPLICA 600
#define RESET 601
#define RESPECT_P 602
#define RESTART 603
#define RESTRICT 604
#define RETURNING 605
#define RETURNS 606
#define REVOKE 607
#define RIGHT 608
#define ROLE 609
#define ROLLBACK 610
#define ROLLUP 611
#define ROW 612
#define ROWS 613
#define RULE 614
#define SAMPLE 615
#define SAVEPOINT 616
#define SCHEMA 617
#define SCHEMAS 618
#define SCROLL 619
#define SEARCH 620
#define SECOND_P 621
#define SECONDS_P 622
#define SECURITY 623
#define SELECT 624
#define SEQUENCE 625
#define SEQUENCES 626
#define SERIALIZABLE 627
#define SERVER 628
#define SESSION 629
#define SESSION_USER 630
#define SET 631
#define SETOF 632
#define SETS 633
#define SHARE 634
#define SHOW 635
#define SIMILAR 636
#define SIMPLE 637
#define SKIP 638
#define SMALLINT 639
#define SNAPSHOT 640
#define SOME 641
#define SQL_P 642
#define STABLE 643
#define STANDALONE_P 644
#define START 645
#define STATEMENT 646
#define STATISTICS 647
#define STDIN 648
#define STDOUT 649
#define STORAGE 650
#define STORED 651
#define STRICT_P 652
#define STRIP_P 653
#define STRUCT 654
#define SUBSCRIPTION 655
#define SUBSTRING 656
#define SUMMARIZE 657
#define SYMMETRIC 658
#define SYSID 659
#define SYSTEM_P 660
#define TABLE 661
#define TABLES 662
#define TABLESAMPLE 663
#define TABLESPACE 664
#define TEMP 665
#define TEMPLATE 666
#define TEMPORARY 667
#define TEXT_P 668
#define THEN 669
#define TIME 670
#define TIMESTAMP 671
#define TO 672
#define TRAILING 673
#define TRANSACTION 674
#define TRANSFORM 675
#define TREAT 676
#define TRIGGER 677
#define TRIM 678
#define TRUE_P 679
#define TRUNCATE 680
#define TRUSTED 681
#define TRY_CAST 682
#define TYPE_P 683
#define TYPES_P 684
#define UNBOUNDED 685
#define UNCOMMITTED 686
#define UNENCRYPTED 687
#define UNION 688
#define UNIQUE 689
#define UNKNOWN 690
#define UNLISTEN 691
#define UNLOGGED 692
#define UNTIL 693
#define UPDATE 694
#define USER 695
#define USING 696
#define VACUUM 697
#define VALID 698
#define VALIDATE 699
#define VALIDATOR 700
#define VALUE_P 701
#define VALUES 702
#define VARCHAR 703
#define VARIADIC 704
#define VARYING 705
#define VERBOSE 706
#define VERSION_P 707
#define VIEW 708
#define VIEWS 709
#define VIRTUAL 710
#define VOLATILE 711
#define WHEN 712
#define WHERE 713
#define WHITESPACE_P 714
#define WINDOW 715
#define WITH 716
#define WITHIN 717
#define WITHOUT 718
#define WORK 719
#define WRAPPER 720
#define WRITE_P 721
#define XML_P 722
#define XMLATTRIBUTES 723
#define XMLCONCAT 724
#define XMLELEMENT 725
#define XMLEXISTS 726
#define XMLFOREST 727
#define XMLNAMESPACES 728
#define XMLPARSE 729
#define XMLPI 730
#define XMLROOT 731
#define XMLSERIALIZE 732
#define XMLTABLE 733
#define YEAR_P 734
#define YEARS_P 735
#define YES_P 736
#define ZONE 737
#define NOT_LA 738
#define NULLS_LA 739
#define WITH_LA 740
#define POSTFIXOP 741
#define UMINUS 742




/* Copy the first part of user declarations.  */
#line 1 "third_party/libpg_query/grammar/grammar.y.tmp"

#line 1 "third_party/libpg_query/grammar/grammar.hpp"
/*#define YYDEBUG 1*/
/*-------------------------------------------------------------------------
 *
 * gram.y
 *	  POSTGRESQL BISON rules/actions
 *
 * Portions Copyright (c) 1996-2017, PostgreSQL Global Development PGGroup
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 *
 * IDENTIFICATION
 *	  src/backend/parser/gram.y
 *
 * HISTORY
 *	  AUTHOR			DATE			MAJOR EVENT
 *	  Andrew Yu			Sept, 1994		POSTQUEL to SQL conversion
 *	  Andrew Yu			Oct, 1994		lispy code conversion
 *
 * NOTES
 *	  CAPITALS are used to represent terminal symbols.
 *	  non-capitals are used to represent non-terminals.
 *
 *	  In general, nothing in this file should initiate database accesses
 *	  nor depend on changeable state (such as SET variables).  If you do
 *	  database accesses, your code will fail when we have aborted the
 *	  current transaction and are just parsing commands to find the next
 *	  ROLLBACK or COMMIT.  If you make use of SET variables, then you
 *	  will do the wrong thing in multi-query strings like this:
 *			SET constraint_exclusion TO off; SELECT * FROM foo;
 *	  because the entire string is parsed by gram.y before the SET gets
 *	  executed.  Anything that depends on the database or changeable state
 *	  should be handled during parse analysis so that it happens at the
 *	  right time not the wrong time.
 *
 * WARNINGS
 *	  If you use a list, make sure the datum is a node so that the printing
 *	  routines work.
 *
 *	  Sometimes we assign constants to makeStrings. Make sure we don't free
 *	  those.
 *
 *-------------------------------------------------------------------------
 */
#include "pg_functions.hpp"
#include <string.h>

#include <ctype.h>
#include <limits.h>

#include "nodes/makefuncs.hpp"
#include "nodes/nodeFuncs.hpp"
#include "parser/gramparse.hpp"
#include "parser/parser.hpp"
#include "utils/datetime.hpp"

namespace duckdb_libpgquery {
#define DEFAULT_SCHEMA "main"

/*
 * Location tracking support --- simpler than bison's default, since we only
 * want to track the start position not the end position of each nonterminal.
 */
#define YYLLOC_DEFAULT(Current, Rhs, N) \
	do { \
		if ((N) > 0) \
			(Current) = (Rhs)[1]; \
		else \
			(Current) = (-1); \
	} while (0)

/*
 * The above macro assigns -1 (unknown) as the parse location of any
 * nonterminal that was reduced from an empty rule, or whose leftmost
 * component was reduced from an empty rule.  This is problematic
 * for nonterminals defined like
 *		OptFooList: / * EMPTY * / { ... } | OptFooList Foo { ... } ;
 * because we'll set -1 as the location during the first reduction and then
 * copy it during each subsequent reduction, leaving us with -1 for the
 * location even when the list is not empty.  To fix that, do this in the
 * action for the nonempty rule(s):
 *		if (@$ < 0) @$ = @2;
 * (Although we have many nonterminals that follow this pattern, we only
 * bother with fixing @$ like this when the nonterminal's parse location
 * is actually referenced in some rule.)
 *
 * A cleaner answer would be to make YYLLOC_DEFAULT scan all the Rhs
 * locations until it's found one that's not -1.  Then we'd get a correct
 * location for any nonterminal that isn't entirely empty.  But this way
 * would add overhead to every rule reduction, and so far there's not been
 * a compelling reason to pay that overhead.
 */

/*
 * Bison doesn't allocate anything that needs to live across parser calls,
 * so we can easily have it use palloc instead of malloc.  This prevents
 * memory leaks if we error out during parsing.  Note this only works with
 * bison >= 2.0.  However, in bison 1.875 the default is to use alloca()
 * if possible, so there's not really much problem anyhow, at least if
 * you're building with gcc.
 */
#define YYMALLOC palloc
#define YYFREE   pfree
#define YYINITDEPTH 1000

/* 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 PGRawStmt *makeRawStmt(PGNode *stmt, int stmt_location);
static void updateRawStmtEnd(PGRawStmt *rs, int end_location);
static PGNode *makeColumnRef(char *colname, PGList *indirection,
						   int location, core_yyscan_t yyscanner);
static PGNode *makeTypeCast(PGNode *arg, PGTypeName *tpname, int trycast, int location);
static PGNode *makeStringConst(char *str, int location);
static PGNode *makeStringConstCast(char *str, int location, PGTypeName *tpname);
static PGNode *makeIntervalNode(char *str, int location, PGList *typmods);
static PGNode *makeIntervalNode(int val, int location, PGList *typmods);
static PGNode *makeIntervalNode(PGNode *arg, int location, PGList *typmods);
static PGNode *makeSampleSize(PGValue *sample_size, bool is_percentage);
static PGNode *makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location);
static PGNode *makeIntConst(int val, int location);
static PGNode *makeFloatConst(char *str, int location);
static PGNode *makeBitStringConst(char *str, int location);
static PGNode *makeNullAConst(int location);
static PGNode *makeAConst(PGValue *v, int location);
static PGNode *makeBoolAConst(bool state, int location);
static PGNode *makeParamRef(int number, int location);
static void check_qualified_name(PGList *names, core_yyscan_t yyscanner);
static PGList *check_func_name(PGList *names, core_yyscan_t yyscanner);
static PGList *check_indirection(PGList *indirection, core_yyscan_t yyscanner);
static void insertSelectOptions(PGSelectStmt *stmt,
								PGList *sortClause, PGList *lockingClause,
								PGNode *limitOffset, PGNode *limitCount,
								PGWithClause *withClause,
								core_yyscan_t yyscanner);
static PGNode *makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg);
static PGNode *doNegate(PGNode *n, int location);
static void doNegateFloat(PGValue *v);
static PGNode *makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location);
static PGNode *makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location);
static PGNode *makeNotExpr(PGNode *expr, int location);
static PGNode *makeSQLValueFunction(PGSQLValueFunctionOp op, int32_t typmod,
								  int location);
static void SplitColQualList(PGList *qualList,
							 PGList **constraintList, PGCollateClause **collClause,
							 core_yyscan_t yyscanner);
static void processCASbits(int cas_bits, int location, const char *constrType,
			   bool *deferrable, bool *initdeferred, bool *not_valid,
			   bool *no_inherit, core_yyscan_t yyscanner);
static PGNode *makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query);
static PGNode *makeLimitPercent(PGNode *limit_percent);



/* 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

#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 14 "third_party/libpg_query/grammar/grammar.y"
{
	core_YYSTYPE		core_yystype;
	/* these fields must match core_YYSTYPE: */
	int					ival;
	char				*str;
	const char			*keyword;
	const char          *conststr;

	char				chr;
	bool				boolean;
	PGJoinType			jtype;
	PGDropBehavior		dbehavior;
	PGOnCommitAction		oncommit;
	PGOnCreateConflict		oncreateconflict;
	PGList				*list;
	PGNode				*node;
	PGValue				*value;
	PGObjectType			objtype;
	PGTypeName			*typnam;
	PGObjectWithArgs		*objwithargs;
	PGDefElem				*defelt;
	PGSortBy				*sortby;
	PGWindowDef			*windef;
	PGJoinExpr			*jexpr;
	PGIndexElem			*ielem;
	PGAlias				*alias;
	PGRangeVar			*range;
	PGIntoClause			*into;
	PGWithClause			*with;
	PGInferClause			*infer;
	PGOnConflictClause	*onconflict;
	PGAIndices			*aind;
	PGResTarget			*target;
	PGInsertStmt			*istmt;
	PGVariableSetStmt		*vsetstmt;
	PGOverridingKind       override;
	PGSortByDir            sortorder;
	PGSortByNulls          nullorder;
	PGConstrType           constr;
	PGLockClauseStrength lockstrength;
	PGLockWaitPolicy lockwaitpolicy;
	PGSubLinkType subquerytype;
	PGViewCheckOption viewcheckoption;
}
/* Line 187 of yacc.c.  */
#line 1289 "third_party/libpg_query/grammar/grammar_out.cpp"
	YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 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 216 of yacc.c.  */
#line 1314 "third_party/libpg_query/grammar/grammar_out.cpp"

#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 <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* 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 i)
#else
static int
YYID (i)
    int i;
#endif
{
  return i;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* 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 <stdlib.h> /* 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;
  YYSTYPE yyvs;
    YYLTYPE yyls;
};

/* 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)					\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
	Stack = &yyptr->Stack;						\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  630
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   57211

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  509
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  395
/* YYNRULES -- Number of rules.  */
#define YYNRULES  1916
/* YYNRULES -- Number of states.  */
#define YYNSTATES  3100

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   742

#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,   506,     2,   494,     2,     2,
     499,   500,   492,   490,   503,   491,   501,   493,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   508,   502,
     486,   488,   487,   507,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,   497,     2,   498,   495,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   504,     2,   505,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   489,   496
};

#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,
      80,    83,    85,    87,    89,    92,    96,   104,   115,   125,
     128,   132,   133,   138,   141,   146,   152,   157,   165,   168,
     169,   171,   173,   175,   177,   182,   189,   194,   201,   206,
     213,   218,   225,   227,   230,   234,   237,   239,   243,   246,
     250,   252,   256,   259,   265,   269,   276,   281,   288,   295,
     302,   308,   314,   321,   331,   336,   342,   350,   357,   362,
     371,   376,   379,   384,   388,   395,   400,   403,   406,   409,
     412,   414,   417,   418,   420,   423,   426,   429,   431,   435,
     440,   443,   445,   446,   449,   453,   456,   460,   468,   470,
     473,   477,   480,   481,   484,   485,   495,   508,   520,   521,
     524,   526,   528,   530,   532,   534,   536,   540,   541,   543,
     546,   548,   550,   553,   556,   560,   562,   564,   567,   570,
     572,   575,   579,   585,   589,   592,   598,   600,   602,   604,
     605,   611,   619,   625,   628,   632,   634,   636,   639,   642,
     643,   647,   652,   657,   658,   662,   665,   666,   670,   672,
     674,   676,   678,   680,   682,   684,   686,   688,   690,   694,
     698,   700,   703,   706,   709,   712,   715,   718,   719,   723,
     727,   731,   732,   734,   737,   739,   742,   745,   748,   751,
     755,   760,   762,   766,   768,   770,   772,   774,   778,   780,
     783,   784,   786,   789,   790,   792,   796,   797,   800,   801,
     805,   809,   811,   817,   821,   823,   827,   829,   832,   834,
     839,   845,   851,   858,   862,   870,   875,   887,   889,   893,
     896,   899,   902,   903,   907,   909,   911,   914,   917,   920,
     923,   925,   926,   928,   931,   936,   943,   945,   948,   950,
     952,   953,   955,   958,   961,   963,   966,   969,   971,   974,
     978,   981,   984,   987,   990,   994,   998,  1002,  1004,  1008,
    1010,  1011,  1013,  1016,  1019,  1026,  1035,  1042,  1051,  1058,
    1067,  1070,  1075,  1082,  1089,  1098,  1105,  1114,  1121,  1130,
    1137,  1146,  1155,  1166,  1175,  1186,  1188,  1189,  1193,  1203,
    1216,  1220,  1221,  1224,  1228,  1232,  1236,  1238,  1242,  1246,
    1249,  1253,  1257,  1261,  1265,  1267,  1269,  1271,  1273,  1277,
    1283,  1285,  1287,  1289,  1291,  1295,  1298,  1300,  1306,  1310,
    1311,  1313,  1315,  1317,  1319,  1328,  1336,  1338,  1340,  1343,
    1347,  1361,  1378,  1380,  1383,  1384,  1386,  1387,  1389,  1390,
    1393,  1394,  1396,  1397,  1400,  1405,  1409,  1415,  1417,  1418,
    1420,  1422,  1423,  1425,  1427,  1429,  1431,  1433,  1435,  1437,
    1439,  1441,  1443,  1445,  1447,  1449,  1451,  1453,  1455,  1457,
    1459,  1461,  1463,  1465,  1467,  1469,  1471,  1473,  1475,  1477,
    1479,  1481,  1483,  1485,  1487,  1489,  1491,  1493,  1495,  1499,
    1501,  1503,  1505,  1507,  1509,  1511,  1514,  1516,  1518,  1525,
    1530,  1537,  1542,  1549,  1558,  1563,  1570,  1572,  1574,  1576,
    1578,  1581,  1583,  1586,  1588,  1591,  1593,  1595,  1597,  1601,
    1605,  1609,  1613,  1616,  1619,  1621,  1625,  1627,  1629,  1631,
    1633,  1637,  1639,  1641,  1642,  1644,  1646,  1648,  1650,  1654,
    1664,  1676,  1689,  1704,  1708,  1713,  1718,  1719,  1725,  1734,
    1736,  1737,  1740,  1743,  1747,  1749,  1751,  1754,  1757,  1760,
    1763,  1767,  1772,  1775,  1777,  1779,  1781,  1783,  1787,  1792,
    1798,  1804,  1809,  1816,  1818,  1820,  1822,  1824,  1826,  1828,
    1829,  1831,  1835,  1837,  1838,  1847,  1859,  1869,  1871,  1873,
    1877,  1878,  1880,  1884,  1886,  1887,  1889,  1890,  1892,  1893,
    1895,  1899,  1901,  1903,  1905,  1909,  1910,  1913,  1916,  1917,
    1920,  1921,  1923,  1924,  1926,  1928,  1930,  1934,  1938,  1940,
    1942,  1946,  1950,  1954,  1958,  1963,  1967,  1970,  1972,  1974,
    1976,  1978,  1980,  1984,  1989,  1993,  1995,  1997,  2001,  2005,
    2007,  2010,  2015,  2020,  2023,  2027,  2033,  2039,  2041,  2043,
    2055,  2067,  2069,  2072,  2077,  2082,  2087,  2090,  2093,  2097,
    2099,  2103,  2110,  2113,  2114,  2118,  2122,  2127,  2132,  2137,
    2142,  2146,  2149,  2151,  2153,  2154,  2156,  2158,  2159,  2161,
    2167,  2169,  2170,  2173,  2176,  2177,  2179,  2180,  2184,  2190,
    2196,  2198,  2202,  2207,  2211,  2213,  2215,  2216,  2219,  2222,
    2223,  2226,  2229,  2231,  2233,  2235,  2236,  2239,  2244,  2250,
    2255,  2258,  2262,  2265,  2268,  2271,  2274,  2276,  2279,  2283,
    2284,  2286,  2287,  2293,  2295,  2300,  2307,  2310,  2312,  2313,
    2318,  2319,  2321,  2323,  2326,  2329,  2332,  2334,  2336,  2339,
    2342,  2344,  2346,  2348,  2350,  2352,  2354,  2358,  2362,  2366,
    2367,  2369,  2373,  2375,  2378,  2380,  2382,  2384,  2386,  2388,
    2391,  2396,  2401,  2407,  2409,  2411,  2414,  2415,  2418,  2419,
    2421,  2425,  2427,  2428,  2430,  2433,  2437,  2440,  2445,  2448,
    2452,  2455,  2456,  2458,  2461,  2462,  2467,  2473,  2475,  2478,
    2481,  2482,  2484,  2488,  2490,  2493,  2497,  2501,  2505,  2509,
    2513,  2517,  2519,  2524,  2528,  2533,  2539,  2544,  2550,  2555,
    2561,  2564,  2569,  2571,  2573,  2574,  2576,  2581,  2587,  2592,
    2593,  2596,  2599,  2602,  2604,  2606,  2607,  2612,  2615,  2617,
    2620,  2623,  2628,  2631,  2638,  2641,  2643,  2647,  2652,  2653,
    2656,  2657,  2660,  2661,  2663,  2667,  2671,  2674,  2675,  2678,
    2683,  2685,  2687,  2689,  2690,  2693,  2697,  2703,  2710,  2713,
    2717,  2723,  2729,  2733,  2738,  2739,  2741,  2743,  2745,  2747,
    2749,  2752,  2757,  2759,  2761,  2763,  2765,  2768,  2772,  2773,
    2775,  2777,  2779,  2781,  2783,  2786,  2789,  2792,  2795,  2798,
    2800,  2804,  2805,  2807,  2809,  2811,  2813,  2819,  2822,  2824,
    2826,  2828,  2830,  2835,  2837,  2840,  2843,  2845,  2849,  2853,
    2856,  2858,  2859,  2865,  2868,  2874,  2877,  2879,  2883,  2887,
    2888,  2890,  2892,  2894,  2896,  2898,  2900,  2902,  2904,  2906,
    2908,  2910,  2912,  2914,  2916,  2918,  2920,  2922,  2924,  2926,
    2928,  2930,  2932,  2934,  2936,  2940,  2944,  2948,  2952,  2956,
    2960,  2964,  2965,  2967,  2971,  2975,  2981,  2984,  2987,  2991,
    2995,  2999,  3003,  3007,  3011,  3015,  3019,  3023,  3027,  3031,
    3035,  3039,  3043,  3046,  3049,  3053,  3057,  3060,  3063,  3067,
    3071,  3077,  3082,  3089,  3093,  3099,  3104,  3111,  3116,  3123,
    3129,  3137,  3141,  3144,  3149,  3153,  3156,  3158,  3162,  3166,
    3170,  3174,  3178,  3182,  3187,  3191,  3196,  3200,  3205,  3211,
    3218,  3225,  3233,  3240,  3248,  3255,  3263,  3267,  3272,  3277,
    3284,  3287,  3289,  3294,  3296,  3300,  3303,  3306,  3310,  3314,
    3318,  3322,  3326,  3330,  3334,  3338,  3342,  3346,  3350,  3354,
    3358,  3362,  3365,  3368,  3374,  3381,  3388,  3396,  3398,  3400,
    3403,  3406,  3409,  3414,  3416,  3419,  3421,  3424,  3427,  3432,
    3436,  3443,  3451,  3461,  3469,  3477,  3482,  3488,  3490,  3492,
    3494,  3500,  3502,  3504,  3509,  3511,  3516,  3518,  3523,  3525,
    3530,  3532,  3534,  3536,  3538,  3540,  3542,  3549,  3556,  3561,
    3566,  3571,  3576,  3583,  3589,  3595,  3601,  3606,  3613,  3618,
    3624,  3625,  3631,  3636,  3637,  3639,  3640,  3643,  3644,  3646,
    3650,  3654,  3657,  3660,  3661,  3668,  3670,  3671,  3675,  3676,
    3679,  3682,  3683,  3685,  3690,  3693,  3696,  3699,  3702,  3705,
    3710,  3714,  3716,  3722,  3726,  3728,  3732,  3734,  3737,  3739,
    3741,  3743,  3745,  3747,  3749,  3751,  3753,  3755,  3757,  3759,
    3761,  3763,  3765,  3767,  3769,  3771,  3773,  3775,  3780,  3782,
    3787,  3789,  3794,  3796,  3799,  3801,  3804,  3806,  3809,  3811,
    3815,  3817,  3821,  3823,  3826,  3828,  3829,  3831,  3835,  3837,
    3841,  3845,  3847,  3851,  3855,  3856,  3858,  3860,  3862,  3864,
    3866,  3868,  3870,  3872,  3874,  3876,  3881,  3885,  3888,  3892,
    3893,  3897,  3901,  3904,  3907,  3909,  3910,  3913,  3916,  3920,
    3923,  3925,  3927,  3931,  3937,  3939,  3942,  3947,  3950,  3951,
    3953,  3954,  3956,  3959,  3962,  3966,  3972,  3974,  3975,  3977,
    3980,  3981,  3984,  3986,  3987,  3989,  3990,  3992,  3996,  3998,
    4001,  4005,  4008,  4010,  4014,  4020,  4025,  4028,  4030,  4031,
    4035,  4037,  4041,  4043,  4046,  4051,  4054,  4055,  4057,  4061,
    4063,  4066,  4068,  4072,  4074,  4077,  4079,  4081,  4083,  4086,
    4088,  4090,  4093,  4095,  4097,  4100,  4108,  4111,  4117,  4121,
    4125,  4127,  4129,  4131,  4133,  4135,  4137,  4139,  4141,  4143,
    4145,  4147,  4149,  4151,  4153,  4155,  4157,  4159,  4161,  4163,
    4165,  4168,  4171,  4175,  4179,  4180,  4182,  4184,  4186,  4188,
    4190,  4192,  4194,  4197,  4200,  4203,  4206,  4209,  4212,  4215,
    4217,  4219,  4220,  4228,  4230,  4235,  4240,  4248,  4251,  4253,
    4257,  4262,  4266,  4267,  4269,  4270,  4273,  4277,  4283,  4292,
    4298,  4299,  4305,  4311,  4319,  4322,  4323,  4325,  4327,  4329,
    4333,  4336,  4337,  4339,  4340,  4342,  4346,  4348,  4352,  4354,
    4357,  4359,  4363,  4366,  4372,  4374,  4376,  4378,  4380,  4382,
    4384,  4386,  4388,  4390,  4392,  4394,  4396,  4398,  4400,  4402,
    4404,  4406,  4408,  4410,  4412,  4414,  4416,  4418,  4420,  4422,
    4424,  4426,  4428,  4430,  4432,  4434,  4436,  4438,  4440,  4442,
    4444,  4446,  4448,  4450,  4452,  4454,  4456,  4458,  4460,  4462,
    4464,  4466,  4468,  4470,  4472,  4474,  4476,  4478,  4480,  4482,
    4484,  4486,  4488,  4490,  4492,  4494,  4496,  4498,  4500,  4502,
    4504,  4506,  4508,  4510,  4512,  4514,  4516,  4518,  4520,  4522,
    4524,  4526,  4528,  4530,  4532,  4534,  4536,  4538,  4540,  4542,
    4544,  4546,  4548,  4550,  4552,  4554,  4556,  4558,  4560,  4562,
    4564,  4566,  4568,  4570,  4572,  4574,  4576,  4578,  4580,  4582,
    4584,  4586,  4588,  4590,  4592,  4594,  4596,  4598,  4600,  4602,
    4604,  4606,  4608,  4610,  4612,  4614,  4616,  4618,  4620,  4622,
    4624,  4626,  4628,  4630,  4632,  4634,  4636,  4638,  4640,  4642,
    4644,  4646,  4648,  4650,  4652,  4654,  4656,  4658,  4660,  4662,
    4664,  4666,  4668,  4670,  4672,  4674,  4676,  4678,  4680,  4682,
    4684,  4686,  4688,  4690,  4692,  4694,  4696,  4698,  4700,  4702,
    4704,  4706,  4708,  4710,  4712,  4714,  4716,  4718,  4720,  4722,
    4724,  4726,  4728,  4730,  4732,  4734,  4736,  4738,  4740,  4742,
    4744,  4746,  4748,  4750,  4752,  4754,  4756,  4758,  4760,  4762,
    4764,  4766,  4768,  4770,  4772,  4774,  4776,  4778,  4780,  4782,
    4784,  4786,  4788,  4790,  4792,  4794,  4796,  4798,  4800,  4802,
    4804,  4806,  4808,  4810,  4812,  4814,  4816,  4818,  4820,  4822,
    4824,  4826,  4828,  4830,  4832,  4834,  4836,  4838,  4840,  4842,
    4844,  4846,  4848,  4850,  4852,  4854,  4856,  4858,  4860,  4862,
    4864,  4866,  4868,  4870,  4872,  4874,  4876,  4878,  4880,  4882,
    4884,  4886,  4888,  4890,  4892,  4894,  4896,  4898,  4900,  4902,
    4904,  4906,  4908,  4910,  4912,  4914,  4916,  4918,  4920,  4922,
    4924,  4926,  4928,  4930,  4932,  4934,  4936,  4938,  4940,  4942,
    4944,  4946,  4948,  4950,  4952,  4954,  4956,  4958,  4960,  4962,
    4964,  4966,  4968,  4970,  4972,  4974,  4976,  4978,  4980,  4982,
    4984,  4986,  4988,  4990,  4992,  4994,  4996,  4998,  5000,  5002,
    5004,  5006,  5008,  5010,  5012,  5014,  5016,  5018,  5020,  5022,
    5024,  5026,  5028,  5030,  5032,  5034,  5036,  5038,  5040,  5042,
    5044,  5046,  5048,  5050,  5052,  5054,  5056,  5058,  5060,  5062,
    5064,  5066,  5068,  5070,  5072,  5074,  5076,  5078,  5080,  5082,
    5084,  5086,  5088,  5090,  5092,  5094,  5096,  5098,  5100,  5102,
    5104,  5106,  5108,  5110,  5112,  5114,  5116,  5118,  5120,  5122,
    5124,  5126,  5128,  5130,  5132,  5134,  5136,  5138,  5140,  5142,
    5144,  5146,  5148,  5150,  5152,  5154,  5156,  5158,  5160,  5162,
    5164,  5166,  5168,  5170,  5172,  5174,  5176,  5178,  5180,  5182,
    5184,  5186,  5188,  5190,  5192,  5194,  5196,  5198,  5200,  5202,
    5204,  5206,  5208,  5210,  5212,  5214,  5216,  5218,  5220,  5222,
    5224,  5226,  5228,  5230,  5232,  5234,  5236,  5238,  5240,  5242,
    5244,  5246,  5248,  5250,  5252,  5254,  5256,  5258,  5260,  5262,
    5264,  5266,  5268,  5270,  5272,  5274,  5276,  5278,  5280,  5282,
    5284,  5286,  5288,  5290,  5292,  5294,  5296,  5298,  5300,  5302,
    5304,  5306,  5308,  5310,  5312,  5314,  5316,  5318,  5320,  5322,
    5324,  5326,  5328,  5330,  5332,  5334,  5336,  5338,  5340,  5342,
    5344,  5346,  5348,  5350,  5352,  5354,  5356,  5358,  5360,  5362,
    5364,  5366,  5368,  5370,  5372,  5374,  5376,  5378,  5380,  5382,
    5384,  5386,  5388,  5390,  5392,  5394,  5396,  5398,  5400,  5402,
    5404,  5406,  5408,  5410,  5412,  5414,  5416,  5418,  5420,  5422,
    5424,  5426,  5428,  5430,  5432,  5434,  5436,  5438,  5440,  5442,
    5444,  5446,  5448,  5450,  5452,  5454,  5456,  5458,  5460,  5462,
    5464,  5466,  5468,  5470,  5472,  5474,  5476,  5478,  5480,  5482,
    5484,  5486,  5488,  5490,  5492,  5494,  5496,  5498,  5500,  5502,
    5504,  5506,  5508,  5510,  5512,  5514,  5516,  5518,  5520,  5522,
    5524,  5526,  5528,  5530,  5532,  5534,  5536,  5538,  5540,  5542,
    5544,  5546,  5548,  5550,  5552,  5554,  5556,  5558,  5560,  5562,
    5564,  5566,  5568,  5570,  5572,  5574,  5576,  5578,  5580,  5582,
    5584,  5586,  5588,  5590,  5592,  5594,  5596
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     510,     0,    -1,   511,    -1,   511,   502,   512,    -1,   512,
      -1,   594,    -1,   587,    -1,   523,    -1,   595,    -1,   874,
      -1,   606,    -1,   653,    -1,   516,    -1,   610,    -1,   520,
      -1,   640,    -1,   539,    -1,   896,    -1,   534,    -1,   535,
      -1,   631,    -1,   598,    -1,   620,    -1,   670,    -1,   671,
      -1,   613,    -1,   877,    -1,   642,    -1,   519,    -1,   607,
      -1,   596,    -1,   672,    -1,   875,    -1,   652,    -1,   647,
      -1,   513,    -1,   600,    -1,   644,    -1,   638,    -1,    -1,
     346,   515,    -1,   646,    -1,    29,    -1,   514,    -1,   415,
     482,    -1,   419,   221,   233,    -1,    95,   585,   406,   518,
      38,   672,   517,    -1,    95,   585,   406,   190,   272,   152,
     518,    38,   672,   517,    -1,    95,   292,   344,   585,   406,
     518,    38,   672,   517,    -1,   461,   109,    -1,   461,   270,
     109,    -1,    -1,   854,   574,   561,   553,    -1,   314,   863,
      -1,   314,   863,   488,   605,    -1,   314,   863,   499,   819,
     500,    -1,    95,   362,   863,   521,    -1,    95,   362,   190,
     272,   152,   863,   521,    -1,   521,   522,    -1,    -1,   539,
      -1,   613,    -1,   640,    -1,   638,    -1,    31,   406,   741,
     531,    -1,    31,   406,   190,   152,   741,   531,    -1,    31,
     200,   854,   531,    -1,    31,   200,   190,   152,   854,   531,
      -1,    31,   370,   854,   531,    -1,    31,   370,   190,   152,
     854,   531,    -1,    31,   453,   854,   531,    -1,    31,   453,
     190,   152,   854,   531,    -1,   526,    -1,   524,   526,    -1,
     376,   117,   784,    -1,   137,   117,    -1,   348,    -1,   348,
     589,   590,    -1,   376,   591,    -1,   376,   175,   586,    -1,
     530,    -1,   527,   503,   530,    -1,    25,   566,    -1,    25,
     190,   272,   152,   566,    -1,    25,    77,   566,    -1,    25,
      77,   190,   272,   152,   566,    -1,    31,   597,   863,   525,
      -1,    31,   597,   863,   137,   272,   277,    -1,    31,   597,
     863,   376,   272,   277,    -1,    31,   597,   863,   376,   392,
     593,    -1,    31,   597,   863,   376,   554,    -1,    31,   597,
     863,   346,   554,    -1,    31,   597,   863,   376,   395,   863,
      -1,    31,   597,   863,    25,   175,   586,    38,   189,   542,
      -1,    31,   597,   863,   524,    -1,    31,   597,   863,   137,
     189,    -1,    31,   597,   863,   137,   189,   190,   152,    -1,
     137,   597,   190,   152,   863,   635,    -1,   137,   597,   863,
     635,    -1,    31,   597,   863,   533,   428,   754,   750,   529,
      -1,    31,   597,   863,   532,    -1,    25,   556,    -1,    31,
      88,   857,   540,    -1,   444,    88,   857,    -1,   137,    88,
     190,   152,   857,   635,    -1,   137,    88,   857,   635,    -1,
     376,   244,    -1,   376,   437,    -1,   376,   554,    -1,   346,
     554,    -1,   532,    -1,   441,   784,    -1,    -1,   550,    -1,
     376,   550,    -1,    25,   550,    -1,   137,   564,    -1,   528,
      -1,   531,   503,   528,    -1,   291,   499,   527,   500,    -1,
     376,   109,    -1,   376,    -1,    -1,   113,   857,    -1,   113,
     317,   857,    -1,   113,    29,    -1,   113,   317,    29,    -1,
     881,   122,   171,   536,   538,   537,   886,    -1,   741,    -1,
     741,   863,    -1,   741,    38,   863,    -1,   458,   784,    -1,
      -1,   441,   732,    -1,    -1,    95,   585,   406,   854,   499,
     572,   500,   561,   553,    -1,    95,   585,   406,   190,   272,
     152,   854,   499,   572,   500,   561,   553,    -1,    95,   292,
     344,   585,   406,   854,   499,   572,   500,   561,   553,    -1,
      -1,   540,   565,    -1,   580,    -1,   903,    -1,   813,    -1,
     590,    -1,   862,    -1,   271,    -1,   499,   588,   500,    -1,
      -1,   862,    -1,   270,    24,    -1,   349,    -1,    60,    -1,
     376,   277,    -1,   376,   117,    -1,    88,   857,   546,    -1,
     546,    -1,   560,    -1,    75,   868,    -1,   272,   277,    -1,
     277,    -1,   434,   571,    -1,   320,   224,   571,    -1,    69,
     499,   784,   500,   555,    -1,   441,    83,   857,    -1,   117,
     785,    -1,   336,   854,   574,   583,   552,    -1,   455,    -1,
     396,    -1,   547,    -1,    -1,   175,   586,    38,   189,   542,
      -1,   175,   586,    38,   499,   784,   500,   548,    -1,    38,
     499,   784,   500,   548,    -1,   564,   543,    -1,   287,   439,
     544,    -1,   551,    -1,   576,    -1,   551,   576,    -1,   576,
     551,    -1,    -1,   287,    81,   137,    -1,   287,    81,   122,
     358,    -1,   287,    81,   319,   358,    -1,    -1,   499,   558,
     500,    -1,   270,   202,    -1,    -1,    88,   857,   581,    -1,
     581,    -1,    80,    -1,    89,    -1,   118,    -1,   189,    -1,
     201,    -1,   392,    -1,   395,    -1,    29,    -1,   577,    -1,
     558,   503,   577,    -1,   441,   200,   568,    -1,   119,    -1,
     272,   119,    -1,   204,   120,    -1,   204,   193,    -1,   461,
     554,    -1,   461,   285,    -1,   463,   285,    -1,    -1,   499,
     567,   500,    -1,   563,   198,   557,    -1,   563,   149,   557,
      -1,    -1,   872,    -1,   272,   119,    -1,   119,    -1,   204,
     193,    -1,   204,   120,    -1,   272,   443,    -1,   270,   202,
      -1,   863,   754,   575,    -1,   863,   753,   549,   575,    -1,
     570,    -1,   567,   503,   570,    -1,   863,    -1,   566,    -1,
     584,    -1,   556,    -1,   872,   488,   541,    -1,   872,    -1,
     461,   562,    -1,    -1,   582,    -1,   582,   503,    -1,    -1,
     863,    -1,   499,   578,   500,    -1,    -1,   575,   545,    -1,
      -1,   287,   122,   544,    -1,   872,   488,   541,    -1,   872,
      -1,   872,   501,   872,   488,   541,    -1,   872,   501,   872,
      -1,   573,    -1,   578,   503,   573,    -1,   578,    -1,   578,
     503,    -1,   754,    -1,   865,   869,   494,   428,    -1,   377,
     865,   869,   494,   428,    -1,    69,   499,   784,   500,   540,
      -1,   434,   499,   579,   500,   571,   540,    -1,   434,   559,
     540,    -1,   320,   224,   499,   579,   500,   571,   540,    -1,
     320,   224,   559,   540,    -1,   168,   224,   499,   579,   500,
     336,   854,   574,   583,   552,   540,    -1,   569,    -1,   582,
     503,   569,    -1,   248,   172,    -1,   248,   305,    -1,   248,
     382,    -1,    -1,   234,   854,   563,    -1,   412,    -1,   410,
      -1,   238,   412,    -1,   238,   410,    -1,   177,   412,    -1,
     177,   410,    -1,   437,    -1,    -1,    32,    -1,    56,   117,
      -1,    31,   370,   854,   588,    -1,    31,   370,   190,   152,
     854,   588,    -1,   591,    -1,   588,   591,    -1,   461,    -1,
     485,    -1,    -1,     4,    -1,   490,     4,    -1,   491,     4,
      -1,   593,    -1,    38,   756,    -1,    57,   590,    -1,   108,
      -1,   270,   108,    -1,   199,   592,   590,    -1,   250,   590,
      -1,   258,   590,    -1,   270,   250,    -1,   270,   258,    -1,
     301,    56,   868,    -1,   370,   263,   868,    -1,   390,   589,
     590,    -1,   348,    -1,   348,   589,   590,    -1,    56,    -1,
      -1,   861,    -1,   490,   861,    -1,   491,   861,    -1,    31,
     406,   741,   376,   362,   857,    -1,    31,   406,   190,   152,
     741,   376,   362,   857,    -1,    31,   370,   854,   376,   362,
     857,    -1,    31,   370,   190,   152,   854,   376,   362,   857,
      -1,    31,   453,   854,   376,   362,   857,    -1,    31,   453,
     190,   152,   854,   376,   362,   857,    -1,   627,   621,    -1,
     627,   621,   854,   870,    -1,    31,   362,   857,   342,   417,
     857,    -1,    31,   406,   741,   342,   417,   857,    -1,    31,
     406,   190,   152,   741,   342,   417,   857,    -1,    31,   370,
     854,   342,   417,   857,    -1,    31,   370,   190,   152,   854,
     342,   417,   857,    -1,    31,   453,   854,   342,   417,   857,
      -1,    31,   453,   190,   152,   854,   342,   417,   857,    -1,
      31,   200,   854,   342,   417,   857,    -1,    31,   200,   190,
     152,   854,   342,   417,   857,    -1,    31,   406,   741,   342,
     597,   857,   417,   857,    -1,    31,   406,   190,   152,   741,
     342,   597,   857,   417,   857,    -1,    31,   406,   741,   342,
      88,   857,   417,   857,    -1,    31,   406,   190,   152,   741,
     342,    88,   857,   417,   857,    -1,    77,    -1,    -1,   151,
     857,   599,    -1,    95,   585,   406,   518,    38,   151,   857,
     599,   517,    -1,    95,   585,   406,   190,   272,   152,   518,
      38,   151,   857,   599,   517,    -1,   499,   817,   500,    -1,
      -1,   376,   601,    -1,   376,   238,   601,    -1,   376,   374,
     601,    -1,   376,   177,   601,    -1,   602,    -1,   646,   171,
      99,    -1,   415,   482,   604,    -1,   362,   862,    -1,   646,
     417,   605,    -1,   646,   488,   605,    -1,   646,   417,   117,
      -1,   646,   488,   117,    -1,   628,    -1,   590,    -1,   862,
      -1,     3,    -1,   773,   862,   783,    -1,   773,   499,   861,
     500,   862,    -1,   590,    -1,   117,    -1,   238,    -1,   603,
      -1,   605,   503,   603,    -1,   167,    70,    -1,    70,    -1,
     317,   857,   608,    38,   609,    -1,   499,   821,   500,    -1,
      -1,   672,    -1,   877,    -1,   652,    -1,   535,    -1,    95,
     585,   611,   854,   612,    38,   406,   672,    -1,    95,   585,
     611,   854,   612,    38,   784,    -1,   173,    -1,   245,    -1,
     499,   500,    -1,   499,   819,   500,    -1,    95,   619,   200,
     616,   617,   287,   854,   615,   499,   894,   500,   618,   747,
      -1,    95,   619,   200,   616,   190,   272,   152,   568,   287,
     854,   615,   499,   894,   500,   618,   747,    -1,   863,    -1,
     441,   614,    -1,    -1,    84,    -1,    -1,   568,    -1,    -1,
     461,   554,    -1,    -1,   434,    -1,    -1,   153,   623,    -1,
     153,   627,   621,   623,    -1,   153,   451,   623,    -1,   153,
     499,   626,   500,   623,    -1,   451,    -1,    -1,   628,    -1,
     590,    -1,    -1,   594,    -1,   587,    -1,   523,    -1,   874,
      -1,   606,    -1,   653,    -1,   516,    -1,   610,    -1,   520,
      -1,   640,    -1,   539,    -1,   896,    -1,   534,    -1,   535,
      -1,   631,    -1,   598,    -1,   613,    -1,   877,    -1,   642,
      -1,   519,    -1,   607,    -1,   596,    -1,   672,    -1,   875,
      -1,   652,    -1,   647,    -1,   513,    -1,   600,    -1,   644,
      -1,   638,    -1,     3,    -1,   897,    -1,   901,    -1,   624,
      -1,   862,    -1,   629,    -1,   626,   503,   629,    -1,    34,
      -1,    33,    -1,   424,    -1,   159,    -1,   287,    -1,   625,
      -1,   630,   622,    -1,   624,    -1,   627,    -1,   137,   632,
     190,   152,   634,   635,    -1,   137,   632,   634,   635,    -1,
     137,   633,   190,   152,   855,   635,    -1,   137,   633,   855,
     635,    -1,   137,   636,   857,   287,   868,   635,    -1,   137,
     636,   190,   152,   857,   287,   868,   635,    -1,   137,   428,
     637,   635,    -1,   137,   428,   190,   152,   637,   635,    -1,
     406,    -1,   370,    -1,   173,    -1,   245,    -1,   245,   406,
      -1,   453,    -1,   249,   453,    -1,   200,    -1,   168,   406,
      -1,    76,    -1,    92,    -1,   392,    -1,   413,   365,   304,
      -1,   413,   365,   129,    -1,   413,   365,   411,    -1,   413,
     365,    85,    -1,    23,   251,    -1,   146,   422,    -1,   156,
      -1,   168,   109,   465,    -1,   326,    -1,   362,    -1,   373,
      -1,   868,    -1,   634,   503,   868,    -1,    60,    -1,   349,
      -1,    -1,   312,    -1,   359,    -1,   422,    -1,   754,    -1,
     637,   503,   754,    -1,    95,   585,   453,   854,   574,   618,
      38,   672,   639,    -1,    95,   292,   344,   585,   453,   854,
     574,   618,    38,   672,   639,    -1,    95,   585,   334,   453,
     854,   499,   578,   500,   618,    38,   672,   639,    -1,    95,
     292,   344,   585,   334,   453,   854,   499,   578,   500,   618,
      38,   672,   639,    -1,   461,    69,   290,    -1,   461,    61,
      69,   290,    -1,   461,   238,    69,   290,    -1,    -1,    95,
     585,   370,   854,   641,    -1,    95,   585,   370,   190,   272,
     152,   854,   641,    -1,   588,    -1,    -1,   237,   643,    -1,
     211,   643,    -1,   167,   211,   643,    -1,   862,    -1,   863,
      -1,   645,   672,    -1,   402,   672,    -1,   402,   646,    -1,
     645,   646,    -1,   645,   415,   482,    -1,   645,   419,   221,
     233,    -1,   645,    29,    -1,   645,    -1,   380,    -1,   127,
      -1,   863,    -1,   646,   501,   863,    -1,   442,   649,   651,
     621,    -1,   442,   649,   651,   621,   854,    -1,   442,   649,
     651,   621,   595,    -1,   442,   499,   650,   500,    -1,   442,
     499,   650,   500,   854,   870,    -1,   627,    -1,   451,    -1,
     170,    -1,   172,    -1,     3,    -1,   172,    -1,    -1,   648,
      -1,   650,   503,   648,    -1,   170,    -1,    -1,   881,   439,
     536,   376,   893,   730,   537,   886,    -1,    93,   665,   854,
     574,   663,   654,   659,   668,   655,   589,   660,    -1,    93,
     499,   672,   500,   417,   659,   668,   589,   660,    -1,   171,
      -1,   417,    -1,   657,   124,   862,    -1,    -1,   667,    -1,
     656,   503,   667,    -1,   441,    -1,    -1,    38,    -1,    -1,
     325,    -1,    -1,   664,    -1,   499,   669,   500,    -1,   628,
      -1,   590,    -1,   492,    -1,   499,   656,   500,    -1,    -1,
     872,   661,    -1,   461,   285,    -1,    -1,   664,   666,    -1,
      -1,    52,    -1,    -1,    52,    -1,   285,    -1,   170,    -1,
     123,   658,   862,    -1,   277,   658,   862,    -1,    97,    -1,
     185,    -1,   328,   658,   862,    -1,   145,   658,   862,    -1,
     167,   328,   578,    -1,   167,   328,   492,    -1,   167,   272,
     277,   578,    -1,   167,   277,   578,    -1,   141,   862,    -1,
     628,    -1,   862,    -1,   393,    -1,   394,    -1,   662,    -1,
     669,   503,   662,    -1,   154,   110,   862,   660,    -1,   196,
     110,   862,    -1,   674,    -1,   673,    -1,   499,   674,   500,
      -1,   499,   673,   500,    -1,   676,    -1,   675,   688,    -1,
     675,   687,   721,   694,    -1,   675,   687,   693,   722,    -1,
     677,   675,    -1,   677,   675,   688,    -1,   677,   675,   687,
     721,   694,    -1,   677,   675,   687,   693,   722,    -1,   676,
      -1,   673,    -1,   369,   685,   843,   680,   730,   747,   710,
     719,   794,   720,   698,    -1,   369,   684,   845,   680,   730,
     747,   710,   719,   794,   720,   698,    -1,   729,    -1,   406,
     741,    -1,   675,   433,   683,   675,    -1,   675,   215,   683,
     675,    -1,   675,   147,   683,   675,    -1,   461,   678,    -1,
     485,   678,    -1,   461,   334,   678,    -1,   679,    -1,   678,
     503,   679,    -1,   857,   870,    38,   499,   609,   500,    -1,
     217,   681,    -1,    -1,   412,   682,   854,    -1,   410,   682,
     854,    -1,   238,   412,   682,   854,    -1,   238,   410,   682,
     854,    -1,   177,   412,   682,   854,    -1,   177,   410,   682,
     854,    -1,   437,   682,   854,    -1,   406,   854,    -1,   854,
      -1,   406,    -1,    -1,    29,    -1,   132,    -1,    -1,   132,
      -1,   132,   287,   499,   817,   500,    -1,    29,    -1,    -1,
     191,   279,    -1,   347,   279,    -1,    -1,   688,    -1,    -1,
     293,    56,   689,    -1,   293,    56,    29,   691,   692,    -1,
     293,    56,   492,   691,   692,    -1,   690,    -1,   689,   503,
     690,    -1,   784,   441,   813,   692,    -1,   784,   691,   692,
      -1,    39,    -1,   126,    -1,    -1,   484,   163,    -1,   484,
     228,    -1,    -1,   695,   696,    -1,   696,   695,    -1,   695,
      -1,   696,    -1,   693,    -1,    -1,   235,   704,    -1,   235,
     704,   503,   705,    -1,   161,   709,   706,   708,   288,    -1,
     161,   709,   708,   288,    -1,   284,   705,    -1,   284,   706,
     708,    -1,     4,   494,    -1,     9,   494,    -1,     4,   309,
      -1,     9,   309,    -1,     9,    -1,     9,   358,    -1,   441,
     360,   700,    -1,    -1,   863,    -1,    -1,   699,   499,   697,
     500,   703,    -1,   697,    -1,   697,   499,   863,   500,    -1,
     697,   499,   863,   503,     9,   500,    -1,   408,   700,    -1,
     701,    -1,    -1,   343,   499,     9,   500,    -1,    -1,   784,
      -1,    29,    -1,   784,   494,    -1,     4,   309,    -1,     9,
     309,    -1,   784,    -1,   786,    -1,   490,   707,    -1,   491,
     707,    -1,   861,    -1,     4,    -1,   357,    -1,   358,    -1,
     163,    -1,   269,    -1,   180,    56,   712,    -1,   180,    56,
      29,    -1,   180,    56,   492,    -1,    -1,   713,    -1,   711,
     503,   713,    -1,   711,    -1,   711,   503,    -1,   784,    -1,
     714,    -1,   716,    -1,   715,    -1,   717,    -1,   499,   500,
      -1,   356,   499,   817,   500,    -1,    98,   499,   817,   500,
      -1,   181,   378,   499,   712,   500,    -1,   181,    -1,   182,
      -1,   184,   784,    -1,    -1,   327,   784,    -1,    -1,   723,
      -1,   166,   330,   288,    -1,   721,    -1,    -1,   724,    -1,
     723,   724,    -1,   725,   726,   727,    -1,   166,   439,    -1,
     166,   270,   224,   439,    -1,   166,   379,    -1,   166,   224,
     379,    -1,   282,   853,    -1,    -1,   276,    -1,   383,   243,
      -1,    -1,   447,   499,   817,   500,    -1,   728,   503,   499,
     817,   500,    -1,   728,    -1,   728,   503,    -1,   171,   732,
      -1,    -1,   733,    -1,   731,   503,   733,    -1,   731,    -1,
     731,   503,    -1,   741,   736,   702,    -1,   742,   737,   702,
      -1,   729,   735,   702,    -1,   229,   742,   737,    -1,   673,
     736,   702,    -1,   229,   673,   736,    -1,   734,    -1,   499,
     734,   500,   735,    -1,   499,   734,   500,    -1,   733,    96,
     222,   733,    -1,   733,   738,   222,   733,   740,    -1,   733,
     222,   733,   740,    -1,   733,   266,   738,   222,   733,    -1,
     733,   266,   222,   733,    -1,    38,   864,   499,   856,   500,
      -1,    38,   864,    -1,   863,   499,   856,   500,    -1,   863,
      -1,   735,    -1,    -1,   735,    -1,    38,   499,   748,   500,
      -1,    38,   864,   499,   748,   500,    -1,   863,   499,   748,
     500,    -1,    -1,   172,   739,    -1,   232,   739,    -1,   353,
     739,    -1,   206,    -1,   296,    -1,    -1,   441,   499,   856,
     500,    -1,   287,   784,    -1,   854,    -1,   854,   492,    -1,
     288,   854,    -1,   288,   499,   854,   500,    -1,   789,   746,
      -1,   358,   171,   499,   744,   500,   746,    -1,   789,   745,
      -1,   743,    -1,   744,   503,   743,    -1,    38,   499,   748,
     500,    -1,    -1,   485,   294,    -1,    -1,   458,   784,    -1,
      -1,   749,    -1,   748,   503,   749,    -1,   864,   754,   750,
      -1,    75,   868,    -1,    -1,   863,   754,    -1,   751,   503,
     863,   754,    -1,   357,    -1,   399,    -1,   754,    -1,    -1,
     756,   755,    -1,   377,   756,   755,    -1,   756,    37,   497,
     861,   498,    -1,   377,   756,    37,   497,   861,   498,    -1,
     756,    37,    -1,   377,   756,    37,    -1,   752,   499,   751,
     500,   755,    -1,   246,   499,   821,   500,   755,    -1,   755,
     497,   498,    -1,   755,   497,   861,   498,    -1,    -1,   758,
      -1,   760,    -1,   762,    -1,   766,    -1,   772,    -1,   773,
     783,    -1,   773,   499,   861,   500,    -1,   760,    -1,   763,
      -1,   767,    -1,   772,    -1,   867,   759,    -1,   499,   818,
     500,    -1,    -1,   213,    -1,   214,    -1,   384,    -1,    51,
      -1,   331,    -1,   164,   761,    -1,   136,   316,    -1,   115,
     759,    -1,   114,   759,    -1,   280,   759,    -1,    54,    -1,
     499,   861,   500,    -1,    -1,   764,    -1,   765,    -1,   764,
      -1,   765,    -1,    53,   771,   499,   817,   500,    -1,    53,
     771,    -1,   768,    -1,   769,    -1,   768,    -1,   769,    -1,
     770,   499,   861,   500,    -1,   770,    -1,    67,   771,    -1,
      66,   771,    -1,   448,    -1,   265,    67,   771,    -1,   265,
      66,   771,    -1,   267,   771,    -1,   450,    -1,    -1,   416,
     499,   861,   500,   774,    -1,   416,   774,    -1,   415,   499,
     861,   500,   774,    -1,   415,   774,    -1,   216,    -1,   485,
     415,   482,    -1,   463,   415,   482,    -1,    -1,   479,    -1,
     480,    -1,   260,    -1,   261,    -1,   111,    -1,   112,    -1,
     187,    -1,   188,    -1,   256,    -1,   257,    -1,   366,    -1,
     367,    -1,   254,    -1,   255,    -1,   252,    -1,   253,    -1,
     775,    -1,   776,    -1,   777,    -1,   778,    -1,   779,    -1,
     780,    -1,   781,    -1,   782,    -1,   775,   417,   776,    -1,
     777,   417,   778,    -1,   777,   417,   779,    -1,   777,   417,
     780,    -1,   778,   417,   779,    -1,   778,   417,   780,    -1,
     779,   417,   780,    -1,    -1,   786,    -1,   784,    11,   754,
      -1,   784,    75,   868,    -1,   784,    43,   415,   482,   784,
      -1,   490,   784,    -1,   491,   784,    -1,   784,   490,   784,
      -1,   784,   491,   784,    -1,   784,   492,   784,    -1,   784,
     493,   784,    -1,   784,   494,   784,    -1,   784,   495,   784,
      -1,   784,    15,   784,    -1,   784,   486,   784,    -1,   784,
     487,   784,    -1,   784,   488,   784,    -1,   784,    18,   784,
      -1,   784,    19,   784,    -1,   784,    20,   784,    -1,   784,
     812,   784,    -1,   812,   784,    -1,   784,   812,    -1,   784,
      35,   784,    -1,   784,   292,   784,    -1,   272,   784,    -1,
     483,   784,    -1,   784,   176,   784,    -1,   784,   234,   784,
      -1,   784,   234,   784,   145,   784,    -1,   784,   483,   234,
     784,    -1,   784,   483,   234,   784,   145,   784,    -1,   784,
     192,   784,    -1,   784,   192,   784,   145,   784,    -1,   784,
     483,   192,   784,    -1,   784,   483,   192,   784,   145,   784,
      -1,   784,   381,   417,   784,    -1,   784,   381,   417,   784,
     145,   784,    -1,   784,   483,   381,   417,   784,    -1,   784,
     483,   381,   417,   784,   145,   784,    -1,   784,   219,   277,
      -1,   784,   220,    -1,   784,   219,   272,   277,    -1,   784,
     272,   277,    -1,   784,   275,    -1,   805,    -1,   504,   808,
     505,    -1,   497,   818,   498,    -1,   784,    16,   784,    -1,
     784,    17,   784,    -1,   805,   298,   805,    -1,   784,   219,
     424,    -1,   784,   219,   272,   424,    -1,   784,   219,   159,
      -1,   784,   219,   272,   159,    -1,   784,   219,   435,    -1,
     784,   219,   272,   435,    -1,   784,   219,   132,   171,   784,
      -1,   784,   219,   272,   132,   171,   784,    -1,   784,   219,
     282,   499,   821,   500,    -1,   784,   219,   272,   282,   499,
     821,   500,    -1,   784,    50,   842,   785,    35,   784,    -1,
     784,   483,    50,   842,   785,    35,   784,    -1,   784,    50,
     403,   785,    35,   784,    -1,   784,   483,    50,   403,   785,
      35,   784,    -1,   784,   197,   831,    -1,   784,   483,   197,
     831,    -1,   784,   814,   809,   673,    -1,   784,   814,   809,
     499,   784,   500,    -1,    37,   673,    -1,   117,    -1,    37,
     497,   818,   498,    -1,   786,    -1,   785,    11,   754,    -1,
     490,   785,    -1,   491,   785,    -1,   785,   490,   785,    -1,
     785,   491,   785,    -1,   785,   492,   785,    -1,   785,   493,
     785,    -1,   785,   494,   785,    -1,   785,   495,   785,    -1,
     785,    15,   785,    -1,   785,   486,   785,    -1,   785,   487,
     785,    -1,   785,   488,   785,    -1,   785,    18,   785,    -1,
     785,    19,   785,    -1,   785,    20,   785,    -1,   785,   812,
     785,    -1,   812,   785,    -1,   785,   812,    -1,   785,   219,
     132,   171,   785,    -1,   785,   219,   272,   132,   171,   785,
      -1,   785,   219,   282,   499,   821,   500,    -1,   785,   219,
     272,   282,   499,   821,   500,    -1,   837,    -1,   860,    -1,
     506,     9,    -1,   507,   841,    -1,    10,   841,    -1,   499,
     784,   500,   841,    -1,   832,    -1,   788,   841,    -1,   673,
      -1,   673,   840,    -1,   152,   673,    -1,   718,   499,   817,
     500,    -1,   859,   499,   500,    -1,   859,   499,   819,   687,
     686,   500,    -1,   859,   499,   449,   820,   687,   686,   500,
      -1,   859,   499,   819,   503,   449,   820,   687,   686,   500,
      -1,   859,   499,    29,   819,   687,   686,   500,    -1,   859,
     499,   132,   819,   687,   686,   500,    -1,   859,   499,   492,
     500,    -1,   787,   791,   792,   793,   797,    -1,   790,    -1,
     787,    -1,   790,    -1,    76,   166,   499,   784,   500,    -1,
     101,    -1,   104,    -1,   104,   499,   861,   500,    -1,   105,
      -1,   105,   499,   861,   500,    -1,   239,    -1,   239,   499,
     861,   500,    -1,   240,    -1,   240,   499,   861,   500,    -1,
     102,    -1,   106,    -1,   375,    -1,   440,    -1,   100,    -1,
     103,    -1,    63,   499,   784,    38,   754,   500,    -1,   427,
     499,   784,    38,   754,   500,    -1,   158,   499,   822,   500,
      -1,   299,   499,   824,   500,    -1,   313,   499,   826,   500,
      -1,   401,   499,   827,   500,    -1,   421,   499,   784,    38,
     754,   500,    -1,   423,   499,    55,   830,   500,    -1,   423,
     499,   230,   830,   500,    -1,   423,   499,   418,   830,   500,
      -1,   423,   499,   830,   500,    -1,   278,   499,   784,   503,
     784,   500,    -1,    74,   499,   817,   500,    -1,   462,   180,
     499,   688,   500,    -1,    -1,   162,   499,   458,   784,   500,
      -1,   162,   499,   784,   500,    -1,    -1,   155,    -1,    -1,
     460,   795,    -1,    -1,   796,    -1,   795,   503,   796,    -1,
     863,    38,   798,    -1,   297,   798,    -1,   297,   863,    -1,
      -1,   499,   799,   800,   687,   801,   500,    -1,   863,    -1,
      -1,   306,    56,   816,    -1,    -1,   329,   802,    -1,   358,
     802,    -1,    -1,   803,    -1,    50,   803,    35,   803,    -1,
     430,   315,    -1,   430,   165,    -1,    99,   357,    -1,   784,
     315,    -1,   784,   165,    -1,   357,   499,   817,   500,    -1,
     357,   499,   500,    -1,   804,    -1,   499,   816,   503,   784,
     500,    -1,   864,   508,   784,    -1,   806,    -1,   807,   503,
     806,    -1,   807,    -1,   807,   503,    -1,    36,    -1,   386,
      -1,    29,    -1,     8,    -1,   811,    -1,   490,    -1,   491,
      -1,   492,    -1,   493,    -1,   494,    -1,   495,    -1,    15,
      -1,   486,    -1,   487,    -1,   488,    -1,    18,    -1,    19,
      -1,    20,    -1,     8,    -1,   289,   499,   815,   500,    -1,
     810,    -1,   289,   499,   815,   500,    -1,   810,    -1,   289,
     499,   815,   500,    -1,   234,    -1,   483,   234,    -1,   176,
      -1,   483,   176,    -1,   192,    -1,   483,   192,    -1,   810,
      -1,   863,   501,   815,    -1,   784,    -1,   816,   503,   784,
      -1,   816,    -1,   816,   503,    -1,   817,    -1,    -1,   820,
      -1,   819,   503,   820,    -1,   784,    -1,   871,    13,   784,
      -1,   871,    14,   784,    -1,   754,    -1,   821,   503,   754,
      -1,   823,   171,   784,    -1,    -1,     3,    -1,   775,    -1,
     776,    -1,   777,    -1,   778,    -1,   779,    -1,   780,    -1,
     781,    -1,   782,    -1,   862,    -1,   784,   825,   828,   829,
      -1,   784,   825,   828,    -1,   310,   784,    -1,   785,   197,
     785,    -1,    -1,   784,   828,   829,    -1,   784,   829,   828,
      -1,   784,   828,    -1,   784,   829,    -1,   816,    -1,    -1,
     171,   784,    -1,   166,   784,    -1,   784,   171,   817,    -1,
     171,   817,    -1,   817,    -1,   673,    -1,   499,   817,   500,
      -1,    62,   836,   833,   835,   143,    -1,   834,    -1,   833,
     834,    -1,   457,   784,   414,   784,    -1,   139,   784,    -1,
      -1,   784,    -1,    -1,   863,    -1,   863,   840,    -1,   501,
     858,    -1,   497,   784,   498,    -1,   497,   839,   508,   839,
     498,    -1,   784,    -1,    -1,   838,    -1,   840,   838,    -1,
      -1,   841,   838,    -1,    42,    -1,    -1,   845,    -1,    -1,
     846,    -1,   844,   503,   846,    -1,   844,    -1,   844,   503,
      -1,   784,    38,   873,    -1,   784,     3,    -1,   784,    -1,
     492,   848,   852,    -1,   863,   501,   492,   848,   852,    -1,
     148,   499,   856,   500,    -1,   148,   863,    -1,   847,    -1,
      -1,   784,    38,   863,    -1,   849,    -1,   850,   503,   849,
      -1,   850,    -1,   850,   503,    -1,   344,   499,   851,   500,
      -1,   344,   849,    -1,    -1,   854,    -1,   853,   503,   854,
      -1,   864,    -1,   863,   840,    -1,   857,    -1,   855,   503,
     857,    -1,   855,    -1,   855,   503,    -1,   864,    -1,   872,
      -1,   866,    -1,   863,   840,    -1,   861,    -1,     4,    -1,
     862,   841,    -1,     6,    -1,     7,    -1,   859,   862,    -1,
     859,   499,   819,   687,   686,   500,   862,    -1,   757,   862,
      -1,   773,   499,   784,   500,   783,    -1,   773,   861,   783,
      -1,   773,   862,   783,    -1,   424,    -1,   159,    -1,   277,
      -1,     9,    -1,     5,    -1,     3,    -1,   897,    -1,   898,
      -1,   863,    -1,     5,    -1,     3,    -1,   897,    -1,   902,
      -1,     3,    -1,   897,    -1,   899,    -1,     3,    -1,   897,
      -1,   900,    -1,   863,    -1,   863,   869,    -1,   501,   858,
      -1,   869,   501,   858,    -1,   499,   856,   500,    -1,    -1,
     865,    -1,     3,    -1,   901,    -1,   897,    -1,   903,    -1,
     872,    -1,     5,    -1,    58,   787,    -1,    21,   876,    -1,
      49,   876,    -1,   390,   876,    -1,    81,   876,    -1,   143,
     876,    -1,   355,   876,    -1,   464,    -1,   419,    -1,    -1,
     881,   210,   217,   879,   878,   884,   886,    -1,   672,    -1,
     300,   887,   446,   672,    -1,   499,   891,   500,   672,    -1,
     499,   891,   500,   300,   887,   446,   672,    -1,   117,   447,
      -1,   854,    -1,   854,    38,   863,    -1,   499,   894,   500,
     747,    -1,   287,    88,   857,    -1,    -1,   677,    -1,    -1,
     863,   841,    -1,   895,   488,   784,    -1,   499,   888,   500,
     488,   784,    -1,   287,    86,   880,   133,   439,   376,   893,
     747,    -1,   287,    86,   880,   133,   273,    -1,    -1,   863,
     889,   890,   691,   692,    -1,   789,   889,   890,   691,   692,
      -1,   499,   784,   500,   889,   890,   691,   692,    -1,   350,
     844,    -1,    -1,   440,    -1,   405,    -1,   895,    -1,   888,
     503,   895,    -1,    75,   868,    -1,    -1,   868,    -1,    -1,
     882,    -1,   891,   503,   882,    -1,   883,    -1,   892,   503,
     883,    -1,   892,    -1,   892,   503,    -1,   885,    -1,   894,
     503,   885,    -1,   863,   841,    -1,    95,   428,   868,    38,
     754,    -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,
      25,    -1,    26,    -1,    27,    -1,    28,    -1,    30,    -1,
      31,    -1,    32,    -1,    40,    -1,    41,    -1,    43,    -1,
      44,    -1,    45,    -1,    47,    -1,    48,    -1,    49,    -1,
      56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
      61,    -1,    64,    -1,    65,    -1,    68,    -1,    70,    -1,
      71,    -1,    72,    -1,    73,    -1,    78,    -1,    79,    -1,
      80,    -1,    81,    -1,    82,    -1,    83,    -1,    85,    -1,
      86,    -1,    87,    -1,    89,    -1,    90,    -1,    91,    -1,
      92,    -1,    93,    -1,    94,    -1,    97,    -1,    98,    -1,
      99,    -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,
     111,    -1,   112,    -1,   113,    -1,   116,    -1,   118,    -1,
     120,    -1,   121,    -1,   122,    -1,   123,    -1,   124,    -1,
     125,    -1,   127,    -1,   128,    -1,   129,    -1,   130,    -1,
     131,    -1,   134,    -1,   135,    -1,   136,    -1,   137,    -1,
     138,    -1,   140,    -1,   141,    -1,   142,    -1,   144,    -1,
     145,    -1,   146,    -1,   148,    -1,   149,    -1,   150,    -1,
     151,    -1,   153,    -1,   154,    -1,   155,    -1,   156,    -1,
     157,    -1,   160,    -1,   162,    -1,   163,    -1,   165,    -1,
     167,    -1,   169,    -1,   173,    -1,   174,    -1,   177,    -1,
     179,    -1,   183,    -1,   185,    -1,   186,    -1,   187,    -1,
     188,    -1,   189,    -1,   190,    -1,   191,    -1,   193,    -1,
     194,    -1,   195,    -1,   196,    -1,   198,    -1,   199,    -1,
     200,    -1,   201,    -1,   202,    -1,   203,    -1,   205,    -1,
     208,    -1,   209,    -1,   210,    -1,   211,    -1,   212,    -1,
     218,    -1,   221,    -1,   223,    -1,   224,    -1,   225,    -1,
     226,    -1,   227,    -1,   228,    -1,   231,    -1,   233,    -1,
     236,    -1,   237,    -1,   238,    -1,   241,    -1,   242,    -1,
     243,    -1,   244,    -1,   245,    -1,   247,    -1,   248,    -1,
     249,    -1,   250,    -1,   251,    -1,   252,    -1,   253,    -1,
     254,    -1,   255,    -1,   256,    -1,   257,    -1,   258,    -1,
     259,    -1,   260,    -1,   261,    -1,   262,    -1,   263,    -1,
     264,    -1,   268,    -1,   269,    -1,   270,    -1,   273,    -1,
     274,    -1,   276,    -1,   279,    -1,   281,    -1,   282,    -1,
     283,    -1,   285,    -1,   286,    -1,   289,    -1,   290,    -1,
     291,    -1,   294,    -1,   297,    -1,   300,    -1,   301,    -1,
     302,    -1,   303,    -1,   304,    -1,   305,    -1,   306,    -1,
     307,    -1,   308,    -1,   309,    -1,   311,    -1,   312,    -1,
     314,    -1,   315,    -1,   317,    -1,   318,    -1,   319,    -1,
     321,    -1,   322,    -1,   323,    -1,   324,    -1,   325,    -1,
     326,    -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,
     333,    -1,   334,    -1,   335,    -1,   337,    -1,   338,    -1,
     339,    -1,   340,    -1,   341,    -1,   342,    -1,   343,    -1,
     344,    -1,   345,    -1,   346,    -1,   347,    -1,   348,    -1,
     349,    -1,   351,    -1,   352,    -1,   354,    -1,   355,    -1,
     356,    -1,   358,    -1,   359,    -1,   360,    -1,   361,    -1,
     362,    -1,   363,    -1,   364,    -1,   365,    -1,   366,    -1,
     367,    -1,   368,    -1,   370,    -1,   371,    -1,   372,    -1,
     373,    -1,   374,    -1,   376,    -1,   378,    -1,   379,    -1,
     380,    -1,   382,    -1,   383,    -1,   385,    -1,   387,    -1,
     388,    -1,   389,    -1,   390,    -1,   391,    -1,   392,    -1,
     393,    -1,   394,    -1,   395,    -1,   396,    -1,   397,    -1,
     398,    -1,   400,    -1,   402,    -1,   404,    -1,   405,    -1,
     407,    -1,   409,    -1,   410,    -1,   411,    -1,   412,    -1,
     413,    -1,   419,    -1,   420,    -1,   422,    -1,   425,    -1,
     426,    -1,   428,    -1,   429,    -1,   430,    -1,   431,    -1,
     432,    -1,   435,    -1,   436,    -1,   437,    -1,   438,    -1,
     439,    -1,   442,    -1,   443,    -1,   444,    -1,   445,    -1,
     446,    -1,   450,    -1,   452,    -1,   453,    -1,   454,    -1,
     455,    -1,   456,    -1,   459,    -1,   462,    -1,   463,    -1,
     464,    -1,   465,    -1,   466,    -1,   467,    -1,   479,    -1,
     480,    -1,   481,    -1,   482,    -1,    50,    -1,    51,    -1,
      53,    -1,    54,    -1,    66,    -1,    67,    -1,    74,    -1,
     114,    -1,   115,    -1,   152,    -1,   158,    -1,   164,    -1,
     175,    -1,   181,    -1,   182,    -1,   207,    -1,   213,    -1,
     214,    -1,   216,    -1,   246,    -1,   265,    -1,   267,    -1,
     271,    -1,   278,    -1,   280,    -1,   295,    -1,   299,    -1,
     313,    -1,   316,    -1,   331,    -1,   357,    -1,   377,    -1,
     384,    -1,   399,    -1,   401,    -1,   415,    -1,   416,    -1,
     421,    -1,   423,    -1,   427,    -1,   447,    -1,   448,    -1,
     468,    -1,   469,    -1,   470,    -1,   471,    -1,   472,    -1,
     473,    -1,   474,    -1,   475,    -1,   476,    -1,   477,    -1,
     478,    -1,    46,    -1,    52,    -1,    76,    -1,    84,    -1,
      96,    -1,   100,    -1,   101,    -1,   102,    -1,   103,    -1,
     106,    -1,   170,    -1,   172,    -1,   175,    -1,   176,    -1,
     192,    -1,   206,    -1,   219,    -1,   220,    -1,   222,    -1,
     232,    -1,   234,    -1,   246,    -1,   266,    -1,   275,    -1,
     296,    -1,   298,    -1,   353,    -1,   375,    -1,   381,    -1,
     399,    -1,   408,    -1,   440,    -1,   451,    -1,    46,    -1,
      52,    -1,    76,    -1,    84,    -1,    96,    -1,   100,    -1,
     101,    -1,   102,    -1,   103,    -1,   106,    -1,   170,    -1,
     172,    -1,   176,    -1,   192,    -1,   206,    -1,   219,    -1,
     220,    -1,   222,    -1,   232,    -1,   234,    -1,   266,    -1,
     275,    -1,   296,    -1,   298,    -1,   353,    -1,   375,    -1,
     381,    -1,   408,    -1,   427,    -1,   440,    -1,   451,    -1,
      46,    -1,    50,    -1,    51,    -1,    52,    -1,    53,    -1,
      54,    -1,    67,    -1,    66,    -1,    74,    -1,    76,    -1,
      84,    -1,    96,    -1,   100,    -1,   101,    -1,   102,    -1,
     103,    -1,   106,    -1,   114,    -1,   115,    -1,   152,    -1,
     158,    -1,   164,    -1,   170,    -1,   172,    -1,   175,    -1,
     176,    -1,   181,    -1,   182,    -1,   192,    -1,   206,    -1,
     207,    -1,   214,    -1,   216,    -1,   213,    -1,   219,    -1,
     220,    -1,   222,    -1,   232,    -1,   234,    -1,   246,    -1,
     265,    -1,   266,    -1,   267,    -1,   271,    -1,   275,    -1,
     278,    -1,   280,    -1,   296,    -1,   295,    -1,   298,    -1,
     299,    -1,   313,    -1,   316,    -1,   331,    -1,   353,    -1,
     357,    -1,   375,    -1,   377,    -1,   381,    -1,   384,    -1,
     399,    -1,   401,    -1,   408,    -1,   415,    -1,   416,    -1,
     421,    -1,   423,    -1,   427,    -1,   440,    -1,   447,    -1,
     448,    -1,   451,    -1,   468,    -1,   469,    -1,   470,    -1,
     471,    -1,   472,    -1,   473,    -1,   474,    -1,   475,    -1,
     476,    -1,   477,    -1,   478,    -1,    46,    -1,    52,    -1,
      76,    -1,    84,    -1,    96,    -1,   100,    -1,   101,    -1,
     102,    -1,   103,    -1,   106,    -1,   170,    -1,   172,    -1,
     175,    -1,   176,    -1,   192,    -1,   206,    -1,   219,    -1,
     220,    -1,   222,    -1,   232,    -1,   234,    -1,   246,    -1,
     266,    -1,   275,    -1,   296,    -1,   298,    -1,   353,    -1,
     375,    -1,   381,    -1,   399,    -1,   408,    -1,   427,    -1,
     440,    -1,   451,    -1,    29,    -1,    33,    -1,    34,    -1,
      35,    -1,    36,    -1,    37,    -1,    38,    -1,    39,    -1,
      42,    -1,    55,    -1,    62,    -1,    63,    -1,    69,    -1,
      75,    -1,    77,    -1,    88,    -1,    95,    -1,   104,    -1,
     105,    -1,   117,    -1,   119,    -1,   126,    -1,   132,    -1,
     133,    -1,   139,    -1,   143,    -1,   147,    -1,   159,    -1,
     161,    -1,   166,    -1,   168,    -1,   171,    -1,   178,    -1,
     180,    -1,   184,    -1,   197,    -1,   204,    -1,   215,    -1,
     217,    -1,   229,    -1,   230,    -1,   235,    -1,   239,    -1,
     240,    -1,   272,    -1,   277,    -1,   284,    -1,   287,    -1,
     288,    -1,   292,    -1,   293,    -1,   310,    -1,   320,    -1,
     327,    -1,   336,    -1,   350,    -1,   369,    -1,   386,    -1,
     403,    -1,   406,    -1,   414,    -1,   417,    -1,   418,    -1,
     424,    -1,   433,    -1,   434,    -1,   441,    -1,   449,    -1,
     457,    -1,   458,    -1,   460,    -1,   461,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,   466,   466,   482,   494,   503,   504,   505,   506,   507,
     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,   538,
       2,     7,    14,    24,    25,    32,    11,    24,    37,    54,
      55,    56,    61,     7,    14,    22,     7,    16,    34,    41,
      46,    47,    48,    49,     9,    18,    27,    36,    45,    54,
      63,    72,    85,    87,    93,    94,    99,   103,   107,   118,
     126,   130,   139,   148,   157,   166,   175,   184,   192,   200,
     209,   218,   227,   236,   253,   262,   271,   280,   290,   303,
     318,   327,   335,   350,   358,   368,   378,   385,   392,   400,
     407,   418,   419,   424,   428,   433,   438,   446,   447,   452,
     456,   457,   458,     7,    13,    19,    25,     7,    21,    25,
      32,    43,    44,    50,    51,     7,    21,    36,    56,    57,
      84,    85,    86,    87,    88,    89,    93,    94,    99,   104,
     105,   106,   107,   108,   113,   120,   121,   122,   139,   146,
     153,   163,   173,   185,   193,   202,   220,   221,   225,   226,
     230,   239,   262,   276,   283,   288,   290,   292,   294,   297,
     300,   301,   302,   303,   308,   312,   313,   318,   325,   330,
     331,   332,   333,   334,   335,   336,   337,   343,   344,   348,
     353,   360,   367,   374,   386,   387,   388,   389,   393,   398,
     399,   400,   405,   410,   411,   412,   413,   414,   415,   420,
     440,   469,   470,   474,   478,   479,   480,   484,   488,   496,
     497,   502,   503,   504,   508,   516,   517,   522,   523,   527,
     532,   536,   540,   545,   553,   554,   558,   559,   563,   564,
     570,   581,   594,   608,   622,   636,   650,   673,   677,   684,
     688,   696,   701,   708,   718,   719,   720,   721,   722,   729,
     736,   737,   742,   743,     9,    17,    29,    30,    34,    35,
      36,    41,    42,    43,    48,    52,    56,    60,    64,    68,
      72,    76,    80,    84,    88,    92,    97,   101,   105,   112,
     113,   117,   118,   119,     7,    16,    25,    34,    43,    52,
       9,    19,     6,    15,    25,    35,    45,    55,    65,    75,
      85,    95,   106,   117,   127,   140,   141,     7,    14,    31,
      51,    52,    10,    16,    22,    28,    38,    39,    47,    58,
      70,    78,    86,    93,   103,   105,   111,   115,   119,   134,
     141,   142,   143,   147,   148,     5,    11,     7,    18,    19,
      23,    24,    25,    26,     8,    20,    36,    37,    41,    45,
       8,    33,    62,    66,    67,    72,    73,    78,    79,    83,
      84,    89,    90,     9,    16,    26,    33,    44,    45,    50,
      51,    52,    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,    90,    91,    92,    97,    98,   103,   107,   115,
     116,   121,   122,   123,   129,   134,   142,   143,     9,    19,
      29,    39,    49,    59,    69,    79,    93,    94,    95,    96,
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
     107,   108,   113,   114,   115,   116,   117,   118,   119,   124,
     125,   130,   131,   132,   137,   138,   139,   142,   143,     8,
      21,    34,    52,    74,    75,    76,    77,     9,    19,    32,
      33,     7,    14,    20,    28,    29,     3,    10,    17,    24,
      31,    38,    45,    52,    61,    61,    63,    64,     8,    22,
      36,    48,    56,    70,    71,    72,    73,    74,    87,    88,
      93,    94,    98,    99,     7,     1,    30,    53,    54,    59,
      63,    68,    72,    80,    81,    85,    86,    91,    92,    96,
      97,   102,   103,   104,   105,   106,   111,   119,   123,   128,
     129,   134,   138,   143,   147,   151,   155,   159,   163,   167,
     171,   175,   179,   183,   187,   191,   195,   203,   209,   210,
     211,   216,   220,     7,    20,    47,    48,    52,    53,    68,
      69,    76,    84,    92,   100,   108,   116,   127,   128,   155,
     171,   188,   189,   208,   212,   216,   233,   240,   247,   257,
     258,   261,   273,   284,   292,   297,   302,   307,   312,   320,
     328,   333,   338,   345,   346,   350,   351,   352,   359,   360,
     364,   365,   369,   370,   371,   375,   376,   380,   381,   391,
     404,   405,   408,   417,   428,   429,   430,   433,   434,   435,
     439,   440,   441,   442,   446,   447,   451,   453,   469,   471,
     476,   479,   487,   491,   495,   499,   503,   507,   514,   519,
     526,   527,   531,   536,   540,   544,   552,   559,   560,   565,
     566,   570,   571,   576,   578,   580,   585,   605,   606,   608,
     613,   614,   618,   619,   622,   623,   648,   649,   654,   659,
     663,   664,   668,   669,   673,   674,   675,   676,   677,   681,
     694,   701,   708,   715,   716,   720,   721,   725,   726,   730,
     731,   735,   736,   740,   741,   745,   756,   757,   758,   759,
     763,   764,   769,   770,   771,   780,   786,   795,   796,   809,
     810,   814,   815,   819,   820,   826,   832,   840,   849,   857,
     866,   875,   879,   905,   909,   922,   936,   951,   963,   979,
     985,   990,   996,  1003,  1004,  1012,  1016,  1020,  1026,  1033,
    1038,  1039,  1040,  1041,  1045,  1046,  1058,  1059,  1064,  1071,
    1078,  1085,  1117,  1128,  1141,  1146,  1147,  1150,  1151,  1154,
    1155,  1160,  1161,  1166,  1170,  1176,  1197,  1205,  1218,  1221,
    1225,  1225,  1228,  1229,  1231,  1236,  1243,  1248,  1254,  1259,
    1265,  1271,  1280,  1282,  1285,  1289,  1290,  1291,  1292,  1293,
    1294,  1299,  1319,  1320,  1321,  1322,  1333,  1347,  1348,  1354,
    1359,  1364,  1369,  1374,  1379,  1384,  1389,  1395,  1401,  1407,
    1414,  1436,  1445,  1449,  1457,  1461,  1469,  1481,  1502,  1506,
    1512,  1516,  1529,  1537,  1547,  1549,  1551,  1553,  1555,  1557,
    1562,  1563,  1570,  1579,  1587,  1596,  1607,  1615,  1616,  1617,
    1621,  1621,  1624,  1624,  1627,  1627,  1630,  1630,  1633,  1633,
    1636,  1636,  1639,  1639,  1642,  1642,  1645,  1647,  1649,  1651,
    1653,  1655,  1657,  1659,  1661,  1666,  1671,  1677,  1684,  1689,
    1695,  1701,  1732,  1734,  1736,  1744,  1759,  1761,  1763,  1765,
    1767,  1769,  1771,  1773,  1775,  1777,  1779,  1781,  1783,  1785,
    1787,  1790,  1792,  1794,  1797,  1799,  1801,  1803,  1805,  1810,
    1815,  1822,  1827,  1834,  1839,  1846,  1851,  1859,  1867,  1875,
    1883,  1901,  1909,  1917,  1925,  1933,  1941,  1945,  1949,  1953,
    1961,  1965,  1981,  1989,  1997,  2005,  2013,  2021,  2029,  2033,
    2037,  2041,  2045,  2053,  2061,  2069,  2077,  2097,  2119,  2130,
    2137,  2148,  2162,  2178,  2180,  2182,  2184,  2186,  2188,  2190,
    2192,  2194,  2196,  2198,  2200,  2202,  2204,  2206,  2208,  2210,
    2212,  2214,  2216,  2218,  2222,  2226,  2230,  2244,  2245,  2246,
    2253,  2265,  2280,  2292,  2294,  2306,  2317,  2341,  2352,  2361,
    2365,  2372,  2380,  2388,  2399,  2407,  2435,  2471,  2482,  2483,
    2490,  2496,  2500,  2504,  2508,  2512,  2516,  2520,  2524,  2528,
    2532,  2536,  2540,  2544,  2548,  2552,  2556,  2558,  2560,  2564,
    2573,  2578,  2585,  2600,  2607,  2611,  2615,  2619,  2623,  2637,
    2638,  2642,  2643,  2644,  2648,  2649,  2656,  2657,  2661,  2662,
    2667,  2675,  2677,  2691,  2694,  2721,  2722,  2725,  2726,  2737,
    2743,  2750,  2759,  2776,  2821,  2829,  2837,  2845,  2853,  2874,
    2875,  2878,  2879,  2883,  2893,  2894,  2898,  2899,  2903,  2904,
    2905,  2908,  2909,  2912,  2913,  2914,  2915,  2916,  2917,  2918,
    2919,  2920,  2921,  2922,  2923,  2924,  2927,  2929,  2934,  2936,
    2941,  2943,  2945,  2947,  2949,  2951,  2953,  2955,  2969,  2971,
    2975,  2979,  2986,  2991,  2998,  3003,  3011,  3015,  3021,  3025,
    3034,  3045,  3046,  3050,  3054,  3061,  3062,  3063,  3064,  3065,
    3066,  3067,  3068,  3069,  3070,  3080,  3084,  3091,  3098,  3099,
    3115,  3119,  3124,  3128,  3143,  3148,  3152,  3155,  3158,  3159,
    3160,  3163,  3170,  3180,  3194,  3195,  3199,  3210,  3211,  3214,
    3215,  3218,  3222,  3229,  3233,  3241,  3252,  3253,  3257,  3258,
    3262,  3263,  3266,  3267,  3277,  3278,  3282,  3283,  3287,  3288,
    3291,  3307,  3315,  3323,  3338,  3356,  3357,  3360,  3361,  3364,
    3368,  3369,  3373,  3374,  3377,  3378,  3379,  3389,  3390,  3401,
    3405,  3432,  3434,  3440,  3441,  3444,  3446,  3456,  3459,  3470,
    3474,  3478,  3490,  3494,  3503,  3510,  3548,  3552,  3556,  3560,
    3564,  3568,  3572,  3578,  3579,  3595,  3596,  3597,  3600,  3601,
    3607,  3608,  3609,  3612,  3613,  3614,  3617,  3618,  3619,  3622,
    3623,  3626,  3628,  3633,  3634,  3637,  3645,  3646,  3647,  3648,
    3651,  3652,     6,     2,     9,    15,    21,    28,    35,    45,
      46,    47,     8,    21,    27,    34,    40,    47,    57,    61,
      70,    79,    88,    95,    96,   101,   113,   118,   143,   153,
     163,   169,   180,   191,   206,   207,   213,   214,   219,   220,
     226,   227,   231,   232,   237,   239,   245,   246,   250,   251,
     254,   255,   260,     7,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
      24,    25,    25,    25,    25,    25,    25,    25,    25,    25,
      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
      25,    25,    25,    25,    26,    26,    26,    26,    26,    26,
      26,    26,    26,    26,    26,    26,    26,    26,    26,    26,
      26,    26,    26,    26,    26,    26,    26,    26,    26,    26,
      26,    26,    26,    26,    26,    26,    26,    27,    27,    27,
      27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
      27,    27,    27,    27,    27,    27,    27,    27,    27,    27,
      27,    27,    27,    27,    27,    27,    27,    27,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
      28,    29,    29,    29,    29,    29,    29,    29,    29,    29,
      29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
      29,    29,    29,    29,    29,    29,    29,    29,    29,    29,
      29,    29,    29,    29,    29,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30,    30,    30,    30,
      30,    30,    30,    30,    30,    30,    30
};
#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",
  "EQUALS_GREATER", "POWER_OF", "LAMBDA_ARROW", "DOUBLE_ARROW",
  "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSOLUTE_P",
  "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE", "ALL",
  "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY",
  "AS", "ASC_P", "ASSERTION", "ASSIGNMENT", "ASYMMETRIC", "AT", "ATTACH",
  "ATTRIBUTE", "AUTHORIZATION", "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN",
  "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH", "BY", "CACHE", "CALL_P",
  "CALLED", "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN",
  "CHAR_P", "CHARACTER", "CHARACTERISTICS", "CHECK_P", "CHECKPOINT",
  "CLASS", "CLOSE", "CLUSTER", "COALESCE", "COLLATE", "COLLATION",
  "COLUMN", "COLUMNS", "COMMENT", "COMMENTS", "COMMIT", "COMMITTED",
  "COMPRESSION", "CONCURRENTLY", "CONFIGURATION", "CONFLICT", "CONNECTION",
  "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P",
  "COPY", "COST", "CREATE_P", "CROSS", "CSV", "CUBE", "CURRENT_P",
  "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA",
  "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE",
  "DATA_P", "DATABASE", "DAY_P", "DAYS_P", "DEALLOCATE", "DEC",
  "DECIMAL_P", "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED",
  "DEFINER", "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DESC_P",
  "DESCRIBE", "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT",
  "DO", "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE",
  "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENUM_P", "ESCAPE",
  "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING", "EXCLUSIVE", "EXECUTE",
  "EXISTS", "EXPLAIN", "EXPORT_P", "EXPORT_STATE", "EXTENSION", "EXTERNAL",
  "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER", "FIRST_P", "FLOAT_P",
  "FOLLOWING", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE", "FROM",
  "FULL", "FUNCTION", "FUNCTIONS", "GENERATED", "GLOB", "GLOBAL", "GRANT",
  "GRANTED", "GROUP_P", "GROUPING", "GROUPING_ID", "HANDLER", "HAVING",
  "HEADER_P", "HOLD", "HOUR_P", "HOURS_P", "IDENTITY_P", "IF_P",
  "IGNORE_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IMPORT_P",
  "IN_P", "INCLUDING", "INCREMENT", "INDEX", "INDEXES", "INHERIT",
  "INHERITS", "INITIALLY", "INLINE_P", "INNER_P", "INOUT", "INPUT_P",
  "INSENSITIVE", "INSERT", "INSTALL", "INSTEAD", "INT_P", "INTEGER",
  "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION",
  "JOIN", "JSON", "KEY", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P",
  "LATERAL_P", "LEADING", "LEAKPROOF", "LEFT", "LEVEL", "LIKE", "LIMIT",
  "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION",
  "LOCK_P", "LOCKED", "LOGGED", "MACRO", "MAP", "MAPPING", "MATCH",
  "MATERIALIZED", "MAXVALUE", "METHOD", "MICROSECOND_P", "MICROSECONDS_P",
  "MILLISECOND_P", "MILLISECONDS_P", "MINUTE_P", "MINUTES_P", "MINVALUE",
  "MODE", "MONTH_P", "MONTHS_P", "MOVE", "NAME_P", "NAMES", "NATIONAL",
  "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NONE", "NOT", "NOTHING",
  "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P", "NUMERIC",
  "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD", "ON", "ONLY",
  "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER", "ORDINALITY", "OUT_P",
  "OUTER_P", "OVER", "OVERLAPS", "OVERLAY", "OVERRIDING", "OWNED", "OWNER",
  "PARALLEL", "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD",
  "PERCENT", "PLACING", "PLANS", "POLICY", "POSITION", "PRAGMA_P",
  "PRECEDING", "PRECISION", "PREPARE", "PREPARED", "PRESERVE", "PRIMARY",
  "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROGRAM",
  "PUBLICATION", "QUALIFY", "QUOTE", "RANGE", "READ_P", "REAL", "REASSIGN",
  "RECHECK", "RECURSIVE", "REF", "REFERENCES", "REFERENCING", "REFRESH",
  "REINDEX", "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE",
  "REPLICA", "RESET", "RESPECT_P", "RESTART", "RESTRICT", "RETURNING",
  "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROW",
  "ROWS", "RULE", "SAMPLE", "SAVEPOINT", "SCHEMA", "SCHEMAS", "SCROLL",
  "SEARCH", "SECOND_P", "SECONDS_P", "SECURITY", "SELECT", "SEQUENCE",
  "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET",
  "SETOF", "SETS", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP",
  "SMALLINT", "SNAPSHOT", "SOME", "SQL_P", "STABLE", "STANDALONE_P",
  "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE",
  "STORED", "STRICT_P", "STRIP_P", "STRUCT", "SUBSCRIPTION", "SUBSTRING",
  "SUMMARIZE", "SYMMETRIC", "SYSID", "SYSTEM_P", "TABLE", "TABLES",
  "TABLESAMPLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "TEXT_P",
  "THEN", "TIME", "TIMESTAMP", "TO", "TRAILING", "TRANSACTION",
  "TRANSFORM", "TREAT", "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED",
  "TRY_CAST", "TYPE_P", "TYPES_P", "UNBOUNDED", "UNCOMMITTED",
  "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED",
  "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATE",
  "VALIDATOR", "VALUE_P", "VALUES", "VARCHAR", "VARIADIC", "VARYING",
  "VERBOSE", "VERSION_P", "VIEW", "VIEWS", "VIRTUAL", "VOLATILE", "WHEN",
  "WHERE", "WHITESPACE_P", "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK",
  "WRAPPER", "WRITE_P", "XML_P", "XMLATTRIBUTES", "XMLCONCAT",
  "XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLNAMESPACES", "XMLPARSE",
  "XMLPI", "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YEARS_P",
  "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='",
  "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['",
  "']'", "'('", "')'", "'.'", "';'", "','", "'{'", "'}'", "'#'", "'?'",
  "':'", "$accept", "stmtblock", "stmtmulti", "stmt", "VariableResetStmt",
  "generic_reset", "reset_rest", "CreateAsStmt", "opt_with_data",
  "create_as_target", "PragmaStmt", "CreateSchemaStmt", "OptSchemaEltList",
  "schema_stmt", "AlterTableStmt", "alter_identity_column_option_list",
  "alter_column_default", "alter_identity_column_option",
  "alter_generic_option_list", "alter_table_cmd", "alter_using",
  "alter_generic_option_elem", "alter_table_cmds", "alter_generic_options",
  "opt_set_data", "DeallocateStmt", "DeleteStmt",
  "relation_expr_opt_alias", "where_or_current_clause", "using_clause",
  "CreateStmt", "ConstraintAttributeSpec", "def_arg",
  "OptParenthesizedSeqOptList", "generic_option_arg", "key_action",
  "ColConstraint", "ColConstraintElem", "GeneratedColumnType",
  "opt_GeneratedColumnType", "GeneratedConstraintElem",
  "generic_option_elem", "key_update", "key_actions", "OnCommitOption",
  "reloptions", "opt_no_inherit", "TableConstraint", "TableLikeOption",
  "reloption_list", "ExistingIndex", "ConstraintAttr", "OptWith",
  "definition", "TableLikeOptionList", "generic_option_name",
  "ConstraintAttributeElem", "columnDef", "def_list", "index_name",
  "TableElement", "def_elem", "opt_definition", "OptTableElementList",
  "columnElem", "opt_column_list", "ColQualList", "key_delete",
  "reloption_elem", "columnList", "columnList_opt_comma", "func_type",
  "ConstraintElem", "TableElementList", "key_match", "TableLikeClause",
  "OptTemp", "generated_when", "AlterSeqStmt", "SeqOptList", "opt_with",
  "NumericOnly", "SeqOptElem", "opt_by", "SignedIconst",
  "AlterObjectSchemaStmt", "AnalyzeStmt", "RenameStmt", "opt_column",
  "ExecuteStmt", "execute_param_clause", "VariableSetStmt", "set_rest",
  "generic_set", "var_value", "zone_value", "var_list", "CheckPointStmt",
  "PrepareStmt", "prep_type_clause", "PreparableStmt",
  "CreateFunctionStmt", "macro_alias", "param_list", "IndexStmt",
  "access_method", "access_method_clause", "opt_concurrently",
  "opt_index_name", "opt_reloptions", "opt_unique", "ExplainStmt",
  "opt_verbose", "explain_option_arg", "ExplainableStmt",
  "NonReservedWord", "NonReservedWord_or_Sconst", "explain_option_list",
  "analyze_keyword", "opt_boolean_or_string", "explain_option_elem",
  "explain_option_name", "DropStmt", "drop_type_any_name",
  "drop_type_name", "any_name_list", "opt_drop_behavior",
  "drop_type_name_on_any_name", "type_name_list", "ViewStmt",
  "opt_check_option", "CreateSeqStmt", "OptSeqOptList", "LoadStmt",
  "file_name", "VariableShowStmt", "show_or_describe", "var_name",
  "VacuumStmt", "vacuum_option_elem", "opt_full", "vacuum_option_list",
  "opt_freeze", "UpdateStmt", "CopyStmt", "copy_from", "copy_delimiter",
  "copy_generic_opt_arg_list", "opt_using", "opt_as", "opt_program",
  "copy_options", "copy_generic_opt_arg", "copy_generic_opt_elem",
  "opt_oids", "copy_opt_list", "opt_binary", "copy_opt_item",
  "copy_generic_opt_arg_list_item", "copy_file_name",
  "copy_generic_opt_list", "ExportStmt", "ImportStmt", "SelectStmt",
  "select_with_parens", "select_no_parens", "select_clause",
  "simple_select", "with_clause", "cte_list", "common_table_expr",
  "into_clause", "OptTempTableName", "opt_table", "all_or_distinct",
  "distinct_clause", "opt_all_clause", "opt_ignore_nulls",
  "opt_sort_clause", "sort_clause", "sortby_list", "sortby",
  "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit",
  "limit_clause", "offset_clause", "sample_count", "sample_clause",
  "opt_sample_func", "tablesample_entry", "tablesample_clause",
  "opt_tablesample_clause", "opt_repeatable_clause", "select_limit_value",
  "select_offset_value", "select_fetch_first_value", "I_or_F_const",
  "row_or_rows", "first_or_next", "group_clause", "group_by_list",
  "group_by_list_opt_comma", "group_by_item", "empty_grouping_set",
  "rollup_clause", "cube_clause", "grouping_sets_clause",
  "grouping_or_grouping_id", "having_clause", "qualify_clause",
  "for_locking_clause", "opt_for_locking_clause", "for_locking_items",
  "for_locking_item", "for_locking_strength", "locked_rels_list",
  "opt_nowait_or_skip", "values_clause", "values_clause_opt_comma",
  "from_clause", "from_list", "from_list_opt_comma", "table_ref",
  "joined_table", "alias_clause", "opt_alias_clause", "func_alias_clause",
  "join_type", "join_outer", "join_qual", "relation_expr", "func_table",
  "rowsfrom_item", "rowsfrom_list", "opt_col_def_list", "opt_ordinality",
  "where_clause", "TableFuncElementList", "TableFuncElement",
  "opt_collate_clause", "colid_type_list", "RowOrStruct", "opt_Typename",
  "Typename", "opt_array_bounds", "SimpleTypename", "ConstTypename",
  "GenericType", "opt_type_modifiers", "Numeric", "opt_float", "Bit",
  "ConstBit", "BitWithLength", "BitWithoutLength", "Character",
  "ConstCharacter", "CharacterWithLength", "CharacterWithoutLength",
  "character", "opt_varying", "ConstDatetime", "ConstInterval",
  "opt_timezone", "year_keyword", "month_keyword", "day_keyword",
  "hour_keyword", "minute_keyword", "second_keyword",
  "millisecond_keyword", "microsecond_keyword", "opt_interval", "a_expr",
  "b_expr", "c_expr", "func_application", "func_expr",
  "func_expr_windowless", "func_expr_common_subexpr",
  "within_group_clause", "filter_clause", "export_clause", "window_clause",
  "window_definition_list", "window_definition", "over_clause",
  "window_specification", "opt_existing_window_name",
  "opt_partition_clause", "opt_frame_clause", "frame_extent",
  "frame_bound", "qualified_row", "row", "dict_arg", "dict_arguments",
  "dict_arguments_opt_comma", "sub_type", "all_Op", "MathOp", "qual_Op",
  "qual_all_Op", "subquery_Op", "any_operator", "expr_list",
  "expr_list_opt_comma", "opt_expr_list_opt_comma", "func_arg_list",
  "func_arg_expr", "type_list", "extract_list", "extract_arg",
  "overlay_list", "overlay_placing", "position_list", "substr_list",
  "substr_from", "substr_for", "trim_list", "in_expr", "case_expr",
  "when_clause_list", "when_clause", "case_default", "case_arg",
  "columnref", "indirection_el", "opt_slice_bound", "indirection",
  "opt_indirection", "opt_asymmetric", "opt_target_list_opt_comma",
  "target_list", "target_list_opt_comma", "target_el", "except_list",
  "opt_except_list", "replace_list_el", "replace_list",
  "replace_list_opt_comma", "opt_replace_list", "qualified_name_list",
  "qualified_name", "name_list", "name_list_opt_comma", "name",
  "attr_name", "func_name", "AexprConst", "Iconst", "Sconst", "ColId",
  "ColIdOrString", "type_function_name", "function_name_token",
  "type_name_token", "any_name", "attrs", "opt_name_list", "param_name",
  "ColLabel", "ColLabelOrString", "CallStmt", "TransactionStmt",
  "opt_transaction", "InsertStmt", "insert_rest", "insert_target",
  "opt_conf_expr", "opt_with_clause", "insert_column_item", "set_clause",
  "opt_on_conflict", "index_elem", "returning_clause", "override_kind",
  "set_target_list", "opt_collate", "opt_class", "insert_column_list",
  "set_clause_list", "set_clause_list_opt_comma", "index_params",
  "set_target", "CreateTypeStmt", "unreserved_keyword", "col_name_keyword",
  "func_name_keyword", "type_name_keyword", "other_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,   668,   669,   670,   671,   672,   673,   674,
     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
     695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   723,   724,
     725,   726,   727,   728,   729,   730,   731,   732,   733,   734,
     735,   736,   737,   738,   739,   740,    60,    62,    61,   741,
      43,    45,    42,    47,    37,    94,   742,    91,    93,    40,
      41,    46,    59,    44,   123,   125,    35,    63,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   509,   510,   511,   511,   512,   512,   512,   512,   512,
     512,   512,   512,   512,   512,   512,   512,   512,   512,   512,
     512,   512,   512,   512,   512,   512,   512,   512,   512,   512,
     512,   512,   512,   512,   512,   512,   512,   512,   512,   512,
     513,   514,   514,   515,   515,   515,   516,   516,   516,   517,
     517,   517,   518,   519,   519,   519,   520,   520,   521,   521,
     522,   522,   522,   522,   523,   523,   523,   523,   523,   523,
     523,   523,   524,   524,   525,   525,   526,   526,   526,   526,
     527,   527,   528,   528,   528,   528,   528,   528,   528,   528,
     528,   528,   528,   528,   528,   528,   528,   528,   528,   528,
     528,   528,   528,   528,   528,   528,   528,   528,   528,   528,
     528,   529,   529,   530,   530,   530,   530,   531,   531,   532,
     533,   533,   533,   534,   534,   534,   534,   535,   536,   536,
     536,   537,   537,   538,   538,   539,   539,   539,   540,   540,
     541,   541,   541,   541,   541,   541,   542,   542,   543,   544,
     544,   544,   544,   544,   545,   545,   545,   545,   546,   546,
     546,   546,   546,   546,   546,   546,   547,   547,   548,   548,
     549,   549,   549,   550,   551,   552,   552,   552,   552,   552,
     553,   553,   553,   553,   554,   555,   555,   556,   556,   557,
     557,   557,   557,   557,   557,   557,   557,   558,   558,   559,
     560,   560,   560,   560,   561,   561,   561,   561,   562,   563,
     563,   563,   564,   565,   565,   565,   565,   565,   565,   566,
     566,   567,   567,   568,   569,   569,   569,   570,   570,   571,
     571,   572,   572,   572,   573,   574,   574,   575,   575,   576,
     577,   577,   577,   577,   578,   578,   579,   579,   580,   580,
     580,   581,   581,   581,   581,   581,   581,   582,   582,   583,
     583,   583,   583,   584,   585,   585,   585,   585,   585,   585,
     585,   585,   586,   586,   587,   587,   588,   588,   589,   589,
     589,   590,   590,   590,   590,   591,   591,   591,   591,   591,
     591,   591,   591,   591,   591,   591,   591,   591,   591,   592,
     592,   593,   593,   593,   594,   594,   594,   594,   594,   594,
     595,   595,   596,   596,   596,   596,   596,   596,   596,   596,
     596,   596,   596,   596,   596,   597,   597,   598,   598,   598,
     599,   599,   600,   600,   600,   600,   601,   601,   601,   601,
     602,   602,   602,   602,   603,   603,   604,   604,   604,   604,
     604,   604,   604,   605,   605,   606,   606,   607,   608,   608,
     609,   609,   609,   609,   610,   610,   611,   611,   612,   612,
     613,   613,   614,   615,   615,   616,   616,   617,   617,   618,
     618,   619,   619,   620,   620,   620,   620,   621,   621,   622,
     622,   622,   623,   623,   623,   623,   623,   623,   623,   623,
     623,   623,   623,   623,   623,   623,   623,   623,   623,   623,
     623,   623,   623,   623,   623,   623,   623,   623,   623,   623,
     623,   623,   624,   624,   624,   625,   625,   626,   626,   627,
     627,   628,   628,   628,   628,   629,   630,   630,   631,   631,
     631,   631,   631,   631,   631,   631,   632,   632,   632,   632,
     632,   632,   632,   632,   632,   632,   632,   632,   632,   632,
     632,   632,   633,   633,   633,   633,   633,   633,   633,   634,
     634,   635,   635,   635,   636,   636,   636,   637,   637,   638,
     638,   638,   638,   639,   639,   639,   639,   640,   640,   641,
     641,   642,   642,   642,   643,   643,   644,   644,   644,   644,
     644,   644,   644,   644,   645,   645,   646,   646,   647,   647,
     647,   647,   647,   648,   648,   648,   648,   648,   649,   649,
     650,   650,   651,   651,   652,   653,   653,   654,   654,   655,
     655,   656,   656,   657,   657,   658,   658,   659,   659,   660,
     660,   661,   661,   661,   661,   661,   662,   663,   663,   664,
     664,   665,   665,   666,   666,   666,   666,   666,   666,   666,
     666,   666,   666,   666,   666,   666,   666,   667,   668,   668,
     668,   669,   669,   670,   671,   672,   672,   673,   673,   674,
     674,   674,   674,   674,   674,   674,   674,   675,   675,   676,
     676,   676,   676,   676,   676,   676,   677,   677,   677,   678,
     678,   679,   680,   680,   681,   681,   681,   681,   681,   681,
     681,   681,   681,   682,   682,   683,   683,   683,   684,   684,
     685,   685,   686,   686,   686,   687,   687,   688,   688,   688,
     689,   689,   690,   690,   691,   691,   691,   692,   692,   692,
     693,   693,   693,   693,   694,   694,   695,   695,   695,   695,
     696,   696,   697,   697,   697,   697,   697,   697,   698,   698,
     699,   699,   700,   700,   700,   700,   701,   702,   702,   703,
     703,   704,   704,   704,   704,   704,   705,   706,   706,   706,
     707,   707,   708,   708,   709,   709,   710,   710,   710,   710,
     711,   711,   712,   712,   713,   713,   713,   713,   713,   714,
     715,   716,   717,   718,   718,   719,   719,   720,   720,   721,
     721,   722,   722,   723,   723,   724,   725,   725,   725,   725,
     726,   726,   727,   727,   727,   728,   728,   729,   729,   730,
     730,   731,   731,   732,   732,   733,   733,   733,   733,   733,
     733,   733,   733,   734,   734,   734,   734,   734,   734,   735,
     735,   735,   735,   736,   736,   737,   737,   737,   737,   737,
     738,   738,   738,   738,   739,   739,   740,   740,   741,   741,
     741,   741,   742,   742,   743,   744,   744,   745,   745,   746,
     746,   747,   747,   748,   748,   749,   750,   750,   751,   751,
     752,   752,   753,   753,   754,   754,   754,   754,   754,   754,
     754,   754,   755,   755,   755,   756,   756,   756,   756,   756,
     756,   756,   757,   757,   757,   757,   758,   759,   759,   760,
     760,   760,   760,   760,   760,   760,   760,   760,   760,   760,
     761,   761,   762,   762,   763,   763,   764,   765,   766,   766,
     767,   767,   768,   769,   770,   770,   770,   770,   770,   770,
     771,   771,   772,   772,   772,   772,   773,   774,   774,   774,
     775,   775,   776,   776,   777,   777,   778,   778,   779,   779,
     780,   780,   781,   781,   782,   782,   783,   783,   783,   783,
     783,   783,   783,   783,   783,   783,   783,   783,   783,   783,
     783,   783,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,   784,   784,   785,   785,   785,   785,   785,   785,   785,
     785,   785,   785,   785,   785,   785,   785,   785,   785,   785,
     785,   785,   785,   785,   785,   785,   785,   786,   786,   786,
     786,   786,   786,   786,   786,   786,   786,   786,   786,   787,
     787,   787,   787,   787,   787,   787,   788,   788,   789,   789,
     790,   790,   790,   790,   790,   790,   790,   790,   790,   790,
     790,   790,   790,   790,   790,   790,   790,   790,   790,   790,
     790,   790,   790,   790,   790,   790,   790,   790,   790,   791,
     791,   792,   792,   792,   793,   793,   794,   794,   795,   795,
     796,   797,   797,   797,   798,   799,   799,   800,   800,   801,
     801,   801,   802,   802,   803,   803,   803,   803,   803,   804,
     804,   805,   805,   806,   807,   807,   808,   808,   809,   809,
     809,   810,   810,   811,   811,   811,   811,   811,   811,   811,
     811,   811,   811,   811,   811,   811,   812,   812,   813,   813,
     814,   814,   814,   814,   814,   814,   814,   814,   815,   815,
     816,   816,   817,   817,   818,   818,   819,   819,   820,   820,
     820,   821,   821,   822,   822,   823,   823,   823,   823,   823,
     823,   823,   823,   823,   823,   824,   824,   825,   826,   826,
     827,   827,   827,   827,   827,   827,   828,   829,   830,   830,
     830,   831,   831,   832,   833,   833,   834,   835,   835,   836,
     836,   837,   837,   838,   838,   838,   839,   839,   840,   840,
     841,   841,   842,   842,   843,   843,   844,   844,   845,   845,
     846,   846,   846,   846,   846,   847,   847,   848,   848,   849,
     850,   850,   851,   851,   852,   852,   852,   853,   853,   854,
     854,   855,   855,   856,   856,   857,   858,   859,   859,   860,
     860,   860,   860,   860,   860,   860,   860,   860,   860,   860,
     860,   860,   860,   861,   862,   863,   863,   863,   864,   864,
     865,   865,   865,   866,   866,   866,   867,   867,   867,   868,
     868,   869,   869,   870,   870,   871,   872,   872,   872,   872,
     873,   873,   874,   875,   875,   875,   875,   875,   875,   876,
     876,   876,   877,   878,   878,   878,   878,   878,   879,   879,
     880,   880,   880,   881,   881,   882,   883,   883,   884,   884,
     884,   885,   885,   885,   886,   886,   887,   887,   888,   888,
     889,   889,   890,   890,   891,   891,   892,   892,   893,   893,
     894,   894,   895,   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,   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,   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,   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,   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,   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,   897,   897,   897,   897,   897,   897,
     897,   898,   898,   898,   898,   898,   898,   898,   898,   898,
     898,   898,   898,   898,   898,   898,   898,   898,   898,   898,
     898,   898,   898,   898,   898,   898,   898,   898,   898,   898,
     898,   898,   898,   898,   898,   898,   898,   898,   898,   898,
     898,   898,   898,   898,   898,   898,   898,   898,   898,   898,
     898,   898,   898,   898,   899,   899,   899,   899,   899,   899,
     899,   899,   899,   899,   899,   899,   899,   899,   899,   899,
     899,   899,   899,   899,   899,   899,   899,   899,   899,   899,
     899,   899,   899,   899,   899,   899,   899,   900,   900,   900,
     900,   900,   900,   900,   900,   900,   900,   900,   900,   900,
     900,   900,   900,   900,   900,   900,   900,   900,   900,   900,
     900,   900,   900,   900,   900,   900,   900,   900,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   901,   901,   901,   901,   901,   901,   901,   901,   901,
     901,   902,   902,   902,   902,   902,   902,   902,   902,   902,
     902,   902,   902,   902,   902,   902,   902,   902,   902,   902,
     902,   902,   902,   902,   902,   902,   902,   902,   902,   902,
     902,   902,   902,   902,   902,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903,   903,   903,   903,
     903,   903,   903,   903,   903,   903,   903
};

/* 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,     0,
       2,     1,     1,     1,     2,     3,     7,    10,     9,     2,
       3,     0,     4,     2,     4,     5,     4,     7,     2,     0,
       1,     1,     1,     1,     4,     6,     4,     6,     4,     6,
       4,     6,     1,     2,     3,     2,     1,     3,     2,     3,
       1,     3,     2,     5,     3,     6,     4,     6,     6,     6,
       5,     5,     6,     9,     4,     5,     7,     6,     4,     8,
       4,     2,     4,     3,     6,     4,     2,     2,     2,     2,
       1,     2,     0,     1,     2,     2,     2,     1,     3,     4,
       2,     1,     0,     2,     3,     2,     3,     7,     1,     2,
       3,     2,     0,     2,     0,     9,    12,    11,     0,     2,
       1,     1,     1,     1,     1,     1,     3,     0,     1,     2,
       1,     1,     2,     2,     3,     1,     1,     2,     2,     1,
       2,     3,     5,     3,     2,     5,     1,     1,     1,     0,
       5,     7,     5,     2,     3,     1,     1,     2,     2,     0,
       3,     4,     4,     0,     3,     2,     0,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
       1,     2,     2,     2,     2,     2,     2,     0,     3,     3,
       3,     0,     1,     2,     1,     2,     2,     2,     2,     3,
       4,     1,     3,     1,     1,     1,     1,     3,     1,     2,
       0,     1,     2,     0,     1,     3,     0,     2,     0,     3,
       3,     1,     5,     3,     1,     3,     1,     2,     1,     4,
       5,     5,     6,     3,     7,     4,    11,     1,     3,     2,
       2,     2,     0,     3,     1,     1,     2,     2,     2,     2,
       1,     0,     1,     2,     4,     6,     1,     2,     1,     1,
       0,     1,     2,     2,     1,     2,     2,     1,     2,     3,
       2,     2,     2,     2,     3,     3,     3,     1,     3,     1,
       0,     1,     2,     2,     6,     8,     6,     8,     6,     8,
       2,     4,     6,     6,     8,     6,     8,     6,     8,     6,
       8,     8,    10,     8,    10,     1,     0,     3,     9,    12,
       3,     0,     2,     3,     3,     3,     1,     3,     3,     2,
       3,     3,     3,     3,     1,     1,     1,     1,     3,     5,
       1,     1,     1,     1,     3,     2,     1,     5,     3,     0,
       1,     1,     1,     1,     8,     7,     1,     1,     2,     3,
      13,    16,     1,     2,     0,     1,     0,     1,     0,     2,
       0,     1,     0,     2,     4,     3,     5,     1,     0,     1,
       1,     0,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
       1,     1,     1,     1,     1,     2,     1,     1,     6,     4,
       6,     4,     6,     8,     4,     6,     1,     1,     1,     1,
       2,     1,     2,     1,     2,     1,     1,     1,     3,     3,
       3,     3,     2,     2,     1,     3,     1,     1,     1,     1,
       3,     1,     1,     0,     1,     1,     1,     1,     3,     9,
      11,    12,    14,     3,     4,     4,     0,     5,     8,     1,
       0,     2,     2,     3,     1,     1,     2,     2,     2,     2,
       3,     4,     2,     1,     1,     1,     1,     3,     4,     5,
       5,     4,     6,     1,     1,     1,     1,     1,     1,     0,
       1,     3,     1,     0,     8,    11,     9,     1,     1,     3,
       0,     1,     3,     1,     0,     1,     0,     1,     0,     1,
       3,     1,     1,     1,     3,     0,     2,     2,     0,     2,
       0,     1,     0,     1,     1,     1,     3,     3,     1,     1,
       3,     3,     3,     3,     4,     3,     2,     1,     1,     1,
       1,     1,     3,     4,     3,     1,     1,     3,     3,     1,
       2,     4,     4,     2,     3,     5,     5,     1,     1,    11,
      11,     1,     2,     4,     4,     4,     2,     2,     3,     1,
       3,     6,     2,     0,     3,     3,     4,     4,     4,     4,
       3,     2,     1,     1,     0,     1,     1,     0,     1,     5,
       1,     0,     2,     2,     0,     1,     0,     3,     5,     5,
       1,     3,     4,     3,     1,     1,     0,     2,     2,     0,
       2,     2,     1,     1,     1,     0,     2,     4,     5,     4,
       2,     3,     2,     2,     2,     2,     1,     2,     3,     0,
       1,     0,     5,     1,     4,     6,     2,     1,     0,     4,
       0,     1,     1,     2,     2,     2,     1,     1,     2,     2,
       1,     1,     1,     1,     1,     1,     3,     3,     3,     0,
       1,     3,     1,     2,     1,     1,     1,     1,     1,     2,
       4,     4,     5,     1,     1,     2,     0,     2,     0,     1,
       3,     1,     0,     1,     2,     3,     2,     4,     2,     3,
       2,     0,     1,     2,     0,     4,     5,     1,     2,     2,
       0,     1,     3,     1,     2,     3,     3,     3,     3,     3,
       3,     1,     4,     3,     4,     5,     4,     5,     4,     5,
       2,     4,     1,     1,     0,     1,     4,     5,     4,     0,
       2,     2,     2,     1,     1,     0,     4,     2,     1,     2,
       2,     4,     2,     6,     2,     1,     3,     4,     0,     2,
       0,     2,     0,     1,     3,     3,     2,     0,     2,     4,
       1,     1,     1,     0,     2,     3,     5,     6,     2,     3,
       5,     5,     3,     4,     0,     1,     1,     1,     1,     1,
       2,     4,     1,     1,     1,     1,     2,     3,     0,     1,
       1,     1,     1,     1,     2,     2,     2,     2,     2,     1,
       3,     0,     1,     1,     1,     1,     5,     2,     1,     1,
       1,     1,     4,     1,     2,     2,     1,     3,     3,     2,
       1,     0,     5,     2,     5,     2,     1,     3,     3,     0,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     3,     3,     3,     3,     3,     3,
       3,     0,     1,     3,     3,     5,     2,     2,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     2,     2,     3,     3,     2,     2,     3,     3,
       5,     4,     6,     3,     5,     4,     6,     4,     6,     5,
       7,     3,     2,     4,     3,     2,     1,     3,     3,     3,
       3,     3,     3,     4,     3,     4,     3,     4,     5,     6,
       6,     7,     6,     7,     6,     7,     3,     4,     4,     6,
       2,     1,     4,     1,     3,     2,     2,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     2,     2,     5,     6,     6,     7,     1,     1,     2,
       2,     2,     4,     1,     2,     1,     2,     2,     4,     3,
       6,     7,     9,     7,     7,     4,     5,     1,     1,     1,
       5,     1,     1,     4,     1,     4,     1,     4,     1,     4,
       1,     1,     1,     1,     1,     1,     6,     6,     4,     4,
       4,     4,     6,     5,     5,     5,     4,     6,     4,     5,
       0,     5,     4,     0,     1,     0,     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,     1,     5,     3,     1,     3,     1,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     4,     1,     4,
       1,     4,     1,     2,     1,     2,     1,     2,     1,     3,
       1,     3,     1,     2,     1,     0,     1,     3,     1,     3,
       3,     1,     3,     3,     0,     1,     1,     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,     3,     5,     1,     0,     1,     2,
       0,     2,     1,     0,     1,     0,     1,     3,     1,     2,
       3,     2,     1,     3,     5,     4,     2,     1,     0,     3,
       1,     3,     1,     2,     4,     2,     0,     1,     3,     1,
       2,     1,     3,     1,     2,     1,     1,     1,     2,     1,
       1,     2,     1,     1,     2,     7,     2,     5,     3,     3,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       2,     2,     3,     3,     0,     1,     1,     1,     1,     1,
       1,     1,     2,     2,     2,     2,     2,     2,     2,     1,
       1,     0,     7,     1,     4,     4,     7,     2,     1,     3,
       4,     3,     0,     1,     0,     2,     3,     5,     8,     5,
       0,     5,     5,     7,     2,     0,     1,     1,     1,     3,
       2,     0,     1,     0,     1,     3,     1,     3,     1,     2,
       1,     3,     2,     5,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     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[] =
{
    1274,  1261,     0,   430,   429,  1261,     0,   356,  1261,   552,
     271,     0,   505,     0,  1261,     0,  1274,     0,     0,     0,
       0,     0,     0,     0,     0,  1261,   621,     0,   504,  1261,
       0,     0,   519,     0,     0,     0,     0,     0,     2,     4,
      35,    12,    28,    14,     7,    18,    19,    16,     6,     5,
       8,    30,    21,    36,    10,    29,    13,    25,    22,   388,
      20,    38,    15,    27,    37,   503,    34,    33,    11,    23,
      24,    31,   588,   575,   626,   587,  1273,   727,   591,     9,
      32,    26,     0,    17,  1260,  1259,  1253,     0,     0,     0,
       0,     0,  1254,  1225,  1304,  1305,  1306,  1307,  1308,  1309,
    1310,  1311,  1312,  1313,  1314,  1315,  1316,  1317,  1318,  1319,
    1664,  1320,  1321,  1322,  1611,  1612,  1665,  1613,  1614,  1323,
    1324,  1325,  1326,  1327,  1328,  1329,  1330,  1615,  1616,  1331,
    1332,  1333,  1334,  1335,  1617,  1666,  1336,  1337,  1338,  1339,
    1340,  1341,  1667,  1342,  1343,  1344,  1345,  1346,  1347,  1348,
    1349,  1350,  1668,  1351,  1352,  1353,  1669,  1670,  1671,  1672,
    1673,  1354,  1355,  1356,  1357,  1358,  1359,  1360,  1618,  1619,
    1361,  1362,  1363,  1364,  1365,  1366,  1367,  1368,  1369,  1370,
    1371,  1372,  1373,  1374,  1375,  1376,  1377,  1378,  1379,  1380,
    1381,  1382,  1383,  1384,  1385,  1386,  1387,  1388,  1620,  1389,
    1390,  1391,  1392,  1393,  1621,  1394,  1395,  1396,  1622,  1397,
    1398,  1399,  1674,  1675,  1400,  1401,  1623,  1677,  1402,  1403,
    1624,  1625,  1404,  1405,  1406,  1407,  1408,  1409,  1410,  1411,
    1678,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1420,
    1421,  1422,  1679,  1626,  1423,  1424,  1425,  1426,  1427,  1627,
    1628,  1629,  1428,  1680,  1681,  1429,  1682,  1430,  1431,  1432,
    1433,  1434,  1435,  1436,  1683,  1437,  1684,  1438,  1439,  1440,
    1441,  1442,  1443,  1444,  1445,  1630,  1446,  1447,  1448,  1449,
    1450,  1451,  1452,  1453,  1454,  1455,  1456,  1457,  1458,  1459,
    1460,  1461,  1462,  1463,  1631,  1686,  1632,  1464,  1465,  1466,
    1633,  1467,  1468,  1687,  1469,  1634,  1470,  1635,  1471,  1472,
    1473,  1474,  1475,  1476,  1477,  1478,  1479,  1636,  1688,  1480,
    1689,  1637,  1481,  1482,  1483,  1484,  1485,  1486,  1487,  1488,
    1489,  1490,  1491,  1492,  1638,  1493,  1494,  1639,  1495,  1496,
    1497,  1498,  1499,  1500,  1501,  1502,  1503,  1504,  1505,  1506,
    1640,  1507,  1508,  1509,  1510,  1511,  1512,  1513,  1514,  1515,
    1516,  1517,  1518,  1519,  1520,  1521,  1522,  1523,  1524,  1525,
    1690,  1526,  1527,  1528,  1641,  1529,  1530,  1531,  1532,  1533,
    1534,  1535,  1536,  1537,  1538,  1539,  1540,  1541,  1542,  1543,
    1544,  1691,  1545,  1642,  1546,  1547,  1548,  1692,  1549,  1550,
    1643,  1551,  1552,  1553,  1554,  1555,  1556,  1557,  1558,  1559,
    1560,  1561,  1562,  1563,  1644,  1564,  1645,  1565,  1566,  1567,
    1568,  1694,  1569,  1570,  1571,  1572,  1573,  1646,  1647,  1574,
    1575,  1648,  1576,  1649,  1577,  1578,  1650,  1579,  1580,  1581,
    1582,  1583,  1584,  1585,  1586,  1587,  1588,  1695,  1589,  1590,
    1591,  1592,  1593,  1651,  1652,  1594,  1696,  1595,  1596,  1597,
    1598,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,  1653,
    1654,  1655,  1656,  1657,  1658,  1659,  1660,  1661,  1662,  1663,
    1607,  1608,  1609,  1610,  1252,     0,     0,  1207,  1226,  1227,
    1235,  1256,   551,     0,     0,     0,     0,     0,     0,   265,
     264,     0,   381,   270,     0,     0,  1225,  1229,   125,  1623,
    1630,  1495,  1644,   123,  1228,  1205,  1226,     0,   455,   456,
       0,   464,     0,   448,   453,   449,     0,   474,   466,   475,
     467,   447,   468,   457,   446,     0,   476,     0,   451,     0,
       0,     0,  1257,   331,  1274,     0,   418,   398,   411,   400,
     394,   404,   405,   402,   393,   392,   413,   407,   419,   396,
     412,   399,   408,   383,   388,   406,   421,   401,   410,   420,
     417,   416,   397,   414,   395,   415,   409,   403,     0,   355,
       0,     0,  1224,   492,   494,   495,   491,    53,   359,    42,
    1646,  1574,    43,    40,    41,   506,  1258,   620,   618,     0,
    1175,  1402,  1440,  1533,  1544,  1646,   332,   336,     0,  1255,
    1651,   498,   497,     0,     0,   592,   768,  1228,  1199,   518,
       0,   523,     0,  1509,   596,   599,  1244,   597,   588,     0,
       1,  1274,   387,   310,   502,  1646,  1574,   499,   496,   617,
     617,     0,   617,     0,   580,   588,   583,   587,   728,     0,
       0,     0,  1410,     0,     0,  1410,     0,  1410,     0,  1410,
       0,     0,  1167,     0,  1168,  1208,     0,   236,   269,   268,
     267,   266,   271,  1410,    59,  1239,     0,   366,   367,     0,
       0,     0,     0,     0,   376,   126,   124,   462,   463,     0,
     454,   450,   452,     0,  1236,  1697,   822,  1698,   851,   829,
     851,   851,  1699,  1700,  1701,  1702,  1703,  1704,  1705,  1706,
     818,   818,  1376,   831,  1707,  1708,  1709,  1410,  1710,  1711,
     819,   820,   856,  1712,  1713,  1714,  1715,  1716,     0,     0,
    1717,   851,  1718,   818,  1719,  1720,   823,  1721,   790,  1722,
       0,  1723,   821,   791,  1724,   859,   859,  1725,  1726,   846,
    1727,   473,     0,   477,   804,   805,   806,   807,   832,   833,
     808,   838,   839,   843,   809,   891,   818,  1237,  1238,  1410,
     473,   469,  1410,   473,  1201,  1410,     0,     0,   327,   385,
     422,  1728,  1729,  1730,  1731,  1732,  1733,  1735,  1734,  1736,
    1737,  1738,  1739,  1740,  1741,  1742,  1743,  1744,  1745,  1746,
    1747,  1748,  1749,  1750,  1751,  1752,  1753,  1754,  1755,  1756,
    1757,  1758,  1761,  1759,  1760,  1762,  1763,  1764,  1765,  1766,
    1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,  1776,  1775,
    1777,  1778,  1779,  1780,  1781,  1782,  1783,  1784,  1785,  1786,
    1787,  1788,  1789,  1790,  1791,  1792,  1793,  1794,  1795,  1796,
    1797,  1798,  1799,  1800,  1801,  1802,  1803,  1804,  1805,  1806,
    1807,  1808,  1809,  1810,   436,     0,   437,   427,   391,   423,
     424,  1274,   550,   493,   574,     0,     0,     0,     0,    44,
       0,     0,     0,  1210,  1212,  1213,  1096,  1223,  1170,     0,
    1612,  1613,  1614,  1160,     0,  1615,  1616,  1617,  1666,  1024,
    1011,  1020,  1025,  1012,  1014,  1021,  1618,  1619,   961,  1620,
    1621,  1221,  1622,  1624,  1625,  1627,  1628,  1629,  1016,  1018,
    1631,  1632,     0,  1222,  1634,  1635,  1476,  1637,  1638,  1640,
    1641,  1022,  1643,  1645,  1646,  1647,  1648,  1649,  1220,  1650,
    1023,  1652,     0,     0,     0,  1188,  1115,     0,     0,     0,
    1170,   995,     0,     0,   812,   813,   834,   835,   814,   840,
     841,   815,     0,  1182,   892,  1040,  1170,  1007,  1071,   936,
       0,   993,   987,  1178,   603,  1176,     0,   988,  1209,  1170,
    1161,   603,  1174,   335,   333,   339,   334,     0,     0,     0,
       0,     0,   770,   769,  1200,   517,   515,   516,   514,   513,
     520,     0,   522,   388,  1110,  1112,     0,  1161,   598,     0,
       0,     0,   578,   577,     3,  1244,   500,     0,   615,   616,
       0,     0,     0,     0,     0,     0,     0,     0,   712,   642,
     643,   645,   709,   713,   721,     0,   584,     0,     0,     0,
       0,   128,     0,     0,   326,   326,     0,     0,     0,     0,
       0,   117,    66,   110,     0,     0,     0,     0,   287,   300,
       0,     0,     0,     0,     0,   297,     0,     0,   280,    68,
     274,   276,     0,   326,     0,    64,     0,     0,     0,    70,
    1225,     0,  1664,  1665,  1666,  1667,  1668,  1024,  1011,  1020,
    1025,  1021,     0,  1674,  1675,  1623,  1677,  1678,  1679,  1680,
    1681,  1682,  1683,  1684,  1630,  1686,  1687,  1688,  1689,  1690,
    1022,  1692,  1644,  1694,  1650,  1023,     0,  1696,     0,   999,
    1118,   626,  1116,  1245,     0,  1226,  1232,  1166,     0,  1246,
    1845,  1846,  1847,  1848,  1849,  1850,  1851,  1852,  1853,  1854,
    1855,  1856,  1857,  1858,  1859,  1860,  1861,  1862,  1863,  1864,
    1865,  1866,  1867,  1868,  1869,  1870,  1871,  1872,  1873,  1874,
    1875,  1876,  1877,  1878,  1879,  1880,  1881,  1882,  1883,  1884,
    1885,  1886,  1887,  1888,  1889,  1890,  1891,  1892,  1893,  1894,
    1895,  1896,  1897,  1898,  1899,  1900,  1901,  1902,  1903,  1904,
    1905,  1906,  1907,  1908,  1909,  1910,  1911,  1797,  1912,  1913,
    1914,  1915,  1916,  1163,  1206,  1248,  1247,  1249,  1169,     0,
       0,   548,     0,     0,    56,     0,  1240,     0,     0,  1410,
     490,  1410,     0,   236,   236,     0,   375,   378,   465,   461,
     459,   458,   460,   850,   837,   845,   844,  1115,   827,   826,
     825,     0,   824,     0,     0,   851,   851,   849,   828,   804,
       0,     0,     0,   855,     0,   853,   471,   472,     0,   444,
       0,   798,   794,     0,   864,   865,   866,   867,   874,   875,
     872,   873,   868,   869,   862,   863,   870,   871,   860,   861,
       0,   876,   877,   878,   879,   880,   881,   882,   883,   810,
     816,     0,     0,   439,     0,     0,   441,     0,     0,     0,
    1274,     0,   281,   432,   433,   431,     0,     0,   390,   284,
     435,   425,   434,   389,   301,   426,   384,     0,   573,   539,
     345,   353,    54,   344,     0,  1121,     0,  1274,    45,   507,
       0,   991,  1115,   960,  1159,     0,     0,     0,     0,     0,
       0,   997,  1124,     0,     0,   916,     0,     0,     0,  1139,
       0,  1145,     0,     0,     0,   917,   896,   897,     0,  1187,
    1196,  1114,     0,   995,  1110,     0,  1074,  1076,     0,     0,
     989,   990,   996,     0,  1216,     0,   891,   891,  1181,  1096,
       0,  1089,     0,     0,  1093,  1094,  1095,     0,     0,     0,
    1173,     0,  1104,  1106,     0,     0,   932,  1102,     0,   935,
       0,     0,     0,     0,  1090,  1091,  1092,  1083,  1084,  1085,
    1086,  1087,  1088,  1100,  1082,   913,     0,     0,  1043,   994,
       0,   912,  1179,     0,   730,     0,  1214,  1211,     0,  1162,
     730,   347,   351,   352,   350,   338,     0,   346,   337,   342,
     340,   343,   341,     0,   511,     0,   508,  1113,   725,   600,
    1203,     0,     0,   311,   501,   595,   594,   636,   636,   627,
     630,   636,   593,   684,   685,     0,     0,     0,     0,   718,
     716,  1210,  1223,   672,   646,   671,     0,     0,   650,     0,
     676,   892,   711,   582,   640,   641,   644,   581,     0,   714,
       0,   724,   712,   645,     0,   134,  1268,     0,     0,     0,
     129,     0,     0,     0,     0,     0,  1410,     0,     0,   101,
      82,   188,   793,   325,     0,     0,     0,     0,     0,     0,
       0,   109,   106,   107,   108,     0,     0,     0,     0,   285,
     286,   299,     0,   290,   291,   288,   292,   293,     0,     0,
     278,   279,     0,     0,     0,     0,   277,     0,     0,     0,
       0,     0,     0,     0,     0,   626,   626,   626,  1005,     0,
     624,   625,     0,     0,  1164,  1167,   538,   244,     0,   234,
       0,     0,     0,     0,     0,     0,   271,    58,    60,    61,
      63,    62,  1241,     0,  1303,     0,     0,   489,   487,     0,
       0,   233,   207,   380,     0,     0,  1410,   377,     0,   223,
       0,     0,     0,   473,     0,   848,   847,   799,   795,     0,
       0,     0,     0,   478,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   473,   470,   473,  1202,     0,   473,
     330,   386,   428,   282,   302,   283,   303,   571,     0,   545,
     553,   558,   536,     0,   536,     0,   555,   559,   536,   554,
     536,   549,     0,    55,     0,   358,     0,   363,   357,   362,
     360,   361,     0,  1171,     0,     0,  1158,  1154,     0,     0,
       0,     0,     0,  1125,  1126,  1127,  1128,  1129,  1130,  1131,
    1132,  1133,     0,     0,  1134,     0,     0,     0,  1081,  1089,
    1093,  1094,  1095,  1090,  1091,  1092,  1083,  1084,  1085,  1086,
    1087,  1088,  1108,     0,     0,     0,     0,     0,     0,     0,
       0,   963,     0,     0,  1070,     0,  1110,  1144,     0,     0,
       0,     0,     0,     0,  1110,  1150,     0,     0,     0,  1186,
       0,  1183,   938,  1170,     0,  1077,   937,     0,     0,     0,
    1218,  1219,   893,   904,   939,   940,   908,   909,   910,   914,
    1251,  1250,  1180,     0,  1172,     0,     0,   894,   918,   923,
       0,  1151,   956,     0,   944,     0,   931,     0,   942,   946,
     919,   934,     0,   915,     0,  1173,  1105,  1107,     0,  1103,
       0,   905,   906,   907,   898,   899,   900,   901,   902,   903,
     911,  1080,  1078,  1079,     0,     0,     0,  1045,     0,     0,
     941,  1177,  1402,  1440,     0,   614,   614,   614,   602,   612,
       0,   782,   626,  1188,   782,     0,   891,   771,  1244,   521,
     510,   509,  1111,  1204,  1243,  1274,   634,   635,   639,   639,
       0,     0,   639,  1641,  1529,     0,     0,     0,     0,   677,
     719,     0,   710,   674,   675,     0,   673,  1210,   678,  1209,
     679,   682,   683,   651,   720,  1197,   722,     0,   715,   586,
     585,   726,     0,   132,     0,     0,     0,     0,  1263,  1280,
       0,  1170,  1296,  1298,   730,     0,   130,     0,    67,     0,
    1410,    84,     0,     0,     0,     0,     0,     0,   138,     0,
     238,   138,   122,  1410,   473,  1410,   473,  1308,  1377,  1545,
       0,    80,   113,     0,   212,   319,     0,   197,   241,   103,
     118,   312,     0,     0,    69,   275,   289,   294,   315,   298,
     295,   306,   296,   326,     0,    65,     0,   313,     0,   304,
       0,     0,    71,   317,   308,   624,   624,   624,     0,  1117,
       0,     0,     0,  1119,  1120,  1166,     0,   537,     0,   235,
       0,   547,   527,   528,   538,     0,     0,   236,   236,    59,
       0,     0,  1242,     0,     0,     0,     0,    51,     0,   226,
     224,   257,     0,   231,   225,   234,     0,     0,   183,     0,
       0,   368,     0,     0,     0,     0,     0,   817,   830,   445,
     804,     0,   858,   857,   859,   859,   804,     0,   788,     0,
     802,     0,   842,   811,   884,   885,   886,   887,   888,   889,
     890,   438,   440,     0,   442,   540,     0,   543,     0,   542,
     541,   546,   535,     0,   566,     0,     0,     0,     0,     0,
       0,   354,  1122,   619,   962,     0,     0,  1155,     0,     0,
    1038,     0,  1013,  1015,  1028,     0,  1017,  1019,     0,  1097,
       0,     0,     0,  1029,   965,   966,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   982,   981,  1030,  1069,     0,     0,
    1142,  1143,     0,  1031,     0,     0,  1149,     0,     0,     0,
    1036,     0,     0,     0,     0,  1195,   992,  1111,  1075,  1073,
     998,   891,     0,     0,     0,     0,     0,     0,     0,   945,
     933,     0,   943,   947,     0,     0,     0,   927,     0,     0,
     925,   957,   921,     0,     0,   958,     0,     0,  1044,  1053,
     614,   614,   614,   614,   611,   613,     0,     0,     0,     0,
    1529,     0,   754,     0,   733,   729,   731,   741,   754,   759,
    1008,   780,  1009,  1228,     0,   689,   624,  1196,   689,     0,
     348,   512,     0,     0,   628,   629,   631,     0,  1098,   639,
     633,   681,   680,     0,   649,   717,   647,     0,   723,   133,
       0,  1285,  1269,  1267,  1287,  1286,     0,  1170,  1294,     0,
       0,  1285,     0,  1288,  1302,  1299,   132,     0,     0,     0,
       0,   187,     0,     0,     0,   138,     0,   246,     0,   253,
       0,     0,   238,   219,   102,     0,     0,     0,    76,   121,
      94,    86,    72,   100,     0,     0,   105,     0,    98,   115,
     116,   114,   119,     0,   173,   148,   184,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   626,   622,   623,  1000,  1165,   569,   570,
     280,   568,   245,     0,     0,     0,   233,   380,    57,   271,
       0,     0,   490,     0,   236,   331,     0,    46,   211,   207,
     232,   205,   204,   206,     0,    52,   379,     0,   369,     0,
     365,     0,   374,   836,   801,     0,   854,   852,   800,     0,
     796,   803,   473,   572,   567,     0,   531,   556,   561,     0,
     565,   563,   562,   557,   560,     0,  1157,  1153,     0,  1010,
    1123,     0,  1109,  1137,  1136,   964,   973,   977,   978,   979,
    1138,     0,     0,     0,   974,   975,   976,   967,   968,   969,
     970,   971,   972,   980,  1147,  1146,  1140,  1141,     0,  1033,
    1034,  1035,  1148,     0,  1185,  1110,  1190,  1192,     0,     0,
    1072,  1217,   895,     0,     0,   924,  1152,   948,     0,     0,
       0,   920,  1097,     0,     0,     0,     0,     0,   929,     0,
       0,     0,     0,     0,  1006,     0,     0,     0,     0,   605,
     604,   610,   754,   759,     0,   588,   591,     0,   741,     0,
     753,   668,   752,   668,   734,     0,   765,   763,     0,   765,
       0,   765,     0,   668,     0,   755,   668,   752,     0,   772,
    1200,   781,     0,   706,     0,  1184,   706,     0,   601,   637,
     638,     0,   632,   648,  1198,   131,     0,   127,     0,  1275,
       0,     0,  1272,  1262,     0,     0,  1297,  1285,  1276,   320,
     138,     0,     0,    83,     0,   255,   199,   247,   230,   214,
       0,     0,     0,   139,     0,   272,     0,     0,   220,     0,
       0,     0,     0,   200,     0,     0,   159,     0,     0,   230,
       0,   237,   155,   156,     0,    75,    95,     0,    91,     0,
     120,     0,     0,     0,     0,     0,    90,    78,     0,    73,
       0,   473,   473,    81,   198,  1236,  1697,  1698,  1699,  1700,
    1701,  1702,  1703,  1704,  1705,  1706,  1707,  1708,  1823,  1709,
    1710,  1711,  1712,  1713,  1714,  1715,  1716,  1832,  1717,   145,
    1718,  1476,  1719,  1720,  1721,  1722,     0,  1723,   791,  1724,
    1725,  1726,  1727,  1083,  1084,   240,   140,   143,   248,   142,
     144,     0,  1237,   141,   243,   316,   307,     0,   314,     0,
     305,   323,   321,   318,   309,  1003,  1004,  1001,   624,   550,
     530,     0,    51,     0,     0,     0,  1410,     0,   380,   488,
       0,   233,    51,    49,     0,   263,   183,   258,     0,   486,
     364,     0,     0,     0,   797,   789,   443,   544,     0,   564,
    1156,  1026,  1037,  1135,     0,     0,     0,     0,  1032,  1027,
    1193,  1194,  1189,   954,   952,   949,     0,   950,   928,     0,
       0,   926,   922,     0,   959,  1039,     0,  1042,  1056,  1051,
    1052,   609,   608,   607,   606,   740,   738,     0,   743,   750,
     661,   667,   739,     0,   737,   732,     0,   764,   760,     0,
     761,     0,     0,   762,     0,   735,     0,   750,   736,     0,
     779,     0,     0,  1047,  1000,  1047,   349,     0,  1284,  1264,
       0,  1265,  1295,     0,     0,     0,     0,  1289,   524,   251,
      85,     0,   230,     0,   138,   216,   215,   218,   213,   217,
       0,   273,     0,     0,   157,     0,   164,   202,   203,   201,
     158,   230,   236,   160,     0,     0,     0,    87,    77,    74,
      79,    88,     0,     0,    89,    92,   787,   104,    97,  1832,
    1840,     0,     0,     0,     0,     0,     0,   526,   533,   280,
       0,     0,    48,   207,     0,     0,     0,   233,     0,     0,
      51,     0,   328,    50,     0,     0,   135,     0,   180,     0,
       0,   479,     0,   373,   372,     0,   532,   983,     0,     0,
       0,  1191,   951,   955,   953,   930,  1041,  1058,  1055,   775,
       0,   778,   742,     0,     0,   656,   663,     0,   666,   660,
       0,   744,     0,     0,   746,   748,     0,     0,     0,   783,
       0,     0,     0,  1205,   687,  1352,  1624,  1528,   688,     0,
     692,   686,   690,   695,   697,   696,   698,   694,   705,     0,
     708,  1215,   708,  1099,     0,     0,     0,     0,  1291,  1291,
    1300,     0,     0,  1277,     0,   138,     0,   229,   252,   169,
     147,     0,     0,     0,   154,   161,   262,   163,     0,    96,
       0,   112,     0,     0,   242,   324,   322,  1002,   550,     0,
     380,   183,   486,     0,     0,     0,   331,    47,   207,   196,
     189,   190,   191,   192,   193,   194,   195,   210,   209,   181,
     182,     0,     0,     0,   374,     0,   984,     0,   985,     0,
     626,   780,     0,     0,   774,     0,   654,   652,   655,   657,
     653,     0,     0,   751,   767,     0,   747,   745,   756,     0,
     787,     0,   758,     0,     0,     0,   699,   693,  1046,  1048,
       0,     0,   659,   659,     0,  1271,     0,     0,  1293,  1293,
     782,     0,  1279,     0,   236,   254,     0,   221,   228,   167,
     166,   168,   172,     0,   170,     0,   186,     0,   179,   147,
     786,     0,    99,     0,   249,   525,   529,     0,   137,   480,
     233,     0,   486,    51,   183,     0,   483,     0,     0,   380,
     986,     0,  1061,   773,   776,     0,   749,     0,     0,     0,
     784,   785,   757,     0,     0,     0,   691,     0,     0,   707,
       0,   590,   589,  1266,  1291,  1290,  1292,   636,   636,  1270,
    1301,     0,   262,   208,     0,     0,     0,   169,     0,   162,
     259,   260,   261,     0,   175,   165,   176,    93,   111,   250,
       0,   233,   481,   329,   136,   484,   485,     0,   782,  1057,
       0,     0,     0,     0,   664,     0,   670,   766,   701,     0,
     700,  1049,  1050,   661,  1293,   639,   639,   782,   179,   222,
     227,   146,   171,   185,     0,     0,     0,   177,     0,   178,
     486,     0,   370,  1611,  1353,  1581,     0,  1059,  1062,  1060,
    1054,   777,     0,     0,   662,   702,   658,   636,  1282,  1281,
    1278,   138,   151,     0,   150,     0,   239,   174,   482,   380,
       0,  1066,  1065,  1064,  1068,  1067,   665,     0,   639,   256,
     149,   153,   152,   782,     0,     0,  1283,   371,  1063,   669
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    37,    38,    39,   546,   592,   593,   547,  2277,  1222,
     548,   549,  1214,  1577,   550,  2220,  2221,  2222,  1900,  1051,
    2942,  1901,  1052,  1053,  2224,   551,   552,  1040,  2181,  1863,
     553,  2209,  2545,  2934,  2234,  3076,  2481,  2482,  2931,  2932,
    2212,  1902,  3004,  3005,  2285,  1524,  2999,  1969,  2867,  1906,
    1888,  2483,  1978,  2827,  2585,  1903,  2463,  1970,  2926,  1597,
    1971,  2927,  2684,  1972,  1567,  1592,  2213,  3006,  1907,  1568,
    2208,  2546,  1511,  1973,  2938,  1974,   504,  2467,   554,  1587,
    1542,  1320,  1071,  1532,  1309,   555,    50,   556,  1515,   557,
     778,   558,   606,   607,  1321,  1435,  1322,   559,   560,   878,
    1658,   561,   683,  1595,   562,  2753,  2593,  1227,  1598,  1980,
     505,    58,   633,  1310,   563,  1311,  1312,   865,    59,  1323,
     867,   868,   565,   539,   540,   770,  1259,   541,   751,   566,
    2751,   567,  1588,   568,   583,   569,    65,   608,   570,  1000,
     621,  1001,  1003,   571,   572,  1954,  2729,  2305,  2730,  2023,
    1948,  1318,  2021,  1637,  1571,  1319,   494,  1651,  2306,  2260,
    1638,    69,    70,   573,   951,    73,    74,    75,   613,   624,
     625,  1424,  1808,  2136,  1020,   599,   600,  1942,   643,  1561,
    1459,  1460,  1828,  2164,  1486,  1487,  1029,  1030,  2776,  2981,
    2777,  2778,  2641,  2642,  3064,  1474,  1478,  1479,  1848,  1838,
    1465,  2423,  2800,  2801,  2802,  2803,  2804,  2805,  2806,   952,
    2663,  2912,  1482,  1483,  1032,  1033,  1034,  1491,  1858,    77,
      78,  1811,  2144,  2145,  2146,  2147,  2400,  2401,  2416,  2412,
    2648,  2784,  2148,  2149,  2769,  2770,  2884,  2419,  2155,  2788,
    2789,  2841,  1614,   752,  1889,  1325,  1262,   754,   953,   755,
    1238,   954,  1242,   757,   955,   956,   957,   760,   958,   959,
     960,   763,  1234,   961,   962,  1253,  1281,  1282,  1283,  1284,
    1285,  1286,  1287,  1288,  1289,  1004,  1710,   964,   965,   966,
    2151,   967,  1418,  1797,  2129,  2810,  2908,  2909,  2384,  2629,
    2767,  2880,  3022,  3057,  3058,   968,   969,  1366,  1367,  1368,
    1794,  1413,  1414,   970,  2549,  1416,  1703,  1005,  1725,  1362,
    1121,  1122,  1326,  1682,  1683,  1706,  2052,  1713,  1718,  2080,
    2081,  1726,  1762,   971,  1666,  1667,  2038,  1335,   972,   664,
    1128,   665,  1331,  1756,   981,   973,   974,   975,  1359,  1360,
    2095,  2357,  2358,  1731,  1854,   616,  1450,  2780,   774,  1203,
     976,   977,   978,   979,  1007,   618,  1123,   487,   766,  2986,
    1216,  1011,  1124,  1904,  1752,   574,   575,    86,   576,  1869,
    1497,  2675,    82,  2188,  1872,  2191,  2820,  2437,  2186,  2192,
    2918,  2987,  2189,  1873,  1874,  2821,  1875,   577,   516,   489,
     490,   768,  1206,  1126,  1207
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -2616
static const int yypact[] =
{
    5359,   -95,   109, -2616, -2616,   -95, 37605, -2616,   -95,    59,
    2184, 39990, -2616,  5891,   -95, 42870, 56712,   232,   188,   274,
   43350, 43350, 51000, 42870, 43830,   -95,   273, 51480, -2616,   -95,
   25638, 40470,    36,  -106, 44310, 42870,  1004,   459,    49, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,    39,
   -2616, -2616, -2616, -2616, -2616, 25158, -2616, -2616, -2616, -2616,
   -2616, -2616,   122, -2616,   243,   170,   471,    62, -2616, -2616,
   -2616, -2616,   108, -2616, -2616, -2616, -2616, 44790, 42870, 45270,
   40950, 45750, -2616,   110, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616,   139, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616,   144, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616,   150, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616,   163,   548, -2616,   169, -2616,
   -2616, -2616, -2616,  1004, 42870,   358,   587,   247, 51960, -2616,
   -2616, 51000, -2616, -2616,  1176,   413, -2616, -2616, -2616, -2616,
   -2616, 41430, -2616, -2616, -2616, -2616, -2616,   424, -2616, -2616,
     289, -2616,   142, -2616, -2616,   285,   350, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616,   458, -2616, 46230, -2616, 52440,
   46695, 47175, -2616,   354, 34181, 23718, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616,    39, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,   867, -2616,
   43350,   867, -2616, -2616, -2616, -2616, -2616,    99,   387, -2616,
     441,   724, -2616, -2616,   497, -2616, -2616, -2616,   700, 11220,
   11220, 52920, 52920,   867, 52920,   527, -2616, -2616,    -5, -2616,
    -106,   497, -2616,   471, 26119, -2616,   525,   548, -2616, -2616,
     230,   856, 15260, 42870,   555, -2616,   601,   555,   613,   630,
   -2616,  5359, -2616, 42870, -2616,   622,   925,   497, -2616,   320,
     320,  1095,   320,   971,  1257, -2616,  1483, -2616,   667,  1002,
     996, 40470,  1036,   826,   898,  1074,  4638,  1105,   858,  1109,
    1008,  7685, 15260, 35205, -2616,   548,   771,   780, -2616, -2616,
   -2616, -2616,   617,  1014, -2616,   806,  1289, -2616, -2616,   876,
   47655, 48135, 42870, 42870,  1250, -2616, -2616, -2616, -2616,   888,
   -2616, -2616, -2616,   162, -2616, -2616, -2616, -2616,   922, -2616,
     922,   922, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
     859,   859,  1069,   890, -2616, -2616, -2616,  1245, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,   914,   722,
   -2616,   922, -2616,   859, -2616, -2616, -2616, -2616, -2616, -2616,
   55785, -2616, -2616, -2616, -2616,   516,   545, -2616, -2616, -2616,
   -2616,    96,   939, -2616,  1370, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616,   941, -2616,  2280,   859, -2616, -2616,  1294,
     111, -2616,  1296,   118, -2616,  1304,  1175, 15260, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
    -106, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616,   417, -2616, -2616, 32479, -2616,
   -2616, 34181,   967, -2616, -2616, 32479, 15765, 48615,  1422, -2616,
    1235, 51000,  1009, -2616, -2616, -2616, -2616, -2616, -2616,   342,
    1468,   105,  1506, 15260,  1023,   105,   105,  1029,  1367,   190,
     201,   202,   208,  1041,  1070,   219,   220,   220, -2616,  1072,
    1077, -2616,   238,  1082,  1085,  1581,  1590,   145,  1104,  1112,
     722,   105, 15260, -2616,  1119,   220,  1133,  1137,  1140,  1594,
    1142,   240,  1603,  1148,   107,   148,  1159,  1172, -2616,  1174,
     249,   250, 15260, 15260, 15260,  1535, 15260,  8695, 42870,  1681,
   -2616,   548,  1194,   867, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616,   153,  5621, -2616,  1265, -2616, -2616, -2616,  1409,
   15260, -2616, -2616,  1216,  1518, -2616,   251, -2616, -2616, -2616,
     560,  1518, -2616, -2616, -2616, -2616, -2616,   235,  1639, 31519,
   31999, 42870, -2616, -2616,   548, -2616, -2616, -2616, -2616, -2616,
   -2616,   451, -2616,    39, 33866,  1233,  1244,   548,   555, 42870,
   42870,  1707, -2616, -2616, -2616,   601, -2616,  1514, -2616, -2616,
     471,   471, 10210,   471,   171,   543, 11725, 16270,  1582,  1469,
     152,   693,  1586, -2616,  1476,   971,  1257, 15260, 40470, 42870,
    1393, 53400, 42870, 38085,   802,   821,  1271,  1360,  1275,   344,
    1690, -2616,  1276, -2616,  1368, 42870, 55785,   275, -2616,  1724,
     275,   275,   572,  1728,  1369,   316,  1525,   585,   445,  1276,
    2759, -2616, 40470,   149,   656,  1276, 42870,  1373,   670,  1276,
     155, 15765,  1278,  1287,   430,  1338,  1348,   168,   172,   174,
     184,   186, 15765,  1357,  1465,   189,  1488,  1537,  1541,  1550,
    1553,  1579,  1588,  1592,   191,  1621,  1647,  1649,  1652,  1654,
     196,  1656,   207,  1662,   209,   214, 15765,  1665,  1292, -2616,
   33866,   -11, -2616, -2616,  1668,   236, -2616,  6023,  1288, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,  1378,
   51000,  1337,   -15,  1648,  1706, 35205,  1301, 48615, 42870,  1531,
    2759,  1533,  1770,  1312,   780,  1313, -2616, 53880, -2616, -2616,
   -2616, -2616, -2616, -2616,  1315, -2616, -2616, 15260, -2616, -2616,
   -2616,  1806, -2616, 48615, 48615,   922,   922, -2616, -2616,  1780,
    1403,  1404,  1806, -2616,  1806, -2616, -2616, -2616, 48615, -2616,
   51000,  1323,  1324,  1806, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
    1806,  1405, -2616,  1406,  1411,  1412, -2616, -2616, -2616, -2616,
   -2616, 51000, 51000, -2616, 42870, 42870, -2616, 42870, 51000,  1326,
   34181, 37125, -2616, -2616, -2616, -2616,   359,   363, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, 35205, -2616,  2055,
   -2616, -2616,  1335, -2616,   468, -2616,   623,  1004, -2616, -2616,
   15260,   548, 15260, -2616, 33866,  1384, 15260, 15260,  1343,  1806,
    1806, -2616,  2322,  1806,  1806, 34109, 15260, 29002, 15260, 19805,
   12230, 15260, 15260,  9200, 15260, 34109,  1832,  1832, 27079, -2616,
    1500, -2616,  1347,  1333,  6484,  1345, -2616,  1349,  1353,  1339,
   -2616,   548,   548, 15260, -2616, 15260,  2451,  2451, -2616,   200,
   48615, 15260, 15260, 15260, 15260, 15260, 15260, 15260, 34725,  1450,
     138, 51000, 15260, 15260,  1351,   800, -2616, 15260,  1589, -2616,
    1379, 15260,  1455,   140, 15260, 15260, 15260, 15260, 15260, 15260,
   15260, 15260, 15260, -2616, -2616, 21306,   224,  1699,  1718,   548,
     -12,   991, 11220, 41910,  1711,  7685, -2616,   548, 30559,   135,
    1711, -2616, -2616, -2616, -2616, -2616,   265, -2616, -2616, -2616,
    1335, -2616,  1335,  1385, 42870,   230, 39045, 15260, -2616, -2616,
    1381,  1386,  1388, -2616, -2616,  1675, -2616,   300,   300,  1392,
   -2616, 32956,  1675, -2616, -2616, 20296,  1517,  1676,  1611, -2616,
   -2616,  1595,  1597, -2616,  1398, 33929, 16775, 16775, -2616,  1139,
   33866,  1334, -2616, -2616, -2616, -2616, -2616, -2616,   612, -2616,
   42870,    95,  1582,   693,  1408,  1470,  1871,  1247, 27559, 51000,
   -2616,  1145,  1414, 54360, 42870,  1686,  1643,  1693,   223, -2616,
   -2616, -2616, 48615, -2616, 42870, 51000, 49080, 54840, 35685, 42870,
   35205, -2616, -2616, -2616, -2616, 42870,  1606, 42870,  5049, -2616,
   -2616, -2616,   275, -2616, -2616, -2616, -2616, -2616, 51000, 42870,
   -2616, -2616,   275, 51000, 42870,   275, -2616,  1228, 42870, 42870,
   42870, 42870,  1363, 42870, 42870,    -8,    -8,  1625, -2616, 12735,
     429, -2616, 15260, 15260, -2616, 15260,  1596, -2616,   635, -2616,
    1635,   100,  1471, 42870, 42870, 51000,   871, -2616, -2616, -2616,
   -2616, -2616, -2616, 35205, -2616,  1423,  1771,  2759, -2616,  1773,
      41, 38565,   574,  1472, 13240,  1896,  1663, -2616,  1650, -2616,
   15260,  1436,  1438,    96,   647, -2616, -2616,  1442,  1324,  1458,
    1460,  1443,  1444, -2616,   747, 48615,  1806,   137,  1445,  1448,
    1435,  1356,   767,  1344,   111, -2616,   118, -2616,  1664,   212,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,   751, 22758,
   -2616, -2616,  1911,   867,  1911,   376, -2616, -2616,  1911, -2616,
    1911, -2616, 32479, -2616, 15765, -2616, 48615, -2616, -2616, -2616,
   -2616, -2616,  1453, -2616,  1452, 15260,    77, -2616, 33018,  1454,
   15260,  1457,  1459, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616,  1461,  1784, -2616,  1463,  1464,  5286, -2616, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616,  1466,  1467, 33054,  1473, 19805, 19805,  8695,
     292, -2616, 19805,  1475, -2616,  1478, 32969,  1462,  1479, 33099,
   13745, 15260, 13745, 13745, 33508, -2616,  1485, 33587, 42870, -2616,
   17280, -2616, -2616, -2616, 15260, 42870, -2616, 15260,  1486,  6647,
   -2616, -2616, -2616,   332, 33942,   991,  1722,  1722,  1722, 34109,
   -2616, -2616, -2616,  1489, -2616, 19805, 19805, -2616,  3880,  2821,
    8695, -2616, -2616,  1789, -2616,   783, -2616,  1477, -2616, -2616,
    3037, -2616, 29002, 34016, 15260,   141, -2616, 15260,  1351, 15260,
    1570,  1722,  1722,  1722,   371,   371,   279,   279,   279,   332,
     991, -2616, -2616, -2616,  1490,  1495,  1502,  1815,  1142, 15260,
   -2616, -2616,   657,   749, 42870,  2714,  3276,  3956, -2616, -2616,
   23238,  1544,   -11,  1535,  1544,  1806,  2451, -2616,   601, -2616,
   -2616, -2616, 33866, 42870, -2616,  1004, -2616, -2616,  1520,  1520,
   15260,  1637,  1520,  1717,  1719,   688,   688,  1139,  1720, -2616,
   -2616,  1574, -2616, -2616, -2616, 15260,  9705,  1342, -2616,  1355,
   -2616, -2616, -2616, -2616,  1511, -2616, -2616,  1766, -2616, -2616,
   -2616, -2616, 23238,  1557, 51000,  1569,   -39, 25638, -2616,  1732,
   51000, -2616, -2616,  1522,  1711,  1532, -2616,  1614,  1276, 15260,
    1751, -2616,   269,  1536,  1884,   403,  1843, 51000, -2616,   293,
     323, -2616,   151,  1888,   212,  1892,   212, 35205, 35205, 35205,
     773, -2616, -2616,   867, -2616, -2616,   775, -2616,   552, -2616,
   -2616, -2616,  1629,   711,  1276,  2759, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616,   158,   721,  1276,  1630, -2616,  1631, -2616,
    1632,   730,  1276, -2616, -2616,   429,   429,   429, 15765, -2616,
    1778,  1792,  1577, 33866, 33866, 33866,  1576, -2616,   156, -2616,
   51000, -2616, -2616, -2616,  1596, 42870,  2041,  1583,   780, -2616,
    1736,   736, -2616, 51000, 42870, 42870, 42870,  1620, 42870, -2616,
   -2616, -2616,  1584,  1585, -2616, 39525,   -23,  1801,  1803,  1275,
    2053, -2616,   803, 14250,  1940, 42870,  1598, -2616, -2616, -2616,
   -2616,  1806, -2616, -2616,  -104,  -104, -2616, 51000, -2616,  1599,
   -2616,  1604, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616, -2616, -2616, 51000, -2616, -2616, 35205, -2616, 36645, -2616,
   -2616, -2616, -2616,   867, -2616,   867,  1817, 51000, 31039,   867,
     867, -2616, -2616, -2616, -2616, 33616, 15260, -2616,  1952, 48615,
   -2616,  6882, -2616, -2616, -2616, 15260, -2616, -2616, 15260, -2616,
   29002, 15260,  1929, -2616,  2093,  2093,  6484, 48615, 19805, 19805,
   19805, 19805, 19805,   183,  1133, 19805, 19805, 19805, 19805, 19805,
   19805, 19805, 19805, 19805, 20801,   604, -2616, -2616, 15260, 15260,
    1939,  1929, 15260, -2616, 48615,  1610, -2616,  1615,  1622, 15260,
   -2616, 48615,  1626,  8695, 33695, -2616,   548,  7046, -2616, 33866,
   -2616,  2451, 15260,   938,  1044, 15260,  1634, 15260,  1943, -2616,
   -2616,  1612, -2616, -2616, 48615, 15260,  1636,  3177, 19805, 19805,
    3538, -2616,  4678, 15260,  8695, -2616,  1625, 14755, -2616,  1823,
    1731,  1731,  1731,  1731, -2616, -2616, 42870, 42870, 42870, 24198,
    1969, 22275, 49560, 49560,  1638, -2616,   896, -2616, 49560, 50040,
   -2616,  1657, -2616,   548, 15260,  1963,   429,  1500,  1963,  1644,
   -2616, -2616,  1646,   465, -2616, -2616, -2616,  1651, -2616,  1520,
   -2616, -2616, -2616,  1863, -2616, -2616, -2616, 42870, -2616, -2616,
   15260,  1804, -2616, -2616, -2616, -2616,  1723, -2616, -2616,   809,
    2067,  1804,   835, -2616,   548, 27559,  1557, 15260, 42870,  7174,
    2013, -2616, 51000, 51000, 51000, -2616, 51000,  1667,  1671,   884,
    1673,   982, -2616,  1915,   884,  1998,   181,  1275,   316,  3516,
     443, -2616, -2616, -2616,  1747, 42870, -2616, 51000, -2616, -2616,
   -2616, -2616, -2616, 35685, -2616, -2616, -2616, 35205, 28521, 35205,
   42870, 42870, 42870, 42870, 42870, 42870, 42870, 42870, 42870, 42870,
    1677,  1679,  1680,  1625, -2616, -2616, -2616, -2616, -2616, -2616,
     445, -2616, -2616,   156,  1683,  1004, 38565,  1472,  1706,   617,
   50520,   836,  2759,  2138,  1684,   354,   180, -2616, -2616,   574,
   38565, -2616, -2616, -2616,  2103, -2616, -2616,  1004, -2616,  1004,
   33866, 51000,  1744, -2616,  1324,  1688, -2616, -2616,  1324, 48615,
   -2616, -2616,   212, -2616, -2616,   860, -2616, -2616, -2616, 51000,
    1685, -2616,  1685, -2616, -2616, 15260, 33866, -2616,  1689, -2616,
   33866, 29490, -2616, 33866,  1939, -2616,  2093,  1505,  1505,  1505,
     827,  2019,   167,  1694,  1505,  1505,  1505,   333,   333,   132,
     132,   132,  2093,   604, 33866, 33866, -2616, -2616,  1695, -2616,
   -2616, -2616, -2616,  1697, -2616,  6150, -2616,  1691,  1698, 51000,
   -2616, -2616,   303, 15260, 15260,  3880, -2616, 34250, 15260, 48615,
     893,  3880,   237, 15260,  1269,  1669, 15260, 15260,  4702, 29519,
    1701, 15260, 29555, 28039, -2616, 42870, 42870, 42870, 42870, -2616,
   -2616, -2616, 49560, 50040,  1700, 21795, 49560,   896,  1702, 42870,
   -2616,  1795,  1705,  1795, 23238,  1984,  1922, -2616, 23238,  1922,
     909,  1922,  1985,  1795, 26599, -2616,  1795,  1721,  1925, -2616,
     590, 33866,  2165,  2039,  1726, -2616,  2039,   867, -2616, -2616,
   -2616, 29002, -2616, -2616, -2616, 33866, 11220, -2616,  1004,   548,
    1328, 51000,   -30, -2616,  1741, 51000, -2616,  1804, 33866, -2616,
   -2616, 51000,  1730, -2616,  1734,   884, -2616, 51000,  1763, -2616,
     374,  2026,    65, -2616, 15260, -2616,  2119,  2200,  1915,  1742,
   51000, 42870, 19805, -2616,   505,   216, -2616,  2015, 42870,  1763,
    2159, -2616, -2616, -2616,   982, -2616,  2054,  1966, -2616,   275,
   -2616, 15260,   982,  1970,   314, 51000, -2616, -2616,  2733, -2616,
   48615,   212,   212, -2616, -2616,  1745,  1748,  1752,  1753,  1757,
    1758,  1760,  1764,  1765,  1769,  1772,  1783,  1785, -2616,  1787,
    1788,  1790,  1791,  1793,  1794,  1797,  1799,   914,  1800, -2616,
    1802,  1651,  1805,  1807,  1809,  1820, 55320,  1821,  1822,  1825,
    1827,  1828,  1829,   359,   363, -2616, -2616, -2616, -2616, -2616,
   -2616,   806,  1830, -2616,  1776, -2616, -2616,  1850, -2616,  1854,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,   429,   967,
     143, 51000,  1620,  1774,  2234,   486,  2018,  1808,  1472, -2616,
     811, 38565,  1620, -2616,  2193,   215,  1803, -2616,   199,  1844,
   -2616,  2017, 51000,  1834, -2616, -2616, -2616, -2616, 36645,  1685,
   33866, -2616, -2616, -2616, 19805,  2153,  1837, 48615, -2616, -2616,
   15260, -2616, -2616,  3880,  3880, 34250,   908, -2616,  3880, 15260,
   15260,  3880,  3880, 15260, -2616, -2616, 29584, -2616, 56250, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, 36165, 49560,  1838,
   42390, -2616, -2616, 42870, -2616,   896, 23238, -2616, -2616,  1740,
   -2616, 23238,  2117, -2616, 23238, -2616, 42870,  1846, -2616, 42870,
   -2616, 10715, 15260,  1883,   867,  1883, -2616,  1847,  1845, -2616,
     -39, -2616, -2616,  2258, 24678,  2217, 15260, -2616, -2616,   884,
   -2616,  2016,  1763,  1856, -2616, -2616, -2616, -2616, -2616, -2616,
   29682, -2616,    53, 15260, -2616,  1173,   827, -2616, -2616, -2616,
   -2616,  1763,   780, -2616, 42870,  2315,  2207, -2616, -2616, 33866,
   -2616, -2616,  1806,  1806, -2616, -2616,  2285, -2616, -2616, -2616,
   -2616,   806,   584, 28521, 42870, 42870,  1864, -2616, -2616,   445,
    2241,   912, -2616,   574,  1004, 42870,  2214, 38565,  2330, 42870,
    1620,  1869, -2616, -2616,  1047,  1047, -2616,  2014, -2616,  2020,
     226, -2616, 42870, -2616, -2616, 24678, -2616,  2237, 19805, 48615,
     917, -2616, -2616,  3880,  3880,  3880, -2616,  2068, -2616, -2616,
     934,  2335, -2616, 42870,   -40,   -17,  1877,  1878, -2616, -2616,
    1882, -2616, 15260,  1886, -2616, -2616, 23238,  1740,   944, -2616,
   48615, 42870,   954, 48615, -2616,  1887,  -102,  1889, -2616,  8190,
    1890, -2616, -2616, -2616, -2616, -2616, -2616, 33866, 33866, 51000,
    2060, -2616,  2060, -2616, 11220,  1944, 42870, 15260,  2314,    63,
   -2616,   955,     2, 33866, 42870, -2616, 35205, -2616,   884,   -79,
    1895, 15260, 29912,  2118, -2616, -2616,  2148, -2616,  2208, -2616,
   51000,  1958,   618,  1972, -2616, -2616, -2616, -2616,   967,   867,
    1472,  1803,  1844,  1902, 42870,  1004,   354, -2616,   574, -2616,
   -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616, -2616,
   -2616,  2334,  2115,  2337,  1744,   961,  2237,   972, -2616,  2351,
    1625,  1657, 36165,  1910, -2616,  1912, -2616, -2616, -2616, -2616,
   -2616, 51000,   705, -2616, 33866, 42870, -2616, -2616, -2616, 42870,
    2285,   974, -2616, 15260,  1914, 15260, -2616, 17785,  1908, -2616,
    2377, 15260,  1976,  1976,  1004, -2616, 30016, 51000, 51000, 51000,
    1544, 24678, -2616,  2042,   780,   884,   995, -2616,  1931, -2616,
   -2616, -2616, -2616,  2759, -2616, 30078,  2154,   134,  2136,  1895,
   -2616, 15260, -2616,  1997, -2616, -2616, -2616,  2391, -2616, -2616,
   38565,  1933,  1844,  1620,  1803,  2146, -2616,  2147,  1946,  1472,
   -2616, 15260,    22, -2616, -2616, 42870, -2616,  1015,  1938,  1947,
   -2616, -2616, -2616,  1949, 17785,  1951, -2616, 51000,  1953, 33866,
    2083, -2616, -2616, -2616,  2314, -2616, -2616,   300,   300, -2616,
   -2616, 27559,  2148, -2616, 35205, 28521,  1768,   -79,  2251, -2616,
   -2616, -2616, -2616,   146,  2168, -2616,  2172, -2616, 33866, -2616,
    1004, 38565, -2616, -2616, -2616, -2616, -2616, 24678,  1544,  1462,
   18290, 18290,  1960,  1026, -2616,  2452,  2121, -2616, -2616,  1962,
   -2616, -2616, -2616, 42390, 51000,  1520,  1520,  1544,  2136, -2616,
   -2616, -2616, -2616, -2616,   133,   133,  2343, -2616,  2030, -2616,
    1844,  1049, -2616, 19300,  2113,   253, 33005, -2616, -2616, -2616,
   -2616, -2616,  1971,  1973, -2616, -2616, -2616,   300, -2616, -2616,
   -2616, -2616, -2616,  2450, -2616,   179, -2616, -2616, -2616,  1472,
    2440, -2616, -2616, -2616, -2616, -2616, -2616,  2468,  1520,   884,
   -2616, -2616, -2616,  1544, 18795,  1978, -2616, -2616, -2616, -2616
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -2616, -2616, -2616,  1849,    84, -2616, -2616,    85, -2407, -1437,
      90,    92,   523, -2616,    93, -2616, -2616,   264, -2616,   962,
   -2616,   254,  -580,   594, -2616,    97,    29,  1451,   294, -2616,
       8, -1832, -2462,  -447, -2616,  -552, -2616,  -200, -2616,  -501,
   -2616,  -718,  -509,  -540, -2447,  -998, -2616,  1456,  -244, -2616,
     620, -2616, -2176, -2616, -2616,   605, -2616, -1002, -2616, -1791,
     227,  -488, -2196, -2187, -1850,  -661,   296,  -493,   276, -1796,
    -999, -2616,   632, -2616,  -477, -2616,  -642, -1549,   101,  -653,
   -1044,  -846, -1055, -2616,    23,   102,  1066,   113,  -990,   114,
   -2177,   116,   663, -2616,   864, -2616,   731,   120,   121, -2616,
     694,   123, -2616, -2616,     9, -2616,  -356, -2616, -2616, -2221,
   -2616, -2616,  -429, -2616,  -483,  -480, -2616, -2616,    31,  -847,
    1223, -2616,   124, -2616, -2616,  1234,  -719, -2616,  1284,    11,
   -2575,    14,   256,   125,    86,   126, -2616,   920,   127,  1084,
   -2616, -2616, -2616,    32,   128, -2616, -2616, -2616, -2616,  -436,
     577, -2310, -2616,   522, -2616, -2616, -2616, -2616,   -59,   280,
   -2616, -2616, -2616,    10,   960,   -35,   -16,   -10,    28,    61,
    1538,  1563, -2616, -1322,   683, -2616, -2616, -1848,  -630,   -51,
   -2616,   715, -1427, -1790,  -506,  1055,  1519,  1523,  -341,  -360,
   -2616,  -479, -2616, -1512, -2616, -2616,   710,  1091, -1313, -1307,
   -2616,   399, -2616,  -416,  -348, -2616, -2616, -2616, -2616, -2616,
     147,  -252,  -498,  1073, -2616,  1529, -2616, -2616, -2616, -2616,
   -1758, -1296, -2616,   702, -2046,   425, -2001, -1867,   175,   157,
   -1179,  -218,    18,   431,  -311, -2616, -2616,  -309, -1777, -2441,
    -319,  -316, -2616, -2616, -2616,  -512, -1178,  -727, -2616, -2616,
     308,  1909, -2616, -2616, -2616,  2066,  2236, -2616, -2616,  2349,
    3285, -2616,  -568,  3310,  1602,  -701,  1239, -1049,  1243, -1062,
   -1068,  -773,  1246,  1249, -1304,  3871, -1638,  -875,     6, -2616,
   -1761, -1743, -2616, -2616, -2616,   -78, -2616,  -391, -2616,  -385,
   -2616, -2616, -2616,  -426, -2175, -2616,  1179,   865, -2616, -2616,
   -2616, -1309, -2616,  4671,   774, -2616, -1704,  -940,  -620,  -907,
    -795, -1053, -1217, -2616, -2616, -2616, -2616, -2616, -2616, -1696,
   -1779,  -454,   824, -2616, -2616,   940, -2616, -2616, -2616,  -629,
    1042,  -591,  -902,   833, -2616,   173,  2010, -1387, -2616,   798,
   -1984, -2616, -2616,   462, -2616,  2413,  -478,  -992,    71, -1064,
      27, -2616,  3528,    -1,  1840,  2393, -2181, -2616, -2616,  -496,
   -2273,  -962, -2616,  -659, -2616,   129,   130,  1100,    56, -2616,
   -2616, -2616, -2616,   182,   420, -2616,  -305, -1943,   -50, -2616,
   -2514, -2615, -2616, -2616,  -369, -2503, -1771,   131,    -6, -2616,
   -2616, -2616,  -528, -2616, -2180
};

/* 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 -1845
static const yytype_int16 yytable[] =
{
     488,   629,  1006,  1070,  1204,   676,  1211,  1365,    47,    57,
      71,    61,   484,  1249,    62,  1546,  1035,   870,  1451,   584,
     584,  1313,  1308,   644,  1545,   753,   994,  1604,    76,    46,
    1212,  1829,    67,   485,  1832,  1801,  1208,  2158,  1702,  2165,
     612,  1510,  2170,   771,    76,  1255,  2574,   564,  1371,   615,
    1521,  1293,  2143,  1453,  1296,  1517,    81,  2551,  2553,  2214,
     646,   779,   773,  1557,  1419,   864,   647,  2152,  2116,  2054,
    2055,  1608,  1740,  1741,  2075,   638,  1069,  1427,  1075,  2573,
    1079,  1324,   513,  1550,    40,    41,   543,  2250,  2251,  2252,
      42,  2207,    43,    44,   588,  2397,   627,    45,  2582,  2193,
    2262,    48,    49,  2586,  2143,   626,   626,   586,   658,  2356,
    -851,   492,  -859,    51,    52, -1233,    53,  2103,  2104,  2152,
      54,    55,  -576,    56,    60,    63,    64,    66,    68,    79,
      80,    83,  1235,  1236,  1814,   871,  1956,  1028,  2917,  2746,
   -1208,  1434,  2403,  2057, -1676,  1031,   887,  2058,  2415, -1685,
    -856,  1582,  1481,  -859,  -856, -1693,  1256,  1299,   582,   654,
   -1233,   582,   887,  1247,  1850,  2732,   988,  2271, -1230, -1230,
    -579,  1256,  1853, -1669, -1234,  2742,  2215, -1670,  1256, -1671,
    1754, -1816, -1816,  1754,  2688, -1817, -1817, -1818, -1818, -1672,
    1775, -1673,  1966,  3072, -1676, -1669, -1685, -1819, -1819, -1820,
   -1820, -1691, -1823, -1823, -1832, -1832, -1670, -1671,   619, -1838,
   -1838,  1530, -1693, -1672,  1533,  1534,  2036,  -576,  2792, -1695,
   -1840, -1840, -1842, -1842, -1673,  -818,  1513, -1843, -1843, -1081,
     649,  2310,  2312,   995,  1255,  1513, -1081,  1548,  1431,  1302,
     582, -1234,  2830,  -831,   887, -1691,  2242,  1229,  2443, -1231,
   -1231,   689,  2875,  1791, -1695,  -846,   582,  2673,   579,  2727,
    1792,  2844,  2281,     3,     4,  -579, -1101,  -534,  3044,  2886,
     582,  1952,  1256, -1101,  1678,  2922,  2904,  2949,  2722,  1302,
    1677,  2413,   641,  2703,   887,   641,  1555,  2871,  2216,  2583,
    1380,  1230,  2888,  1675,  1381,  2872,  3091,  1556,  2485,  2605,
     886,  2346,   597,  2057,  2988,  2919,  3000,  2058,  2424,    87,
    2059,  2060,  2061,  1024,  1380,  2331,  1776,  2929,   650,  1572,
    -280,  2747,  1389,   887,    84,  -280,  1361,  1235,  1236,  1529,
    1601,  2210,  1777,  2857,  1463,  2699,  2748,  1778,  1502,  1826,
     870,  2889,   578,  1380,  2057,  1798,  2322,   870,  2058,  1018,
    2901,  3020,  1432,  1247,  1391,  2721,  2324,  2738,  2645,  1250,
    1372,  -792,  2649,  1633,  2744,  1208,  2184,  1635,   887,    85,
    2486,  1856,   887,  2455,  1779,  1389,  2930,  3012,  1391,  2432,
    3021,  1251,  1380,  2396,   581,  2347,  1381,  1026,  1316,  1429,
     639,  1573,  2415,   622,  2741,  2403,  2152,  -703,  2152,   580,
     996,  2185,   997,  3073,  2948,   598,  2207,  1391,  2207,  -576,
      26,  1717,   989,  2745,  1389,  2456,  1429,  1494,  3082,  3067,
    2326,  2327,  2328,  2329,  2330,  1664,  1827,  2334,  2335,  2336,
    2337,  2338,  2339,  2340,  2341,  2342,  2343,  1505,  1574,  3001,
    1464,  2923,  1046, -1813, -1813,  1257,  1391,    31,  2842,  2606,
    2584,   722,  1019,  2487,  2887,  2332,  3092,  -579,   640,   630,
    1257,   870,   870,  1702,  2873,  2333,  1231,  1257,  2211,  2674,
    3034,    88,  -576,  1433,  1711,  3078,  1520,  2890,  1857,    89,
    2374,  2375,  3074,   990,  2137,  2138,  2825,  1799,    33,  2062,
     632,  1560,  1559,  2700,  2685,  1654,   881,  2217,  -792,  2218,
    2591,  1881,    34,   666,  2678,  2835,  1939,  3014,  2689,  3075,
     629,  2063,  2160,  2599,  3051,    90,  3002,  1953,  2749,  1962,
    -579,  1780,  2168,  1850,  3023,  2635,    35,  2219,  2273,  1492,
    2173,   767,  1546,  3040,  1665,   620,   641,  1493,  2945,   869,
      36,  1755,  2551,  2553,  2118,  2603,  3013,   651,   690,  2258,
    2259,   631,  2831,  2006,  2008,  1233,  1204,  2851,   493,  2005,
     662,  1257,    91,  1593,   663,   648,  1549,  2686,  3083,  1679,
    1250,  2004,    76,  1232,  1446,  2243,   866,   872,  2196,   584,
     874,  2064,   686,  -576,  2728,  3045, -1081,   875,  1522,  1507,
    1839,   672,  1251,   488,   488,  1036,  1338,   646,   876,  1258,
    2781,  1939,   985,   647,  -851,  2785,  1252,  2262,  2787, -1233,
    1793,  1250,   776,   684,  1292,  2057,   488,  1361,  2679,  2058,
    1940,  1295,  -576, -1101,  -576,  2697,  2761,  2073,  2429,  2947,
    1812,  -579,   662,  1251, -1208,  2000,   663,  2772, -1676,    47,
      57,    71,    61, -1685,  -856,    62,  2143,  1254,  2026, -1693,
    2143,   999,  1375,  2027, -1233,  1125,   488,  1205,  1639,    76,
      46,  2152,   661,    67,  1886,  2152,   873, -1669, -1234,  1041,
    -579, -1670,  -579, -1671,  2677,   687,   642,  1605,  1606,  2953,
    1535,   998,  2954, -1672,  1008, -1673,  1916,    81, -1676, -1669,
   -1685,   691,  2171,  2430,   626, -1691,  1919,   887,  2698,  1922,
   -1670, -1671,  1663,  1508,  2028,  1584, -1693, -1672,  1354,  2774,
    1662,   688,  1361, -1695,  2775,    40,    41,  1669, -1673,  1237,
    2726,    42,  1887,    43,    44,  1306,  1307,  2667,    45,  1751,
    1715,   753,    48,    49,   767, -1234,  2092,  1241,  3018, -1691,
    2896,  1702,  1663,  1208,    51,    52,  1613,    53, -1695,  -846,
    1425,    54,    55,  1738,    56,    60,    63,    64,    66,    68,
      79,    80,    83,  2573,  1815,  1306,  1307,  1466,   668,  1204,
     669,   488,  1372,   870,  1412,  2731,  1941,  1540,  2065,  2066,
    2067,  1523,  2068,  2069,  2070,  2071,  2072,  2073,  1245,  1246,
    1663,  2218,  2020,  2019,   495,   771,  1625,  2361,  1663,  1982,
    1208,  1541,  1629,   692,  2712,  2713,  -280,  -280,  2385,  2386,
    2387,  2388,  2294,  1467,  2551,  2553,  1626,  1631,  2298,  2498,
    1572,   864,  1536,   693,  2741,  2070,  2071,  2072,  2073,  1522,
    1537,  2096,  1711,  1711,  2696,   886,  1466,  1711,  2057,  1332,
      26,    36,  2058,  1520,  1886,  2059,  2060,  2061,  2007,  2009,
    2010,  1043,  2828,   777,  1024,   496,  2161,  1044,  3093,  1365,
    1546,  1908,   869,  1409,  1410,  1411,  1412,  1315,  1742,   869,
    1125,   767,   582,  1468,  1315,  1915,  2771,    31,  3080,  1513,
    1711,  1711,  1467,  1043,  1989,  2253,   877,   488,  2143,  1044,
    1514,  2644,  2735,  2143,  2152,  1757,  2143,  2370,  1513,    76,
    1522,  2655,  2204,  2152,  2658,  2011,  1540,  2012,  2152,  1516,
    2014,  2152,   629,  2818,  1522,  2108,   488,  1300,    33,  3098,
    1301,  1878,  1469,   879,  1204,  1935,  1936,  1937,  1026,  2168,
    1541,  2152,  1763,  2244,  1961,  2705,   488,   488,   488,  1574,
     488,   488,  2109,  2710,   594,   880,   886,  1544,  1914,  2057,
     611,  1444,  1374,  2058,  1445,  1522,  2059,  2060,  2061,  1764,
      72,  1377,  2739,  1045,   488,  1522,  2757,  1925,  1653,  2194,
      36,  1654,  1932,  2363,  1522,  1426,    72,  1027,  2282,  1250,
    1986,  2286,  1470,   869,   869,   637,  1437,   882,  1315,  1315,
      72,  1469,  2405,  2925,  2818,  1045,   628,   670,   881,   671,
    1890,  1251,  1380,  2459,  1455,  1456,  1381,  1462,  1250,   987,
     647,   647,  2152,   647,  2465,  1252,   488,   993,  1551,  1239,
     488,   488,  1523,  1272,  1273,    72,  1002,   499,  2143,   500,
    1251,   488,  1554,  1043,  1389,  1976,   645,  1977,  2466,  1044,
    2238,  1248,  1917,  2152,  1254,   662,  2063,  1920,   495,   663,
     767,  1470,   886,  2239,   503,  2057,  1041,   662,  1009,  2058,
    2110,  1428,  2059,  2060,  2061,  2111,  1391,  2130,  2406,  2131,
     679,  -382,  1765,  2241,  1290,  1125,  2859,  1766,  2843,  2364,
     626,  2406,  1767,  2245,  1520,  1583,  1125,   662,  2460, -1208,
    1547,   663,  2249,  1523,  2068,  2069,  2070,  2071,  2072,  2073,
    1010,  2086,  2407,  1998,  1016,    92,   680,  1523,   491,   496,
    1125,   870,  2943,  1012,   542,  2407,  2064,  1046,  2408,  1583,
    2876,  2771,  1702,  1655,   870,   596,  1656,  2860,  2409,   609,
    1013,  2651,  1024,  1276,  1277,  1949,  2861,  1025,  1950,  2152,
    2106,  2409,  2270,  2989,  2032,  1045,  1017,  1990,  1523,  1046,
    1656,  1022,  2616,  1365,  2461,  1520,  2462,  2063,  1523,  2132,
    2818,  2133,  2410,  1960,  2497,  2862,  1037,  1523,  1047,  1520,
    1043,  2304,  1048,  1038,  2489,  2226,  1044,  2228,  2152,  2229,
      26,  2231,  2156,  1711,  1711,  1711,  1711,  1711,  1042,   682,
    1711,  1711,  1711,  1711,  1711,  1711,  1711,  1711,  1711,  1711,
    1073,  2453,  1049,  2452,  1048,  2454,  1026,  2112,  2025,  1205,
    1520,   767,  2029,  1039,  2030,  1239,  2569,    31,  2113,  2488,
    1520,  2496,  1578,  1579,  1768,  1580,  1055,  2064,  1581,  1520,
    2650,   488,  2653,  1248,  1074,  1769,  2863,   767,   767,  3089,
    1054,  3052,  2469,  1711,  1711,  3068,  3069,  1996,  2864,  2411,
    1997,  2015,   767,  1043,  2016,  1027,  2818,  1072,    33,  1044,
    3070,  1076,  2411,  2063,   983,   984,  2085,   986,  2087,  2088,
    1050,  1209,    34,  2232,  2152,  2236,  2233,   886,  2237,  1210,
    2057,   499,  1045,   500,  2058,  2439,  1213,  2059,  2060,  2061,
    2472, -1811, -1811,  2296,  2297,   869,    35,  2267,  3096,  1046,
   -1812, -1812,  1050,  2288,  2619,   502,  1654,  1215,   503,  2440,
      36,  1205,  2441,  2065,  2066,  2067,  3097,  2068,  2069,  2070,
    2071,  2072,  2073,  1021,   488,  1023,   488,  1217,    76,  1218,
     488,   488,   866,  2064,  1226,  2444,  2578,  1660,  2445,  1950,
     488,  1684,   488,   488,   488,   488,   488,   488,   488,   677,
    1077, -1814, -1814,  1228,  1048,    76,  1657,  1639,  1237,  1659,
    2597, -1815, -1815,  2598,  1865,  1045,  1627,   488,  1628,   488,
   -1821, -1821,  1233,    26,   767,   488,   488,   488,   488,   488,
     488,   488,  1205,  1661,  1078,  1240,   488,   488,  1043,  1241,
    2760,   488,  2547,  2617,  1044,   488,  1656,  1243,   488,   488,
     488,   488,   488,   488,   488,   488,   488,  1261,  2762,   488,
      31,  1656,  2850,  1244,  2168,  1950,   488,  2878,  -625,  1125,
    1656,   678,  1205,  -625,  2065,  2066,  2067,  1801,  2068,  2069,
    2070,  2071,  2072,  2073,  2881,  1816,  1046,  2882,  1260,  2865,
    1263,   488,  2866,  2497,  2898,  2833,  1291,  2899,  1294,  2680,
    2476,    33,  1050,    72,  2902,  2920,  1297,  2899,  2921,   488,
    1327,  2959,  1298,  1890,  2921,    34,  1317,  1663,  1328,  2352,
     488,   488,  2960,  -822,  2972,  1656,   999,  2899, -1822, -1822,
    -588,  1407,  1408,  1409,  1410,  1411,  1412,  1877,  2063,    35,
     870,  1048,  -625,  2477,  -588,  2993,  1851,  1852,  2994,  -588,
    1045, -1824, -1824,    36,    72,   628,   767,  1868,  1330,  2478,
     679,  -829,  1205,   886,  1205,  3024,  2057,  2302,  3025,  1046,
    2058,  1049,  1336, -1845, -1845, -1845,  3061,  2318,  1337,  2899,
    2065,  2066,  2067,  1338,  2068,  2069,  2070,  2071,  2072,  2073,
    1339,  -625,  2877,  1266,  1267,  2325,   680,  1866,  -588,  3079,
   -1825, -1825,  2921,  1125, -1826, -1826,   488,   488,  2064,   488,
    3035,  3036,  2420, -1827, -1827,  1663, -1828, -1828,  -588,  1340,
    1923,    36,  2348,   645,  1048,  1882,  1342,  1205,  1908,  2353,
    2554,  -703,   681,  2596,  -704,  1891,  -819,  1894,  1125,  1050,
    1905,    72, -1829, -1829,   488,  -820,  1909,  1711,  1911,  -823,
    1967, -1830, -1830,  1343,  1924, -1831, -1831,  2479,  -821,   767,
    1918,  1344,  1272,  1273,  2480,  1921,    26,  -588,  1346,  1926,
    1927,  1928,  1929,  2568,  1933,  1934,  -588,  2575,  2670,   682,
     639,  1043,  1347,   869, -1833, -1833,  1348,  1044,  1315,  1349,
    3088,  1350,  2024,  2708,  -626,  1688,   869,  1351,  1125,  -626,
     767,  1315,  1689,    31,  1046,  1690,  1691,  1692,  1352,   488,
   -1834, -1834, -1835, -1835,   488, -1836, -1836, -1837, -1837, -1839,
   -1839,  1353,  1050,  1354,   629, -1841, -1841,   886, -1844, -1844,
    2057,  1562,  1563,  1358,  2058,  2848,  2168,  2059,  2060,  2061,
    1370,  -677,  -677,  1373,    33,  1274,  1275,    26,   640,  -681,
    -681,   488,   488,   488,  2620,  1930,   488,  1420,    34,  1048,
    1276,  1277,  -680,  -680,   488,   488,   488,   488,  -626,  1422,
    1440,  1442,  1276,  1277,   488,   629,  2548,  1417,   488,  1711,
    1379,   488,    35,  1380,    31,  1423,  1447,  1381,  1438,  1931,
   -1845, -1845, -1845,  1045,  1448,  1452,  1867,  1454,  1025,   488,
     488,  2304,  1488,  1027,   488,  2065,  2066,  2067,  1490,  2068,
    2069,  2070,  2071,  2072,  2073,  1389,  -588,  -626,   488,  1498,
    1518,   488,  1390,   488,  1520,    33,   641,  1519,  1525,  1526,
    1531,  2885,  2717,  2718,  1538,  1527,  1539,  2595,  1543,    34,
    1553,  1208,  1558,   488,  2064,  1566,  1565,  1391,  1570,  2885,
    1575,  1576,  1583,  1586,   488,  1589,  1056,  1050,  1590,  1249,
    1663,  1591,  1594,    35,  1600,   887,  2150,  1607,  1609,  1610,
    1616,  1617,  1620,  1621,   488,  1057,  1630,    36,  1622,  1623,
     662,    72,   629,  1012,   663,  1660,  2405,   485,  1652,   488,
     488,  1665,  1670,  1380,  1730,  1732,   486,  1737,  1734,  1333,
    1760,   514,  1735,    76,  1657,   514,   488,  1659,  1736,  1365,
     585,   585,   587,   514,   595,  1753,  1771,   595,  2150,  1341,
     595,   617,  1774,   488,   514,   514,  1058,  2547,  1772,  1795,
    1796,  1661,  1810,  1711,  1823,  1817,  1824,  1825,  2063,   485,
     640,  1205,  1205,  1205,  1627,  1830,  1840,  1046,  1392,  1842,
    1841,  1845,  2235,  2969,  1843,   595,  1844,  1363,  1861,  1864,
    1883,  1862,  2406,  1879,  1393,  1884,   642,  1885,   641,  1394,
    1951,  1947,  1963,  1964,  1955,  1965,  2167,   617,   514,   617,
     617,   617,  1125,  1979,  1983,  1984,  1987,  1985,  1988,  1991,
    1992,  1546,  1993,  1994,  1995,  2002,  2407,  2261,  2003,  2022,
    2034,  2013,  1048,  2033,  2040,  2045,  1397,  2042,  2064,  2043,
    2107,  2044,  2408,  2046,  2047,  2082,  2049,  1059,  2050,   767,
    2128,  2102,  2409,  2053,  2694,  2076,  2114,   488,  2077,  2083,
     645,   645,  1049,   645,  2469,  2090,  2100,  2123,  2716,  2124,
    2470, -1845, -1845, -1845,  2126,  2068,  2069,  2070,  2071,  2072,
    2073,  2127,  2154,  2471,  2163,  -682,  2410,  -683,  2174,  2178,
    1205,  1400,   869,  2175,  2177,  2180,  2183,  1315,  1060,  2190,
    2197,  3019,  2307,  2200,  2308,  2195,  1061,  2782,  2313,  2314,
     488,  2198,  2472,   767,  2473,  2202,  2203,  2275,  1062,   488,
    2225,  2836,   488,  2206,  2227,   488,  2240,  2246,  2247,  2248,
    1050,   767,   488,   488,   488,   488,   488,  2254,   629,   488,
     488,   488,   488,   488,   488,   488,   488,   488,   488,  1063,
     870,  2255,   488,   488,  2257,  2380,   488,  2256,   767,  2265,
    2269,  2276,  2266,   488,  2279,   767,  2283,   488,  2280,   629,
    2284,  2287,  2291,  2411,  2309,  2317,   488,  2300,  2293,   488,
    2079,   488,  2301,  1402,  2057,  2078,   629,  1640,   767,   488,
    2349,  2369,   488,   488,  2368,  2350,  1065,   488,   488,  2474,
    2383,   488,  2351,  1693,  1694,  1695,  2354,  1696,  1697,  1698,
    1699,  1700,  1701,   488,  2366,   488,  2372,  2135,  1066,   765,
    2394,  2404,  2418,  2422,  2427,  2150,  2428,  2150,   488,  2547,
    2431,  2433,  1641,  2442,  2436,  2065,  2066,  2067,  1068,  2068,
    2069,  2070,  2071,  2072,  2073,  2451,   485,  2928,   485,  2438,
    2457,  2458,  2464,  2484,   488,  2500,  2580,  2565,  1642,  2566,
    2567,  2783,  2571,  2581,  2588,  2592,  2594,  2475,  1950,  2601,
    2604,   488,  2476,  2607,  2610,  2608,  1643,  2609,  2611,  2637,
    1644,  2625,  2638,  2640,  2643,  1403,  2646,  2654, -1845, -1845,
   -1845,  2548,  1407,  1408,  1409,  1410,  1411,  1412,  2647,  2660,
    2659,  2661,  1645,  2662,  2683,  1646,  2664,  1205,  2687,  2676,
    2681,  1205,  2552,  1205,  2682,  2477,  2691,  2550,  2692,  2701,
    1647,  2693,  2704,  2707,  2706,   886, -1230,  2711,  2057, -1811,
    2962,  2478,  2058, -1812, -1813,  2059,  2060,  2061, -1814, -1815,
      72, -1816,  2261,  2992,  2723, -1817, -1818,  2724,  3041,  2449,
   -1819,  2725,  2734, -1820,  2733,  2572,  1578,  1579,  2900,  1580,
    2996,  2900,  1581,  2973, -1821,  2975, -1822,    72, -1824, -1825,
    2736, -1826, -1827,   767, -1828, -1829,  2501,  2589, -1830,  2590,
   -1831, -1833,  2743, -1834,  2752,  2750, -1835,  2737, -1836,   488,
   -1837,  2555,  2556,  2557,  2558,  2559,  2560,  2561,  2562,  2563,
    2564, -1838, -1839, -1840,  2758,  1673, -1841,   582, -1842, -1843,
   -1844, -1231,  1648,  2755,   617,  2928,  2759,  2773,   674,  2786,
    1649,   675,   765,  2809,  2940,  2791,  2816,  2813,  2814,  2479,
    2822,   514,  2824,  2838,  1761,  2826,  2480,   488,   488,  2839,
    2840,   495,   488,   767,  2847,  2849,  2854,   488,  2855,  2858,
     488,   488,  2869,  2883,  2879,   488,  2891,  2892,  2870,   675,
     514,   514,  2893,  1650,  -382,  2895,  2903,  2911,  2905,  2917,
    2914,  1264,  1265,  2907,  2933,  2700,  2937,  2939,   488,  2941,
    2944,  2950,   488,  2955,   515,  2956,  2957,  2961,   515,  2965,
    2150,  2977,  2966,  2974,  2150,  2978,   515,  2980,  2991,  2995,
     585,  2985,   496,  3003,  2998,  3009,  2666,   515,   515,  3010,
     488,   485,  3011,  1264,  1265,   485,  3015,  3016,  3026,   980,
     980,   595,   595,  3033,   595,  3017,   756,  3027,  2669,  3028,
    2671,  3030,  2628,  3043,   617,  3046, -1845,    72,   488,  3048,
    3060,  3062,  3065,   514,  3063,  3044,   488,  1266,  1267,  3045,
    3081,  3086,  3087,   617,  3090,  3094,   497,  3095,  3099,   765,
    1014,   515,  2268,  2548,  2499,   488,  2223,  2503,  1910,  1495,
    2447,   617,  3007,  3077,   767,  2834,  3042,  3049,  3071,  1509,
     653,  2868,   656,  2230,   660,  2205,  3039,  2587,  2468,  1266,
    1267,  3047,  1820,  2504,  2201,  3038,  2031,  2714,  2958,  2162,
     617,   617,   617,   617,  1632,  1624,  2064,  1603,  2579,  1819,
    2552,  2263,  1268,  1269,  1270,  1271,  1272,  1273,  2303,  2756,
    1274,  1275,  2695,  2570,  1430,  2166,   498,  1449,  1860,  1485,
      72,  2968,  1484,  2982,  3066,  2176,  1837,  2426,  3029,  2976,
    2913,  1489,  1264,  1265,  2179,  1859,  2398,  2652,  2636,  2897,
    2393,  2964,  2963,  2665,  1268,  1269,  1270,  1271,  1272,  1273,
    2970,  1674,  1274,  1275,  2971,  1676,  3031,  2812,  1680,  1436,
    2740,  1681,   869,  3032,   499,  3059,   500,  1315,   488,  1800,
    2098,   767,  2121,   758,   488,  2169,  2037,  1946,  2119,  2668,
     982,  2157,   501,   488,   488,  2446,  2990,   488,   502,  2425,
    2815,   503,  3037,  2672,     0,     0,     0,     0,     0,     0,
       0,   488,     0,     0,     0,     0,     0,     0,  1266,  1267,
     488,     0,     0,  2150,     0,   488,  1276,  1277,   488,   756,
       0,     0,  2150,     0,     0,   488,   488,  2150,   765,     0,
    2150,     0,     0,  2811,   485,     0,     0,     0,   488,  1363,
     488,     0,     0,   485,     0,     0,     0,     0,   485,     0,
    2150,   485,     0,     0,     0,     0,     0,   488,  1276,  1277,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   485,     0,  1268,  1269,  1270,  1271,  1272,  1273,     0,
       0,  1274,  1275,     0, -1570,     0,     0,  2552,     0,     0,
    1363,  1329,  2550,  2065,  2066,  2067,     0,  2068,  2069,  2070,
    2071,  2072,  2073,     0,     0,     0,     0,     0,  1761,     0,
       0,     0,     0,     0,  2852,     0,     0,     0,     0,   488,
       0,     0,   488,   767,  2125,     0,     0,     0,     0,  1278,
    1279,  2150,     0,     0,   629,     0,     0,     0,     0,     0,
    2142,  1056,     0,   759,     0,  2837,   488,     0,     0,  1280,
     488,     0,   485,     0,   767,    72,   756,   767,   514,     0,
    1057,     0,  2150,   488,     0,  2845,  2846,  1056,     0,     0,
       0,  1278,  1279,     0,     0,     0,   758,     0,   488, -1570,
    2856,   488,     0,   485,     0,     0,  1057,  1276,  1277,   765,
    1205,     0,  2142,     0,     0,   488,     0,   628,     0,  1379,
       0,   617,  1380,     0,     0,     0,  1381,     0,     0,     0,
       0,  1058,     0,     0,     0,   765,   765,     0,  2946,   514,
     514,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     765, -1570,     0,     0,  1389,  2952,     0,  1058,     0,     0,
       0, -1845,     0,     0,     0, -1570,   488,     0,   617,   617,
   -1570,  1500,   617,  1512,     0, -1570,   761,  2915,  2150,     0,
       0,     0,     0,     0, -1570,   617,  1391,   488, -1570,   488,
       0,   488,     0,     0,   515,   488,     0,   667,  2492,   485,
       0,     0,   617,     0,     0,   488,   617,     0,     0,     0,
       0,     0,     0,     0,  2983,     0,     0,  2150,     0, -1570,
    1278,  1279,  1059,   515,   515,   488,     0,     0,     0,     0,
       0,     0,     0,   758,     0,     0,     0,     0,   485, -1570,
       0,     0,     0,     0,     0,   488,     0,     0,  1059,     0,
       0,     0,     0,     0,     0,   756,  2105,     0,   488,     0,
       0,     0,     0,     0,     0,     0,   759,     0,     0,     0,
       0,     0,   765,  1060,     0,     0,     0,     0,  1205,  2552,
       0,  1061,     0,     0,  2550,     0,     0, -1845, -1570,     0,
       0, -1570,     0,  1062,     0,     0,     0, -1570,     0,  1060,
       0,   488,     0, -1845,   488,   488,   515,  1061, -1845,     0,
    3050,     0,     0,  2150,     0,     0,     0,   992,     0,  1062,
       0,     0,     0,     0,  1063,     0,     0,     0,     0,     0,
       0, -1570,     0,     0,   485,  1379,  1015,   488,  1380,     0,
    1569,     0,  1381,  1363,     0, -1845,     0,     0,   617,     0,
    1063,     0,     0,     0, -1570,     0,     0,  1599,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1389,  1065,     0,     0,  1363,     0,     0, -1845,   488,   761,
       0,     0,     0,  1220,  1223,  1224,  1225,     0,     0,  2392,
    1615,  2395,     0,  1066,     0,     0,     0,  1065,     0,     0,
    1400,     0,  1391,   759,   765,     0,     0,     0,     0,     0,
    2135,     0,   758,  1068,     0,     0,   756,     0,     0,  1066,
       0,   675,   675,     0,   514,   514,     0,   514,   675,     0,
       0,     0,     0,     0,     0,     0,     0, -1570,     0,  1068,
       0,     0,   756,   756,     0, -1570,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   756,     0,     0,
       0,     0, -1570,     0, -1570, -1570,     0,     0,     0,     0,
       0,     0,  2115,     0,     0,  1379,     0,  1704,  1380,     0,
       0,     0,  1381,     0,     0,     0,     0,     0,  1729,     0,
       0,     0, -1845,     0,     0,     0,     0,     0,     0,     0,
       0, -1570,     0, -1845, -1570, -1570, -1570,   765,     0,     0,
    1389,     0,     0,     0,     0,    72,   761, -1845,     0, -1845,
       0,   675,     0,     0, -1845,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    72,     0,    72,
       0,     0,  1391,     0,     0,     0,     0,     0,   765,     0,
       0,     0,   980,   617,     0,     0,     0,     0,     0,     0,
       0, -1845,     0,     0,     0,     0, -1572,     0,     0,     0,
       0,     0,     0,   758,   617,     0,   617,     0,     0,   756,
       0,     0,   759,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0, -1845,     0,     0,     0,     0,   758,
     758,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,     0,
       0,     0,  2373,     0,   758,     0,  1400,     0,     0,     0,
     617,     0,     0,     0,     0,     0,     0,     0,  1871,  1876,
       0,  1369,     0,  1512,   514,     0,     0,     0,     0,     0,
       0,     0,     0, -1845,   514,  1892,   514,  1896,     0,   514,
       0,     0,     0,     0,  2142,   514,     0,   514,  2142, -1845,
       0, -1572,     0,     0, -1845,     0,     0,     0,   675,   514,
       0,     0,     0,   675,   514,     0,     0,     0,   514,   514,
     514,   514,     0,   514,   514,     0,     0,     0,    72,     0,
      72,     0,   515,   515,  1443,   761,     0,     0,     0,     0,
       0, -1845,     0,   617,   617,  1959,     0,     0, -1845,     0,
       0,   756,     0, -1572,     0,     0,     0,     0,     0,     0,
       0,  1975,     0,     0,     0,     0,     0, -1572,     0,     0,
       0,     0, -1572,     0,     0,     0,   758, -1572,     0,     0,
       0,     0,  1496,   759,     0,  1501, -1572,     0,     0,     0,
   -1572,     0,     0,     0,     0,     0,  1400,     0,  1528,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   759,
     759,     0,     0,     0,     0,     0,     0,     0,     0,  1552,
       0, -1572,     0,     0,   759,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0, -1572,     0,     0,     0,     0,     0,     0,     0,     0,
   -1845,     0,     0,     0,   756,     0,     0,  1407,  1408,  1409,
    1410,  1411,  1412,     0,     0,     0,     0,     0,     0,     0,
      72,     0,     0,     0,     0,     0,  1379,     0,     0,  1380,
       0,     0,     0,  1381,  1056,     0,     0,     0, -1845,     0,
   -1572,     0,     0, -1572,     0,   756,   761,     0,   514, -1572,
       0,     0,     0,  1057,     0,   514,     0,   765,   758,     0,
       0,  1389,     0,     0,     0,     0,     0,     0, -1845,     0,
       0,     0,   761,   761,     0,     0,     0,     0,     0,     0,
       0,     0,     0, -1572,     0,     0,  2142,   761,     0,     0,
       0,  2142,  1704,  1391,  2142,     0,   759,     0,     0,     0,
       0,     0,     0,     0,  1058,  2490, -1572,     0,     0,     0,
       0,  1585,     0,  2491,     0,     0,     0,     0,     0,     0,
       0,   765,     0,     0,   617,     0,     0,     0,     0,     0,
    2153,     0,     0,     0,     0,     0,     0,     0,     0,   765,
   -1845,     0,     0,   514,     0,     0,     0,  1407,  1408,  1409,
    1410,  1411,  1412,     0,     0,     0,     0,     0,     0,     0,
       0,   758,  2135,  2376,     0,     0,   765,   515,   515,     0,
     515,  2492,     0,   765,    72,     0,     0,     0,     0,     0,
       0,     0,  2153,     0,  2182,     0,     0,  2187,     0, -1572,
    1871,     0,     0,     0, -1845,  1059,   765, -1572,     0,     0,
       0,     0,   758,     0,     0,     0,     0,  1569,     0,   761,
   -1845,     0,     0,     0, -1572, -1845, -1572, -1572,     0,     0,
       0,     0,     0,     0,     0,     0,  2142,     0,   759,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1363,
       0,     0,     0,     0,     0,     0,  1060,     0,     0,     0,
       0,     0, -1845, -1572,  1061,     0, -1572, -1572, -1572,     0,
       0,     0,     0,     0,     0,     0,  1062,     0,  2493,     0,
    1569,     0,     0,     0,     0,   617,     0,     0,     0,     0,
       0,     0,     0,  1569,   617,   617,   514,     0,   617,     0,
       0,     0,     0,     0,     0,    72,     0,  1063,     0,     0,
       0,     0,   762,     0,     0,   617,     0,  1400,     0,     0,
       0,     0,     0,     0,     0,     0,  1809,  2299,     0,     0,
     765,     0,     0,     0,     0,     0,     0,   764,     0,     0,
       0,   759,     0,   675,     0,     0,     0,  1818,     0,  1821,
       0,   761,     0,     0,  1065,     0,     0,  1569,  1569,     0,
       0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   756,     0,  1066,     0,  1379,     0,
    1704,  1380,   759,     0,     0,  1381,     0,   515,     0,     0,
       0,   765,     0,  1855,     0,     0,  1068,   515,  2494,   515,
       0,  2495,   515,     0,     0,     0,     0,     0,   515, -1845,
     515,     0,     0,  1389,     0,     0,     0,     0,     0,     0,
   -1845,     0,   515,     0,     0,     0,     0,   515,     0,     0,
       0,   515,   515,   515,   515,     0,   515,   515,   756,     0,
       0,     0,     0,     0,     0,  1391, -1586,     0,     0,     0,
       0,     0,     0,     0,   761,     0,   756,     0,     0,     0,
      72,   765,     0,     0,     0,     0,   617,   617,   617,   486,
       0,  2153,  2402,  2402,     0,     0,  1957,  1958,  2402,  2417,
       0,     0,     0,   756,     0,     0,     0,     0,     0,     0,
     756,     0,     0,     0,     0,   761,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1520,     0,   617,     0,     0,
       0, -1845,     0,   756,     0,   762,     0,     0,  1407,  1408,
    1409,  1410,  1411,  1412,     0,  1871,     0,     0,   514,     0,
       0,   758,  1569,  1512,  1569,     0,  1599,     0,     0,     0,
     764, -1586,     0,     0,     0,     0, -1845,     0,     0,     0,
       0,     0,     0,     0,     0,   514,     0,  2502,     0,     0,
       0,     0, -1845,     0,     0,     0,     0, -1845,     0,     0,
     514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   765, -1586,     0,   758,  1975,     0,     0,     0,
     617,     0,     0,     0, -1845,     0,     0, -1586,     0,     0,
    1512,   515, -1586,   758,     0,     0,     0, -1586,  1369,     0,
       0,  1599,     0,     0,     0,     0, -1586,     0,   765,     0,
   -1586,     0,     0,     0,     0,     0,     0,   756,     0,  1569,
     758,     0,     0,     0,     0,     0,     0,   758,     0,     0,
       0,     0,   762,     0,     0,     0,     0,     0,     0,  1400,
       0, -1586,     0,     0,     0,     0,     0,     0,     0,     0,
     758,     0,     0,     0,     0,     0,     0,   764,     0,     0,
       0, -1586,     0,     0,     0,     0,     0,     0,     0,  2612,
       0,     0,     0,     0,     0,     0,     0,     0,   756,   765,
       0,   759,     0,     0,     0,     0,   515,  2134,     0,     0,
       0,     0,     0,  2630,     0,   617,   617,   617,   617,     0,
       0,     0,  2402,  2417,     0,  2402,  2402,     0,     0,   514,
   -1586,     0,     0, -1586,  2153,     0,     0,     0,  2153, -1586,
       0,     0,     0,     0,   514,     0,     0,     0,     0,     0,
       0, -1845,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1704,     0,     0,     0,   759,   980,     0,   756,     0,
       0,  2187,     0, -1586,     0,  1871,     0,     0,     0,     0,
       0,  1512,     0,   759,     0,     0,     0,  1569,     0,     0,
       0,     0,     0,     0,   758,     0, -1586,     0,     0,     0,
     675,   514,     0,     0,     0,     0,     0,     0,   617,     0,
     759,     0,     0,     0,   761,   765,     0,   759,     0,     0,
       0,     0,     0,     0,     0,  2715,     0,     0,     0,     0,
       0,   762,     0,     0,     0,     0,     0,     0,     0,     0,
     759,     0,     0,     0,     0,     0,     0,     0,     0,   515,
       0,   765,  2135, -1845,     0,   758,   764,     0,  2264,     0,
    1407,  1408,  1409,  1410,  1411,  1412,     0,  2272,  2274,     0,
       0,  2278,     0,     0,     0,     0,     0,     0,   761, -1586,
       0,     0,   765,     0,     0,   765,  1314, -1586,  2292,     0,
       0,     0,     0,  1314,     0,     0,   761,     0,     0,   756,
       0,  1569,     0,     0, -1586,     0, -1586, -1586,     0,     0,
       0,  1975,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2754,   761,     0,   758,     0,     0,     0,     0,
     761,     0,     0,     0,     0,   756,     0,     0,     0,     0,
       0,     0,     0, -1586,     0,     0, -1586, -1586, -1586,     0,
       0,     0,     0,   761,     0,     0,     0,     0,  2768,     0,
     963,   963,     0,     0,   759,     0,     0,   486,  2402,     0,
    2779,     0,     0,   514,     0,     0,  2153,     0,     0,     0,
    1376,  2153,     0,     0,  2153,     0,   514,     0,     0,   514,
       0,     0,   762,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2819,  1314,   756,  1314,  1314,     0,
       0,     0,     0,     0,     0,     0,     0,   764,   762,   762,
       0,     0,  1120,  1127,     0,   759,     0,     0,     0,     0,
       0,     0,     0,   762,   514,     0,     0,     0,     0,  2389,
    2390,  2391,     0,   764,   764,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   514,   514,   758,     0,   764,     0,
       0,     0,     0,     0,     0,   617,     0,  1512,     0,   514,
       0,     0,     0,     0,     0,  1314,     0,   761,  1314,  1314,
    2434,   515,   617,     0,     0,  2819,     0,   765,     0,     0,
       0,     0,   758,     0,     0,   759,     0,     0,     0,     0,
       0,     0,     0,   514,     0,     0,     0,     0,   515,     0,
       0,     0,     0,     0,     0,     0,  2153,     0,     0,     0,
       0,   514,   756,   515,   515,   515,   515,   515,   515,   515,
     515,   515,   515,     0,     0,     0,     0,     0,   761,  2910,
       0,     0,     0,     0,   980,     0,   514,     0,     0,     0,
       0,     0,     0,  1043,   617,   762,     0,     0,   756,  1044,
       0,     0,     0,   758,     0,     0,  1056,     0,     0,     0,
     675,     0,     0,  2577,     0,     0,  1379,     0,     0,  1380,
     764,     0,     0,  1381,   617,  1057,     0,     0,     0,   756,
       0,     0,   756,     0,     0,     0,     0,     0,     0,     0,
    1379,     0,     0,  1380,     0,     0,     0,  1381,   761,     0,
       0,  1389,   486,     0,     0,     0,     0,     0, -1845,     0,
       0,  2967,     0,     0,     0,   514,   759,     0,     0,   514,
       0,     0,     0,     0,     0,  1389,  1058,  1120,     0,     0,
       0,     0, -1845,  1391,     0,     0,     0,   675,   675,   675,
       0,  2819,     0,     0,  1334,     0,     0,     0,     0,  1602,
       0,     0,   759,     0,     0,  1045,     0,  1391,     0,     0,
    1611,     0,  1612,     0,     0,     0,     0,     0,     0,   758,
    1512,  1618,  2639,  1345,     0,     0,     0,   762,  2631,  2632,
    2633,  2634,     0,     0,     0,   514,     0,  2657,  1619,     0,
       0,     0,     0,  1355,  1356,  1357,     0,  2910,  1364,     0,
       0,     0,   764,  2377,     0,   758,     0,     0,     0,     0,
       0,  1871,     0,     0,  1634,  1636,     0,  1059,     0,     0,
       0,  1421,     0,   759,     0,     0,     0,  2623,     0,   761,
       0,  1512,     0,     0, -1845,     0,   758,  2819,     0,   758,
       0,     0,     0,     0,   515,     0,     0,  1671,  1672,     0,
   -1845,  1685,  1686,  2779,   675, -1845,     0,     0, -1845,     0,
       0,     0,     0,     0,     0,   761,     0,     0,  1060,     0,
       0,  2702,     0,  1461, -1845,     0,  1061,  1475,  1480, -1845,
     762,     0,     0,     0,   756,     0,     0,     0,  1062,     0,
       0,     0, -1845,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   764,     0,     0,     0,  1046,
       0,     0,     0,     0,     0,     0, -1845,     0,     0,  1063,
       0,   762,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1120,     0,     0,     0,   761,     0,     0,   759,
       0,     0,     0,  1120,     0,     0,   764,  1400,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1064,     0,     0,     0,  1048,     0,  1065,  1120,     0,     0,
       0,  1400,     0,     0,     0,   759,     0,     0,     0,     0,
       0,     0,     0,     0,  1849,  1849,     0,     0,  1066,     0,
       0,     0,     0,     0,  1067,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   759,     0,  1068,   759,
       0,     0,     0,     0,     0,     0,   515,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2790,
       0,     0,  2793,     0,     0,     0,     0,     0,     0, -1845,
    1314,   758,     0,     0,     0,     0,     0,     0,     0,     0,
    1314,     0,   761,  1314,  1043,     0,     0,     0,     0,     0,
    1044,     0,  1050, -1845,     0,     0,     0,  1056,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   515,     0,     0,
       0,     0,     0,     0,     0,     0,  1057,     0,   761,     0,
       0,     0,     0,     0,     0,     0,     0,   515,   515,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   515,     0,     0,     0,     0,     0,     0,   761,
       0,     0,   761,     0,  1999,  2001,     0,     0,  2853,     0,
       0,     0,     0,     0,     0,     0,     0,  1058,     0,     0,
       0, -1845,     0,     0,     0,  2874,   515,  1314,  1407,  1408,
    1409,  1410,  1411,  1412,     0,     0,     0,     0,     0,     0,
    1314,     0,     0,     0,  2793, -1845,  1045,     0,     0,     0,
       0,     0,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1668,     0,   515,
       0,     0,     0,     0,     0,     0,     0,  1687,     0,  1705,
       0,     0,  1716,  1719,  1724,  1727,     0,     0,     0,     0,
       0,   759,     0,     0,     0,     0,     0,  2924,     0,     0,
       0,     0,     0,     0,     0,     0,  1739,     0,  1059,     0,
       0,     0,  1743,  1744,  1745,  1746,  1747,  1748,  1749,     0,
     762,     0,     0,  1758,  1759,     0,     0,  2951,  1770,     0,
       0,     0,  1773,     0,     0,  1781,  1782,  1783,  1784,  1785,
    1786,  1787,  1788,  1789,     0,   764,  1790,     0,   515,     0,
       0,     0,  2790,   963,  1379,     0,  1120,  1380,     0,  1060,
       0,  1381,  1382,  1383,  1384,  1385,  1386,  1061,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1822,  1062,
       0,  1387,     0,     0,   762,     0,     0,     0,     0,  1389,
       0,     0,     0,     0,     0,     0,  1390,     0,     0,     0,
    1046,     0,   762,  2159,   761,     0,     0,  1356,  1357,   764,
    1063,     0,     0,     0,     0,     0,     0,     0,  2790,   -39,
       0,  1391,     0,  2172,  2172,     0,     0,   764,     0,   762,
       0,     0,     0,     0,     0,     0,   762,     0,     0,     0,
       1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       2,  1912,     3,     4,   764,  1048,     0,  1065,     0,   762,
       0,   764,     0,     0,     0,     0,     0,     0,     5,     0,
       0,     0,     0,     0,     0,     0,     0,     6,     0,  1066,
       0,     0,     0,     0,   764,  1913,     0,     0,     0,     7,
    1120,     0,     0,  1943,  1944,     0,  1945,     0,     0,  1068,
       8,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     9,     0,    10,     0,     0,     0,     0,     0,
       0,     0,  1392,     0,     0,  1120,     0,     0,     0,     0,
       0,     0,    11,     0,     0,     0,     0,     0,  1393,     0,
       0,     0,     0,  1394,     0,     0,    12,     0,     0,     0,
       0,     0,     0,  1050,     0,     0,    13,     0,     0,     0,
       0,     0,    14,     0,     0,  1395,  1396,     0,     0,     0,
      15,     0,    16,    17,     0,     0,     0,     0,     0,  2295,
    1397,     0,     0,   762,     0,  1120,    18,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2035,     0,     0,     0,
       0,  2041,     0,     0,     0,     0,     0,     0,   764,     0,
       0,     0,     0,     0,     0,    19,     0,     0,  1398,     0,
       0,  1399,     0,     0,     0,     0,     0,     0,     0,     0,
      20,     0,     0,     0,     0,  1400,     0,     0,  1401,     0,
    2056,     0,     0,     0,   762,     0,     0,     0,     0,     0,
       0,  1724,     0,  1724,  1724,     0,    21,     0,     0,     0,
       0,  2094,     0,     0,     0,  2097,     0,     0,  2099,   764,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1378,     0,     0,     0,     0,  1379,
       0,     0,  1380,     0,  1415,     0,  1381,  1382,  1383,  1384,
    1385,  1386,     0,     0,     0,  2117,     0,     0,  2120,     0,
    2122,     0,     0,     0,   762,     0,  1387,     0,     0,  1388,
       0,     0,     0,     0,  1389,     0,     0,  1402,     0,     0,
       0,  1390,     0,    22,     0,  1415,    23,     0,     0,   764,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1391,     0,     0,     0,
       0,  1461,     0,     0,     0,    24,     0,     0,     0,     0,
       0,     0,     0,     0,    25,     0,  1480,  1788,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
       0,     0,     0,     0,     0,    27,     0,     0,     0,    28,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
    2199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    30,     0,     0,     0,    31,  1314,     0,     0,  1403,
       0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,
    1411,  1412,     0,     0,     0,   762,     0,     0,     0,  2048,
       0,  1415,     0,     0,     0,     0,     0,  1392,  1415,     0,
       0,    32,     0,     0,     0,     0,    33,     0,     0,  1120,
     764,     0,     0,  1393,     0,     0,     0,     0,  1394,     0,
      34,   762,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1395,  1396,     0,     0,    35,     0,   764,     0,     0,     0,
       0,     0,     0,     0,  2290,  1397,     0,     0,    36,     0,
       0,   -39,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   762,  1398,     0,     0,  1399,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2316,     0,     0,
    1400,     0,     0,  1401,   517,     0,  2320,   764,     0,  2321,
       0,     0,  2323,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2344,
    2345,     0,     0,  1822,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2355,     0,     0,   518,     0,     0,
       0,     0,     0,  2362,     0,     0,  2365,     0,  2367,     0,
       0,     0,     0,   519,     0,     0,  2371,     0,     0,     0,
       0,     0,     0,     0,  2378,  2379,     0,     0,  2382,     0,
       0,     0,  1402,     0,     0,  1415,     0,     0,   762,     0,
       0,     0,     0,     0,     0,     0,  1415,  1314,     0,     0,
    1712,     0,  1314,     0,     0,  2421,  1415,  1415,  1415,     0,
       0,  1379,     0,   764,  1380,  1415,     0,   520,  1381,  1382,
    1383,  1384,  1385,  1386,   762,     0,     0,   521,     0,     0,
       0,  2435,     0,     0,     0,     0,     0,     0,  1387,   522,
       0,     0,     0,     0,   523,     0,  1389,     0,  2448,   764,
       0,  1634,  1636,  1390,     0,   762,     0,     0,   762,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   524,  1415,     0,     0,     0,     0,     0,  1391,     0,
     764,     0,     0,   764,  1403,     0,     0,  1404,  1405,  1406,
       0,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1415,     0,     0,     0,   525,     0,     0,     0,
     526,     0,     0,     0,     0,     0,  1415,     0,     0,     0,
       0,  1415,     0,     0,     0,     0,     0,     0,  1379,     0,
       0,  1380,     0,     0,     0,  1381,  1382,  1383,  1384,  1385,
    1386,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1387,  2600,     0,  2359,     0,
       0,     0,     0,  1389,     0,     0,     0,     0,     0,  1392,
    1390,     0,     0,   527,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1393,     0,   528,     0,     0,
    1394,     0,     0,     0,     0,  1391,     0,     0,     0,     0,
       0,     0,     0,     0,  2613,  2614,     0,     0,     0,  2615,
    1634,  1636,  1395,  1396,  2618,     0,     0,  2621,  2622,     0,
     529,  1314,  2626,   530,     0,     0,     0,  1397,     0,     0,
       0,   531,     0,     0,   532,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     762,     0,     0,   533,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1398,     0,   534,  1399,     0,
       0,     0,     0,     0,   535,   764,     0,   963,     0,     0,
       0,     0,  1400,   536,     0,  1401,     0,     0,     0,   537,
       0,     0,     0,     0,     0,     0,  1392,     0,     0,     0,
       0,     0,     0,     0,     0,  2690,     0,     0,     0,  1415,
       0,     0,  1393,     0,   538,     0,     0,  1394,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1415,     0,
       0,     0,  2709,     0,     0,     0,     0,     0,     0,  1395,
    1396,     0,     0,     0,     0,     0,  1415,     0,  1712,  1712,
       0,  2074,     0,  1712,  1397,     0,     0,  1415,     0,     0,
    1415,     0,     0,     0,     0,  1415,     0,     0,  1415,     0,
       0,     0,     0,     0,  1402,     0,     0,     0,     0,     0,
    1415,     0,     0,     0,  1415,  1415,  1415,  1415,  1415,  1415,
    1415,     0,  1398,     0,     0,  1399,  1712,  1712,     0,  1415,
    1415,     0,     0,     0,     0,     0,     0,     0,     0,  1400,
       0,  1415,  1401,     0,  1415,     0,     0,     0,     0,     0,
       0,     0,  1415,  1415,  1415,  1415,  1415,  1415,  1415,  1415,
    1415,  1415,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2094,     0,     0,     0,     0,     0,     0,     0,     0,
    2763,  2764,  1379,  1415,  2765,  1380,     0,     0,     0,  1381,
    1382,  1383,  1384,  1385,  1386,     0,  1403,     0,     0,  1404,
    1405,  1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,  1387,
       0,  1564,     0,  1314,     0,     0,     0,  1389,     0,     0,
       0,  1402,  2807,  2808,  1390,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2823,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1391,
       0,     0,     0,     0,  2832,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1415,  1415,  1415,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1403,     0,     0,  1404,  1405,  1406,     0,
    1407,  1408,  1409,  1410,  1411,  1412,     0,     0,     0,     0,
    1733,     0,     0,  2894,     0,  1379,     0,     0,  1380,     0,
    1392,     0,  1381,  1382,  1383,  1384,  1385,  1386,     0,     0,
    1364,     0,     0,     0,     0,     0,  1393,     0,     0,     0,
       0,  1394,  1387,     0,     0,   963,     0,     0,  2916,     0,
    1389,     0,     0,     0,     0,     0,     0,  1390,     0,     0,
       0,     0,  2935,  1395,  1396,     0,  1415,     0,     0,     0,
       0,     0,  1415,     0,     0,     0,     0,     0,  1397,     0,
       0,     0,  1391,     0,     0,  2074,  2074,  1415,     0,  1712,
    1712,  1712,  1712,  1712,     0,     0,  1712,  1712,  1712,  1712,
    1712,  1712,  1712,  1712,  1712,  1712,  2074,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1398,     0,     0,  1399,
       0,     0,     0,     0,     0,  1415,     0,     0,  1415,     0,
    1415,     0,     0,  1400,  2074,  2074,  1401,     0,  2807,     0,
       0,     0,  2979,     0,     0,     0,     0,     0,  1415,  1712,
    1712,  1415,     0,  1415,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3008,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1392,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1393,
       0,     0,     0,     0,  1394,  2807,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1402,  1395,  1396,     0,     0,
    1415,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1397,     0,     0,     0,     0,     0,     0,     0,     0,
    1379,  3056,  3056,  1380,     0,     0,     0,  1381,  1382,  1383,
    1384,  1385,  1386,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1387,     0,  1398,
       0,     0,  1399,     0,  3056,  1389,     0,     0,     0,     0,
       0,     0,  1390,     0,     0,     0,  1400,     0,     0,  1401,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1391,     0,     0,
       0,  1415,     0,     0,     0,  3056,     0,  1403,     0,     0,
    1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,
       0,     0,     0,     0,  1733,     0,     0,  1415,     0,     0,
       0,  1415,  1415,     0,  1415,     0,     0,  2074,  2074,  2074,
    2074,  2074,     0,     0,     0,  2074,  2074,  2074,  2074,  2074,
    2074,  2074,  2074,  2074,  2074,  1415,  1415,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1415,     0,  1402,     0,
       0,     0,     0,  1415,     0,     0,  1415,     0,  1415,     0,
       0,     0,  1415,     0,     0,  2074,  2074,     0,     0,  1415,
    1415,     0,     0,  1415,  1379,     0,     0,  1380,  1392,     0,
       0,  1381,  1382,  1383,  1384,  1385,  1386,     0,     0,     0,
       0,     0,     0,     0,  1393,     0,     0,     0,     0,  1394,
       0,  1387,     0,     0,     0,     0,     0,     0,     0,  1389,
       0,     0,  1415,     0,     0,     0,  1390,     0,     0,     0,
       0,  1395,  1396,     0,     0,     0,  1415,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1397,     0,     0,  1415,
       0,  1391,     0,     0,     0,     0,     0,     0,     0,     0,
    1403,     0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,
    1410,  1411,  1412,  1712,     0,     0,     0,  2101,     0,     0,
       0,     0,     0,     0,  1398,     0,     0,  1399,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1400,     0,     0,  1401,     0,     0,     0,     0,     0,
       0,     0,  1379,     0,     0,  1380,     0,     0,     0,  1381,
    1382,  1383,  1384,  1385,  1386,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1387,
       0,     0,     0,     0,     0,     0,     0,  1389,     0,     0,
       0,     0,  1392,     0,  1390,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1393,     0,
       0,     0,     0,  1394,     0,     0,     0,     0,     0,  1391,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1402,     0,  1395,  1396,     0,     0,     0,
       0,  1415,     0,     0,     0,  1712,     0,     0,     0,     0,
    1397,     0,     0,     0,  1415,  1415,  1415,     0,     0,  1415,
       0,     0,  1415,  1415,     0,     0,     0,  1415,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1398,     0,
       0,  1399,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1400,     0,     0,  1401,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1392,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1415,     0,     0,     0,  1403,  1393,  2074,  1404,  1405,
    1406,  1394,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,
    1415,     0,  2319,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1395,  1396,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1397,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1402,  2074,  1712,
       0,     0,     0,     0,  1415,  1415,  1415,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1398,     0,     0,  1399,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1400,     0,     0,  1401,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1415,  1415,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1415,     0,     0,     0,     0,     0,
       0,     0,     0,  1415,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1403,
       0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,
    1411,  1412,     0,     0,     0,     0,  2360,  2074,     0,     0,
       0,     0,     0,     0,     0,  1402,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1415,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1415,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1415,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1415,     0,     0,     0,     0,     0,     0,  1403,     0,     0,
    1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,
       0,     0,     0,     0,  2450,     0,     0,     0,     0,  1415,
       0,     0,     0,     0,     0,     0,     0,     0,  1080,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,  1081,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,  1415,   107,   108,
     109,  1082,   111,   112,   113,   114,   890,  1083,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,  1084,     0,   136,   137,   138,   139,   140,   141,  1085,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,  1086,   153,   154,   155,  1087,  1088,  1089,  1090,   903,
     904,  1091,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,  1092,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,  1093,     0,  1094,   214,   215,
    1095,  1096,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,  1097,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,  1098,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,  1099,  1100,   255,  1101,   257,   258,
     259,   260,   261,   262,     0,     0,   263,  1102,   265,  1103,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,  1104,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,  1105,   921,   297,   298,   299,   300,   922,   301,   302,
    1106,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,  1107,   319,  1108,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,  1109,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
    1110,   392,   393,   394,   395,   396,  1111,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,  1112,   415,   933,   417,     0,   418,
     419,     0,   420,  1113,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,  1114,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,  1115,     0,   448,   449,   450,
     451,   452,   453,   941,  1116,   455,  1117,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,  1118,     0,     0,
       0,     0,   946,     0,   947,  1119,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,    26,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,    31,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   610,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,    34,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,    35,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
    2906,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    26,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,    31,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   610,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,    34,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
      35,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,  1720,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,  1721,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
    1722,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,  1723,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101, -1087,   102,   103,   104,     0,     0,
       0, -1087,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401, -1087,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,  1457,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,  1458,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,  2794,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,  2795,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,  2796,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,  2797,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,  2798,     0,     0,
       0,     0,   946,     0,  2799,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,   945,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,  1471,
     582,   884,   885,   886,  1472,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,  1473,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
    1714,     0,     0,     0,   948,     0,   949,   950,  1080,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,  1082,   111,   112,   113,   114,   890,  1083,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,  1084,     0,   136,   137,   138,   139,   140,   141,  1085,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,  1086,   153,   154,   155,  1087,  1088,  1089,  1090,   903,
     904,  1091,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,  1093,     0,  1094,   214,   215,
    1095,  1096,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,  1097,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,  1098,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,  1099,  1100,   255,  1101,   257,   258,
     259,   260,   261,   262,     0,     0,   263,  1102,   265,  1103,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,  1104,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,  1105,   921,   297,   298,   299,   300,   922,   301,   302,
    1106,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,  1107,   319,  1108,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,  1109,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
    1110,   392,   393,   394,   395,   396,  1111,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,  1112,   415,   933,   417,     0,   418,
     419,     0,   420,  1113,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,  1114,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,  1115,     0,   448,   449,   450,
     451,   452,   453,   941,  1938,   455,  1117,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,  1080,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,  1082,   111,   112,   113,
     114,   890,  1083,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,  1084,     0,   136,   137,
     138,   139,   140,   141,  1085,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,  1086,   153,   154,   155,
    1087,  1088,  1089,  1090,   903,   904,  1091,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
    1093,     0,  1094,   214,   215,  1095,  1096,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,  1097,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,  1098,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,  1099,
    1100,   255,  1101,   257,   258,   259,   260,   261,   262,     0,
       0,   263,  1102,   265,  1103,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,  1104,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,  1105,   921,   297,   298,
     299,   300,   922,   301,   302,  1106,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,  1107,   319,  1108,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,  1109,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,  1110,   392,   393,   394,   395,
     396,  1111,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,  1112,
     415,   933,   417,     0,   418,   419,     0,   420,  1113,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,  1114,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
    1115,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,  1117,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
    1981,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,  1721,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,  2289,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,  2381,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,  1080,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,  1082,   111,   112,   113,   114,   890,  1083,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,  1084,     0,   136,   137,   138,   139,   140,   141,  1085,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,  1086,   153,   154,   155,  1087,  1088,  1089,  1090,   903,
     904,  1091,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,  1093,     0,  1094,   214,   215,
    1095,  1096,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,  1097,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,  1098,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,  1099,  1100,   255,  1101,   257,   258,
     259,   260,   261,   262,     0,     0,   263,  1102,   265,  1103,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,  1104,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,  1105,   921,   297,   298,   299,   300,   922,   301,   302,
    1106,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,  1107,   319,  1108,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,  1109,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
    1110,   392,   393,   394,   395,   396,  1111,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,  1112,   415,   933,   417,     0,   418,
     419,     0,   420,  1113,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,  1114,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,  1115,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,  1117,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
    1476,  1477,     0,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,  1847,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
     114,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,   155,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,  2093,
       0,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,  2795,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,  2796,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,  2797,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,  2799,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
    3053,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,  3054,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216,   217,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229,   230,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,   253,
     254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265,   266,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,   922,   301,   302,   303,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396,   397,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
    3055,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   942,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,   889,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,  3054,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,   908,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,   922,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   930,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,  3055,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   942,     0,
       0,     0,     0,     0,     0,   943,   944,     0,     0,     0,
       0,     0,   946,     0,   947,     0,     0,     0,     0,   948,
       0,   949,   950,    93,   883,   582,   884,   885,   886,   887,
     888,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,   889,     0,     0,
     105,   106,     0,   107,   108,   109,   110,   111,   112,   113,
   -1845,   890,   116,   891,   892,     0,   119,   120,   121,   122,
     123,   124,   893,   894,   125,   126,   895,   896,   129,     0,
     130,   131,   132,   133,   897,     0,   898,     0,   136,   137,
     138,   139,   140,   141,   142,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   152,   153,   154,  3054,
     899,   900,   901,   902,   903,   904,   905,   161,   162,   163,
     164,   165,   166,   167,   906,   907,   170,   908,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   909,   199,   200,   201,   202,   203,   910,   911,
     205,     0,   206,   207,   912,   209,     0,   210,     0,   211,
     212,     0,   213,   214,   215,   216, -1845,   218,     0,   219,
       0,   913,   914,   222,     0,   223,   224,   225,   226,   227,
     228,   229, -1845,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   242,   243,   244,   245,
     246,   247,   248,   915,   916,     0,   917,     0,   252,     0,
       0,   255,   256,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   264,   265, -1845,     0,   267,   268,   269,   918,
     919,   270,   271,   272,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   920,   295,   921,   297,   298,
     299,   300,     0,   301,   302,     0,   304,   923,   924,   306,
     925,   308,   309,   310,     0,   311,   312,     0,     0,   926,
     314,   315,     0,     0,   316,   317,   318,   319,   320,   927,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   928,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   929,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   370,   371,   372,   373,   930,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   931,   392,   393,   394,   395,
     396, -1845,   398,   399,   932,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   933,   417,     0,   418,   419,     0,   420,   421,   422,
     423,   424,   425,   426,     0,   934,   935,     0,     0,   429,
     430,   936,   432,   937,   938,   434,   435,   939,   437,   438,
    3055,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     940,     0,   448,   449,   450,   451,   452,   453,   941,     0,
     455,   456,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483, -1845,     0,     0,     0,     0,     0,     0,
     943,   944,     0,     0,     0,     0,     0,   946,     0,   947,
       0,     0,     0,     0,   948,     0,   949,   950,    93,   883,
     582,   884,   885,   886,   887,   888,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   890,   116,   891,   892,
       0,   119,   120,   121,   122,   123,   124,   893,   894,   125,
     126,   895,   896,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   906,
     907,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   909,   199,   200,
     201,   202,   203,   910,   911,   205,     0,   206,   207,   912,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   913,   914,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   915,   916,
       0,   917,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   270,   271,   272,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     920,   295,   921,   297,   298,   299,   300,     0,   301,   302,
     303,   304,   923,   924,   306,   925,   308,   309,   310,     0,
     311,   312,     0,     0,   926,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   929,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   932,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     934,   935,     0,     0,   429,   430,   936,   432,   937,   938,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   941,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,     0,     0,
       0,     0,     0,     0,     0,  1707,  1708,     0,     0,    93,
     883,   582,   884,   885,  1709,   887,   888,     0,     0,     0,
       0,   949,   950,     0,     0,     0,     0,    94,    95,    96,
      97,    98,    99,   100,   101,     0,   102,   103,   104,     0,
       0,     0,     0,     0,     0,     0,   105,   106,     0,   107,
     108,   109,   110,   111,   112,   113,   114,   890,   116,   891,
     892,     0,   119,   120,   121,   122,   123,   124,   893,   894,
     125,   126,   895,   896,   129,     0,   130,   131,   132,   133,
     897,     0,   898,     0,   136,   137,   138,   139,   140,   141,
     142,   143,   144,   145,     0,   146,   147,   148,   149,   150,
     151,     0,   152,   153,   154,   155,   899,   900,   901,   902,
     903,   904,   905,   161,   162,   163,   164,   165,   166,   167,
     906,   907,   170,     0,   171,     0,   172,   173,   174,   175,
     176,   177,     0,   178,   179,   180,   181,   182,     0,     0,
     183,   184,   712,   186,   187,     0,   188,   189,   190,     0,
     191,   192,   193,     0,   194,   195,   196,   197,   909,   199,
     200,   201,   202,   203,   910,   911,   205,     0,   206,   207,
     912,   209,     0,   210,     0,   211,   212,     0,   213,   214,
     215,   216,   217,   218,     0,   219,     0,   913,   914,   222,
       0,   223,   224,   225,   226,   227,   228,   229,   230,   231,
     232,   233,   234,     0,   235,   236,   237,   238,   239,   240,
       0,   241,   242,   243,   244,   245,   246,   247,   248,   915,
     916,     0,   917,     0,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,     0,     0,   263,   264,   265,
     266,     0,   267,   268,   269,   918,   919,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   920,   295,   921,   297,   298,   299,   300,     0,   301,
     302,   303,   304,   923,   924,   306,   925,   308,   309,   310,
       0,   311,   312,     0,     0,   313,   314,   315,     0,     0,
     316,   317,   318,   319,   320,   927,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,     0,   332,   333,   928,
     335,   336,   337,   338,   339,   340,     0,   341,   342,   343,
     344,   345,   346,     0,   347,   348,   349,   929,   351,   352,
     353,   354,     0,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,     0,   368,   369,   370,
     371,   372,   373,  1833,  1834,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,     0,   386,   387,   388,   389,
     390,   931,   392,   393,   394,   395,   396,   397,   398,   399,
     932,   401,     0,   402,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   933,   417,     0,
     418,   419,     0,   420,   421,   422,   423,   424,   425,   426,
       0,   934,   935,     0,     0,   429,   430,   936,   432,   937,
     938,   434,   435,   939,   437,   438,   439,   440,   441,     0,
       0,   442,   443,   444,   445,   446,   940,     0,   448,   449,
     450,   451,   452,   453,   941,     0,   455,   456,   457,   458,
     459,   460,   461,     0,     0,   462,     0,     0,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,     0,
       0,     0,     0,     0,     0,     0,  1835,  1836,     0,     0,
       0,     0,     0,     0,     0,  1709,     0,     0,     0,     0,
       0,     0,   949,   950,    93,   883,   582,   884,   885,   886,
     887,   888,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    94,    95,    96,    97,    98,    99,   100,   101,
       0,   102,   103,   104,     0,     0,     0,     0,     0,     0,
       0,   105,   106,     0,   107,   108,   109,   110,   111,   112,
     113,   114,   890,   116,   891,   892,     0,   119,   120,   121,
     122,   123,   124,   893,   894,   125,   126,   895,   896,   129,
       0,   130,   131,   132,   133,   897,     0,   898,     0,   136,
     137,   138,   139,   140,   141,   142,   143,   144,   145,     0,
     146,   147,   148,   149,   150,   151,     0,   152,   153,   154,
     155,   899,   900,   901,   902,   903,   904,   905,   161,   162,
     163,   164,   165,   166,   167,   906,   907,   170,     0,   171,
       0,   172,   173,   174,   175,   176,   177,     0,   178,   179,
     180,   181,   182,     0,     0,   183,   184,   712,   186,   187,
       0,   188,   189,   190,     0,   191,   192,   193,     0,   194,
     195,   196,   197,   909,   199,   200,   201,   202,   203,   910,
     911,   205,     0,   206,   207,   912,   209,     0,   210,     0,
     211,   212,     0,   213,   214,   215,   216,   217,   218,     0,
     219,     0,   913,   914,   222,     0,   223,   224,   225,   226,
     227,   228,   229,   230,   231,   232,   233,   234,     0,   235,
     236,   237,   238,   239,   240,     0,   241,   242,   243,   244,
     245,   246,   247,   248,   915,   916,     0,   917,     0,   252,
       0,   254,   255,   256,   257,   258,   259,   260,   261,   262,
       0,     0,   263,   264,   265,   266,     0,   267,   268,   269,
     918,   919,   270,   271,   272,   273,   274,   275,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   920,   295,   921,   297,
     298,   299,   300,     0,   301,   302,   303,   304,   923,   924,
     306,   925,   308,   309,   310,     0,   311,   312,     0,     0,
     926,   314,   315,     0,     0,   316,   317,   318,   319,   320,
     927,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,     0,   332,   333,   928,   335,   336,   337,   338,   339,
     340,     0,   341,   342,   343,   344,   345,   346,     0,   347,
     348,   349,   929,   351,   352,   353,   354,     0,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,     0,   368,   369,   370,   371,   372,   373,   374,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
       0,   386,   387,   388,   389,   390,   931,   392,   393,   394,
     395,   396,   397,   398,   399,   932,   401,     0,   402,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
     414,   415,   933,   417,     0,   418,   419,     0,   420,   421,
     422,   423,   424,   425,   426,     0,   934,   935,     0,     0,
     429,   430,   936,   432,   937,   938,   434,   435,   939,   437,
     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
     446,   940,     0,   448,   449,   450,   451,   452,   453,   941,
       0,   455,   456,   457,   458,   459,   460,   461,     0,     0,
     462,     0,     0,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,     0,     0,     0,     0,     0,     0,
       0,  1707,  1708,     0,     0,     0,     0,     0,     0,     0,
    1709,     0,     0,     0,     0,     0,     0,   949,   950,    93,
     883,   582,   884,   885,   886,   887,   888,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    94,    95,    96,
      97,    98,    99,   100,   101,     0,   102,   103,   104,     0,
       0,     0,     0,   889,     0,     0,   105,   106,     0,   107,
     108,   109,   110,   111,   112,   113,     0,   890,   116,   891,
     892,     0,   119,   120,   121,   122,   123,   124,   893,   894,
     125,   126,   895,   896,   129,     0,   130,   131,   132,   133,
     897,     0,   898,     0,   136,   137,   138,   139,   140,   141,
     142,   143,   144,   145,     0,   146,   147,   148,   149,   150,
     151,     0,   152,   153,   154,   155,   899,   900,   901,   902,
     903,   904,   905,   161,   162,   163,   164,   165,   166,   167,
     906,   907,   170,   908,   171,     0,   172,   173,   174,   175,
     176,   177,     0,   178,   179,   180,   181,   182,     0,     0,
     183,   184,   712,   186,   187,     0,   188,   189,   190,     0,
     191,     0,   193,     0,   194,   195,   196,   197,   909,   199,
     200,   201,   202,   203,   910,   911,   205,     0,   206,   207,
     912,   209,     0,   210,     0,   211,   212,     0,   213,   214,
     215,   216,     0,   218,     0,   219,     0,   913,   914,   222,
       0,   223,   224,   225,   226,   227,   228,   229,     0,   231,
     232,   233,   234,     0,   235,   236,   237,   238,   239,   240,
       0,   241,   242,   243,   244,   245,   246,   247,   248,   915,
     916,     0,   917,     0,   252,     0,     0,   255,   256,   257,
     258,   259,   260,   261,   262,     0,     0,   263,   264,   265,
       0,     0,   267,   268,   269,   918,   919,   270,   271,   272,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
     293,   920,   295,   921,   297,   298,   299,   300,     0,   301,
     302,     0,   304,   923,   924,   306,   925,   308,   309,   310,
       0,   311,   312,     0,     0,   926,   314,   315,     0,     0,
     316,   317,   318,   319,   320,   927,   322,   323,   324,   325,
     326,   327,   328,   329,   330,   331,     0,   332,   333,   928,
     335,   336,   337,   338,   339,   340,     0,   341,   342,   343,
     344,   345,   346,     0,   347,   348,   349,   929,   351,   352,
     353,   354,     0,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,     0,   368,   369,   370,
     371,   372,   373,   930,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,     0,   386,   387,   388,   389,
     390,   931,   392,   393,   394,   395,   396,     0,   398,   399,
     932,   401,     0,   402,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   933,   417,     0,
     418,   419,     0,   420,   421,   422,   423,   424,   425,   426,
       0,   934,   935,     0,     0,   429,   430,   936,   432,   937,
     938,   434,   435,   939,   437,   438,   439,   440,   441,     0,
       0,   442,   443,   444,   445,   446,   940,     0,   448,   449,
     450,   451,   452,   453,   941,     0,   455,   456,   457,   458,
     459,   460,   461,     0,     0,   462,     0,     0,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,     0,
       0,     0,     0,     0,     0,     0,   943,   944,   506,     0,
       0,     0,     0,   946,     0,   947,     0,     0,     0,     0,
     948,     0,   949,   950,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,  2399,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,  -754,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,     0,     0,  -754,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   228,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,  -754,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,  -754,   257,   258,
     259,   260,   261,   262,     0,     0,   263,  -754,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,  -754,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,  -754,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,  -754,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,    93,     0,
     507,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1012,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,   894,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   910,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,  2139,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   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,     0,   301,   302,
     303,   304,     0,   924,   306,   307,   308,   309,   310,     0,
     311,   312,     0,   614,   313,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   374,  2140,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    26,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,    31,   420,   421,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   936,   432,   937,     0,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   610,   454,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,    34,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,     0,     0,
      35,   780,  1302,   582,     0,     0,     0,   887,     0,     0,
       0,     0,     0,     0,  2141,     0,     0,     0,     0,    94,
      95,    96,    97,    98,    99,   100,   101,     0,   102,   103,
     104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,   781,   111,   112,   113,   782,   783,
     784,   785,   786,     0,   119,   120,   121,   122,   123,   124,
       0,     0,   125,   126,   787,   788,   129,     0,   130,   131,
     132,   133,   789,     0,   790,     0,   136,   137,   138,   139,
     140,   141,   791,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,   792,   153,   154,   155,   793,   794,
     795,   796,     0,     0,   797,   161,   162,   163,   164,   165,
     166,   167,   798,   799,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     800,   199,   200,   201,   202,   203,   801,  1303,   205,     0,
     206,   207,   802,   209,     0,   210,     0,   211,   803,     0,
     804,   214,   215,   805,   806,   218,     0,   219,     0,   807,
     808,   222,     0,   223,   224,   225,   226,   227,   228,   229,
     809,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,   810,   811,   244,   245,   246,   247,
     248,   812,   813,     0,   814,     0,   252,   815,   816,   255,
     817,   257,   258,   259,   260,   261,   262,     0,     0,   263,
     818,   265,   819,     0,   267,   268,   269,     0,     0,   270,
     271,   272,   273,   274,   820,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   821,   822,   823,   297,   298,   299,   824,
       0,   301,   302,   825,   304,     0,   826,   306,   827,   308,
     309,   310,     0,   311,   312,  1304,     0,   313,   314,   315,
       0,     0,   316,   828,   829,   319,   830,   831,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   832,   335,   336,   833,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   834,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,   835,   371,   372,   373,   836,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,     0,   386,   387,
     388,   389,   390,   837,   392,   838,   394,   395,   396,   839,
     398,   399,   840,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   841,   415,   842,
     417,     0,   418,   419,     0,   420,   843,   422,   423,   424,
     425,   426,     0,   844,   845,     0,     0,   429,   430,   846,
     432,   847,  1305,   434,   435,   848,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,   849,     0,
     448,   449,   450,   451,   452,  1197,   851,     0,   455,   852,
     457,   458,   459,   460,   461,     0,     0,   462,     0,     0,
     463,   464,   465,   466,   467,   468,   853,   854,   855,   856,
     857,   858,   859,   860,   861,   862,   863,   480,   481,   482,
     483,    93,     0,   507,     0,     0,     0,     0,  1306,  1307,
    2017,     0,     0,     0,     0,     0,     0,  2018,     0,    94,
      95,    96,    97,    98,    99,   100,   101,     0,   102,   103,
     104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,   118,     0,   119,   120,   121,   122,   123,   124,
       0,   894,   125,   126,   127,   128,   129,     0,   130,   131,
     132,   133,   897,     0,   898,     0,   136,   137,   138,   139,
     140,   141,   142,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,   152,   153,   154,   155,   899,   900,
     901,   902,   903,   904,   905,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   910,     0,   205,     0,
     206,   207,   208,   209,     0,   210,     0,   211,   212,     0,
     213,   214,   215,   216,   217,   218,     0,   219,     0,   220,
     221,   222,     0,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,     0,   251,     0,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,  2139,     0,   263,
     264,   265,   266,     0,   267,   268,   269,   918,   919,   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,
       0,   301,   302,   303,   304,     0,   924,   306,   307,   308,
     309,   310,     0,   311,   312,     0,   614,   313,   314,   315,
       0,     0,   316,   317,   318,   319,   320,   927,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   928,   335,   336,   337,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   350,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,   370,   371,   372,   373,   374,  2140,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,     0,   386,   387,
     388,   389,   390,   931,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   933,
     417,     0,   418,   419,     0,   420,   421,   422,   423,   424,
     425,   426,     0,   427,   428,     0,     0,   429,   430,   936,
     432,   937,     0,   434,   435,   939,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,   940,     0,
     448,   449,   450,   451,   452,   610,   454,     0,   455,   456,
     457,   458,   459,   460,   461,     0,     0,   462,     0,     0,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,   780,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2141,     0,    94,
      95,    96,    97,    98,    99,   100,   101,     0,   102,   103,
     104,     3,     4,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,   781,   111,   112,   113,   782,   783,
     784,   785,   786,     0,   119,   120,   121,   122,   123,   124,
       0,     0,   125,   126,   787,   788,   129,     0,   130,   131,
     132,   133,   789,     0,   790,     0,   136,   137,   138,   139,
     140,   141,   791,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,   792,   153,   154,   155,   793,   794,
     795,   796,     0,     0,   797,   161,   162,   163,   164,   165,
     166,   167,   798,   799,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     800,   199,   200,   201,   202,   203,   801,     0,   205,     0,
     206,   207,   802,   209,     0,   210,     0,   211,   803,     0,
     804,   214,   215,   805,   806,   218,     0,   219,     0,   807,
     808,   222,     0,   223,   224,   225,   226,   227,   228,   229,
     809,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,   810,   811,   244,   245,   246,   247,
     248,   812,   813,     0,   814,     0,   252,   815,   816,   255,
     817,   257,   258,   259,   260,   261,   262,     0,     0,   263,
     818,   265,   819,     0,   267,   268,   269,     0,     0,   270,
     271,   272,   273,   274,   820,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   821,   822,   823,   297,   298,   299,   824,
       0,   301,   302,   825,   304,     0,   826,   306,   827,   308,
     309,   310,     0,   311,   312,     0,     0,   313,   314,   315,
       0,     0,   316,   828,   829,   319,   830,   831,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   832,   335,   336,   833,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   834,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,   835,   371,   372,   373,   836,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,    26,   386,   387,
     388,   389,   390,   837,   392,   838,   394,   395,   396,   839,
     398,   399,   840,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   841,   415,   842,
     417,     0,   418,   419,    31,   420,   843,   422,   423,   424,
     425,   426,     0,   844,   845,     0,     0,   429,   430,   846,
     432,   847,     0,   434,   435,   848,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,   849,     0,
     448,   449,   450,   451,   452,   850,   851,     0,   455,   852,
     457,   458,   459,   460,   461,     0,     0,   462,     0,    34,
     463,   464,   465,   466,   467,   468,   853,   854,   855,   856,
     857,   858,   859,   860,   861,   862,   863,   480,   481,   482,
     483,    93,     0,    35,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    36,     0,    94,
      95,    96,    97,    98,    99,   100,   101,     0,   102,   103,
     104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,   118,     0,   119,   120,   121,   122,   123,   124,
       0,   894,   125,   126,   127,   128,   129,     0,   130,   131,
     132,   133,   897,     0,   898,     0,   136,   137,   138,   139,
     140,   141,   142,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,   152,   153,   154,   155,   899,   900,
     901,   902,   903,   904,   905,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   910,     0,   205,     0,
     206,   207,   208,   209,     0,   210,     0,   211,   212,     0,
     213,   214,   215,   216,   217,   218,     0,   219,     0,   220,
     221,   222,     0,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,     0,   251,     0,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,     0,     0,   263,
     264,   265,   266,     0,   267,   268,   269,   918,   919,   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,
       0,   301,   302,   303,   304,     0,   924,   306,   307,   308,
     309,   310,     0,   311,   312,     0,     0,   313,   314,   315,
       0,     0,   316,   317,   318,   319,   320,   927,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   928,   335,   336,   337,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   350,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,   370,   371,   372,   373,   374,  2140,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,     0,   386,   387,
     388,   389,   390,   931,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   933,
     417,     0,   418,   419,     0,   420,   421,   422,   423,   424,
     425,   426,     0,   427,   428,     0,     0,   429,   430,   936,
     432,   937,     0,   434,   435,   939,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,   940,     0,
     448,   449,   450,   451,   452,   453,   454,     0,   455,   456,
     457,   458,   459,   460,   461,     0,     0,   462,     0,     0,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,    93,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    36,     0,    94,
      95,    96,    97,    98,    99,   100,   101,     0,   102,   103,
     104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   117,   118,     0,   119,   120,   121,   122,   123,   124,
       0,   894,   125,   126,   127,   128,   129,     0,   130,   131,
     132,   133,   897,     0,   898,     0,   136,   137,   138,   139,
     140,   141,   142,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,   152,   153,   154,   155,   899,   900,
     901,   902,   903,   904,   905,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   910,     0,   205,     0,
     206,   207,   208,   209,     0,   210,     0,   211,   212,     0,
     213,   214,   215,   216,   217,   218,     0,   219,     0,   220,
     221,   222,     0,   223,   224,   225,   226,   227,   228,   229,
     230,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,     0,   251,     0,   252,   253,   254,   255,
     256,   257,   258,   259,   260,   261,   262,     0,     0,   263,
     264,   265,   266,     0,   267,   268,   269,   918,   919,   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,
       0,   301,   302,   303,   304,     0,   924,   306,   307,   308,
     309,   310,     0,   311,   312,     0,     0,   313,   314,   315,
       0,     0,   316,   317,   318,   319,   320,   927,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   928,   335,   336,   337,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   350,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,     0,   386,   387,
     388,   389,   390,   931,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   414,   415,   933,
     417,     0,   418,   419,     0,   420,   421,   422,   423,   424,
     425,   426,     0,   427,   428,     0,     0,   429,   430,   936,
     432,   937,     0,   434,   435,   939,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,   940,     0,
     448,   449,   450,   451,   452,   453,   454,     0,   455,   456,
     457,   458,   459,   460,   461,     0,     0,   462,     0,     0,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,   506,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2817,     0,    94,
      95,    96,    97,    98,    99,   100,   101,   634,   102,   103,
     104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,     0,   111,   112,   113,   114,   115,
       0,   117,   118,     0,   119,   120,   121,   122,   123,   124,
       0,     0,   125,   126,   127,   128,   129,     0,   130,   131,
     132,   133,   134,     0,     0,     0,   136,   137,   138,   139,
     140,   141,     0,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,     0,   153,   154,   155,     0,     0,
       0,     0,     0,     0,     0,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,     0,   205,     0,
     206,   207,   208,   209,     0,   210,     0,   211,     0,     0,
       0,   214,   215,   509,     0,   218,     0,   219,     0,   220,
     221,   222,     0,   223,   224,   225,   226,   227,   228,   229,
       0,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,     0,   243,   244,   245,   246,   247,
     248,   249,   250,     0,   251,     0,   252,     0,     0,   255,
       0,   257,   258,   259,   260,   261,   262,     0,     0,   263,
       0,   265,     0,     0,   267,   268,   269,     0,     0,   270,
     271,   272,   273,   274,   510,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,     0,   296,   297,   298,   299,   300,
       0,   301,   302,     0,   304,     0,   305,   306,   307,   308,
     309,   310,     0,   311,   312,     0,     0,   313,   314,   315,
       0,     0,   316,   317,     0,   319,     0,   321,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   334,   335,   336,   337,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   350,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,     0,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,    26,   386,   387,
     388,   389,   390,     0,   392,   393,   394,   395,   396,     0,
     398,   399,   400,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   512,   415,   416,
     417,     0,   418,   419,    31,   420,     0,   422,   423,   424,
     425,   426,     0,   635,   428,     0,     0,   636,   430,   431,
     432,   433,     0,   434,   435,   436,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,     0,     0,
     448,   449,   450,   451,   452,   610,   454,     0,   455,     0,
     457,   458,   459,   460,   461,     0,     0,   462,     0,    34,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,   506,     0,    35,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    36,     0,    94,
      95,    96,    97,    98,    99,   100,   101,     0,   102,   103,
     104,     0,     0,     0,     0,     0,     0,     0,   105,   106,
       0,   107,   108,   109,     0,   111,   112,   113,   114,   115,
       0,   117,   118,     0,   119,   120,   121,   122,   123,   124,
       0,     0,   125,   126,   127,   128,   129,     0,   130,   131,
     132,   133,   134,     0,     0,     0,   136,   137,   138,   139,
     140,   141,     0,   143,   144,   145,     0,   146,   147,   148,
     149,   150,   151,     0,     0,   153,   154,   155,     0,     0,
       0,     0,     0,     0,     0,   161,   162,   163,   164,   165,
     166,   167,   168,   169,   170,     0,   171,     0,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
       0,     0,   183,   184,   185,   186,   187,     0,   188,   189,
     190,     0,   191,   192,   193,     0,   194,   195,   196,   197,
     198,   199,   200,   201,   202,   203,   204,     0,   205,     0,
     206,   207,   208,   209,     0,   210,     0,   211,     0,     0,
       0,   214,   215,   509,     0,   218,     0,   219,     0,   220,
     221,   222,     0,   223,   224,   225,   226,   227,   228,   229,
       0,   231,   232,   233,   234,     0,   235,   236,   237,   238,
     239,   240,     0,   241,     0,   243,   244,   245,   246,   247,
     248,   249,   250,     0,   251,     0,   252,     0,     0,   255,
       0,   257,   258,   259,   260,   261,   262,     0,     0,   263,
       0,   265,     0,     0,   267,   268,   269,     0,     0,   270,
     271,   272,   273,   274,   510,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,     0,   296,   297,   298,   299,   300,
       0,   301,   302,     0,   304,     0,   305,   306,   307,   308,
     309,   310,     0,   311,   312,     0,     0,   313,   314,   315,
       0,     0,   316,   317,     0,   319,     0,   321,   322,   323,
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
     333,   334,   335,   336,   337,   338,   339,   340,     0,   341,
     342,   343,   344,   345,   346,     0,   347,   348,   349,   350,
     351,   352,   353,   354,     0,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,     0,   368,
     369,     0,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,    26,   386,   387,
     388,   389,   390,     0,   392,   393,   394,   395,   396,     0,
     398,   399,   400,   401,     0,   402,   403,   404,   405,   406,
     407,   408,   409,   410,   411,   412,   413,   512,   415,   416,
     417,     0,   418,   419,    31,   420,     0,   422,   423,   424,
     425,   426,     0,   427,   428,     0,     0,   429,   430,   431,
     432,   433,     0,   434,   435,   436,   437,   438,   439,   440,
     441,     0,     0,   442,   443,   444,   445,   446,     0,     0,
     448,   449,   450,   451,   452,   610,   454,     0,   455,     0,
     457,   458,   459,   460,   461,     0,     0,   462,     0,    34,
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,     0,   506,    35,   507,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,     0,   111,   112,   113,   114,
     115,     0,   117,   118,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   127,   128,   129,     0,   130,
     131,   132,   133,   134,     0,     0,     0,   136,   137,   138,
     139,   140,   141,     0,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,     0,   153,   154,   155,     0,
       0,     0,     0,     0,     0,     0,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,     0,   205,
       0,   206,   207,   208,   209,     0,   210,     0,   211,     0,
       0,     0,   214,   215,   509,     0,   218,     0,   219,     0,
     220,   221,   222,     0,   223,   224,   225,   226,   227,   228,
     229,     0,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,     0,   243,   244,   245,   246,
     247,   248,   249,   250,     0,   251,     0,   252,     0,     0,
     255,     0,   257,   258,   259,   260,   261,   262,     0,     0,
     263,     0,   265,     0,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   510,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,     0,   296,   297,   298,   299,
     300,     0,   301,   302,     0,   304,     0,   305,   306,   307,
     308,   309,   310,     0,   311,   312,     0,     0,   313,   314,
     315,     0,     0,   316,   317,     0,   319,     0,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     350,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,     0,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,     0,   392,   393,   394,   395,   396,
       0,   398,   399,   400,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   512,   415,
     416,   417,     0,   418,   419,     0,   420,     0,   422,   423,
     424,   425,   426,     0,   427,   428,     0,     0,   429,   430,
     431,   432,   433,     0,   434,   435,   436,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,     0,
       0,   448,   449,   450,   451,   452,   453,   454,     0,   455,
       0,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,   483,   506,     0,   507,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   991,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,     0,   111,   112,   113,   114,
     115,     0,   117,   118,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   127,   128,   129,     0,   130,
     131,   132,   133,   134,     0,     0,     0,   136,   137,   138,
     139,   140,   141,     0,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,     0,   153,   154,   155,     0,
       0,     0,     0,     0,     0,     0,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,     0,   205,
       0,   206,   207,   208,   209,     0,   210,     0,   211,     0,
       0,     0,   214,   215,   509,     0,   218,     0,   219,     0,
     220,   221,   222,     0,   223,   224,   225,   226,   227,   228,
     229,     0,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,     0,   243,   244,   245,   246,
     247,   248,   249,   250,     0,   251,     0,   252,     0,     0,
     255,     0,   257,   258,   259,   260,   261,   262,     0,     0,
     263,     0,   265,     0,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   510,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,     0,   296,   297,   298,   299,
     300,     0,   301,   302,     0,   304,     0,   305,   306,   307,
     308,   309,   310,     0,   311,   312,     0,     0,   313,   314,
     315,     0,     0,   316,   317,     0,   319,     0,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     350,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,     0,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,     0,   392,   393,   394,   395,   396,
       0,   398,   399,   400,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   512,   415,
     416,   417,     0,   418,   419,     0,   420,     0,   422,   423,
     424,   425,   426,     0,   427,   428,     0,     0,   429,   430,
     431,   432,   433,     0,   434,   435,   436,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,     0,
       0,   448,   449,   450,   451,   452,   453,   454,     0,   455,
       0,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,   483,   506,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2656,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,     0,   111,   112,   113,   114,
     115,     0,   117,   118,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   127,   128,   129,     0,   130,
     131,   132,   133,   134,     0,     0,     0,   136,   137,   138,
     139,   140,   141,     0,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,     0,   153,   154,   155,     0,
       0,     0,     0,     0,     0,     0,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,     0,   205,
       0,   206,   207,   208,   209,     0,   210,     0,   211,     0,
       0,     0,   214,   215,   509,     0,   218,     0,   219,     0,
     220,   221,   222,     0,   223,   224,   225,   226,   227,   228,
     229,     0,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,     0,   243,   244,   245,   246,
     247,   248,   249,   250,     0,   251,     0,   252,     0,     0,
     255,     0,   257,   258,   259,   260,   261,   262,     0,     0,
     263,     0,   265,     0,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   510,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,     0,   296,   297,   298,   299,
     300,     0,   301,   302,     0,   304,     0,   305,   306,   307,
     308,   309,   310,     0,   311,   312,     0,     0,   313,   314,
     315,     0,     0,   316,   317,     0,   319,     0,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     350,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,     0,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,     0,   392,   393,   394,   395,   396,
       0,   398,   399,   400,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   512,   415,
     416,   417,     0,   418,   419,     0,   420,     0,   422,   423,
     424,   425,   426,     0,   427,   428,     0,     0,   429,   430,
     431,   432,   433,     0,   434,   435,   436,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,     0,
       0,   448,   449,   450,   451,   452,   453,   454,     0,   455,
       0,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,   483,   506,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1728,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,     0,   111,   112,   113,   114,
     115,     0,   117,   118,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   127,   128,   129,     0,   130,
     131,   132,   133,   134,     0,     0,     0,   136,   137,   138,
     139,   140,   141,     0,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,     0,   153,   154,   155,     0,
       0,     0,     0,     0,     0,     0,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,     0,   205,
       0,   206,   207,   208,   209,     0,   210,     0,   211,     0,
       0,     0,   214,   215,   509,     0,   218,     0,   219,     0,
     220,   221,   222,     0,   223,   224,   225,   226,   227,   228,
     229,     0,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,     0,   243,   244,   245,   246,
     247,   248,   249,   250,     0,   251,     0,   252,     0,     0,
     255,     0,   257,   258,   259,   260,   261,   262,     0,     0,
     263,     0,   265,     0,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   510,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,     0,   296,   297,   298,   299,
     300,     0,   301,   302,     0,   304,     0,   305,   306,   307,
     308,   309,   310,     0,   311,   312,     0,     0,   313,   314,
     315,     0,     0,   316,   317,     0,   319,     0,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     350,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,     0,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,     0,   392,   393,   394,   395,   396,
       0,   398,   399,   400,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   512,   415,
     416,   417,     0,   418,   419,     0,   420,     0,   422,   423,
     424,   425,   426,     0,   427,   428,     0,     0,   429,   430,
     431,   432,   433,     0,   434,   435,   436,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,     0,
       0,   448,   449,   450,   451,   452,   453,   454,     0,   455,
       0,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,   483,   506,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1870,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,     0,   111,   112,   113,   114,
     115,     0,   117,   118,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   127,   128,   129,     0,   130,
     131,   132,   133,   134,     0,     0,     0,   136,   137,   138,
     139,   140,   141,     0,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,     0,   153,   154,   155,     0,
       0,     0,     0,     0,     0,     0,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,     0,   205,
       0,   206,   207,   208,   209,     0,   210,     0,   211,     0,
       0,     0,   214,   215,   509,     0,   218,     0,   219,     0,
     220,   221,   222,     0,   223,   224,   225,   226,   227,   228,
     229,     0,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,     0,   243,   244,   245,   246,
     247,   248,   249,   250,     0,   251,     0,   252,     0,     0,
     255,     0,   257,   258,   259,   260,   261,   262,     0,     0,
     263,     0,   265,     0,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   510,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,     0,   296,   297,   298,   299,
     300,     0,   301,   302,     0,   304,     0,   305,   306,   307,
     308,   309,   310,     0,   311,   312,     0,     0,   313,   314,
     315,     0,     0,   316,   317,     0,   319,     0,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     350,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,     0,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,     0,   392,   393,   394,   395,   396,
       0,   398,   399,   400,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   512,   415,
     416,   417,     0,   418,   419,     0,   420,     0,   422,   423,
     424,   425,   426,     0,   427,   428,     0,     0,   429,   430,
     431,   432,   433,     0,   434,   435,   436,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,     0,
       0,   448,   449,   450,   451,   452,   453,   454,     0,   455,
       0,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,   483,     0,     0,  2505,  1302,   582,     0,     0,  1688,
     887,     0,     0,     0,     0,     0,  1689,     0,  2628,  1690,
    1691,  1692,    94,    95,    96,    97,    98,    99,   100,   101,
    1130,   102,   103,   104,  1131,  1132,  1133,  1134,  1135,  1136,
    1137,   105,   106,  1138,   107,   108,   109,  2506,   111,   112,
     113,     0,   696,  2507,   698,   699,  1139,   119,   120,   121,
     122,   123,   124,  1140,  1141,   125,   126,   700,   701,   129,
    1142,   130,   131,   132,   133,     0,  1143,  2508,  1144,   136,
     137,   138,   139,   140,   141,  2509,   143,   144,   145,  1145,
     146,   147,   148,   149,   150,   151,  1146,  2510,   153,   154,
     155,  2511,  2512,  2513,  2514,  1147,  1148,  2515,   161,   162,
     163,   164,   165,   166,   167,   710,   711,   170,  1149,   171,
    1150,   172,   173,   174,   175,   176,   177,  1151,   178,   179,
     180,   181,   182,  1152,  1153,   183,   184,   712,   186,   187,
    1154,   188,   189,   190,  1155,   191,   192,   193,  1156,   194,
     195,   196,   197,     0,   199,   200,   201,   202,   203,     0,
    1157,   205,  1158,   206,   207,   713,   209,  1159,   210,  1160,
     211,  2516,  1161,  2517,   214,   215,  2518,  2519,   218,  1162,
     219,  1163,     0,     0,   222,  1164,   223,   224,   225,   226,
     227,   228,   229,  2520,   231,   232,   233,   234,  1165,   235,
     236,   237,   238,   239,   240,  1166,   241,  2521,     0,   244,
     245,   246,   247,   248,   720,   721,  1167,   722,  1168,   252,
    2522,  2523,   255,  2524,   257,   258,   259,   260,   261,   262,
    1169,  1170,   263,  2525,   265,  2526,  1171,   267,   268,   269,
    1172,  1173,   270,   271,   272,   273,   274,  2527,   276,   277,
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
     288,   289,   290,   291,   292,   293,   729,  2528,   731,   297,
     298,   299,  2529,  1174,   301,   302,  2530,   304,  1175,     0,
     306,   733,   308,   309,   310,  1176,   311,   312,  1177,  1178,
    2531,   314,   315,  1179,  1180,   316,     0,  2532,   319,  2533,
       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,  1181,   332,   333,     0,   335,   336,     0,   338,   339,
     340,  1182,   341,   342,   343,   344,   345,   346,  1183,   347,
     348,   349,   736,   351,   352,   353,   354,  1184,   355,   356,
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
     367,  1185,   368,   369,  2534,   371,   372,   373,   738,   375,
     376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
    1186,   386,   387,   388,   389,   390,  2535,   392,  2536,   394,
     395,   396,  2537,   398,   399,   742,   401,  1187,   402,   403,
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
    2538,   415,     0,   417,  1188,   418,   419,  1189,   420,  2539,
     422,   423,   424,   425,   426,  1190,   745,   746,  1191,  1192,
     429,   430,     0,   432,     0,  1193,   434,   435,  2540,   437,
     438,   439,   440,   441,  1194,  1195,   442,   443,   444,   445,
     446,  2541,  1196,   448,   449,   450,   451,   452,     0,   749,
    1198,   455,  2542,   457,   458,   459,   460,   461,  1199,  1200,
     462,  1201,  1202,   463,   464,   465,   466,   467,   468,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     480,   481,   482,   483,     0,   506,     0,  1693,  1694,  1695,
    1688,  2543,  2544,  1698,  1699,  1700,  1701,  1689,     0,     0,
    1690,  1691,  1692,    94,    95,    96,    97,    98,    99,   100,
     101,     0,   102,   103,   104,     0,     0,     0,     0,     0,
       0,     0,   105,   106,     0,   107,   108,   109,     0,   111,
     112,   113,   114,   115,     0,   117,   118,     0,   119,   120,
     121,   122,   123,   124,     0,     0,   125,   126,   127,   128,
     129,     0,   130,   131,   132,   133,   134,     0,     0,     0,
     136,   137,   138,   139,   140,   141,     0,   143,   144,   145,
       0,   146,   147,   148,   149,   150,   151,     0,     0,   153,
     154,   155,     0,     0,     0,     0,     0,     0,     0,   161,
     162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
     171,     0,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,     0,     0,   183,   184,   185,   186,
     187,     0,   188,   189,   190,     0,   191,   192,   193,     0,
     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
     204,     0,   205,     0,   206,   207,   208,   209,     0,   210,
       0,   211,     0,     0,     0,   214,   215,   509,     0,   218,
       0,   219,     0,   220,   221,   222,     0,   223,   224,   225,
     226,   227,   228,   229,     0,   231,   232,   233,   234,     0,
     235,   236,   237,   238,   239,   240,     0,   241,     0,   243,
     244,   245,   246,   247,   248,   249,   250,     0,   251,     0,
     252,     0,     0,   255,     0,   257,   258,   259,   260,   261,
     262,     0,     0,   263,     0,   265,     0,     0,   267,   268,
     269,     0,     0,   270,   271,   272,   273,   274,   510,   276,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
     287,   288,   289,   290,   291,   292,   293,   294,     0,   296,
     297,   298,   299,   300,     0,   301,   302,     0,   304,     0,
     305,   306,   307,   308,   309,   310,     0,   311,   312,     0,
       0,   313,   314,   315,     0,     0,   316,   317,     0,   319,
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
     339,   340,     0,   341,   342,   343,   344,   345,   346,     0,
     347,   348,   349,   350,   351,   352,   353,   354,     0,   355,
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
     366,   367,     0,   368,   369,     0,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,     0,   386,   387,   388,   389,   390,     0,   392,   393,
     394,   395,   396,     0,   398,   399,   400,   401,     0,   402,
     403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
     413,   512,   415,   416,   417,     0,   418,   419,     0,   420,
       0,   422,   423,   424,   425,   426,     0,   427,   428,     0,
       0,   429,   430,   431,   432,   433,     0,   434,   435,   436,
     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
     445,   446,     0,     0,   448,   449,   450,   451,   452,   453,
     454,     0,   455,     0,   457,   458,   459,   460,   461,     0,
       0,   462,     0,     0,   463,   464,   465,   466,   467,   468,
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   483,     0,     0,     0,  1693,  1694,
    1695,     0,  1696,  1697,  1698,  1699,  1700,  1701,  1379,     0,
       0,  1380,     0,     0,     0,  1381,  1382,  1383,  1384,  1385,
    1386,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1387,     0,  1379,     0,     0,
    1380,     0,     0,  1389,  1381,  1382,  1383,  1384,  1385,  1386,
    1390,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1387,     0,     0,     0,     0,     0,
       0,     0,  1389,  1379,     0,  1391,  1380,     0,     0,  1390,
    1381,  1382,  1383,  1384,  1385,  1386,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1387,     0,  1379,     0,  1391,  1380,     0,     0,  1389,  1381,
    1382,  1383,  1384,  1385,  1386,  1390,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1387,
       0,     0,     0,     0,     0,     0,     0,  1389,     0,     0,
    1391,     0,     0,     0,  1390,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1391,
       0,     0,     0,     0,     0,     0,  1392,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1393,     0,     0,     0,     0,  1394,     0,     0,
    1379,     0,     0,  1380,     0,  1392,     0,  1381,  1382,  1383,
    1384,  1385,  1386,     0,     0,     0,     0,     0,     0,  1395,
    1396,  1393,     0,     0,     0,     0,  1394,  1387,     0,     0,
       0,     0,     0,     0,  1397,  1389,     0,     0,     0,     0,
       0,  1392,  1390,     0,     0,     0,     0,     0,  1395,  1396,
       0,     0,     0,     0,     0,     0,     0,  1393,     0,     0,
       0,     0,  1394,  1397,     0,     0,     0,  1391,     0,     0,
    1392,     0,  1398,     0,     0,  1399,     0,     0,     0,     0,
       0,     0,     0,     0,  1395,  1396,  1393,     0,     0,  1400,
       0,  1394,  1401,     0,     0,     0,     0,     0,     0,  1397,
       0,  1398,     0,     0,  1399,     0,     0,     0,     0,     0,
       0,     0,     0,  1395,  1396,     0,     0,     0,  1400,     0,
       0,  1401,     0,     0,     0,     0,     0,     0,  1397,     0,
       0,     0,     0,     0,     0,     0,     0,  1398,     0,     0,
    1399,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1400,     0,     0,  1401,     0,     0,
       0,     0,     0,     0,     0,     0,  1398,     0,  1392,  1399,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1402,     0,  1400,  1393,     0,  1401,     0,     0,  1394,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1402,  1395,  1396,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1397,     0,     0,     0,
    1379,     0,     0,  1380,     0,     0,     0,  1381,  1382,  1383,
    1384,  1385,  1386,     0,     0,     0,  1402,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1387,     0,     0,
       0,     0,     0,     0,  1398,  1389,     0,  1399,     0,     0,
       0,     0,  1390,     0,     0,  1402,     0,     0,     0,     0,
       0,  1400,     0,  1403,  1401,     0,  1404,  1405,  1406,     0,
    1407,  1408,  1409,  1410,  1411,  1412,     0,  1391,     0,     0,
    2602,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1403,     0,     0,  1404,  1405,  1406,     0,  1407,
    1408,  1409,  1410,  1411,  1412,     0,     0,     0,     0,  2624,
       0,     0,     0,     0,  1379,     0,     0,  1380,     0,     0,
       0,  1381,  1382,  1383,  1384,  1385,  1386,     0,  1403,     0,
       0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,  1411,
    1412,  1387,     0,     0,     0,  2627,     0,     0,     0,  1389,
       0,     0,     0,  1402,     0,     0,  1390,  1403,     0,     0,
    1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,
       0,     0,     0,     0,  2766,     0,  1379,     0,  1392,  1380,
       0,  1391,     0,  1381,  1382,  1383,  1384,  1385,  1386,     0,
       0,     0,     0,     0,  1393,     0,     0,     0,     0,  1394,
       0,     0,     0,  1387,     0,     0,     0,     0,     0,     0,
       0,  1389,     0,     0,     0,     0,     0,     0,  1390,     0,
       0,  1395,  1396,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1397,     0,     0,     0,
       0,     0,     0,  1391,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1403,     0,     0,  1404,  1405,
    1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,
       0,     0,  2829,     0,  1398,     0,     0,  1399,     0,     0,
       0,     0,  1392,     0,     0,     0,     0,     0,     0,     0,
       0,  1400,     0,     0,  1401,     0,     0,     0,  1393,     0,
       0,     0,     0,  1394,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1395,  1396,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1397,     0,     0,     0,  1392,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1393,     0,     0,     0,     0,  1394,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1398,     0,
       0,  1399,     0,  1402,     0,     0,     0,  1395,  1396,     0,
       0,     0,     0,     0,     0,  1400,     0,     0,  1401,     0,
       0,     0,  1397,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1398,     0,     0,  1399,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1400,     0,     0,
    1401,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1403,     0,  1402,  1404,  1405,
    1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,
       0,     0,  2936,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1402,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1403,
       0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,
    1411,  1412,     0,     0,     0,     0,  2984,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1403,  1129,     0,  1404,  1405,  1406,     0,  1407,  1408,
    1409,  1410,  1411,  1412,     0,     0,     0,     0,  2997,     0,
      94,    95,    96,    97,    98,    99,   100,   101,  1130,   102,
     103,   104,  1131,  1132,  1133,  1134,  1135,  1136,  1137,   105,
     106,  1138,   107,   108,   109,   781,   111,   112,   113,   782,
     783,   784,   785,   786,  1139,   119,   120,   121,   122,   123,
     124,  1140,  1141,   125,   126,   787,   788,   129,  1142,   130,
     131,   132,   133,   789,  1143,   790,  1144,   136,   137,   138,
     139,   140,   141,   791,   143,   144,   145,  1145,   146,   147,
     148,   149,   150,   151,  1146,   792,   153,   154,   155,   793,
     794,   795,   796,  1147,  1148,   797,   161,   162,   163,   164,
     165,   166,   167,   798,   799,   170,  1149,   171,  1150,   172,
     173,   174,   175,   176,   177,  1151,   178,   179,   180,   181,
     182,  1152,  1153,   183,   184,   185,   186,   187,  1154,   188,
     189,   190,  1155,   191,   192,   193,  1156,   194,   195,   196,
     197,   800,   199,   200,   201,   202,   203,   801,  1157,   205,
    1158,   206,   207,   802,   209,  1159,   210,  1160,   211,   803,
    1161,   804,   214,   215,   805,   806,   218,  1162,   219,  1163,
     807,   808,   222,  1164,   223,   224,   225,   226,   227,   228,
     229,   809,   231,   232,   233,   234,  1165,   235,   236,   237,
     238,   239,   240,  1166,   241,   810,   811,   244,   245,   246,
     247,   248,   812,   813,  1167,   814,  1168,   252,   815,   816,
     255,   817,   257,   258,   259,   260,   261,   262,  1169,  1170,
     263,   818,   265,   819,  1171,   267,   268,   269,  1172,  1173,
     270,   271,   272,   273,   274,   820,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   821,   822,   823,   297,   298,   299,
     824,  1174,   301,   302,   825,   304,  1175,   826,   306,   827,
     308,   309,   310,  1176,   311,   312,  1177,  1178,   313,   314,
     315,  1179,  1180,   316,   828,   829,   319,   830,   831,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,  1181,
     332,   333,   832,   335,   336,   833,   338,   339,   340,  1182,
     341,   342,   343,   344,   345,   346,  1183,   347,   348,   349,
     834,   351,   352,   353,   354,  1184,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,  1185,
     368,   369,   835,   371,   372,   373,   836,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,  1186,   386,
     387,   388,   389,   390,   837,   392,   838,   394,   395,   396,
     839,   398,   399,   840,   401,  1187,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   841,   415,
     842,   417,  1188,   418,   419,  1189,   420,   843,   422,   423,
     424,   425,   426,  1190,   844,   845,  1191,  1192,   429,   430,
     846,   432,   847,  1193,   434,   435,   848,   437,   438,   439,
     440,   441,  1194,  1195,   442,   443,   444,   445,   446,   849,
    1196,   448,   449,   450,   451,   452,  1197,   851,  1198,   455,
     852,   457,   458,   459,   460,   461,  1199,  1200,   462,  1201,
    1202,   463,   464,   465,   466,   467,   468,   853,   854,   855,
     856,   857,   858,   859,   860,   861,   862,   863,   480,   481,
     482,   483,   506,     0,     0,     0,     0,     0,     0,     0,
       0,  1813,     0,     0,     0,     0,     0,     0,     0,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,     0,   111,   112,   113,   114,
     115,     0,   117,   118,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   127,   128,   129,     0,   130,
     131,   132,   133,   134,     0,     0,     0,   136,   137,   138,
     139,   140,   141,     0,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,     0,   153,   154,   155,     0,
       0,     0,     0,     0,     0,     0,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   198,   199,   200,   201,   202,   203,   204,     0,   205,
       0,   206,   207,   208,   209,     0,   210,     0,   211,     0,
       0,     0,   214,   215,   509,     0,   218,     0,   219,     0,
     220,   221,   222,     0,   223,   224,   225,   226,   227,   228,
     229,     0,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,     0,   243,   244,   245,   246,
     247,   248,   249,   250,     0,   251,     0,   252,     0,     0,
     255,     0,   257,   258,   259,   260,   261,   262,     0,     0,
     263,     0,   265,     0,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   510,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   294,     0,   296,   297,   298,   299,
     300,     0,   301,   302,     0,   304,     0,   305,   306,   307,
     308,   309,   310,     0,   311,   312,     0,     0,   313,   314,
     315,     0,     0,   316,   317,     0,   319,     0,   321,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   334,   335,   336,   337,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     350,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,     0,   371,   372,   373,   374,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,     0,   392,   393,   394,   395,   396,
       0,   398,   399,   400,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   512,   415,
     416,   417,     0,   418,   419,     0,   420,     0,   422,   423,
     424,   425,   426,     0,   427,   428,     0,     0,   429,   430,
     431,   432,   433,     0,   434,   435,   436,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,     0,
       0,   448,   449,   450,   451,   452,   453,   454,     0,   455,
       0,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,   483,   780,  1302,   582,     0,     0,     0,   887,     0,
       0,  2311,     0,     0,     0,     0,     0,     0,     0,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,   781,   111,   112,   113,   782,
     783,   784,   785,   786,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   787,   788,   129,     0,   130,
     131,   132,   133,   789,     0,   790,     0,   136,   137,   138,
     139,   140,   141,   791,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,   792,   153,   154,   155,   793,
     794,   795,   796,     0,     0,   797,   161,   162,   163,   164,
     165,   166,   167,   798,   799,   170,  1439,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   800,   199,   200,   201,   202,   203,   801,  1303,   205,
       0,   206,   207,   802,   209,     0,   210,     0,   211,   803,
       0,   804,   214,   215,   805,   806,   218,     0,   219,     0,
     807,   808,   222,     0,   223,   224,   225,   226,   227,   228,
     229,   809,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,   810,   811,   244,   245,   246,
     247,   248,   812,   813,     0,   814,     0,   252,   815,   816,
     255,   817,   257,   258,   259,   260,   261,   262,     0,     0,
     263,   818,   265,   819,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   820,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   821,   822,   823,   297,   298,   299,
     824,     0,   301,   302,   825,   304,     0,   826,   306,   827,
     308,   309,   310,     0,   311,   312,  1304,     0,   313,   314,
     315,     0,     0,   316,   828,   829,   319,   830,   831,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   832,   335,   336,   833,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     834,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,   835,   371,   372,   373,   836,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,   837,   392,   838,   394,   395,   396,
     839,   398,   399,   840,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   841,   415,
     842,   417,     0,   418,   419,     0,   420,   843,   422,   423,
     424,   425,   426,     0,   844,   845,     0,     0,   429,   430,
     846,   432,   847,  1305,   434,   435,   848,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,   849,
       0,   448,   449,   450,   451,   452,  1197,   851,     0,   455,
     852,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   853,   854,   855,
     856,   857,   858,   859,   860,   861,   862,   863,   480,   481,
     482,   483,   780,  1302,   582,     0,     0,     0,   887,  1306,
    1307,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,   781,   111,   112,   113,   782,
     783,   784,   785,   786,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   787,   788,   129,     0,   130,
     131,   132,   133,   789,     0,   790,     0,   136,   137,   138,
     139,   140,   141,   791,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,   792,   153,   154,   155,   793,
     794,   795,   796,     0,     0,   797,   161,   162,   163,   164,
     165,   166,   167,   798,   799,   170,  1441,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   800,   199,   200,   201,   202,   203,   801,  1303,   205,
       0,   206,   207,   802,   209,     0,   210,     0,   211,   803,
       0,   804,   214,   215,   805,   806,   218,     0,   219,     0,
     807,   808,   222,     0,   223,   224,   225,   226,   227,   228,
     229,   809,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,   810,   811,   244,   245,   246,
     247,   248,   812,   813,     0,   814,     0,   252,   815,   816,
     255,   817,   257,   258,   259,   260,   261,   262,     0,     0,
     263,   818,   265,   819,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   820,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   821,   822,   823,   297,   298,   299,
     824,     0,   301,   302,   825,   304,     0,   826,   306,   827,
     308,   309,   310,     0,   311,   312,  1304,     0,   313,   314,
     315,     0,     0,   316,   828,   829,   319,   830,   831,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   832,   335,   336,   833,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     834,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,   835,   371,   372,   373,   836,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,   837,   392,   838,   394,   395,   396,
     839,   398,   399,   840,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   841,   415,
     842,   417,     0,   418,   419,     0,   420,   843,   422,   423,
     424,   425,   426,     0,   844,   845,     0,     0,   429,   430,
     846,   432,   847,  1305,   434,   435,   848,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,   849,
       0,   448,   449,   450,   451,   452,  1197,   851,     0,   455,
     852,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   853,   854,   855,
     856,   857,   858,   859,   860,   861,   862,   863,   480,   481,
     482,   483,   780,  1302,   582,     0,     0,     0,   887,  1306,
    1307,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      94,    95,    96,    97,    98,    99,   100,   101,     0,   102,
     103,   104,     0,     0,     0,     0,     0,     0,     0,   105,
     106,     0,   107,   108,   109,   781,   111,   112,   113,   782,
     783,   784,   785,   786,     0,   119,   120,   121,   122,   123,
     124,     0,     0,   125,   126,   787,   788,   129,     0,   130,
     131,   132,   133,   789,     0,   790,     0,   136,   137,   138,
     139,   140,   141,   791,   143,   144,   145,     0,   146,   147,
     148,   149,   150,   151,     0,   792,   153,   154,   155,   793,
     794,   795,   796,     0,     0,   797,   161,   162,   163,   164,
     165,   166,   167,   798,   799,   170,     0,   171,     0,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,     0,     0,   183,   184,   185,   186,   187,     0,   188,
     189,   190,     0,   191,   192,   193,     0,   194,   195,   196,
     197,   800,   199,   200,   201,   202,   203,   801,  1303,   205,
       0,   206,   207,   802,   209,     0,   210,     0,   211,   803,
       0,   804,   214,   215,   805,   806,   218,     0,   219,     0,
     807,   808,   222,     0,   223,   224,   225,   226,   227,   228,
     229,   809,   231,   232,   233,   234,     0,   235,   236,   237,
     238,   239,   240,     0,   241,   810,   811,   244,   245,   246,
     247,   248,   812,   813,     0,   814,     0,   252,   815,   816,
     255,   817,   257,   258,   259,   260,   261,   262,     0,     0,
     263,   818,   265,   819,     0,   267,   268,   269,     0,     0,
     270,   271,   272,   273,   274,   820,   276,   277,   278,   279,
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
     290,   291,   292,   293,   821,   822,   823,   297,   298,   299,
     824,     0,   301,   302,   825,   304,     0,   826,   306,   827,
     308,   309,   310,     0,   311,   312,  1304,     0,   313,   314,
     315,     0,     0,   316,   828,   829,   319,   830,   831,   322,
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
     332,   333,   832,   335,   336,   833,   338,   339,   340,     0,
     341,   342,   343,   344,   345,   346,     0,   347,   348,   349,
     834,   351,   352,   353,   354,     0,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,     0,
     368,   369,   835,   371,   372,   373,   836,   375,   376,   377,
     378,   379,   380,   381,   382,   383,   384,   385,     0,   386,
     387,   388,   389,   390,   837,   392,   838,   394,   395,   396,
     839,   398,   399,   840,   401,     0,   402,   403,   404,   405,
     406,   407,   408,   409,   410,   411,   412,   413,   841,   415,
     842,   417,     0,   418,   419,     0,   420,   843,   422,   423,
     424,   425,   426,     0,   844,   845,     0,     0,   429,   430,
     846,   432,   847,  1305,   434,   435,   848,   437,   438,   439,
     440,   441,     0,     0,   442,   443,   444,   445,   446,   849,
       0,   448,   449,   450,   451,   452,  1197,   851,     0,   455,
     852,   457,   458,   459,   460,   461,     0,     0,   462,     0,
       0,   463,   464,   465,   466,   467,   468,   853,   854,   855,
     856,   857,   858,   859,   860,   861,   862,   863,   480,   481,
     482,   483,     0,     0,  1379,     0,     0,  1380,     0,  1306,
    1307,  1381,  1382,  1383,  1384,  1385,  1386,  1379,     0,     0,
    1380,     0,     0,     0,  1381,  1382,  1383,  1384,  1385,  1386,
       0,  1387,     0,     0,     0,  1826,     0,     0,     0,  1389,
       0,     0,     0,     0,  1387,     0,  1390,     0,     0,     0,
       0,     0,  1389,  1379,     0,     0,  1380,     0,     0,  1390,
    1381,  1382,  1383,  1384,  1385,  1386,  1379,     0,     0,  1380,
       0,  1391,     0,  1381,  1382,  1383,  1384,  1385,  1386,     0,
    1387,     0,     0,     0,  1391,     0,     0,     0,  1389,     0,
       0,     0,     0,  1387,     0,  1390,  2039,     0,     0,     0,
       0,  1389,  1379,     0,     0,  1380,     0,     0,  1390,  1381,
    1382,  1383,  1384,  1385,  1386,     0,     0,     0,     0,     0,
    1391,     0,  1827,     0,     0,     0,     0,     0,     0,  1387,
       0,     0,     0,  1391,     0,     0,     0,  1389,     0,     0,
       0,     0,     0,     0,  1390,     0,     0,  1379,     0,     0,
    1380,     0,     0,     0,  1381,  1382,  1383,  1384,  1385,  1386,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1391,
       0,     0,  1392,     0,  1387,  2078,     0,  2084,     0,     0,
    2079,     0,  1389,     0,     0,  1392,     0,     0,  1393,  1390,
       0,     0,     0,  1394,     0,     0,     0,     0,     0,     0,
       0,  1393,     0,     0,     0,     0,  1394,     0,     0,     0,
    3084,     0,     0,     0,  1391,  1395,  1396,     0,     0,     0,
       0,  1392,     0,     0,     0,     0,     0,     0,  1395,  1396,
    1397,     0,     0,     0,  1392,     0,     0,  1393,     0,     0,
       0,     0,  1394,  1397,     0,     0,     0,     0,     0,     0,
    1393,     0,     0,     0,     0,  1394,     0,     0,     0,     0,
       0,     0,     0,     0,  1395,  1396,     0,     0,  1398,     0,
    1392,  1399,     0,     0,     0,     0,     0,  1395,  1396,  1397,
       0,  1398,     0,     0,  1399,  1400,  1393,     0,  1401,     0,
       0,  1394,  1397,     0,     0,     0,     0,     0,  1400,     0,
       0,  1401,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1395,  1396,  1392,     0,  1398,     0,     0,
    1399,     0,     0,     0,     0,     0,     0,     0,  1397,     0,
    1398,  1393,     0,  1399,  1400,     0,  1394,  1401,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1400,     0,     0,
    1401,     0,     0,     0,     0,     0,     0,     0,  1395,  1396,
    3085,     0,     0,     0,     0,     0,  1398,     0,     0,  1399,
       0,     0,     0,  1397,     0,     0,     0,  1402,     0,     0,
       0,     0,     0,  1400,     0,     0,  1401,     0,     0,     0,
    1402,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2051,     0,     0,     0,     0,     0,
       0,  1398,     0,     0,  1399,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1402,     0,  1400,     0,
       0,  1401,     0,     0,     0,     0,     0,  1831,     0,  1402,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1402,     0,     0,     0,  1403,
       0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,
    1411,  1412,  1403,     0,     0,  1404,  1405,  1406,     0,  1407,
    1408,  1409,  1410,  1411,  1412,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1402,     0,     0,     0,     0,     0,     0,     0,  1403,     0,
       0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,  1411,
    1412,  1403,     0,     0,  1404,  1405,  1406,     0,  1407,  1408,
    1409,  1410,  1411,  1412,     0,     0,  1379,     0,     0,  1380,
       0,     0,     0,  1381,  1382,  1383,  1384,  1385,  1386,     0,
       0,     0,     0,     0,     0,     0,     0,  1403,     0,     0,
    1404,  1405,  1406,  1387,  1407,  1408,  1409,  1410,  1411,  1412,
       0,  1389,     0,     0,     0,     0,     0,     0,  1390,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1403,  1391,     0,  1404,  1405,  1406,     0,  1407,
    1408,  1409,  1410,  1411,  1412,  1379,     0,     0,  1380,     0,
       0,     0,  1381,  1382,  1383,  1384,  1385,  1386,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1387,     0,  1379,  2091,     0,  1380,     0,     0,
    1389,  1381,  1382,  1383,  1384,  1385,  1386,  1390,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1387,     0,     0,     0,     0,     0,     0,     0,  1389,
       0,     0,  1391,     0,     0,     0,  1390,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2089,
       0,     0,     0,     0,  1392,     0,     0,     0,     0,     0,
       0,  1391,     0,     0,     0,     0,     0,     0,     0,     0,
    1393,     0,     0,  1379,     0,  1394,  1380,     0,     0,     0,
    1381,  1382,  1383,  1384,  1385,  1386,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1395,  1396,     0,
    1387,     0,     0,  2359,     0,     0,     0,     0,  1389,     0,
       0,     0,  1397,     0,     0,  1390,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1392,     0,     0,     0,     0,     0,     0,
    1391,     0,     0,     0,     0,     0,     0,     0,     0,  1393,
    1398,     0,     0,  1399,  1394,     0,     0,     0,     0,     0,
       0,     0,  1392,     0,     0,     0,     0,  1400,     0,     0,
    1401,     0,     0,     0,     0,     0,  1395,  1396,  1393,     0,
       0,     0,     0,  1394,     0,     0,     0,     0,     0,     0,
       0,  1397,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1395,  1396,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1397,     0,     0,     0,     0,     0,     0,     0,     0,  1398,
       0,     0,  1399,     0,     0,     0,     0,     0,     0,     0,
       0,  1392,     0,     0,  1379,     0,  1400,  1380,     0,  1401,
       0,  1381,  1382,  1383,  1384,  1385,  1386,  1393,  1398,  1402,
       0,  1399,  1394,     0,     0,     0,     0,     0,     0,     0,
       0,  1387,     0,     0,     0,  1400,     0,     0,  1401,  1389,
       0,     0,     0,     0,  1395,  1396,  1390,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1397,
       0,     0,     0,     0,     0,     0,     0,  1379,     0,     0,
    1380,  1391,     0,     0,  1381,  1382,  1383,  1384,  1385,  1386,
    1379,     0,     0,  1380,     0,     0,     0,  1381,     0,     0,
    1384,  1385,  1386,     0,  1387,     0,     0,  1398,  1402,     0,
    1399,     0,  1389,     0,     0,     0,     0,  1387,     0,  1390,
       0,     0,     0,     0,  1400,  1389,     0,  1401,     0,     0,
       0,  1403,  1390,     0,  1404,  1405,  1406,  1402,  1407,  1408,
    1409,  1410,  1411,  1412,  1391,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1391,     0,     0,
       0,     0,     0,     0,  1379,     0,     0,  1380,     0,     0,
    2315,  1381,     0,     0,  1384,  1385,  1386,     0,     0,     0,
       0,     0,  1392,     0,     0,     0,     0,     0,     0,     0,
       0,  1387,     0,     0,     0,     0,     0,     0,  1393,  1389,
       0,     0,     0,  1394,     0,     0,  1390,     0,     0,     0,
    1403,     0,     0,  1404,  1405,  1406,  1402,  1407,  1408,  1409,
    1410,  1411,  1412,     0,     0,  1395,  1396,     0,     0,     0,
       0,  1391,     0,     0,     0,     0,     0,     0,     0,  1403,
    1397,     0,  1404,  1405,  1406,  1392,  1407,  1408,  1409,  1410,
    1411,  1412,     0,     0,     0,     0,     0,  1379,  1392,     0,
    1380,  1393,     0,     0,  1381,     0,  1394,  1384,  1385,  1386,
       0,     0,     0,     0,  1393,     0,     0,     0,  1398,  1394,
       0,  1399,     0,     0,     0,     0,     0,     0,  1395,  1396,
       0,     0,  1389,     0,     0,  1400,     0,     0,  1401,  1390,
       0,  1395,  1396,  1397,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1397,     0,  1403,     0,
       0,  1404,  1405,  1406,  1391,  1407,  1408,  1409,  1410,  1411,
    1412,     0,  1392,     0,     0,     0,     0,     0,     0,     0,
       0,  1398,     1,     0,  1399,     0,     0,     0,  1393,     0,
       0,     0,     2,  1394,  1398,     0,     0,  1399,  1400,     0,
       0,  1401,     0,     0,     0,     0,     0,     0,     0,     0,
       5,  1400,     0,     0,  1401,  1395,  1396,     0,     0,     6,
       0,     0,     0,     0,     0,     0,     0,  1402,     0,     0,
    1397,     7,     0,     0,     0,     0,     0,     0,  1379,     0,
       0,  1380,     8,     0,     0,  1381,     0,     0,  1384,  1385,
    1386,     0,     0,     0,     9,     0,    10,     0,     0,     0,
       0,     0,     0,     0,     0,  1392,     0,     0,  1398,     0,
       0,  1399,     0,  1389,    11,     0,     0,     0,     0,     0,
    1390,  1393,     0,     0,     0,  1400,  1394,     0,    12,     0,
    1402,     0,     0,     0,     0,     0,     0,     0,    13,     0,
       0,     0,     0,  1402,    14,  1391,     0,     0,  1395,  1396,
       0,     0,    15,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1397,     0,     0,     0,     0,    18,  1403,
       0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,
    1411,  1412,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1398,     0,     0,  1399,     0,     0,     0,     0,     0,
       0,     0,    20,     0,     0,     0,     0,  1402,  1400,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1403,     0,     0,  1404,  1405,  1406,    21,  1407,
    1408,  1409,  1410,  1846,  1412,  1403,  1392,     0,  1404,  1405,
    1406,     0,  1407,  1408,  1409,  1410,  1411,  1412,     0,     0,
       0,     0,  1393,     0,     0,     0,     0,  1394,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0, -1845,
   -1845,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1397,     0,     0,     0,     0,     0,
    1402,     0,     0,     0,     0,    22,     0,     0,    23,  1403,
       0,     0,  1404,  1405,  1406,     0,  1407,  1408,  1409,  1410,
    1411,  1412,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0, -1845,     0,    24,     0,     0,
       0,     0,     0,     0,     0,     0,    25,     0,     0,  1400,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      26,     0,     0,     0,     0,     0,     0,    27,     0,     0,
       0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    29,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    30,     0,     0,     0,    31,     0,     0,
       0,     0,  1403,     0,     0,  1404,  1405,  1406,     0,  1407,
    1408,  1409,  1410,  1411,  1412,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    32,     0,     0,     0,     0,    33,     0,
       0,  1402,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1129,     0,
    1750,     0,     0,  1403,     0,     0,  1404,  1405,  1406,     0,
    1407,  1408,  1409,  1410,  1411,  1412,    94,    95,    96,    97,
      98,    99,   100,   101,  1130,   102,   103,   104,  1131,  1132,
    1133,  1134,  1135,  1136,  1137,   105,   106,  1138,   107,   108,
     109,   781,   111,   112,   113,   782,   783,   784,   785,   786,
    1139,   119,   120,   121,   122,   123,   124,  1140,  1141,   125,
     126,   787,   788,   129,  1142,   130,   131,   132,   133,   789,
    1143,   790,  1144,   136,   137,   138,   139,   140,   141,   791,
     143,   144,   145,  1145,   146,   147,   148,   149,   150,   151,
    1146,   792,   153,   154,   155,   793,   794,   795,   796,  1147,
    1148,   797,   161,   162,   163,   164,   165,   166,   167,   798,
     799,   170,  1149,   171,  1150,   172,   173,   174,   175,   176,
     177,  1151,   178,   179,   180,   181,   182,  1152,  1153,   183,
     184,   185,   186,   187,  1154,   188,   189,   190,  1155,   191,
     192,   193,  1156,   194,   195,   196,   197,   800,   199,   200,
     201,   202,   203,   801,  1157,   205,  1158,   206,   207,   802,
     209,  1159,   210,  1160,   211,   803,  1161,   804,   214,   215,
     805,   806,   218,  1162,   219,  1163,   807,   808,   222,  1164,
     223,   224,   225,   226,   227,   228,   229,   809,   231,   232,
     233,   234,  1165,   235,   236,   237,   238,   239,   240,  1166,
     241,   810,   811,   244,   245,   246,   247,   248,   812,   813,
    1167,   814,  1168,   252,   815,   816,   255,   817,   257,   258,
     259,   260,   261,   262,  1169,  1170,   263,   818,   265,   819,
    1171,   267,   268,   269,  1172,  1173,   270,   271,   272,   273,
     274,   820,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     821,   822,   823,   297,   298,   299,   824,  1174,   301,   302,
     825,   304,  1175,   826,   306,   827,   308,   309,   310,  1176,
     311,   312,  1177,  1178,   313,   314,   315,  1179,  1180,   316,
     828,   829,   319,   830,   831,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,  1181,   332,   333,   832,   335,
     336,   833,   338,   339,   340,  1182,   341,   342,   343,   344,
     345,   346,  1183,   347,   348,   349,   834,   351,   352,   353,
     354,  1184,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,  1185,   368,   369,   835,   371,
     372,   373,   836,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,  1186,   386,   387,   388,   389,   390,
     837,   392,   838,   394,   395,   396,   839,   398,   399,   840,
     401,  1187,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   841,   415,   842,   417,  1188,   418,
     419,  1189,   420,   843,   422,   423,   424,   425,   426,  1190,
     844,   845,  1191,  1192,   429,   430,   846,   432,   847,  1193,
     434,   435,   848,   437,   438,   439,   440,   441,  1194,  1195,
     442,   443,   444,   445,   446,   849,  1196,   448,   449,   450,
     451,   452,  1197,   851,  1198,   455,   852,   457,   458,   459,
     460,   461,  1199,  1200,   462,  1201,  1202,   463,   464,   465,
     466,   467,   468,   853,   854,   855,   856,   857,   858,   859,
     860,   861,   862,   863,   480,   481,   482,   483,  1129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,  1130,   102,   103,   104,  1131,  1132,
    1133,  1134,  1135,  1136,  1137,   105,   106,  1138,   107,   108,
     109,   781,   111,   112,   113,   782,   783,   784,   785,   786,
    1139,   119,   120,   121,   122,   123,   124,  1140,  1141,   125,
     126,   787,   788,   129,  1142,   130,   131,   132,   133,   789,
    1143,   790,  1144,   136,   137,   138,   139,   140,   141,   791,
     143,   144,   145,  1145,   146,   147,   148,   149,   150,   151,
    1146,   792,   153,   154,   155,   793,   794,   795,   796,  1147,
    1148,   797,   161,   162,   163,   164,   165,   166,   167,   798,
     799,   170,  1149,   171,  1150,   172,   173,   174,   175,   176,
     177,  1151,   178,   179,   180,   181,   182,  1152,  1153,   183,
     184,   185,   186,   187,  1154,   188,   189,   190,  1155,   191,
     192,   193,  1156,   194,   195,   196,   197,   800,   199,   200,
     201,   202,   203,   801,  1157,   205,  1158,   206,   207,   802,
     209,  1159,   210,  1160,   211,   803,  1161,   804,   214,   215,
     805,   806,   218,  1162,   219,  1163,   807,   808,   222,  1164,
     223,   224,   225,   226,   227,   228,   229,   809,   231,   232,
     233,   234,  1165,   235,   236,   237,   238,   239,   240,  1166,
     241,   810,   811,   244,   245,   246,   247,   248,   812,   813,
    1167,   814,  1168,   252,   815,   816,   255,   817,   257,   258,
     259,   260,   261,   262,  1169,  1170,   263,   818,   265,   819,
    1171,   267,   268,   269,  1172,  1173,   270,   271,   272,   273,
     274,   820,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     821,   822,   823,   297,   298,   299,   824,  1174,   301,   302,
     825,   304,  1175,   826,   306,   827,   308,   309,   310,  1176,
     311,   312,  1177,  1178,   313,   314,   315,  1179,  1180,   316,
     828,   829,   319,   830,   831,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,  1181,   332,   333,   832,   335,
     336,   833,   338,   339,   340,  1182,   341,   342,   343,   344,
     345,   346,  1183,   347,   348,   349,   834,   351,   352,   353,
     354,  1184,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,  1185,   368,   369,   835,   371,
     372,   373,   836,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,  1186,   386,   387,   388,   389,   390,
     837,   392,   838,   394,   395,   396,   839,   398,   399,   840,
     401,  1187,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   841,   415,   842,   417,  1188,   418,
     419,  1189,   420,   843,   422,   423,   424,   425,   426,  1190,
     844,   845,  1191,  1192,   429,   430,   846,   432,   847,  1193,
     434,   435,   848,   437,   438,   439,   440,   441,  1194,  1195,
     442,   443,   444,   445,   446,   849,  1196,   448,   449,   450,
     451,   452,  1197,   851,  1198,   455,   852,   457,   458,   459,
     460,   461,  1199,  1200,   462,  1201,  1202,   463,   464,   465,
     466,   467,   468,   853,   854,   855,   856,   857,   858,   859,
     860,   861,   862,   863,   480,   481,   482,   483,  1129,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
    1897,    99,   100,   101,  1130,   102,   103,   104,  1131,  1132,
    1133,  1134,  1135,  1136,  1137,   105,   106,  1138,   107,   108,
     109,   781,   111,   112,   113,   782,   783,   784,   785,   786,
    1139,   119,   120,   121,   122,   123,   124,  1140,  1141,   125,
     126,   787,   788,   129,  1142,   130,   131,   132,   133,   789,
    1143,   790,  1144,   136,   137,   138,   139,   140,   141,   791,
     143,   144,   145,  1145,   146,   147,   148,   149,   150,   151,
    1146,   792,   153,   154,   155,   793,   794,   795,   796,  1147,
    1148,   797,   161,   162,   163,   164,   165,   166,   167,   798,
     799,   170,  1149,   171,  1150,   172,   173,   174,   175,   176,
     177,  1151,   178,   179,   180,   181,   182,  1152,  1153,   183,
     184,   185,  1898,   187,  1154,   188,   189,   190,  1155,   191,
     192,   193,  1156,   194,   195,   196,   197,   800,   199,   200,
     201,   202,   203,   801,  1157,   205,  1158,   206,   207,   802,
     209,  1159,   210,  1160,   211,   803,  1161,   804,   214,   215,
     805,   806,   218,  1162,   219,  1163,   807,   808,   222,  1164,
     223,   224,   225,   226,   227,   228,   229,   809,   231,   232,
     233,   234,  1165,   235,   236,   237,   238,   239,   240,  1166,
     241,   810,   811,   244,   245,   246,   247,   248,   812,   813,
    1167,   814,  1168,   252,   815,   816,   255,   817,   257,   258,
     259,   260,   261,   262,  1169,  1170,   263,   818,   265,   819,
    1171,   267,   268,   269,  1172,  1173,   270,   271,   272,   273,
     274,   820,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     821,   822,   823,   297,   298,   299,   824,  1174,   301,   302,
     825,   304,  1175,   826,   306,   827,   308,   309,   310,  1176,
     311,   312,  1177,  1178,   313,   314,   315,  1179,  1180,   316,
     828,   829,   319,   830,   831,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,  1181,   332,   333,   832,   335,
     336,   833,   338,   339,   340,  1182,   341,   342,   343,   344,
     345,   346,  1183,   347,   348,   349,   834,   351,   352,   353,
     354,  1184,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,  1185,   368,   369,   835,   371,
     372,   373,   836,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,  1186,   386,   387,   388,   389,   390,
     837,  1899,   838,   394,   395,   396,   839,   398,   399,   840,
     401,  1187,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   841,   415,   842,   417,  1188,   418,
     419,  1189,   420,   843,   422,   423,   424,   425,   426,  1190,
     844,   845,  1191,  1192,   429,   430,   846,   432,   847,  1193,
     434,   435,   848,   437,   438,   439,   440,   441,  1194,  1195,
     442,   443,   444,   445,   446,   849,  1196,   448,   449,   450,
     451,   452,  1197,   851,  1198,   455,   852,   457,   458,   459,
     460,   461,  1199,  1200,   462,  1201,  1202,   463,   464,   465,
     466,   467,   468,   853,   854,   855,   856,   857,   858,   859,
     860,   861,   862,   863,   480,   481,   482,   483,    93,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,   894,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   897,
       0,   898,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   899,   900,   901,   902,   903,
     904,   905,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   910,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,   918,   919,   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,     0,   301,   302,
     303,   304,     0,   924,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   927,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   928,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     931,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   933,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   936,   432,   937,     0,
     434,   435,   939,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   940,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   780,     0,
     582,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   781,   111,   112,   113,   782,   783,   784,   785,   786,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   787,   788,   129,     0,   130,   131,   132,   133,   789,
       0,   790,     0,   136,   137,   138,   139,   140,   141,   791,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   792,   153,   154,   155,   793,   794,   795,   796,     0,
       0,   797,   161,   162,   163,   164,   165,   166,   167,   798,
     799,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   800,   199,   200,
     201,   202,   203,   801,  1303,   205,     0,   206,   207,   802,
     209,     0,   210,     0,   211,   803,     0,   804,   214,   215,
     805,   806,   218,     0,   219,     0,   807,   808,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   809,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   810,   811,   244,   245,   246,   247,   248,   812,   813,
       0,   814,     0,   252,   815,   816,   255,   817,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   818,   265,   819,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   820,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     821,   822,   823,   297,   298,   299,   824,     0,   301,   302,
     825,   304,     0,   826,   306,   827,   308,   309,   310,     0,
     311,   312,  1304,     0,   313,   314,   315,     0,     0,   316,
     828,   829,   319,   830,   831,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   832,   335,
     336,   833,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   834,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   835,   371,
     372,   373,   836,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     837,   392,   838,   394,   395,   396,   839,   398,   399,   840,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   841,   415,   842,   417,     0,   418,
     419,     0,   420,   843,   422,   423,   424,   425,   426,     0,
     844,   845,     0,     0,   429,   430,   846,   432,   847,  1305,
     434,   435,   848,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   849,     0,   448,   449,   450,
     451,   452,  1197,   851,     0,   455,   852,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   853,   854,   855,   856,   857,   858,   859,
     860,   861,   862,   863,   480,   481,   482,   483,   780,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     3,     4,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   781,   111,   112,   113,   782,   783,   784,   785,   786,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   787,   788,   129,     0,   130,   131,   132,   133,   789,
       0,   790,     0,   136,   137,   138,   139,   140,   141,   791,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   792,   153,   154,   155,   793,   794,   795,   796,     0,
       0,   797,   161,   162,   163,   164,   165,   166,   167,   798,
     799,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   800,   199,   200,
     201,   202,   203,   801,     0,   205,     0,   206,   207,   802,
     209,     0,   210,     0,   211,   803,     0,   804,   214,   215,
     805,   806,   218,     0,   219,     0,   807,   808,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   809,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   810,   811,   244,   245,   246,   247,   248,   812,   813,
       0,   814,     0,   252,   815,   816,   255,   817,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   818,   265,   819,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   820,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     821,   822,   823,   297,   298,   299,   824,     0,   301,   302,
     825,   304,     0,   826,   306,   827,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     828,   829,   319,   830,   831,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   832,   335,
     336,   833,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   834,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   835,   371,
     372,   373,   836,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     837,   392,   838,   394,   395,   396,   839,   398,   399,   840,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   841,   415,   842,   417,     0,   418,
     419,     0,   420,   843,   422,   423,   424,   425,   426,     0,
     844,   845,     0,     0,   429,   430,   846,   432,   847,     0,
     434,   435,   848,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   849,     0,   448,   449,   450,
     451,   452,  1197,   851,     0,   455,   852,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   853,   854,   855,   856,   857,   858,   859,
     860,   861,   862,   863,   480,   481,   482,   483,    93,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,   135,     0,   136,   137,   138,   139,   140,   141,   142,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   152,   153,   154,   155,   156,   157,   158,   159,     0,
       0,   160,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,   212,     0,   213,   214,   215,
     216,   217,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,   253,   254,   255,   256,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   264,   265,   266,
       0,   267,   268,   269,     0,     0,   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,     0,   301,   302,
     303,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   414,   415,   416,   417,     0,   418,
     419,     0,   420,   421,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   447,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,   456,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   506,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,  1502,   130,   131,   132,   133,   134,
       0,     0,  1503,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,  1504,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,  1505,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,  1506,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,  1507,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,  1508,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   506,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,  1502,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,  1504,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,  1505,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   228,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,  1968,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,  1507,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,  1508,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   506,     0,
     507,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     3,     4,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   228,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   694,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,  -793,     0,   105,   106,     0,   107,   108,
     109,   695,   111,   112,   113,     0,   696,   697,   698,   699,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   700,   701,   129,     0,   130,   131,   132,   133,     0,
       0,   702,     0,   136,   137,   138,   139,   140,   141,   703,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   704,   153,   154,   155,   705,   706,   707,   708,     0,
       0,   709,   161,   162,   163,   164,   165,   166,   167,   710,
     711,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,     0,   199,   200,
     201,   202,   203,     0,     0,   205,     0,   206,   207,   713,
     209,     0,   210,     0,   211,   714,     0,   715,   214,   215,
    -793,   716,   218,     0,   219,     0,     0,     0,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   718,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   719,     0,   244,   245,   246,   247,   248,   720,   721,
       0,   722,     0,   252,   723,   724,   255,   725,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   726,   265,   727,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   728,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     729,   730,   731,   297,   298,   299,     0,     0,   301,   302,
     732,   304,     0,     0,   306,   733,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
       0,   734,   319,   735,     0,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,     0,   335,
     336,     0,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   736,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   737,   371,
     372,   373,   738,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     739,   392,   740,   394,   395,   396,   741,   398,   399,   742,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   743,   415,     0,   417,     0,   418,
     419,     0,   420,   744,   422,   423,   424,   425,   426,     0,
     745,   746,     0,     0,   429,   430,     0,   432,     0,     0,
     434,   435,   747,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   748,     0,   448,   449,   450,
     451,   452,     0,   749,     0,   455,   750,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,   480,   481,   482,   483,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,   508,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   511,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,   614,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     657,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,   614,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,   685,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,  1802,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,  1803,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,  1804,   420,     0,   422,
    1805,   424,  1806,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,  1807,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,  2774,     0,     0,     0,     0,  2775,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   582,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,   589,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   590,   428,     0,     0,   591,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   623,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     652,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     655,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     659,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   694,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,   695,   111,   112,   113,
       0,   696,   697,   698,   699,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   700,   701,   129,     0,
     130,   131,   132,   133,     0,     0,   702,     0,   136,   137,
     138,   139,   140,   141,   703,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,   704,   153,   154,   155,
     705,   706,   707,   708,     0,     0,   709,   161,   162,   163,
     164,   165,   166,   167,   710,   711,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,     0,   199,   200,   201,   202,   203,     0,     0,
     205,     0,   206,   207,   713,   209,     0,   210,     0,   211,
     714,     0,   715,   214,   215,     0,   716,   218,     0,   219,
       0,     0,     0,   222,     0,   223,   224,   225,   226,   227,
     717,   229,   718,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,   719,     0,   244,   245,
     246,   247,   248,   720,   721,     0,   722,     0,   252,   723,
     724,   255,   725,   257,   258,   259,   260,   261,   262,     0,
       0,   263,   726,   265,   727,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   728,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   729,   730,   731,   297,   298,
     299,     0,     0,   301,   302,   732,   304,     0,     0,   306,
     733,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,     0,   734,   319,   735,     0,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,     0,   335,   336,     0,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   736,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,   737,   371,   372,   373,   738,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,   739,   392,   740,   394,   395,
     396,   741,   398,   399,   742,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   743,
     415,     0,   417,     0,   418,   419,     0,   420,   744,   422,
     423,   424,   425,   426,     0,   745,   746,     0,     0,   429,
     430,     0,   432,     0,     0,   434,   435,   747,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
     748,     0,   448,   449,   450,   451,   452,     0,   749,     0,
     455,   750,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   506,     0,
     507,     0,     0,     0,     0,     0,     0,     0,     0,   480,
     481,   482,   483,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   772,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   506,     0,
     507,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,   775,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   506,     0,
     507,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,  1219,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   506,     0,
     507,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,     0,   111,   112,   113,   114,   115,     0,   117,   118,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   127,   128,   129,     0,   130,   131,   132,   133,   134,
       0,     0,     0,   136,   137,   138,   139,   140,   141,     0,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,     0,   153,   154,   155,     0,     0,     0,     0,     0,
       0,     0,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   185,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,     0,   205,     0,   206,   207,   208,
     209,     0,   210,     0,   211,     0,     0,     0,   214,   215,
     509,     0,   218,     0,   219,     0,   220,   221,   222,     0,
     223,   224,   225,   226,   227,  1221,   229,     0,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,     0,   243,   244,   245,   246,   247,   248,   249,   250,
       0,   251,     0,   252,     0,     0,   255,     0,   257,   258,
     259,   260,   261,   262,     0,     0,   263,     0,   265,     0,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   510,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     294,     0,   296,   297,   298,   299,   300,     0,   301,   302,
       0,   304,     0,   305,   306,   307,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
     317,     0,   319,     0,   321,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
     336,   337,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   350,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,     0,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
       0,   392,   393,   394,   395,   396,     0,   398,   399,   400,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   512,   415,   416,   417,     0,   418,
     419,     0,   420,     0,   422,   423,   424,   425,   426,     0,
     427,   428,     0,     0,   429,   430,   431,   432,   433,     0,
     434,   435,   436,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,     0,     0,   448,   449,   450,
     451,   452,   453,   454,     0,   455,     0,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
     476,   477,   478,   479,   480,   481,   482,   483,   694,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   695,   111,   112,   113,     0,   696,   697,   698,   699,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   700,   701,   129,     0,   130,   131,   132,   133,     0,
       0,   702,     0,   136,   137,   138,   139,   140,   141,   703,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   704,   153,   154,   155,   705,   706,   707,   708,     0,
       0,   709,   161,   162,   163,   164,   165,   166,   167,   710,
     711,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,     0,   199,   200,
     201,   202,   203,     0,     0,   205,     0,   206,   207,   713,
     209,     0,   210,     0,   211,   714,     0,   715,   214,   215,
       0,   716,   218,     0,   219,     0,     0,     0,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   718,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   719,     0,   244,   245,   246,   247,   248,   720,   721,
       0,   722,     0,   252,   723,   724,   255,   725,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   726,   265,   727,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,   728,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     729,   730,   731,   297,   298,   299,     0,     0,   301,   302,
     732,   304,     0,     0,   306,   733,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
       0,   734,   319,   735,     0,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,     0,   335,
     336,     0,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   736,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   737,   371,
     372,   373,   738,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     739,   392,   740,   394,   395,   396,   741,   398,   399,   742,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,   743,   415,     0,   417,     0,   418,
     419,     0,   420,   744,   422,   423,   424,   425,   426,     0,
     745,   746,     0,     0,   429,   430,     0,   432,     0,     0,
     434,   435,   747,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   748,     0,   448,   449,   450,
     451,   452,     0,   749,     0,   455,   750,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,   480,   481,   482,   483,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
    1893,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,  2399,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,  2414,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,   507,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
    2576,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   601,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   602,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   603,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   604,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   605,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     673,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     769,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   603,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   605,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,  1499,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,     0,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
    1596,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
    1880,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
    1895,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,  2505,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,  2506,   111,   112,   113,
       0,   696,  2507,   698,   699,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   700,   701,   129,     0,
     130,   131,   132,   133,     0,     0,  2508,     0,   136,   137,
     138,   139,   140,   141,  2509,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,  2510,   153,   154,   155,
    2511,  2512,  2513,  2514,     0,     0,  2515,   161,   162,   163,
     164,   165,   166,   167,   710,   711,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   712,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,     0,   199,   200,   201,   202,   203,     0,     0,
     205,     0,   206,   207,   713,   209,     0,   210,     0,   211,
    2516,     0,  2517,   214,   215,  2518,  2519,   218,     0,   219,
       0,     0,     0,   222,     0,   223,   224,   225,   226,   227,
     228,   229,  2520,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,  2521,     0,   244,   245,
     246,   247,   248,   720,   721,     0,   722,     0,   252,  2522,
    2523,   255,  2524,   257,   258,   259,   260,   261,   262,     0,
       0,   263,  2525,   265,  2526,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,  2719,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   729,  2528,   731,   297,   298,
     299,     0,     0,   301,   302,  2530,   304,     0,     0,   306,
     733,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,     0,  2532,   319,  2533,     0,
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
       0,   332,   333,     0,   335,   336,     0,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,   348,
     349,   736,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,  2534,   371,   372,   373,     0,   375,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,  2535,   392,     0,   394,   395,
     396,  2537,   398,   399,   742,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,  2720,
     415,     0,   417,     0,   418,   419,     0,   420,  2539,   422,
     423,   424,   425,   426,     0,   745,   746,     0,     0,   429,
     430,     0,   432,     0,     0,   434,   435,  2540,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
    2541,     0,   448,   449,   450,   451,   452,     0,   749,     0,
     455,  2542,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   694,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   480,
     481,   482,   483,     0,     0,     0,    94,    95,    96,    97,
      98,    99,   100,   101,     0,   102,   103,   104,     0,     0,
       0,     0,     0,     0,     0,   105,   106,     0,   107,   108,
     109,   695,   111,   112,   113,     0,   696,   697,   698,   699,
       0,   119,   120,   121,   122,   123,   124,     0,     0,   125,
     126,   700,   701,   129,     0,   130,   131,   132,   133,     0,
       0,   702,     0,   136,   137,   138,   139,   140,   141,   703,
     143,   144,   145,     0,   146,   147,   148,   149,   150,   151,
       0,   704,   153,   154,   155,   705,   706,   707,   708,     0,
       0,   709,   161,   162,   163,   164,   165,   166,   167,   710,
     711,   170,     0,   171,     0,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,     0,     0,   183,
     184,   712,   186,   187,     0,   188,   189,   190,     0,   191,
     192,   193,     0,   194,   195,   196,   197,     0,   199,   200,
     201,   202,   203,     0,     0,   205,     0,   206,   207,   713,
     209,     0,   210,     0,   211,   714,     0,   715,   214,   215,
       0,   716,   218,     0,   219,     0,     0,     0,   222,     0,
     223,   224,   225,   226,   227,   228,   229,   718,   231,   232,
     233,   234,     0,   235,   236,   237,   238,   239,   240,     0,
     241,   719,     0,   244,   245,   246,   247,   248,   720,   721,
       0,   722,     0,   252,   723,   724,   255,   725,   257,   258,
     259,   260,   261,   262,     0,     0,   263,   726,   265,   727,
       0,   267,   268,   269,     0,     0,   270,   271,   272,   273,
     274,     0,   276,   277,   278,   279,   280,   281,   282,   283,
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
     729,   730,   731,   297,   298,   299,     0,     0,   301,   302,
     732,   304,     0,     0,   306,   733,   308,   309,   310,     0,
     311,   312,     0,     0,   313,   314,   315,     0,     0,   316,
       0,   734,   319,   735,     0,   322,   323,   324,   325,   326,
     327,   328,   329,   330,   331,     0,   332,   333,     0,   335,
     336,     0,   338,   339,   340,     0,   341,   342,   343,   344,
     345,   346,     0,   347,   348,   349,   736,   351,   352,   353,
     354,     0,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,     0,   368,   369,   737,   371,
     372,   373,     0,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,     0,   386,   387,   388,   389,   390,
     739,   392,     0,   394,   395,   396,   741,   398,   399,   742,
     401,     0,   402,   403,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,     0,   415,     0,   417,     0,   418,
     419,     0,   420,   744,   422,   423,   424,   425,   426,     0,
     745,   746,     0,     0,   429,   430,     0,   432,     0,     0,
     434,   435,   747,   437,   438,   439,   440,   441,     0,     0,
     442,   443,   444,   445,   446,   748,     0,   448,   449,   450,
     451,   452,     0,   749,     0,   455,   750,   457,   458,   459,
     460,   461,     0,     0,   462,     0,     0,   463,   464,   465,
     466,   467,   468,   506,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   480,   481,   482,   483,     0,     0,
       0,    94,    95,    96,    97,    98,    99,   100,   101,     0,
     102,   103,   104,     0,     0,     0,     0,     0,     0,     0,
     105,   106,     0,   107,   108,   109,     0,   111,   112,   113,
     114,   115,     0,   117,   118,     0,   119,   120,   121,   122,
     123,   124,     0,     0,   125,   126,   127,   128,   129,     0,
     130,   131,   132,   133,   134,     0,     0,     0,   136,   137,
     138,   139,   140,   141,     0,   143,   144,   145,     0,   146,
     147,   148,   149,   150,   151,     0,     0,   153,   154,   155,
       0,     0,     0,     0,     0,     0,     0,   161,   162,   163,
     164,   165,   166,   167,   168,   169,   170,     0,   171,     0,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,     0,     0,   183,   184,   185,   186,   187,     0,
     188,   189,   190,     0,   191,   192,   193,     0,   194,   195,
     196,   197,   198,   199,   200,   201,   202,   203,   204,     0,
     205,     0,   206,   207,   208,   209,     0,   210,     0,   211,
       0,     0,     0,   214,   215,   509,     0,   218,     0,   219,
       0,   220,   221,   222,     0,   223,   224,   225,   226,   227,
     228,   229,     0,   231,   232,   233,   234,     0,   235,   236,
     237,   238,   239,   240,     0,   241,     0,   243,   244,   245,
     246,   247,   248,   249,   250,     0,   251,     0,   252,     0,
       0,   255,     0,   257,   258,   259,   260,   261,   262,     0,
       0,   263,     0,   265,     0,     0,   267,   268,   269,     0,
       0,   270,   271,   272,   273,   274,   510,   276,   277,   278,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,     0,   296,   297,   298,
     299,   300,     0,   301,   302,     0,   304,     0,   305,   306,
     307,   308,   309,   310,     0,   311,   312,     0,     0,   313,
     314,   315,     0,     0,   316,   317,     0,   319,     0,   321,
     322,   323,   324,   325,   326,   327,     0,   329,   330,   331,
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
       0,   341,   342,   343,   344,   345,   346,     0,   347,     0,
     349,   350,   351,   352,   353,   354,     0,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
       0,   368,   369,     0,   371,   372,   373,   374,     0,   376,
     377,   378,   379,   380,   381,   382,   383,   384,   385,     0,
     386,   387,   388,   389,   390,     0,   392,   393,   394,   395,
     396,     0,   398,   399,   400,   401,     0,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   512,
     415,   416,   417,     0,   418,   419,     0,   420,     0,   422,
     423,   424,   425,   426,     0,   427,   428,     0,     0,   429,
     430,   431,   432,   433,     0,   434,   435,   436,   437,   438,
     439,   440,   441,     0,     0,   442,   443,   444,   445,   446,
       0,     0,   448,   449,   450,   451,   452,   453,   454,     0,
     455,     0,   457,   458,   459,   460,   461,     0,     0,   462,
       0,     0,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,     1,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     2,     0,     3,     4,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     5,     0,     0,     0,     0,     0,     0,     0,     0,
       6,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     7,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     8,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     9,     0,    10,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    11,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
       0,     0,     0,     0,     0,    14,     0,     0,     0,     0,
       0,     0,     0,    15,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    18,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    21,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,    22,     0,     0,    23,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    24,     0,
       0,     0,     0,     0,     0,     0,     0,    25,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    26,     0,     0,     0,     0,     0,     0,    27,     0,
       0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    29,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    30,     0,     0,     0,    31,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    32,     0,     0,     0,     0,    33,
       0,     0,     0,   544,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   545
};

static const yytype_int16 yycheck[] =
{
       6,    36,   622,   656,   663,   501,   667,   947,     0,     0,
       0,     0,     6,   740,     0,  1070,   646,   545,  1010,    20,
      21,   868,   868,    74,  1068,   537,   617,  1244,     0,     0,
     672,  1458,     0,     6,  1461,  1422,   665,  1814,  1347,  1829,
      30,  1043,  1832,   539,    16,   746,  2267,    16,   950,    31,
    1048,   770,  1810,  1015,   773,  1045,     0,  2238,  2238,  1891,
      76,   544,   540,  1116,   966,   545,    76,  1810,  1772,  1707,
    1708,  1249,  1376,  1377,  1712,    65,   656,   979,   658,  2266,
     660,   876,    11,  1073,     0,     0,    15,  1935,  1936,  1937,
       0,  1887,     0,     0,    23,  2141,    35,     0,  2275,  1870,
    1950,     0,     0,  2279,  1862,    34,    35,    21,    90,  2093,
       5,    52,     5,     0,     0,     5,     0,  1755,  1756,  1862,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   700,   701,  1430,   564,  1573,   643,    75,  2586,
       5,   987,  2143,    11,     5,   643,     9,    15,  2149,     5,
       5,  1215,  1027,     5,     9,     5,    60,   777,     5,    88,
       5,     5,     9,   731,  1477,  2572,   171,  1963,    13,    14,
       0,    60,  1479,     5,     5,  2582,    25,     5,    60,     5,
      42,    13,    14,    42,   119,    13,    14,    13,    14,     5,
      50,     5,   151,    60,     5,     5,     5,    13,    14,    13,
      14,     5,    13,    14,    13,    14,     5,     5,   172,    13,
      14,  1057,     5,     5,  1060,  1061,   139,    95,  2659,     5,
      13,    14,    13,    14,     5,     5,    77,    13,    14,    29,
     122,  2027,  2028,     3,   935,    77,    36,    88,     3,     4,
       5,     5,   189,     5,     9,     5,    88,    85,  2191,    13,
      14,   109,  2755,    29,     5,     5,     5,   287,    70,  2569,
      36,  2723,   285,    33,    34,    95,    29,   124,   122,   309,
       5,   171,    60,    36,  1342,   273,   378,  2852,  2551,     4,
    1342,  2148,   293,  2479,     9,   293,  1081,    61,   137,   109,
      11,   129,   309,  1342,    15,    69,   117,  1092,   117,   132,
       8,  2080,    29,    11,  2919,  2819,   172,    15,  2156,   200,
      18,    19,    20,   161,    11,   132,   176,   396,   210,   334,
       4,   122,    43,     9,   419,     9,   946,   895,   896,  1056,
    1237,    38,   192,  2740,   163,   119,   137,   197,    69,    39,
     868,   358,   110,    11,    11,   357,  2050,   875,    15,    29,
    2791,   329,   117,   921,    75,  2536,  2052,  2578,  2404,   463,
     951,    38,  2408,     4,   149,   994,   405,     4,     9,   464,
     189,   276,     9,  2205,   234,    43,   455,  2952,    75,  2169,
     358,   485,    11,  2141,   110,  2081,    15,   235,   871,   980,
     147,   406,  2393,   499,  2581,  2396,  2139,   499,  2141,   211,
     170,   440,   172,   270,  2851,   132,  2202,    75,  2204,   287,
     369,  1351,   417,   198,    43,  2206,  1007,  1037,   165,  3034,
    2058,  2059,  2060,  2061,  2062,  1332,   126,  2065,  2066,  2067,
    2068,  2069,  2070,  2071,  2072,  2073,  2074,   168,   453,   305,
     269,   439,   291,    13,    14,   349,    75,   406,  2721,   282,
     270,   216,   132,   272,   494,   272,   277,   287,   215,     0,
     349,   989,   990,  1772,   238,   282,   304,   349,   175,   499,
    2984,   362,   350,   238,  1349,  3050,   499,   494,   383,   370,
    2118,  2119,   349,   488,  1806,  1807,  2682,   499,   447,   197,
     451,  1121,   503,   277,   120,   503,   501,   346,   175,   348,
    2291,  1503,   461,   493,  2447,  2701,  1559,  2954,   443,   376,
     545,   219,  1816,  2309,  3017,   406,   382,   417,   319,  1583,
     350,   381,  1831,  1836,  2965,  2392,   485,   376,  1965,  1035,
    1837,   537,  1587,  2995,   457,   499,   293,  1035,  2848,   545,
     499,   403,  2723,  2723,   403,  2324,  2953,   439,   406,   393,
     394,   502,   499,  1621,  1622,   450,  1215,  2733,   499,  1621,
     497,   349,   453,  1224,   501,   503,   417,   193,   315,  1342,
     463,  1620,   544,   411,  1003,   417,   545,   578,  1874,   580,
     581,   289,   511,   461,   441,   439,   386,   488,   244,   320,
    1465,   344,   485,   599,   600,   646,   166,   613,   499,   503,
    2646,  1654,   603,   613,   499,  2651,   499,  2457,  2654,   499,
     386,   463,   541,   200,   503,    11,   622,  1237,  2450,    15,
     191,   503,   500,   386,   502,   120,  2610,   495,   163,  2850,
    1425,   461,   497,   485,   499,   498,   501,  2638,   499,   631,
     631,   631,   631,   499,   499,   631,  2404,   499,   272,   499,
    2408,   620,   499,   277,   499,   661,   662,   663,  1317,   631,
     631,  2404,   499,   631,   441,  2408,   580,   499,   499,   651,
     500,   499,   502,   499,  2445,   251,   433,  1245,  1246,  2856,
     108,   451,  2858,   499,   623,   499,  1532,   631,   499,   499,
     499,   406,     4,   228,   623,   499,  1542,     9,   193,  1545,
     499,   499,  1331,   434,   328,  1217,   499,   499,   499,     4,
    1330,   422,  1332,   499,     9,   631,   631,  1337,   499,   499,
    2568,   631,   499,   631,   631,   490,   491,  2431,   631,  1388,
    1350,  1243,   631,   631,   740,   499,  1728,   499,  2959,   499,
    2786,  2050,  1371,  1372,   631,   631,  1258,   631,   499,   499,
     499,   631,   631,  1373,   631,   631,   631,   631,   631,   631,
     631,   631,   631,  2950,   499,   490,   491,   224,   410,  1428,
     412,   777,  1363,  1301,   495,  2571,   347,   461,   486,   487,
     488,   437,   490,   491,   492,   493,   494,   495,    66,    67,
    1419,   348,  1639,  1639,   177,  1291,  1292,  2101,  1427,  1594,
    1429,   485,  1298,   453,   490,   491,   490,   491,  2130,  2131,
    2132,  2133,  1990,   270,  2995,  2995,  1294,  1300,  1996,   376,
     334,  1301,   250,   365,  3011,   492,   493,   494,   495,   244,
     258,  1733,  1707,  1708,  2472,     8,   224,  1712,    11,   497,
     369,   499,    15,   499,   441,    18,    19,    20,  1621,  1622,
    1623,    25,  2684,   499,   161,   238,  1818,    31,  3079,  1799,
    1915,  1520,   868,   492,   493,   494,   495,   868,  1380,   875,
     876,   877,     5,   330,   875,  1528,  2637,   406,  3053,    77,
    1755,  1756,   270,    25,  1603,  1938,   499,   893,  2646,    31,
      88,  2403,   406,  2651,  2637,  1391,  2654,  2114,    77,   871,
     244,  2413,   499,  2646,  2416,  1624,   461,  1626,  2651,    88,
    1629,  2654,   947,  2674,   244,   132,   922,   500,   447,  3094,
     503,  1501,   379,   482,  1583,  1555,  1556,  1557,   235,  2238,
     485,  2674,   132,  1923,  1576,  2484,   942,   943,   944,   453,
     946,   947,   159,  2492,    24,   221,     8,   362,  1528,    11,
      30,   500,   953,    15,   503,   244,    18,    19,    20,   159,
       0,   962,   151,   137,   970,   244,  2604,  1547,   500,  1871,
     499,   503,  1552,    35,   244,   976,    16,   284,  1976,   463,
    1600,  1979,   439,   989,   990,    65,   987,   287,   989,   990,
      30,   379,    96,  2825,  2755,   137,    36,   410,   501,   412,
    1512,   485,    11,   119,  1020,  1021,    15,  1023,   463,   482,
    1020,  1021,  2755,  1023,    32,   499,  1022,   492,   362,   711,
    1026,  1027,   437,   256,   257,    65,   170,   410,  2786,   412,
     485,  1037,   362,    25,    43,   461,    76,   463,    56,    31,
     488,   733,  1538,  2786,   499,   497,   219,  1543,   177,   501,
    1056,   439,     8,   501,   437,    11,  1038,   497,   503,    15,
     277,   501,    18,    19,    20,   282,    75,   410,   172,   412,
     334,   200,   272,   362,   766,  1081,    29,   277,   494,    35,
    1009,   172,   282,   362,   499,   501,  1092,   497,   204,   499,
    1072,   501,   362,   437,   490,   491,   492,   493,   494,   495,
     499,  1721,   206,  1615,   482,     5,   370,   437,     8,   238,
    1116,  1639,   494,   500,    14,   206,   289,   291,   222,   501,
    2758,  2882,  2431,   500,  1652,    25,   503,    80,   232,    29,
     500,   222,   161,   366,   367,   500,    89,   166,   503,  2882,
    1760,   232,   406,  2920,  1656,   137,   221,   500,   437,   291,
     503,    56,  2369,  2093,   270,   499,   272,   219,   437,   410,
    2921,   412,   266,   292,  2219,   118,   499,   437,   342,   499,
      25,  2018,   346,   171,  2218,  1894,    31,  1896,  2921,  1897,
     369,  1899,  1812,  2058,  2059,  2060,  2061,  2062,   152,   453,
    2065,  2066,  2067,  2068,  2069,  2070,  2071,  2072,  2073,  2074,
     342,  2203,   376,  2202,   346,  2204,   235,   424,  1644,  1215,
     499,  1217,  1648,   217,  1650,   907,  2260,   406,   435,  2217,
     499,  2219,  1214,  1214,   424,  1214,   152,   289,  1214,   499,
    2409,  1237,  2411,   925,   376,   435,   189,  1243,  1244,  3071,
     342,  3018,    69,  2118,  2119,  3035,  3036,   500,   201,   353,
     503,   500,  1258,    25,   503,   284,  3017,   152,   447,    31,
    3037,   152,   353,   219,   601,   602,  1720,   604,  1722,  1723,
     444,   500,   461,   500,  3017,   500,   503,     8,   503,   499,
      11,   410,   137,   412,    15,  2187,   272,    18,    19,    20,
     117,    13,    14,  1994,  1995,  1301,   485,  1958,  3088,   291,
      13,    14,   444,   500,    35,   434,   503,   501,   437,   500,
     499,  1317,   503,   486,   487,   488,  3093,   490,   491,   492,
     493,   494,   495,   640,  1330,   642,  1332,    38,  1300,   453,
    1336,  1337,  1301,   289,    84,   500,   500,  1327,   503,   503,
    1346,  1342,  1348,  1349,  1350,  1351,  1352,  1353,  1354,   173,
     342,    13,    14,   465,   346,  1327,  1327,  2016,   499,  1327,
     500,    13,    14,   503,   117,   137,  1295,  1373,  1297,  1375,
      13,    14,   450,   369,  1380,  1381,  1382,  1383,  1384,  1385,
    1386,  1387,  1388,  1327,   376,   316,  1392,  1393,    25,   499,
    2607,  1397,  2238,   500,    31,  1401,   503,   152,  1404,  1405,
    1406,  1407,  1408,  1409,  1410,  1411,  1412,    37,   500,  1415,
     406,   503,   500,   499,  2723,   503,  1422,   500,   161,  1425,
     503,   245,  1428,   166,   486,   487,   488,  2814,   490,   491,
     492,   493,   494,   495,   500,  1436,   291,   503,   499,   392,
     499,  1447,   395,  2498,   500,   272,   152,   503,   152,  2451,
     277,   447,   444,   493,   500,   500,   152,   503,   503,  1465,
      38,   500,   287,  1975,   503,   461,   499,  2096,   233,  2089,
    1476,  1477,   500,     5,   500,   503,  1445,   503,    13,    14,
     147,   490,   491,   492,   493,   494,   495,   342,   219,   485,
    2018,   346,   235,   320,   161,   500,   357,   358,   503,   166,
     137,    13,    14,   499,   544,   545,  1512,  1497,   499,   336,
     334,     5,  1518,     8,  1520,   500,    11,  2013,   503,   291,
      15,   376,   499,    18,    19,    20,   500,  2039,   499,   503,
     486,   487,   488,   166,   490,   491,   492,   493,   494,   495,
     499,   284,  2759,   187,   188,  2057,   370,   300,   215,   500,
      13,    14,   503,  1559,    13,    14,  1562,  1563,   289,  1565,
    2987,  2988,  2153,    13,    14,  2194,    13,    14,   235,   499,
     342,   499,  2084,   613,   346,  1504,   499,  1583,  2237,  2091,
    2239,   499,   406,  2302,   499,  1514,     5,  1516,  1594,   444,
    1519,   631,    13,    14,  1600,     5,  1525,  2472,  1527,     5,
    1590,    13,    14,   499,   376,    13,    14,   434,     5,  1615,
    1539,   499,   256,   257,   441,  1544,   369,   284,   499,  1548,
    1549,  1550,  1551,  2253,  1553,  1554,   293,  2269,   300,   453,
     147,    25,   499,  1639,    13,    14,   499,    31,  1639,   499,
    3067,   499,  1643,  2489,   161,     8,  1652,   499,  1654,   166,
    1656,  1652,    15,   406,   291,    18,    19,    20,   499,  1665,
      13,    14,    13,    14,  1670,    13,    14,    13,    14,    13,
      14,   499,   444,   499,  1709,    13,    14,     8,    13,    14,
      11,    13,    14,   148,    15,  2729,  2995,    18,    19,    20,
       9,   357,   358,   499,   447,   260,   261,   369,   215,   357,
     358,  1707,  1708,  1709,    35,   342,  1712,   298,   461,   346,
     366,   367,   357,   358,  1720,  1721,  1722,  1723,   235,   503,
     989,   990,   366,   367,  1730,  1760,  2238,   462,  1734,  2604,
       8,  1737,   485,    11,   406,   217,   503,    15,    99,   376,
      18,    19,    20,   137,   500,    38,   499,   233,   166,  1755,
    1756,  2598,   166,   284,  1760,   486,   487,   488,   282,   490,
     491,   492,   493,   494,   495,    43,   433,   284,  1774,   376,
     499,  1777,    50,  1779,   499,   447,   293,   417,    88,   503,
      56,  2773,  2501,  2502,    56,   417,   417,  2299,   263,   461,
     417,  2420,   500,  1799,   289,   417,   508,    75,   461,  2791,
     152,    95,   501,   272,  1810,   272,    38,   444,    38,  2536,
    2439,   499,   499,   485,   499,     9,  1810,    37,   415,   415,
     497,   497,   417,   417,  1830,    57,   500,   499,   417,   417,
     497,   871,  1867,   500,   501,  1825,    96,  1810,   503,  1845,
    1846,   457,   499,    11,   344,   498,     6,   508,   503,   889,
     499,    11,   503,  1825,  1825,    15,  1862,  1825,   505,  2799,
      20,    21,    22,    23,    24,   415,   277,    27,  1862,   909,
      30,    31,   417,  1879,    34,    35,   108,  2723,   499,   180,
     162,  1825,   171,  2758,   503,   500,   500,   499,   219,  1862,
     215,  1897,  1898,  1899,  1823,   503,   379,   291,   176,   288,
     224,   503,  1903,  2895,   309,    65,   309,   947,   500,    38,
     224,   441,   172,   499,   192,   272,   433,   224,   293,   197,
     285,   325,   499,   152,   453,   152,   289,    87,    88,    89,
      90,    91,  1938,   461,    38,   272,   500,   287,   500,   497,
     482,  2996,   482,   500,   500,   500,   206,  1948,   500,    38,
     498,   287,   346,   500,   500,   171,   234,   500,   289,   500,
     171,   500,   222,   500,   500,   503,   500,   199,   501,  1975,
     155,   482,   232,   500,  2470,   500,   499,  1983,   500,   500,
    1020,  1021,   376,  1023,    69,   500,   500,   417,  2500,   499,
      75,   486,   487,   488,   499,   490,   491,   492,   493,   494,
     495,   499,   458,    88,   484,   288,   266,   288,   288,   243,
    2016,   289,  2018,   439,   503,   458,   447,  2018,   250,   287,
     488,  2961,  2023,   272,  2025,   503,   258,   287,  2029,  2030,
    2036,   417,   117,  2039,   119,   499,   152,  1966,   270,  2045,
     152,  2702,  2048,   200,   152,  2051,   417,   417,   417,   417,
     444,  2057,  2058,  2059,  2060,  2061,  2062,   279,  2093,  2065,
    2066,  2067,  2068,  2069,  2070,  2071,  2072,  2073,  2074,   301,
    2598,   279,  2078,  2079,   498,  2126,  2082,   500,  2084,    38,
     344,   461,   499,  2089,   500,  2091,   285,  2093,   503,  2124,
     287,    38,   152,   353,   277,   143,  2102,   498,   500,  2105,
     171,  2107,   498,   381,    11,   166,  2141,    52,  2114,  2115,
     500,   499,  2118,  2119,   171,   500,   348,  2123,  2124,   204,
     297,  2127,   500,   486,   487,   488,   500,   490,   491,   492,
     493,   494,   495,  2139,   500,  2141,   500,   406,   370,   537,
     171,   503,   485,   180,   500,  2139,   500,  2141,  2154,  2995,
     499,   288,    97,    86,   350,   486,   487,   488,   390,   490,
     491,   492,   493,   494,   495,   152,  2139,  2826,  2141,   446,
     503,   500,   499,   175,  2180,   428,    38,   500,   123,   500,
     500,   441,   499,   499,    81,   441,   498,   272,   503,   500,
     171,  2197,   277,   499,   503,   500,   141,   500,   500,   499,
     145,   500,   500,   408,   499,   483,   222,   222,   486,   487,
     488,  2723,   490,   491,   492,   493,   494,   495,   296,   294,
     499,    56,   167,   184,   461,   170,   500,  2233,   202,   488,
     500,  2237,  2238,  2239,   500,   320,   117,  2238,    38,   224,
     185,   499,    83,   277,   190,     8,   501,   277,    11,   501,
    2880,   336,    15,   501,   501,    18,    19,    20,   501,   501,
    1300,   501,  2263,  2924,   488,   501,   501,   417,   500,  2198,
     501,   417,    38,   501,   500,  2265,  2268,  2268,  2790,  2268,
    2933,  2793,  2268,  2903,   501,  2905,   501,  1327,   501,   501,
     272,   501,   501,  2299,   501,   501,  2225,  2287,   501,  2289,
     501,   501,   109,   501,   287,   461,   501,   499,   501,  2315,
     501,  2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,  2248,
    2249,   501,   501,   501,   171,     3,   501,     5,   501,   501,
     501,   501,   277,   499,   494,  2994,   499,   499,   498,   222,
     285,   501,   740,   460,  2840,   499,    88,   500,   503,   434,
     133,   511,   336,    38,  1394,   499,   441,  2363,  2364,   152,
      75,   177,  2368,  2369,   500,   124,   152,  2373,    38,   500,
    2376,  2377,   358,    38,   306,  2381,   499,   499,   358,   539,
     540,   541,   500,   328,   200,   499,   499,   327,   499,    75,
     446,   111,   112,   503,   499,   277,   248,   189,  2404,   441,
     428,   499,  2408,    69,    11,   290,    69,    56,    15,   499,
    2404,   503,   500,   499,  2408,    38,    23,   441,   376,   488,
     580,  2917,   238,   287,   270,   428,  2427,    34,    35,    38,
    2436,  2404,   499,   111,   112,  2408,   290,   290,   500,   599,
     600,   601,   602,   360,   604,   499,   537,   500,  2438,   500,
    2440,   500,   499,   202,   614,   287,   219,  1497,  2464,   287,
     500,     9,   500,   623,   343,   122,  2472,   187,   188,   439,
     357,   500,   499,   633,    24,    35,   292,     9,   500,   877,
     631,    88,  1959,  2995,  2220,  2491,  1892,  2233,  1526,  1038,
    2196,   651,  2939,  3045,  2500,  2695,  2997,  3006,  3038,  1043,
      87,  2745,    89,  1898,    91,  1885,  2994,  2280,  2212,   187,
     188,  3004,  1446,  2237,  1882,  2992,  1652,  2494,  2874,  1825,
     680,   681,   682,   683,  1301,  1291,   289,  1243,  2272,  1445,
    2536,  1954,   252,   253,   254,   255,   256,   257,  2016,  2598,
     260,   261,  2471,  2263,   981,  1830,   362,  1009,  1493,  1030,
    1590,  2892,  1029,  2913,  3033,  1845,  1465,  2158,  2974,  2907,
    2812,  1032,   111,   112,  1862,  1492,  2141,  2410,  2393,  2787,
    2139,  2882,  2881,  2426,   252,   253,   254,   255,   256,   257,
    2899,  1342,   260,   261,  2900,  1342,  2977,  2665,  1342,   987,
    2580,  1342,  2598,  2978,   410,  3021,   412,  2598,  2604,  1420,
    1735,  2607,  1778,   537,  2610,  1831,  1666,  1565,  1775,  2436,
     600,  1813,   428,  2619,  2620,  2195,  2921,  2623,   434,  2157,
    2670,   437,  2991,  2441,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2637,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
    2646,    -1,    -1,  2637,    -1,  2651,   366,   367,  2654,   740,
      -1,    -1,  2646,    -1,    -1,  2661,  2662,  2651,  1056,    -1,
    2654,    -1,    -1,  2664,  2637,    -1,    -1,    -1,  2674,  1709,
    2676,    -1,    -1,  2646,    -1,    -1,    -1,    -1,  2651,    -1,
    2674,  2654,    -1,    -1,    -1,    -1,    -1,  2693,   366,   367,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2674,    -1,   252,   253,   254,   255,   256,   257,    -1,
      -1,   260,   261,    -1,     0,    -1,    -1,  2723,    -1,    -1,
    1760,   881,  2723,   486,   487,   488,    -1,   490,   491,   492,
     493,   494,   495,    -1,    -1,    -1,    -1,    -1,  1778,    -1,
      -1,    -1,    -1,    -1,  2734,    -1,    -1,    -1,    -1,  2755,
      -1,    -1,  2758,  2759,  1794,    -1,    -1,    -1,    -1,   479,
     480,  2755,    -1,    -1,  2799,    -1,    -1,    -1,    -1,    -1,
    1810,    38,    -1,   537,    -1,  2704,  2782,    -1,    -1,   499,
    2786,    -1,  2755,    -1,  2790,  1825,   877,  2793,   948,    -1,
      57,    -1,  2786,  2799,    -1,  2724,  2725,    38,    -1,    -1,
      -1,   479,   480,    -1,    -1,    -1,   740,    -1,  2814,    95,
    2739,  2817,    -1,  2786,    -1,    -1,    57,   366,   367,  1217,
    2826,    -1,  1862,    -1,    -1,  2831,    -1,  1867,    -1,     8,
      -1,   991,    11,    -1,    -1,    -1,    15,    -1,    -1,    -1,
      -1,   108,    -1,    -1,    -1,  1243,  1244,    -1,  2849,  1009,
    1010,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1258,   147,    -1,    -1,    43,  2855,    -1,   108,    -1,    -1,
      -1,    50,    -1,    -1,    -1,   161,  2882,    -1,  1038,  1039,
     166,  1041,  1042,  1043,    -1,   171,   537,  2816,  2882,    -1,
      -1,    -1,    -1,    -1,   180,  1055,    75,  2903,   184,  2905,
      -1,  2907,    -1,    -1,   511,  2911,    -1,   494,   175,  2882,
      -1,    -1,  1072,    -1,    -1,  2921,  1076,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2914,    -1,    -1,  2921,    -1,   215,
     479,   480,   199,   540,   541,  2941,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   877,    -1,    -1,    -1,    -1,  2921,   235,
      -1,    -1,    -1,    -1,    -1,  2961,    -1,    -1,   199,    -1,
      -1,    -1,    -1,    -1,    -1,  1056,   145,    -1,  2974,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   740,    -1,    -1,    -1,
      -1,    -1,  1380,   250,    -1,    -1,    -1,    -1,  2994,  2995,
      -1,   258,    -1,    -1,  2995,    -1,    -1,   176,   284,    -1,
      -1,   287,    -1,   270,    -1,    -1,    -1,   293,    -1,   250,
      -1,  3017,    -1,   192,  3020,  3021,   623,   258,   197,    -1,
    3010,    -1,    -1,  3017,    -1,    -1,    -1,   614,    -1,   270,
      -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,    -1,    -1,
      -1,   327,    -1,    -1,  3017,     8,   633,  3053,    11,    -1,
    1210,    -1,    15,  2093,    -1,   234,    -1,    -1,  1218,    -1,
     301,    -1,    -1,    -1,   350,    -1,    -1,  1227,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      43,   348,    -1,    -1,  2124,    -1,    -1,    50,  3094,   740,
      -1,    -1,    -1,   680,   681,   682,   683,    -1,    -1,  2139,
    1260,  2141,    -1,   370,    -1,    -1,    -1,   348,    -1,    -1,
     289,    -1,    75,   877,  1512,    -1,    -1,    -1,    -1,    -1,
     406,    -1,  1056,   390,    -1,    -1,  1217,    -1,    -1,   370,
      -1,  1291,  1292,    -1,  1294,  1295,    -1,  1297,  1298,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,   390,
      -1,    -1,  1243,  1244,    -1,   441,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1258,    -1,    -1,
      -1,    -1,   458,    -1,   460,   461,    -1,    -1,    -1,    -1,
      -1,    -1,   145,    -1,    -1,     8,    -1,  1347,    11,    -1,
      -1,    -1,    15,    -1,    -1,    -1,    -1,    -1,  1358,    -1,
      -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   497,    -1,   176,   500,   501,   502,  1615,    -1,    -1,
      43,    -1,    -1,    -1,    -1,  2265,   877,    50,    -1,   192,
      -1,  1391,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2287,    -1,  2289,
      -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,  1656,    -1,
      -1,    -1,  1422,  1423,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   234,    -1,    -1,    -1,    -1,     0,    -1,    -1,    -1,
      -1,    -1,    -1,  1217,  1444,    -1,  1446,    -1,    -1,  1380,
      -1,    -1,  1056,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   483,    -1,    -1,    -1,    -1,  1243,
    1244,   490,   491,   492,   493,   494,   495,    -1,    -1,    -1,
      -1,    -1,   145,    -1,  1258,    -1,   289,    -1,    -1,    -1,
    1490,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1498,  1499,
      -1,   948,    -1,  1503,  1504,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   176,  1514,  1515,  1516,  1517,    -1,  1519,
      -1,    -1,    -1,    -1,  2404,  1525,    -1,  1527,  2408,   192,
      -1,    95,    -1,    -1,   197,    -1,    -1,    -1,  1538,  1539,
      -1,    -1,    -1,  1543,  1544,    -1,    -1,    -1,  1548,  1549,
    1550,  1551,    -1,  1553,  1554,    -1,    -1,    -1,  2438,    -1,
    2440,    -1,  1009,  1010,   991,  1056,    -1,    -1,    -1,    -1,
      -1,   234,    -1,  1573,  1574,  1575,    -1,    -1,   381,    -1,
      -1,  1512,    -1,   147,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1591,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,
      -1,    -1,   166,    -1,    -1,    -1,  1380,   171,    -1,    -1,
      -1,    -1,  1039,  1217,    -1,  1042,   180,    -1,    -1,    -1,
     184,    -1,    -1,    -1,    -1,    -1,   289,    -1,  1055,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1243,
    1244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1076,
      -1,   215,    -1,    -1,  1258,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     483,    -1,    -1,    -1,  1615,    -1,    -1,   490,   491,   492,
     493,   494,   495,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2580,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,    11,
      -1,    -1,    -1,    15,    38,    -1,    -1,    -1,   381,    -1,
     284,    -1,    -1,   287,    -1,  1656,  1217,    -1,  1728,   293,
      -1,    -1,    -1,    57,    -1,  1735,    -1,  1975,  1512,    -1,
      -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
      -1,    -1,  1243,  1244,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   327,    -1,    -1,  2646,  1258,    -1,    -1,
      -1,  2651,  1772,    75,  2654,    -1,  1380,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   108,   109,   350,    -1,    -1,    -1,
      -1,  1218,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2039,    -1,    -1,  1804,    -1,    -1,    -1,    -1,    -1,
    1810,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2057,
     483,    -1,    -1,  1823,    -1,    -1,    -1,   490,   491,   492,
     493,   494,   495,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1615,   406,   145,    -1,    -1,  2084,  1294,  1295,    -1,
    1297,   175,    -1,  2091,  2734,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1862,    -1,  1864,    -1,    -1,  1867,    -1,   433,
    1870,    -1,    -1,    -1,   176,   199,  2114,   441,    -1,    -1,
      -1,    -1,  1656,    -1,    -1,    -1,    -1,  1887,    -1,  1380,
     192,    -1,    -1,    -1,   458,   197,   460,   461,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2786,    -1,  1512,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2799,
      -1,    -1,    -1,    -1,    -1,    -1,   250,    -1,    -1,    -1,
      -1,    -1,   234,   497,   258,    -1,   500,   501,   502,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   270,    -1,   272,    -1,
    1950,    -1,    -1,    -1,    -1,  1955,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1963,  1964,  1965,  1966,    -1,  1968,    -1,
      -1,    -1,    -1,    -1,    -1,  2855,    -1,   301,    -1,    -1,
      -1,    -1,   537,    -1,    -1,  1985,    -1,   289,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1423,  1997,    -1,    -1,
    2238,    -1,    -1,    -1,    -1,    -1,    -1,   537,    -1,    -1,
      -1,  1615,    -1,  2013,    -1,    -1,    -1,  1444,    -1,  1446,
      -1,  1512,    -1,    -1,   348,    -1,    -1,  2027,  2028,    -1,
      -1,    -1,    -1,    -1,  2914,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1975,    -1,   370,    -1,     8,    -1,
    2050,    11,  1656,    -1,    -1,    15,    -1,  1504,    -1,    -1,
      -1,  2299,    -1,  1490,    -1,    -1,   390,  1514,   392,  1516,
      -1,   395,  1519,    -1,    -1,    -1,    -1,    -1,  1525,   381,
    1527,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,
      50,    -1,  1539,    -1,    -1,    -1,    -1,  1544,    -1,    -1,
      -1,  1548,  1549,  1550,  1551,    -1,  1553,  1554,  2039,    -1,
      -1,    -1,    -1,    -1,    -1,    75,     0,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1615,    -1,  2057,    -1,    -1,    -1,
    3010,  2369,    -1,    -1,    -1,    -1,  2136,  2137,  2138,  2139,
      -1,  2141,  2142,  2143,    -1,    -1,  1573,  1574,  2148,  2149,
      -1,    -1,    -1,  2084,    -1,    -1,    -1,    -1,    -1,    -1,
    2091,    -1,    -1,    -1,    -1,  1656,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   499,    -1,  2177,    -1,    -1,
      -1,   483,    -1,  2114,    -1,   740,    -1,    -1,   490,   491,
     492,   493,   494,   495,    -1,  2195,    -1,    -1,  2198,    -1,
      -1,  1975,  2202,  2203,  2204,    -1,  2206,    -1,    -1,    -1,
     740,    95,    -1,    -1,    -1,    -1,   176,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2225,    -1,  2227,    -1,    -1,
      -1,    -1,   192,    -1,    -1,    -1,    -1,   197,    -1,    -1,
    2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,  2248,  2249,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2500,   147,    -1,  2039,  2266,    -1,    -1,    -1,
    2270,    -1,    -1,    -1,   234,    -1,    -1,   161,    -1,    -1,
    2280,  1728,   166,  2057,    -1,    -1,    -1,   171,  1735,    -1,
      -1,  2291,    -1,    -1,    -1,    -1,   180,    -1,  2536,    -1,
     184,    -1,    -1,    -1,    -1,    -1,    -1,  2238,    -1,  2309,
    2084,    -1,    -1,    -1,    -1,    -1,    -1,  2091,    -1,    -1,
      -1,    -1,   877,    -1,    -1,    -1,    -1,    -1,    -1,   289,
      -1,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2114,    -1,    -1,    -1,    -1,    -1,    -1,   877,    -1,    -1,
      -1,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2359,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2299,  2607,
      -1,  1975,    -1,    -1,    -1,    -1,  1823,  1804,    -1,    -1,
      -1,    -1,    -1,  2383,    -1,  2385,  2386,  2387,  2388,    -1,
      -1,    -1,  2392,  2393,    -1,  2395,  2396,    -1,    -1,  2399,
     284,    -1,    -1,   287,  2404,    -1,    -1,    -1,  2408,   293,
      -1,    -1,    -1,    -1,  2414,    -1,    -1,    -1,    -1,    -1,
      -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2431,    -1,    -1,    -1,  2039,  2436,    -1,  2369,    -1,
      -1,  2441,    -1,   327,    -1,  2445,    -1,    -1,    -1,    -1,
      -1,  2451,    -1,  2057,    -1,    -1,    -1,  2457,    -1,    -1,
      -1,    -1,    -1,    -1,  2238,    -1,   350,    -1,    -1,    -1,
    2470,  2471,    -1,    -1,    -1,    -1,    -1,    -1,  2478,    -1,
    2084,    -1,    -1,    -1,  1975,  2723,    -1,  2091,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2495,    -1,    -1,    -1,    -1,
      -1,  1056,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1966,
      -1,  2759,   406,   483,    -1,  2299,  1056,    -1,  1955,    -1,
     490,   491,   492,   493,   494,   495,    -1,  1964,  1965,    -1,
      -1,  1968,    -1,    -1,    -1,    -1,    -1,    -1,  2039,   433,
      -1,    -1,  2790,    -1,    -1,  2793,   868,   441,  1985,    -1,
      -1,    -1,    -1,   875,    -1,    -1,  2057,    -1,    -1,  2500,
      -1,  2571,    -1,    -1,   458,    -1,   460,   461,    -1,    -1,
      -1,  2581,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2592,  2084,    -1,  2369,    -1,    -1,    -1,    -1,
    2091,    -1,    -1,    -1,    -1,  2536,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   497,    -1,    -1,   500,   501,   502,    -1,
      -1,    -1,    -1,  2114,    -1,    -1,    -1,    -1,  2628,    -1,
     599,   600,    -1,    -1,  2238,    -1,    -1,  2637,  2638,    -1,
    2640,    -1,    -1,  2643,    -1,    -1,  2646,    -1,    -1,    -1,
     962,  2651,    -1,    -1,  2654,    -1,  2656,    -1,    -1,  2659,
      -1,    -1,  1217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2674,   987,  2607,   989,   990,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1217,  1243,  1244,
      -1,    -1,   661,   662,    -1,  2299,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  1258,  2704,    -1,    -1,    -1,    -1,  2136,
    2137,  2138,    -1,  1243,  1244,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2724,  2725,  2500,    -1,  1258,    -1,
      -1,    -1,    -1,    -1,    -1,  2735,    -1,  2737,    -1,  2739,
      -1,    -1,    -1,    -1,    -1,  1057,    -1,  2238,  1060,  1061,
    2177,  2198,  2752,    -1,    -1,  2755,    -1,  2995,    -1,    -1,
      -1,    -1,  2536,    -1,    -1,  2369,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2773,    -1,    -1,    -1,    -1,  2225,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2786,    -1,    -1,    -1,
      -1,  2791,  2723,  2240,  2241,  2242,  2243,  2244,  2245,  2246,
    2247,  2248,  2249,    -1,    -1,    -1,    -1,    -1,  2299,  2809,
      -1,    -1,    -1,    -1,  2814,    -1,  2816,    -1,    -1,    -1,
      -1,    -1,    -1,    25,  2824,  1380,    -1,    -1,  2759,    31,
      -1,    -1,    -1,  2607,    -1,    -1,    38,    -1,    -1,    -1,
    2840,    -1,    -1,  2270,    -1,    -1,     8,    -1,    -1,    11,
    1380,    -1,    -1,    15,  2854,    57,    -1,    -1,    -1,  2790,
      -1,    -1,  2793,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       8,    -1,    -1,    11,    -1,    -1,    -1,    15,  2369,    -1,
      -1,    43,  2882,    -1,    -1,    -1,    -1,    -1,    50,    -1,
      -1,  2891,    -1,    -1,    -1,  2895,  2500,    -1,    -1,  2899,
      -1,    -1,    -1,    -1,    -1,    43,   108,   876,    -1,    -1,
      -1,    -1,    50,    75,    -1,    -1,    -1,  2917,  2918,  2919,
      -1,  2921,    -1,    -1,   893,    -1,    -1,    -1,    -1,  1241,
      -1,    -1,  2536,    -1,    -1,   137,    -1,    75,    -1,    -1,
    1252,    -1,  1254,    -1,    -1,    -1,    -1,    -1,    -1,  2723,
    2950,  1263,  2399,   922,    -1,    -1,    -1,  1512,  2385,  2386,
    2387,  2388,    -1,    -1,    -1,  2965,    -1,  2414,  1280,    -1,
      -1,    -1,    -1,   942,   943,   944,    -1,  2977,   947,    -1,
      -1,    -1,  1512,   145,    -1,  2759,    -1,    -1,    -1,    -1,
      -1,  2991,    -1,    -1,  1306,  1307,    -1,   199,    -1,    -1,
      -1,   970,    -1,  2607,    -1,    -1,    -1,   145,    -1,  2500,
      -1,  3011,    -1,    -1,   176,    -1,  2790,  3017,    -1,  2793,
      -1,    -1,    -1,    -1,  2471,    -1,    -1,  1339,  1340,    -1,
     192,  1343,  1344,  3033,  3034,   197,    -1,    -1,   176,    -1,
      -1,    -1,    -1,    -1,    -1,  2536,    -1,    -1,   250,    -1,
      -1,  2478,    -1,  1022,   192,    -1,   258,  1026,  1027,   197,
    1615,    -1,    -1,    -1,  2995,    -1,    -1,    -1,   270,    -1,
      -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  1615,    -1,    -1,    -1,   291,
      -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,   301,
      -1,  1656,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1081,    -1,    -1,    -1,  2607,    -1,    -1,  2723,
      -1,    -1,    -1,  1092,    -1,    -1,  1656,   289,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     342,    -1,    -1,    -1,   346,    -1,   348,  1116,    -1,    -1,
      -1,   289,    -1,    -1,    -1,  2759,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1476,  1477,    -1,    -1,   370,    -1,
      -1,    -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2790,    -1,   390,  2793,
      -1,    -1,    -1,    -1,    -1,    -1,  2643,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2656,
      -1,    -1,  2659,    -1,    -1,    -1,    -1,    -1,    -1,   381,
    1532,  2995,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1542,    -1,  2723,  1545,    25,    -1,    -1,    -1,    -1,    -1,
      31,    -1,   444,   381,    -1,    -1,    -1,    38,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2704,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,  2759,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2724,  2725,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2739,    -1,    -1,    -1,    -1,    -1,    -1,  2790,
      -1,    -1,  2793,    -1,  1616,  1617,    -1,    -1,  2735,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,
      -1,   483,    -1,    -1,    -1,  2752,  2773,  1639,   490,   491,
     492,   493,   494,   495,    -1,    -1,    -1,    -1,    -1,    -1,
    1652,    -1,    -1,    -1,  2791,   483,   137,    -1,    -1,    -1,
      -1,    -1,   490,   491,   492,   493,   494,   495,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1336,    -1,  2816,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1346,    -1,  1348,
      -1,    -1,  1351,  1352,  1353,  1354,    -1,    -1,    -1,    -1,
      -1,  2995,    -1,    -1,    -1,    -1,    -1,  2824,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1375,    -1,   199,    -1,
      -1,    -1,  1381,  1382,  1383,  1384,  1385,  1386,  1387,    -1,
    1975,    -1,    -1,  1392,  1393,    -1,    -1,  2854,  1397,    -1,
      -1,    -1,  1401,    -1,    -1,  1404,  1405,  1406,  1407,  1408,
    1409,  1410,  1411,  1412,    -1,  1975,  1415,    -1,  2895,    -1,
      -1,    -1,  2899,  1422,     8,    -1,  1425,    11,    -1,   250,
      -1,    15,    16,    17,    18,    19,    20,   258,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1447,   270,
      -1,    35,    -1,    -1,  2039,    -1,    -1,    -1,    -1,    43,
      -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,
     291,    -1,  2057,  1815,  2995,    -1,    -1,  1476,  1477,  2039,
     301,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2965,     0,
      -1,    75,    -1,  1835,  1836,    -1,    -1,  2057,    -1,  2084,
      -1,    -1,    -1,    -1,    -1,    -1,  2091,    -1,    -1,    -1,
      21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      31,   342,    33,    34,  2084,   346,    -1,   348,    -1,  2114,
      -1,  2091,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,   370,
      -1,    -1,    -1,    -1,  2114,   376,    -1,    -1,    -1,    70,
    1559,    -1,    -1,  1562,  1563,    -1,  1565,    -1,    -1,   390,
      81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   176,    -1,    -1,  1594,    -1,    -1,    -1,    -1,
      -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,   192,    -1,
      -1,    -1,    -1,   197,    -1,    -1,   127,    -1,    -1,    -1,
      -1,    -1,    -1,   444,    -1,    -1,   137,    -1,    -1,    -1,
      -1,    -1,   143,    -1,    -1,   219,   220,    -1,    -1,    -1,
     151,    -1,   153,   154,    -1,    -1,    -1,    -1,    -1,  1991,
     234,    -1,    -1,  2238,    -1,  1654,   167,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1665,    -1,    -1,    -1,
      -1,  1670,    -1,    -1,    -1,    -1,    -1,    -1,  2238,    -1,
      -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,   272,    -1,
      -1,   275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     211,    -1,    -1,    -1,    -1,   289,    -1,    -1,   292,    -1,
    1709,    -1,    -1,    -1,  2299,    -1,    -1,    -1,    -1,    -1,
      -1,  1720,    -1,  1722,  1723,    -1,   237,    -1,    -1,    -1,
      -1,  1730,    -1,    -1,    -1,  1734,    -1,    -1,  1737,  2299,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    -1,     8,
      -1,    -1,    11,    -1,   963,    -1,    15,    16,    17,    18,
      19,    20,    -1,    -1,    -1,  1774,    -1,    -1,  1777,    -1,
    1779,    -1,    -1,    -1,  2369,    -1,    35,    -1,    -1,    38,
      -1,    -1,    -1,    -1,    43,    -1,    -1,   381,    -1,    -1,
      -1,    50,    -1,   314,    -1,  1004,   317,    -1,    -1,  2369,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
      -1,  1830,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   355,    -1,  1845,  1846,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   369,    -1,
      -1,    -1,    -1,    -1,    -1,   376,    -1,    -1,    -1,   380,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   390,
    1879,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   402,    -1,    -1,    -1,   406,  2238,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
     494,   495,    -1,    -1,    -1,  2500,    -1,    -1,    -1,   503,
      -1,  1120,    -1,    -1,    -1,    -1,    -1,   176,  1127,    -1,
      -1,   442,    -1,    -1,    -1,    -1,   447,    -1,    -1,  1938,
    2500,    -1,    -1,   192,    -1,    -1,    -1,    -1,   197,    -1,
     461,  2536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     219,   220,    -1,    -1,   485,    -1,  2536,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1983,   234,    -1,    -1,   499,    -1,
      -1,   502,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2607,   272,    -1,    -1,   275,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2036,    -1,    -1,
     289,    -1,    -1,   292,    23,    -1,  2045,  2607,    -1,  2048,
      -1,    -1,  2051,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2078,
    2079,    -1,    -1,  2082,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2093,    -1,    -1,    76,    -1,    -1,
      -1,    -1,    -1,  2102,    -1,    -1,  2105,    -1,  2107,    -1,
      -1,    -1,    -1,    92,    -1,    -1,  2115,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2123,  2124,    -1,    -1,  2127,    -1,
      -1,    -1,   381,    -1,    -1,  1334,    -1,    -1,  2723,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1345,  2489,    -1,    -1,
    1349,    -1,  2494,    -1,    -1,  2154,  1355,  1356,  1357,    -1,
      -1,     8,    -1,  2723,    11,  1364,    -1,   146,    15,    16,
      17,    18,    19,    20,  2759,    -1,    -1,   156,    -1,    -1,
      -1,  2180,    -1,    -1,    -1,    -1,    -1,    -1,    35,   168,
      -1,    -1,    -1,    -1,   173,    -1,    43,    -1,  2197,  2759,
      -1,  2543,  2544,    50,    -1,  2790,    -1,    -1,  2793,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   200,  1421,    -1,    -1,    -1,    -1,    -1,    75,    -1,
    2790,    -1,    -1,  2793,   483,    -1,    -1,   486,   487,   488,
      -1,   490,   491,   492,   493,   494,   495,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1461,    -1,    -1,    -1,   245,    -1,    -1,    -1,
     249,    -1,    -1,    -1,    -1,    -1,  1475,    -1,    -1,    -1,
      -1,  1480,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,
      -1,    11,    -1,    -1,    -1,    15,    16,    17,    18,    19,
      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    35,  2315,    -1,    38,    -1,
      -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,   176,
      50,    -1,    -1,   312,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   192,    -1,   326,    -1,    -1,
     197,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2363,  2364,    -1,    -1,    -1,  2368,
    2712,  2713,   219,   220,  2373,    -1,    -1,  2376,  2377,    -1,
     359,  2723,  2381,   362,    -1,    -1,    -1,   234,    -1,    -1,
      -1,   370,    -1,    -1,   373,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2995,    -1,    -1,   392,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   272,    -1,   406,   275,    -1,
      -1,    -1,    -1,    -1,   413,  2995,    -1,  2436,    -1,    -1,
      -1,    -1,   289,   422,    -1,   292,    -1,    -1,    -1,   428,
      -1,    -1,    -1,    -1,    -1,    -1,   176,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2464,    -1,    -1,    -1,  1668,
      -1,    -1,   192,    -1,   453,    -1,    -1,   197,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1687,    -1,
      -1,    -1,  2491,    -1,    -1,    -1,    -1,    -1,    -1,   219,
     220,    -1,    -1,    -1,    -1,    -1,  1705,    -1,  1707,  1708,
      -1,  1710,    -1,  1712,   234,    -1,    -1,  1716,    -1,    -1,
    1719,    -1,    -1,    -1,    -1,  1724,    -1,    -1,  1727,    -1,
      -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
    1739,    -1,    -1,    -1,  1743,  1744,  1745,  1746,  1747,  1748,
    1749,    -1,   272,    -1,    -1,   275,  1755,  1756,    -1,  1758,
    1759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   289,
      -1,  1770,   292,    -1,  1773,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1781,  1782,  1783,  1784,  1785,  1786,  1787,  1788,
    1789,  1790,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2610,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2619,  2620,     8,  1822,  2623,    11,    -1,    -1,    -1,    15,
      16,    17,    18,    19,    20,    -1,   483,    -1,    -1,   486,
     487,   488,    -1,   490,   491,   492,   493,   494,   495,    35,
      -1,   498,    -1,  2995,    -1,    -1,    -1,    43,    -1,    -1,
      -1,   381,  2661,  2662,    50,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2676,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
      -1,    -1,    -1,    -1,  2693,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1943,  1944,  1945,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   483,    -1,    -1,   486,   487,   488,    -1,
     490,   491,   492,   493,   494,   495,    -1,    -1,    -1,    -1,
     500,    -1,    -1,  2782,    -1,     8,    -1,    -1,    11,    -1,
     176,    -1,    15,    16,    17,    18,    19,    20,    -1,    -1,
    2799,    -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,
      -1,   197,    35,    -1,    -1,  2814,    -1,    -1,  2817,    -1,
      43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,
      -1,    -1,  2831,   219,   220,    -1,  2035,    -1,    -1,    -1,
      -1,    -1,  2041,    -1,    -1,    -1,    -1,    -1,   234,    -1,
      -1,    -1,    75,    -1,    -1,  2054,  2055,  2056,    -1,  2058,
    2059,  2060,  2061,  2062,    -1,    -1,  2065,  2066,  2067,  2068,
    2069,  2070,  2071,  2072,  2073,  2074,  2075,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,    -1,   275,
      -1,    -1,    -1,    -1,    -1,  2094,    -1,    -1,  2097,    -1,
    2099,    -1,    -1,   289,  2103,  2104,   292,    -1,  2907,    -1,
      -1,    -1,  2911,    -1,    -1,    -1,    -1,    -1,  2117,  2118,
    2119,  2120,    -1,  2122,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2941,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   192,
      -1,    -1,    -1,    -1,   197,  2974,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   381,   219,   220,    -1,    -1,
    2199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       8,  3020,  3021,    11,    -1,    -1,    -1,    15,    16,    17,
      18,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,   272,
      -1,    -1,   275,    -1,  3053,    43,    -1,    -1,    -1,    -1,
      -1,    -1,    50,    -1,    -1,    -1,   289,    -1,    -1,   292,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,
      -1,  2290,    -1,    -1,    -1,  3094,    -1,   483,    -1,    -1,
     486,   487,   488,    -1,   490,   491,   492,   493,   494,   495,
      -1,    -1,    -1,    -1,   500,    -1,    -1,  2316,    -1,    -1,
      -1,  2320,  2321,    -1,  2323,    -1,    -1,  2326,  2327,  2328,
    2329,  2330,    -1,    -1,    -1,  2334,  2335,  2336,  2337,  2338,
    2339,  2340,  2341,  2342,  2343,  2344,  2345,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2355,    -1,   381,    -1,
      -1,    -1,    -1,  2362,    -1,    -1,  2365,    -1,  2367,    -1,
      -1,    -1,  2371,    -1,    -1,  2374,  2375,    -1,    -1,  2378,
    2379,    -1,    -1,  2382,     8,    -1,    -1,    11,   176,    -1,
      -1,    15,    16,    17,    18,    19,    20,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,    -1,   197,
      -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
      -1,    -1,  2421,    -1,    -1,    -1,    50,    -1,    -1,    -1,
      -1,   219,   220,    -1,    -1,    -1,  2435,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,  2448,
      -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,    -1,   490,   491,   492,
     493,   494,   495,  2472,    -1,    -1,    -1,   500,    -1,    -1,
      -1,    -1,    -1,    -1,   272,    -1,    -1,   275,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   289,    -1,    -1,   292,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,     8,    -1,    -1,    11,    -1,    -1,    -1,    15,
      16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
      -1,    -1,   176,    -1,    50,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   192,    -1,
      -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    75,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   381,    -1,   219,   220,    -1,    -1,    -1,
      -1,  2600,    -1,    -1,    -1,  2604,    -1,    -1,    -1,    -1,
     234,    -1,    -1,    -1,  2613,  2614,  2615,    -1,    -1,  2618,
      -1,    -1,  2621,  2622,    -1,    -1,    -1,  2626,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,
      -1,   275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   289,    -1,    -1,   292,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2690,    -1,    -1,    -1,   483,   192,  2696,   486,   487,
     488,   197,   490,   491,   492,   493,   494,   495,    -1,    -1,
    2709,    -1,   500,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   219,   220,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,  2757,  2758,
      -1,    -1,    -1,    -1,  2763,  2764,  2765,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,    -1,   275,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   289,    -1,    -1,   292,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2807,  2808,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2823,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2832,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
     494,   495,    -1,    -1,    -1,    -1,   500,  2876,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2894,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2916,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2935,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2979,    -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,    -1,   490,   491,   492,   493,   494,   495,
      -1,    -1,    -1,    -1,   500,    -1,    -1,    -1,    -1,  3008,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,  3056,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,   132,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,   492,    -1,    -1,
      -1,    -1,   497,    -1,   499,   500,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   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,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,   461,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,   485,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
     500,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   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,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
     485,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      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,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,   171,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
     230,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,   418,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    -1,    -1,
      -1,    36,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   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,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,   492,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,   492,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,   492,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
     500,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
     500,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,   171,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,   406,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,   458,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,    -1,
      -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,   504,
      -1,   506,   507,     3,     4,     5,     6,     7,     8,     9,
      10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    37,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      50,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,   117,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   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,    -1,   273,   274,    -1,   276,   277,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,   296,   297,   298,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,   483,    -1,    -1,    -1,    -1,    -1,    -1,
     490,   491,    -1,    -1,    -1,    -1,    -1,   497,    -1,   499,
      -1,    -1,    -1,    -1,   504,    -1,   506,   507,     3,     4,
       5,     6,     7,     8,     9,    10,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,     3,
       4,     5,     6,     7,   499,     9,    10,    -1,    -1,    -1,
      -1,   506,   507,    -1,    -1,    -1,    -1,    21,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
      54,    -1,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
      74,    -1,    76,    -1,    78,    79,    80,    81,    82,    83,
      84,    85,    86,    87,    -1,    89,    90,    91,    92,    93,
      94,    -1,    96,    97,    98,    99,   100,   101,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,    -1,   118,    -1,   120,   121,   122,   123,
     124,   125,    -1,   127,   128,   129,   130,   131,    -1,    -1,
     134,   135,   136,   137,   138,    -1,   140,   141,   142,    -1,
     144,   145,   146,    -1,   148,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
     164,   165,    -1,   167,    -1,   169,   170,    -1,   172,   173,
     174,   175,   176,   177,    -1,   179,    -1,   181,   182,   183,
      -1,   185,   186,   187,   188,   189,   190,   191,   192,   193,
     194,   195,   196,    -1,   198,   199,   200,   201,   202,   203,
      -1,   205,   206,   207,   208,   209,   210,   211,   212,   213,
     214,    -1,   216,    -1,   218,   219,   220,   221,   222,   223,
     224,   225,   226,   227,   228,    -1,    -1,   231,   232,   233,
     234,    -1,   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,    -1,   273,
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
      -1,   285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,    -1,   311,   312,   313,
     314,   315,   316,   317,   318,   319,    -1,   321,   322,   323,
     324,   325,   326,    -1,   328,   329,   330,   331,   332,   333,
     334,   335,    -1,   337,   338,   339,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,   368,    -1,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,   385,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,    -1,
     404,   405,    -1,   407,   408,   409,   410,   411,   412,   413,
      -1,   415,   416,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,   428,   429,   430,   431,   432,    -1,
      -1,   435,   436,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,   455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,
     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
     474,   475,   476,   477,   478,   479,   480,   481,   482,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   490,   491,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   499,    -1,    -1,    -1,    -1,
      -1,    -1,   506,   507,     3,     4,     5,     6,     7,     8,
       9,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    40,    41,    -1,    43,    44,    45,    46,    47,    48,
      49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      -1,    70,    71,    72,    73,    74,    -1,    76,    -1,    78,
      79,    80,    81,    82,    83,    84,    85,    86,    87,    -1,
      89,    90,    91,    92,    93,    94,    -1,    96,    97,    98,
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
     109,   110,   111,   112,   113,   114,   115,   116,    -1,   118,
      -1,   120,   121,   122,   123,   124,   125,    -1,   127,   128,
     129,   130,   131,    -1,    -1,   134,   135,   136,   137,   138,
      -1,   140,   141,   142,    -1,   144,   145,   146,    -1,   148,
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
     159,   160,    -1,   162,   163,   164,   165,    -1,   167,    -1,
     169,   170,    -1,   172,   173,   174,   175,   176,   177,    -1,
     179,    -1,   181,   182,   183,    -1,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,   196,    -1,   198,
     199,   200,   201,   202,   203,    -1,   205,   206,   207,   208,
     209,   210,   211,   212,   213,   214,    -1,   216,    -1,   218,
      -1,   220,   221,   222,   223,   224,   225,   226,   227,   228,
      -1,    -1,   231,   232,   233,   234,    -1,   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,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,    -1,   285,   286,    -1,    -1,
     289,   290,   291,    -1,    -1,   294,   295,   296,   297,   298,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,    -1,   311,   312,   313,   314,   315,   316,   317,   318,
     319,    -1,   321,   322,   323,   324,   325,   326,    -1,   328,
     329,   330,   331,   332,   333,   334,   335,    -1,   337,   338,
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
      -1,   370,   371,   372,   373,   374,   375,   376,   377,   378,
     379,   380,   381,   382,   383,   384,   385,    -1,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
     399,   400,   401,   402,    -1,   404,   405,    -1,   407,   408,
     409,   410,   411,   412,   413,    -1,   415,   416,    -1,    -1,
     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
     429,   430,   431,   432,    -1,    -1,   435,   436,   437,   438,
     439,   440,    -1,   442,   443,   444,   445,   446,   447,   448,
      -1,   450,   451,   452,   453,   454,   455,   456,    -1,    -1,
     459,    -1,    -1,   462,   463,   464,   465,   466,   467,   468,
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   490,   491,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     499,    -1,    -1,    -1,    -1,    -1,    -1,   506,   507,     3,
       4,     5,     6,     7,     8,     9,    10,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    31,    32,    -1,
      -1,    -1,    -1,    37,    -1,    -1,    40,    41,    -1,    43,
      44,    45,    46,    47,    48,    49,    -1,    51,    52,    53,
      54,    -1,    56,    57,    58,    59,    60,    61,    62,    63,
      64,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
      74,    -1,    76,    -1,    78,    79,    80,    81,    82,    83,
      84,    85,    86,    87,    -1,    89,    90,    91,    92,    93,
      94,    -1,    96,    97,    98,    99,   100,   101,   102,   103,
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
     114,   115,   116,   117,   118,    -1,   120,   121,   122,   123,
     124,   125,    -1,   127,   128,   129,   130,   131,    -1,    -1,
     134,   135,   136,   137,   138,    -1,   140,   141,   142,    -1,
     144,    -1,   146,    -1,   148,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
     164,   165,    -1,   167,    -1,   169,   170,    -1,   172,   173,
     174,   175,    -1,   177,    -1,   179,    -1,   181,   182,   183,
      -1,   185,   186,   187,   188,   189,   190,   191,    -1,   193,
     194,   195,   196,    -1,   198,   199,   200,   201,   202,   203,
      -1,   205,   206,   207,   208,   209,   210,   211,   212,   213,
     214,    -1,   216,    -1,   218,    -1,    -1,   221,   222,   223,
     224,   225,   226,   227,   228,    -1,    -1,   231,   232,   233,
      -1,    -1,   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,    -1,   273,
     274,    -1,   276,   277,   278,   279,   280,   281,   282,   283,
      -1,   285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
     304,   305,   306,   307,   308,   309,    -1,   311,   312,   313,
     314,   315,   316,   317,   318,   319,    -1,   321,   322,   323,
     324,   325,   326,    -1,   328,   329,   330,   331,   332,   333,
     334,   335,    -1,   337,   338,   339,   340,   341,   342,   343,
     344,   345,   346,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
     364,   365,   366,   367,   368,    -1,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,    -1,   382,   383,
     384,   385,    -1,   387,   388,   389,   390,   391,   392,   393,
     394,   395,   396,   397,   398,   399,   400,   401,   402,    -1,
     404,   405,    -1,   407,   408,   409,   410,   411,   412,   413,
      -1,   415,   416,    -1,    -1,   419,   420,   421,   422,   423,
     424,   425,   426,   427,   428,   429,   430,   431,   432,    -1,
      -1,   435,   436,   437,   438,   439,   440,    -1,   442,   443,
     444,   445,   446,   447,   448,    -1,   450,   451,   452,   453,
     454,   455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,
     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
     474,   475,   476,   477,   478,   479,   480,   481,   482,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   490,   491,     3,    -1,
      -1,    -1,    -1,   497,    -1,   499,    -1,    -1,    -1,    -1,
     504,    -1,   506,   507,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    38,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,    -1,    -1,   172,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   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,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   500,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,    -1,   231,   232,   233,   234,
      -1,   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,    -1,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,   288,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   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,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,    -1,    -1,
     485,     3,     4,     5,    -1,    -1,    -1,     9,    -1,    -1,
      -1,    -1,    -1,    -1,   499,    -1,    -1,    -1,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
      32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    -1,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    76,    -1,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    96,    97,    98,    99,   100,   101,
     102,   103,    -1,    -1,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,   170,    -1,
     172,   173,   174,   175,   176,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,    -1,    -1,   231,
     232,   233,   234,    -1,   236,   237,   238,    -1,    -1,   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,
      -1,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,   287,    -1,   289,   290,   291,
      -1,    -1,   294,   295,   296,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,   368,    -1,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,    -1,   407,   408,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,    -1,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,     3,    -1,     5,    -1,    -1,    -1,    -1,   490,   491,
     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
      32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    63,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    76,    -1,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    96,    97,    98,    99,   100,   101,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,    -1,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,   170,    -1,
     172,   173,   174,   175,   176,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,   229,    -1,   231,
     232,   233,   234,    -1,   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,
      -1,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,    -1,   288,   289,   290,   291,
      -1,    -1,   294,   295,   296,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,   368,    -1,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,    -1,   407,   408,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,    -1,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,    -1,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    -1,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    76,    -1,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    96,    97,    98,    99,   100,   101,
     102,   103,    -1,    -1,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,    -1,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,   170,    -1,
     172,   173,   174,   175,   176,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,    -1,    -1,   231,
     232,   233,   234,    -1,   236,   237,   238,    -1,    -1,   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,
      -1,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,    -1,    -1,   289,   290,   291,
      -1,    -1,   294,   295,   296,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   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,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,   406,   407,   408,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,    -1,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,   461,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,     3,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
      32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    63,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    76,    -1,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    96,    97,    98,    99,   100,   101,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,    -1,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,   170,    -1,
     172,   173,   174,   175,   176,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,    -1,    -1,   231,
     232,   233,   234,    -1,   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,
      -1,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,    -1,    -1,   289,   290,   291,
      -1,    -1,   294,   295,   296,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,   368,    -1,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,    -1,   407,   408,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,    -1,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,    -1,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
      32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    46,    47,    48,    49,    50,    51,
      52,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    63,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    76,    -1,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    96,    97,    98,    99,   100,   101,
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,    -1,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,   170,    -1,
     172,   173,   174,   175,   176,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,   206,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,   219,   220,   221,
     222,   223,   224,   225,   226,   227,   228,    -1,    -1,   231,
     232,   233,   234,    -1,   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,
      -1,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,    -1,    -1,   289,   290,   291,
      -1,    -1,   294,   295,   296,   297,   298,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,   368,    -1,   370,   371,
     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,    -1,   407,   408,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,    -1,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,   440,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,   451,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,    -1,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
      32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      -1,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    -1,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    -1,    -1,    78,    79,    80,    81,
      82,    83,    -1,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,    -1,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,    -1,    -1,
      -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
      -1,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,    -1,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,   221,
      -1,   223,   224,   225,   226,   227,   228,    -1,    -1,   231,
      -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,    -1,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,    -1,    -1,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,    -1,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,    -1,   376,   377,   378,   379,   380,    -1,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,   406,   407,    -1,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,    -1,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,    -1,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,    -1,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,   461,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,     3,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    21,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
      32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
      -1,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
      -1,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
      -1,    -1,    64,    65,    66,    67,    68,    -1,    70,    71,
      72,    73,    74,    -1,    -1,    -1,    78,    79,    80,    81,
      82,    83,    -1,    85,    86,    87,    -1,    89,    90,    91,
      92,    93,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,   111,
     112,   113,   114,   115,   116,    -1,   118,    -1,   120,   121,
     122,   123,   124,   125,    -1,   127,   128,   129,   130,   131,
      -1,    -1,   134,   135,   136,   137,   138,    -1,   140,   141,
     142,    -1,   144,   145,   146,    -1,   148,   149,   150,   151,
     152,   153,   154,   155,   156,   157,   158,    -1,   160,    -1,
     162,   163,   164,   165,    -1,   167,    -1,   169,    -1,    -1,
      -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,   181,
     182,   183,    -1,   185,   186,   187,   188,   189,   190,   191,
      -1,   193,   194,   195,   196,    -1,   198,   199,   200,   201,
     202,   203,    -1,   205,    -1,   207,   208,   209,   210,   211,
     212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,   221,
      -1,   223,   224,   225,   226,   227,   228,    -1,    -1,   231,
      -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,   241,
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
     262,   263,   264,   265,    -1,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,    -1,   278,   279,   280,   281,
     282,   283,    -1,   285,   286,    -1,    -1,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,   301,
     302,   303,   304,   305,   306,   307,   308,   309,    -1,   311,
     312,   313,   314,   315,   316,   317,   318,   319,    -1,   321,
     322,   323,   324,   325,   326,    -1,   328,   329,   330,   331,
     332,   333,   334,   335,    -1,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,    -1,   351,
     352,    -1,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
     372,   373,   374,    -1,   376,   377,   378,   379,   380,    -1,
     382,   383,   384,   385,    -1,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
     402,    -1,   404,   405,   406,   407,    -1,   409,   410,   411,
     412,   413,    -1,   415,   416,    -1,    -1,   419,   420,   421,
     422,   423,    -1,   425,   426,   427,   428,   429,   430,   431,
     432,    -1,    -1,   435,   436,   437,   438,   439,    -1,    -1,
     442,   443,   444,   445,   446,   447,   448,    -1,   450,    -1,
     452,   453,   454,   455,   456,    -1,    -1,   459,    -1,   461,
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
     482,    -1,     3,   485,     5,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    -1,    -1,    78,    79,    80,
      81,    82,    83,    -1,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    -1,    97,    98,    99,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,    -1,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,
     221,    -1,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,    -1,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,    -1,    -1,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,    -1,   376,   377,   378,   379,   380,
      -1,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,    -1,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,    -1,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,    -1,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
      -1,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    -1,    -1,    78,    79,    80,
      81,    82,    83,    -1,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    -1,    97,    98,    99,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,    -1,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,
     221,    -1,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,    -1,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,    -1,    -1,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,    -1,   376,   377,   378,   379,   380,
      -1,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,    -1,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,    -1,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,    -1,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
      -1,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    -1,    -1,    78,    79,    80,
      81,    82,    83,    -1,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    -1,    97,    98,    99,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,    -1,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,
     221,    -1,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,    -1,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,    -1,    -1,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,    -1,   376,   377,   378,   379,   380,
      -1,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,    -1,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,    -1,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,    -1,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
      -1,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    -1,    -1,    78,    79,    80,
      81,    82,    83,    -1,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    -1,    97,    98,    99,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,    -1,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,
     221,    -1,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,    -1,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,    -1,    -1,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,    -1,   376,   377,   378,   379,   380,
      -1,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,    -1,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,    -1,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,    -1,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
      -1,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   499,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    -1,    -1,    78,    79,    80,
      81,    82,    83,    -1,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    -1,    97,    98,    99,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,    -1,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,
     221,    -1,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,    -1,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,    -1,    -1,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,    -1,   376,   377,   378,   379,   380,
      -1,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,    -1,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,    -1,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,    -1,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
      -1,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,    -1,    -1,     3,     4,     5,    -1,    -1,     8,
       9,    -1,    -1,    -1,    -1,    -1,    15,    -1,   499,    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,    -1,    51,    52,    53,    54,    55,    56,    57,    58,
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
      69,    70,    71,    72,    73,    -1,    75,    76,    77,    78,
      79,    80,    81,    82,    83,    84,    85,    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,    -1,   153,   154,   155,   156,   157,    -1,
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
     179,   180,    -1,    -1,   183,   184,   185,   186,   187,   188,
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
     199,   200,   201,   202,   203,   204,   205,   206,    -1,   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,    -1,
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
     289,   290,   291,   292,   293,   294,    -1,   296,   297,   298,
      -1,   300,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,   312,    -1,   314,   315,    -1,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,   340,   341,   342,   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,    -1,   402,   403,   404,   405,   406,   407,   408,
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
     419,   420,    -1,   422,    -1,   424,   425,   426,   427,   428,
     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
     439,   440,   441,   442,   443,   444,   445,   446,    -1,   448,
     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,   463,   464,   465,   466,   467,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     479,   480,   481,   482,    -1,     3,    -1,   486,   487,   488,
       8,   490,   491,   492,   493,   494,   495,    15,    -1,    -1,
      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    40,    41,    -1,    43,    44,    45,    -1,    47,
      48,    49,    50,    51,    -1,    53,    54,    -1,    56,    57,
      58,    59,    60,    61,    -1,    -1,    64,    65,    66,    67,
      68,    -1,    70,    71,    72,    73,    74,    -1,    -1,    -1,
      78,    79,    80,    81,    82,    83,    -1,    85,    86,    87,
      -1,    89,    90,    91,    92,    93,    94,    -1,    -1,    97,
      98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
     108,   109,   110,   111,   112,   113,   114,   115,   116,    -1,
     118,    -1,   120,   121,   122,   123,   124,   125,    -1,   127,
     128,   129,   130,   131,    -1,    -1,   134,   135,   136,   137,
     138,    -1,   140,   141,   142,    -1,   144,   145,   146,    -1,
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
     158,    -1,   160,    -1,   162,   163,   164,   165,    -1,   167,
      -1,   169,    -1,    -1,    -1,   173,   174,   175,    -1,   177,
      -1,   179,    -1,   181,   182,   183,    -1,   185,   186,   187,
     188,   189,   190,   191,    -1,   193,   194,   195,   196,    -1,
     198,   199,   200,   201,   202,   203,    -1,   205,    -1,   207,
     208,   209,   210,   211,   212,   213,   214,    -1,   216,    -1,
     218,    -1,    -1,   221,    -1,   223,   224,   225,   226,   227,
     228,    -1,    -1,   231,    -1,   233,    -1,    -1,   236,   237,
     238,    -1,    -1,   241,   242,   243,   244,   245,   246,   247,
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
     258,   259,   260,   261,   262,   263,   264,   265,    -1,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,    -1,
     278,   279,   280,   281,   282,   283,    -1,   285,   286,    -1,
      -1,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,    -1,   311,   312,   313,   314,   315,   316,   317,
     318,   319,    -1,   321,   322,   323,   324,   325,   326,    -1,
     328,   329,   330,   331,   332,   333,   334,   335,    -1,   337,
     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
     348,   349,    -1,   351,   352,    -1,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
     368,    -1,   370,   371,   372,   373,   374,    -1,   376,   377,
     378,   379,   380,    -1,   382,   383,   384,   385,    -1,   387,
     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
     398,   399,   400,   401,   402,    -1,   404,   405,    -1,   407,
      -1,   409,   410,   411,   412,   413,    -1,   415,   416,    -1,
      -1,   419,   420,   421,   422,   423,    -1,   425,   426,   427,
     428,   429,   430,   431,   432,    -1,    -1,   435,   436,   437,
     438,   439,    -1,    -1,   442,   443,   444,   445,   446,   447,
     448,    -1,   450,    -1,   452,   453,   454,   455,   456,    -1,
      -1,   459,    -1,    -1,   462,   463,   464,   465,   466,   467,
     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
     478,   479,   480,   481,   482,    -1,    -1,    -1,   486,   487,
     488,    -1,   490,   491,   492,   493,   494,   495,     8,    -1,
      -1,    11,    -1,    -1,    -1,    15,    16,    17,    18,    19,
      20,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    35,    -1,     8,    -1,    -1,
      11,    -1,    -1,    43,    15,    16,    17,    18,    19,    20,
      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    43,     8,    -1,    75,    11,    -1,    -1,    50,
      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      35,    -1,     8,    -1,    75,    11,    -1,    -1,    43,    15,
      16,    17,    18,    19,    20,    50,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
      75,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
      -1,    -1,    -1,    -1,    -1,    -1,   176,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   192,    -1,    -1,    -1,    -1,   197,    -1,    -1,
       8,    -1,    -1,    11,    -1,   176,    -1,    15,    16,    17,
      18,    19,    20,    -1,    -1,    -1,    -1,    -1,    -1,   219,
     220,   192,    -1,    -1,    -1,    -1,   197,    35,    -1,    -1,
      -1,    -1,    -1,    -1,   234,    43,    -1,    -1,    -1,    -1,
      -1,   176,    50,    -1,    -1,    -1,    -1,    -1,   219,   220,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,
      -1,    -1,   197,   234,    -1,    -1,    -1,    75,    -1,    -1,
     176,    -1,   272,    -1,    -1,   275,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   219,   220,   192,    -1,    -1,   289,
      -1,   197,   292,    -1,    -1,    -1,    -1,    -1,    -1,   234,
      -1,   272,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   219,   220,    -1,    -1,    -1,   289,    -1,
      -1,   292,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,    -1,
     275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   289,    -1,    -1,   292,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,   176,   275,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   381,    -1,   289,   192,    -1,   292,    -1,    -1,   197,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     381,   219,   220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,
       8,    -1,    -1,    11,    -1,    -1,    -1,    15,    16,    17,
      18,    19,    20,    -1,    -1,    -1,   381,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,
      -1,    -1,    -1,    -1,   272,    43,    -1,   275,    -1,    -1,
      -1,    -1,    50,    -1,    -1,   381,    -1,    -1,    -1,    -1,
      -1,   289,    -1,   483,   292,    -1,   486,   487,   488,    -1,
     490,   491,   492,   493,   494,   495,    -1,    75,    -1,    -1,
     500,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,    -1,   490,
     491,   492,   493,   494,   495,    -1,    -1,    -1,    -1,   500,
      -1,    -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,
      -1,    15,    16,    17,    18,    19,    20,    -1,   483,    -1,
      -1,   486,   487,   488,    -1,   490,   491,   492,   493,   494,
     495,    35,    -1,    -1,    -1,   500,    -1,    -1,    -1,    43,
      -1,    -1,    -1,   381,    -1,    -1,    50,   483,    -1,    -1,
     486,   487,   488,    -1,   490,   491,   492,   493,   494,   495,
      -1,    -1,    -1,    -1,   500,    -1,     8,    -1,   176,    11,
      -1,    75,    -1,    15,    16,    17,    18,    19,    20,    -1,
      -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,    -1,   197,
      -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
      -1,   219,   220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,
      -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   483,    -1,    -1,   486,   487,
     488,    -1,   490,   491,   492,   493,   494,   495,    -1,    -1,
      -1,    -1,   500,    -1,   272,    -1,    -1,   275,    -1,    -1,
      -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   289,    -1,    -1,   292,    -1,    -1,    -1,   192,    -1,
      -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   219,   220,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     234,    -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     192,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   272,    -1,
      -1,   275,    -1,   381,    -1,    -1,    -1,   219,   220,    -1,
      -1,    -1,    -1,    -1,    -1,   289,    -1,    -1,   292,    -1,
      -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     272,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   289,    -1,    -1,
     292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   483,    -1,   381,   486,   487,
     488,    -1,   490,   491,   492,   493,   494,   495,    -1,    -1,
      -1,    -1,   500,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
     494,   495,    -1,    -1,    -1,    -1,   500,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   483,     3,    -1,   486,   487,   488,    -1,   490,   491,
     492,   493,   494,   495,    -1,    -1,    -1,    -1,   500,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    -1,    47,    48,    49,    50,
      51,    -1,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    -1,    -1,    78,    79,    80,
      81,    82,    83,    -1,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    -1,    97,    98,    99,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,    -1,
      -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,    -1,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,    -1,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,    -1,    -1,
     221,    -1,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     261,   262,   263,   264,   265,    -1,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,    -1,    -1,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,    -1,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,    -1,   376,   377,   378,   379,   380,
      -1,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,    -1,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,    -1,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,    -1,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
      -1,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,     4,     5,    -1,    -1,    -1,     9,    -1,
      -1,   492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    76,    -1,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    96,    97,    98,    99,   100,
     101,   102,   103,    -1,    -1,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,   170,
      -1,   172,   173,   174,   175,   176,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,   232,   233,   234,    -1,   236,   237,   238,    -1,    -1,
     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,    -1,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,   287,    -1,   289,   290,
     291,    -1,    -1,   294,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,   408,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,     4,     5,    -1,    -1,    -1,     9,   490,
     491,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    76,    -1,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    96,    97,    98,    99,   100,
     101,   102,   103,    -1,    -1,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,   117,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,   170,
      -1,   172,   173,   174,   175,   176,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,   232,   233,   234,    -1,   236,   237,   238,    -1,    -1,
     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,    -1,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,   287,    -1,   289,   290,
     291,    -1,    -1,   294,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,   408,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,     3,     4,     5,    -1,    -1,    -1,     9,   490,
     491,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      21,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
      41,    -1,    43,    44,    45,    46,    47,    48,    49,    50,
      51,    52,    53,    54,    -1,    56,    57,    58,    59,    60,
      61,    -1,    -1,    64,    65,    66,    67,    68,    -1,    70,
      71,    72,    73,    74,    -1,    76,    -1,    78,    79,    80,
      81,    82,    83,    84,    85,    86,    87,    -1,    89,    90,
      91,    92,    93,    94,    -1,    96,    97,    98,    99,   100,
     101,   102,   103,    -1,    -1,   106,   107,   108,   109,   110,
     111,   112,   113,   114,   115,   116,    -1,   118,    -1,   120,
     121,   122,   123,   124,   125,    -1,   127,   128,   129,   130,
     131,    -1,    -1,   134,   135,   136,   137,   138,    -1,   140,
     141,   142,    -1,   144,   145,   146,    -1,   148,   149,   150,
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
      -1,   162,   163,   164,   165,    -1,   167,    -1,   169,   170,
      -1,   172,   173,   174,   175,   176,   177,    -1,   179,    -1,
     181,   182,   183,    -1,   185,   186,   187,   188,   189,   190,
     191,   192,   193,   194,   195,   196,    -1,   198,   199,   200,
     201,   202,   203,    -1,   205,   206,   207,   208,   209,   210,
     211,   212,   213,   214,    -1,   216,    -1,   218,   219,   220,
     221,   222,   223,   224,   225,   226,   227,   228,    -1,    -1,
     231,   232,   233,   234,    -1,   236,   237,   238,    -1,    -1,
     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,    -1,   273,   274,   275,   276,    -1,   278,   279,   280,
     281,   282,   283,    -1,   285,   286,   287,    -1,   289,   290,
     291,    -1,    -1,   294,   295,   296,   297,   298,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,   309,    -1,
     311,   312,   313,   314,   315,   316,   317,   318,   319,    -1,
     321,   322,   323,   324,   325,   326,    -1,   328,   329,   330,
     331,   332,   333,   334,   335,    -1,   337,   338,   339,   340,
     341,   342,   343,   344,   345,   346,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,   364,   365,   366,   367,   368,    -1,   370,
     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
     381,   382,   383,   384,   385,    -1,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,    -1,   407,   408,   409,   410,
     411,   412,   413,    -1,   415,   416,    -1,    -1,   419,   420,
     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
     431,   432,    -1,    -1,   435,   436,   437,   438,   439,   440,
      -1,   442,   443,   444,   445,   446,   447,   448,    -1,   450,
     451,   452,   453,   454,   455,   456,    -1,    -1,   459,    -1,
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,    -1,    -1,     8,    -1,    -1,    11,    -1,   490,
     491,    15,    16,    17,    18,    19,    20,     8,    -1,    -1,
      11,    -1,    -1,    -1,    15,    16,    17,    18,    19,    20,
      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    -1,    43,
      -1,    -1,    -1,    -1,    35,    -1,    50,    -1,    -1,    -1,
      -1,    -1,    43,     8,    -1,    -1,    11,    -1,    -1,    50,
      15,    16,    17,    18,    19,    20,     8,    -1,    -1,    11,
      -1,    75,    -1,    15,    16,    17,    18,    19,    20,    -1,
      35,    -1,    -1,    -1,    75,    -1,    -1,    -1,    43,    -1,
      -1,    -1,    -1,    35,    -1,    50,    38,    -1,    -1,    -1,
      -1,    43,     8,    -1,    -1,    11,    -1,    -1,    50,    15,
      16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,    -1,
      75,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    35,
      -1,    -1,    -1,    75,    -1,    -1,    -1,    43,    -1,    -1,
      -1,    -1,    -1,    -1,    50,    -1,    -1,     8,    -1,    -1,
      11,    -1,    -1,    -1,    15,    16,    17,    18,    19,    20,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
      -1,    -1,   176,    -1,    35,   166,    -1,    38,    -1,    -1,
     171,    -1,    43,    -1,    -1,   176,    -1,    -1,   192,    50,
      -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   192,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,
     165,    -1,    -1,    -1,    75,   219,   220,    -1,    -1,    -1,
      -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,   219,   220,
     234,    -1,    -1,    -1,   176,    -1,    -1,   192,    -1,    -1,
      -1,    -1,   197,   234,    -1,    -1,    -1,    -1,    -1,    -1,
     192,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   219,   220,    -1,    -1,   272,    -1,
     176,   275,    -1,    -1,    -1,    -1,    -1,   219,   220,   234,
      -1,   272,    -1,    -1,   275,   289,   192,    -1,   292,    -1,
      -1,   197,   234,    -1,    -1,    -1,    -1,    -1,   289,    -1,
      -1,   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   219,   220,   176,    -1,   272,    -1,    -1,
     275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,
     272,   192,    -1,   275,   289,    -1,   197,   292,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   289,    -1,    -1,
     292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,   220,
     315,    -1,    -1,    -1,    -1,    -1,   272,    -1,    -1,   275,
      -1,    -1,    -1,   234,    -1,    -1,    -1,   381,    -1,    -1,
      -1,    -1,    -1,   289,    -1,    -1,   292,    -1,    -1,    -1,
     381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   310,    -1,    -1,    -1,    -1,    -1,
      -1,   272,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,   289,    -1,
      -1,   292,    -1,    -1,    -1,    -1,    -1,   441,    -1,   381,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,   483,
      -1,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
     494,   495,   483,    -1,    -1,   486,   487,   488,    -1,   490,
     491,   492,   493,   494,   495,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,
      -1,   486,   487,   488,    -1,   490,   491,   492,   493,   494,
     495,   483,    -1,    -1,   486,   487,   488,    -1,   490,   491,
     492,   493,   494,   495,    -1,    -1,     8,    -1,    -1,    11,
      -1,    -1,    -1,    15,    16,    17,    18,    19,    20,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,    -1,
     486,   487,   488,    35,   490,   491,   492,   493,   494,   495,
      -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   483,    75,    -1,   486,   487,   488,    -1,   490,
     491,   492,   493,   494,   495,     8,    -1,    -1,    11,    -1,
      -1,    -1,    15,    16,    17,    18,    19,    20,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    35,    -1,     8,    38,    -1,    11,    -1,    -1,
      43,    15,    16,    17,    18,    19,    20,    50,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
      -1,    -1,    75,    -1,    -1,    -1,    50,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   171,
      -1,    -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,
      -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     192,    -1,    -1,     8,    -1,   197,    11,    -1,    -1,    -1,
      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,   220,    -1,
      35,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    -1,
      -1,    -1,   234,    -1,    -1,    50,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,
      75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   192,
     272,    -1,    -1,   275,   197,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   176,    -1,    -1,    -1,    -1,   289,    -1,    -1,
     292,    -1,    -1,    -1,    -1,    -1,   219,   220,   192,    -1,
      -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   219,   220,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   272,
      -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   176,    -1,    -1,     8,    -1,   289,    11,    -1,   292,
      -1,    15,    16,    17,    18,    19,    20,   192,   272,   381,
      -1,   275,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    35,    -1,    -1,    -1,   289,    -1,    -1,   292,    43,
      -1,    -1,    -1,    -1,   219,   220,    50,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,
      11,    75,    -1,    -1,    15,    16,    17,    18,    19,    20,
       8,    -1,    -1,    11,    -1,    -1,    -1,    15,    -1,    -1,
      18,    19,    20,    -1,    35,    -1,    -1,   272,   381,    -1,
     275,    -1,    43,    -1,    -1,    -1,    -1,    35,    -1,    50,
      -1,    -1,    -1,    -1,   289,    43,    -1,   292,    -1,    -1,
      -1,   483,    50,    -1,   486,   487,   488,   381,   490,   491,
     492,   493,   494,   495,    75,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,
      -1,    -1,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,
     414,    15,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,
      -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,   192,    43,
      -1,    -1,    -1,   197,    -1,    -1,    50,    -1,    -1,    -1,
     483,    -1,    -1,   486,   487,   488,   381,   490,   491,   492,
     493,   494,   495,    -1,    -1,   219,   220,    -1,    -1,    -1,
      -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,
     234,    -1,   486,   487,   488,   176,   490,   491,   492,   493,
     494,   495,    -1,    -1,    -1,    -1,    -1,     8,   176,    -1,
      11,   192,    -1,    -1,    15,    -1,   197,    18,    19,    20,
      -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,   272,   197,
      -1,   275,    -1,    -1,    -1,    -1,    -1,    -1,   219,   220,
      -1,    -1,    43,    -1,    -1,   289,    -1,    -1,   292,    50,
      -1,   219,   220,   234,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,   483,    -1,
      -1,   486,   487,   488,    75,   490,   491,   492,   493,   494,
     495,    -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   272,    21,    -1,   275,    -1,    -1,    -1,   192,    -1,
      -1,    -1,    31,   197,   272,    -1,    -1,   275,   289,    -1,
      -1,   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      49,   289,    -1,    -1,   292,   219,   220,    -1,    -1,    58,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,
     234,    70,    -1,    -1,    -1,    -1,    -1,    -1,     8,    -1,
      -1,    11,    81,    -1,    -1,    15,    -1,    -1,    18,    19,
      20,    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   176,    -1,    -1,   272,    -1,
      -1,   275,    -1,    43,   113,    -1,    -1,    -1,    -1,    -1,
      50,   192,    -1,    -1,    -1,   289,   197,    -1,   127,    -1,
     381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,    -1,
      -1,    -1,    -1,   381,   143,    75,    -1,    -1,   219,   220,
      -1,    -1,   151,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,   167,   483,
      -1,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
     494,   495,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   272,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   211,    -1,    -1,    -1,    -1,   381,   289,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,   237,   490,
     491,   492,   493,   494,   495,   483,   176,    -1,   486,   487,
     488,    -1,   490,   491,   492,   493,   494,   495,    -1,    -1,
      -1,    -1,   192,    -1,    -1,    -1,    -1,   197,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   219,
     220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,
     381,    -1,    -1,    -1,    -1,   314,    -1,    -1,   317,   483,
      -1,    -1,   486,   487,   488,    -1,   490,   491,   492,   493,
     494,   495,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   275,    -1,   346,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   355,    -1,    -1,   289,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     369,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,    -1,
      -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   402,    -1,    -1,    -1,   406,    -1,    -1,
      -1,    -1,   483,    -1,    -1,   486,   487,   488,    -1,   490,
     491,   492,   493,   494,   495,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   442,    -1,    -1,    -1,    -1,   447,    -1,
      -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   485,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     499,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
       5,    -1,    -1,   483,    -1,    -1,   486,   487,   488,    -1,
     490,   491,   492,   493,   494,   495,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    63,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   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,    -1,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,    -1,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   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,    -1,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,   287,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,    -1,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   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,    -1,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,    -1,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   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,    -1,   273,   274,
     275,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    -1,    77,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   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,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,   434,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,   168,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   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,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,   434,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    33,    34,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    38,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    -1,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    -1,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,    -1,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,    -1,   153,   154,
     155,   156,   157,    -1,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
     175,   176,   177,    -1,   179,    -1,    -1,    -1,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   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,    -1,    -1,   273,   274,
     275,   276,    -1,    -1,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
      -1,   296,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,    -1,   314,
     315,    -1,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,    -1,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,    -1,   422,    -1,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,    -1,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   479,   480,   481,   482,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,   406,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,     4,    -1,    -1,    -1,    -1,     9,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    29,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      -1,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    -1,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,    -1,    -1,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,    -1,   153,   154,   155,   156,   157,    -1,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,    -1,   176,   177,    -1,   179,
      -1,    -1,    -1,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,    -1,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   236,   237,   238,    -1,
      -1,   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,    -1,    -1,   273,   274,   275,   276,    -1,    -1,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,    -1,   296,   297,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,    -1,   314,   315,    -1,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,    -1,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,    -1,   422,    -1,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,    -1,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
     480,   481,   482,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
       5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    -1,    47,    48,    49,    50,    51,    -1,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
      -1,    -1,    -1,    78,    79,    80,    81,    82,    83,    -1,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    -1,    97,    98,    99,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,    -1,    -1,    -1,   173,   174,
     175,    -1,   177,    -1,   179,    -1,   181,   182,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,    -1,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,    -1,   207,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,    -1,    -1,   221,    -1,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,    -1,   233,    -1,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,    -1,   267,   268,   269,   270,   271,    -1,   273,   274,
      -1,   276,    -1,   278,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
     295,    -1,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,   313,   314,
     315,   316,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,    -1,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
      -1,   376,   377,   378,   379,   380,    -1,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,    -1,   407,    -1,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,   421,   422,   423,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,    -1,    -1,   442,   443,   444,
     445,   446,   447,   448,    -1,   450,    -1,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    -1,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    -1,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,    -1,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,    -1,   153,   154,
     155,   156,   157,    -1,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
      -1,   176,   177,    -1,   179,    -1,    -1,    -1,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   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,    -1,    -1,   273,   274,
     275,   276,    -1,    -1,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
      -1,   296,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,    -1,   314,
     315,    -1,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,    -1,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,    -1,   422,    -1,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,    -1,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   479,   480,   481,   482,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,     5,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,    -1,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
      -1,    51,    52,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    -1,    -1,    76,    -1,    78,    79,
      80,    81,    82,    83,    84,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    96,    97,    98,    99,
     100,   101,   102,   103,    -1,    -1,   106,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,    -1,   153,   154,   155,   156,   157,    -1,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
     170,    -1,   172,   173,   174,   175,   176,   177,    -1,   179,
      -1,    -1,    -1,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,   192,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,   206,    -1,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,   219,
     220,   221,   222,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,   232,   233,   234,    -1,   236,   237,   238,    -1,
      -1,   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,    -1,    -1,   273,   274,   275,   276,    -1,    -1,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,    -1,   296,   297,   298,    -1,
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      -1,   311,   312,    -1,   314,   315,    -1,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,   329,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,    -1,   358,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,   375,   376,    -1,   378,   379,
     380,   381,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,    -1,   402,    -1,   404,   405,    -1,   407,   408,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,    -1,   422,    -1,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
     440,    -1,   442,   443,   444,   445,   446,    -1,   448,    -1,
     450,   451,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,     3,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
     480,   481,   482,    -1,    -1,    -1,    21,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    31,    32,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    43,    44,
      45,    46,    47,    48,    49,    -1,    51,    52,    53,    54,
      -1,    56,    57,    58,    59,    60,    61,    -1,    -1,    64,
      65,    66,    67,    68,    -1,    70,    71,    72,    73,    -1,
      -1,    76,    -1,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    -1,    89,    90,    91,    92,    93,    94,
      -1,    96,    97,    98,    99,   100,   101,   102,   103,    -1,
      -1,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,    -1,   118,    -1,   120,   121,   122,   123,   124,
     125,    -1,   127,   128,   129,   130,   131,    -1,    -1,   134,
     135,   136,   137,   138,    -1,   140,   141,   142,    -1,   144,
     145,   146,    -1,   148,   149,   150,   151,    -1,   153,   154,
     155,   156,   157,    -1,    -1,   160,    -1,   162,   163,   164,
     165,    -1,   167,    -1,   169,   170,    -1,   172,   173,   174,
      -1,   176,   177,    -1,   179,    -1,    -1,    -1,   183,    -1,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,    -1,   198,   199,   200,   201,   202,   203,    -1,
     205,   206,    -1,   208,   209,   210,   211,   212,   213,   214,
      -1,   216,    -1,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,    -1,    -1,   231,   232,   233,   234,
      -1,   236,   237,   238,    -1,    -1,   241,   242,   243,   244,
     245,    -1,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,    -1,    -1,   273,   274,
     275,   276,    -1,    -1,   279,   280,   281,   282,   283,    -1,
     285,   286,    -1,    -1,   289,   290,   291,    -1,    -1,   294,
      -1,   296,   297,   298,    -1,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,    -1,   311,   312,    -1,   314,
     315,    -1,   317,   318,   319,    -1,   321,   322,   323,   324,
     325,   326,    -1,   328,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,    -1,   351,   352,   353,   354,
     355,   356,    -1,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,    -1,   370,   371,   372,   373,   374,
     375,   376,    -1,   378,   379,   380,   381,   382,   383,   384,
     385,    -1,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,    -1,   400,    -1,   402,    -1,   404,
     405,    -1,   407,   408,   409,   410,   411,   412,   413,    -1,
     415,   416,    -1,    -1,   419,   420,    -1,   422,    -1,    -1,
     425,   426,   427,   428,   429,   430,   431,   432,    -1,    -1,
     435,   436,   437,   438,   439,   440,    -1,   442,   443,   444,
     445,   446,    -1,   448,    -1,   450,   451,   452,   453,   454,
     455,   456,    -1,    -1,   459,    -1,    -1,   462,   463,   464,
     465,   466,   467,     3,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   479,   480,   481,   482,    -1,    -1,
      -1,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
      50,    51,    -1,    53,    54,    -1,    56,    57,    58,    59,
      60,    61,    -1,    -1,    64,    65,    66,    67,    68,    -1,
      70,    71,    72,    73,    74,    -1,    -1,    -1,    78,    79,
      80,    81,    82,    83,    -1,    85,    86,    87,    -1,    89,
      90,    91,    92,    93,    94,    -1,    -1,    97,    98,    99,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,
     110,   111,   112,   113,   114,   115,   116,    -1,   118,    -1,
     120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
     130,   131,    -1,    -1,   134,   135,   136,   137,   138,    -1,
     140,   141,   142,    -1,   144,   145,   146,    -1,   148,   149,
     150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
     160,    -1,   162,   163,   164,   165,    -1,   167,    -1,   169,
      -1,    -1,    -1,   173,   174,   175,    -1,   177,    -1,   179,
      -1,   181,   182,   183,    -1,   185,   186,   187,   188,   189,
     190,   191,    -1,   193,   194,   195,   196,    -1,   198,   199,
     200,   201,   202,   203,    -1,   205,    -1,   207,   208,   209,
     210,   211,   212,   213,   214,    -1,   216,    -1,   218,    -1,
      -1,   221,    -1,   223,   224,   225,   226,   227,   228,    -1,
      -1,   231,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,   241,   242,   243,   244,   245,   246,   247,   248,   249,
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
     260,   261,   262,   263,   264,   265,    -1,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,    -1,   278,   279,
     280,   281,   282,   283,    -1,   285,   286,    -1,    -1,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
     300,   301,   302,   303,   304,   305,    -1,   307,   308,   309,
      -1,   311,   312,   313,   314,   315,   316,   317,   318,   319,
      -1,   321,   322,   323,   324,   325,   326,    -1,   328,    -1,
     330,   331,   332,   333,   334,   335,    -1,   337,   338,   339,
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
      -1,   351,   352,    -1,   354,   355,   356,   357,    -1,   359,
     360,   361,   362,   363,   364,   365,   366,   367,   368,    -1,
     370,   371,   372,   373,   374,    -1,   376,   377,   378,   379,
     380,    -1,   382,   383,   384,   385,    -1,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
     400,   401,   402,    -1,   404,   405,    -1,   407,    -1,   409,
     410,   411,   412,   413,    -1,   415,   416,    -1,    -1,   419,
     420,   421,   422,   423,    -1,   425,   426,   427,   428,   429,
     430,   431,   432,    -1,    -1,   435,   436,   437,   438,   439,
      -1,    -1,   442,   443,   444,   445,   446,   447,   448,    -1,
     450,    -1,   452,   453,   454,   455,   456,    -1,    -1,   459,
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
     480,   481,   482,    21,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   127,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   137,
      -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   151,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   167,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   237,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   314,    -1,    -1,   317,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   355,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   369,    -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,
      -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   402,    -1,    -1,    -1,   406,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   442,    -1,    -1,    -1,    -1,   447,
      -1,    -1,    -1,   451,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   461,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   485,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   499
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    21,    31,    33,    34,    49,    58,    70,    81,    93,
      95,   113,   127,   137,   143,   151,   153,   154,   167,   196,
     211,   237,   314,   317,   346,   355,   369,   376,   380,   390,
     402,   406,   442,   447,   461,   485,   499,   510,   511,   512,
     513,   516,   519,   520,   523,   534,   535,   539,   587,   594,
     595,   596,   598,   600,   606,   607,   610,   613,   620,   627,
     631,   638,   640,   642,   644,   645,   647,   652,   653,   670,
     671,   672,   673,   674,   675,   676,   677,   728,   729,   874,
     875,   877,   881,   896,   419,   464,   876,   200,   362,   370,
     406,   453,   876,     3,    21,    22,    23,    24,    25,    26,
      27,    28,    30,    31,    32,    40,    41,    43,    44,    45,
      46,    47,    48,    49,    50,    51,    52,    53,    54,    56,
      57,    58,    59,    60,    61,    64,    65,    66,    67,    68,
      70,    71,    72,    73,    74,    76,    78,    79,    80,    81,
      82,    83,    84,    85,    86,    87,    89,    90,    91,    92,
      93,    94,    96,    97,    98,    99,   100,   101,   102,   103,
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
     116,   118,   120,   121,   122,   123,   124,   125,   127,   128,
     129,   130,   131,   134,   135,   136,   137,   138,   140,   141,
     142,   144,   145,   146,   148,   149,   150,   151,   152,   153,
     154,   155,   156,   157,   158,   160,   162,   163,   164,   165,
     167,   169,   170,   172,   173,   174,   175,   176,   177,   179,
     181,   182,   183,   185,   186,   187,   188,   189,   190,   191,
     192,   193,   194,   195,   196,   198,   199,   200,   201,   202,
     203,   205,   206,   207,   208,   209,   210,   211,   212,   213,
     214,   216,   218,   219,   220,   221,   222,   223,   224,   225,
     226,   227,   228,   231,   232,   233,   234,   236,   237,   238,
     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,   273,   274,   275,   276,   278,   279,   280,   281,   282,
     283,   285,   286,   289,   290,   291,   294,   295,   296,   297,
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
     308,   309,   311,   312,   313,   314,   315,   316,   317,   318,
     319,   321,   322,   323,   324,   325,   326,   328,   329,   330,
     331,   332,   333,   334,   335,   337,   338,   339,   340,   341,
     342,   343,   344,   345,   346,   347,   348,   349,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,   364,   365,   366,   367,   368,   370,   371,   372,   373,
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
     384,   385,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   404,   405,
     407,   408,   409,   410,   411,   412,   413,   415,   416,   419,
     420,   421,   422,   423,   425,   426,   427,   428,   429,   430,
     431,   432,   435,   436,   437,   438,   439,   440,   442,   443,
     444,   445,   446,   447,   448,   450,   451,   452,   453,   454,
     455,   456,   459,   462,   463,   464,   465,   466,   467,   468,
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   787,   859,   863,   866,   897,   898,
     899,   876,    52,   499,   665,   177,   238,   292,   362,   410,
     412,   428,   434,   437,   585,   619,     3,     5,    29,   175,
     246,   317,   399,   857,   863,   864,   897,    23,    76,    92,
     146,   156,   168,   173,   200,   245,   249,   312,   326,   359,
     362,   370,   373,   392,   406,   413,   422,   428,   453,   632,
     633,   636,   876,   857,   451,   499,   513,   516,   519,   520,
     523,   534,   535,   539,   587,   594,   596,   598,   600,   606,
     607,   610,   613,   623,   627,   631,   638,   640,   642,   644,
     647,   652,   653,   672,   874,   875,   877,   896,   110,    70,
     211,   110,     5,   643,   862,   863,   643,   863,   857,    29,
     415,   419,   514,   515,   646,   863,   876,    29,   132,   684,
     685,   177,   238,   362,   374,   415,   601,   602,   646,   876,
     447,   646,   672,   677,   288,   741,   854,   863,   864,   172,
     499,   649,   499,   334,   678,   679,   857,   678,   673,   674,
       0,   502,   451,   621,    29,   415,   419,   646,   672,   147,
     215,   293,   433,   687,   688,   673,   675,   676,   503,   122,
     210,   439,   190,   854,   857,   190,   854,   190,   741,   190,
     854,   499,   497,   501,   838,   840,   672,   854,   410,   412,
     410,   412,   344,   190,   863,   863,   868,   173,   245,   334,
     370,   406,   453,   611,   200,    29,   857,   251,   422,   109,
     406,   406,   453,   365,     3,    46,    51,    52,    53,    54,
      66,    67,    76,    84,    96,   100,   101,   102,   103,   106,
     114,   115,   136,   164,   170,   172,   176,   190,   192,   206,
     213,   214,   216,   219,   220,   222,   232,   234,   246,   265,
     266,   267,   275,   280,   296,   298,   331,   353,   357,   375,
     377,   381,   384,   399,   408,   415,   416,   427,   440,   448,
     451,   637,   752,   754,   756,   758,   760,   762,   764,   765,
     766,   768,   769,   770,   772,   773,   867,   897,   900,   190,
     634,   868,   190,   855,   857,   190,   857,   499,   599,   623,
       3,    46,    50,    51,    52,    53,    54,    66,    67,    74,
      76,    84,    96,   100,   101,   102,   103,   106,   114,   115,
     152,   158,   164,   170,   172,   175,   176,   181,   182,   192,
     206,   207,   213,   214,   216,   219,   220,   222,   232,   234,
     246,   265,   266,   267,   271,   275,   278,   280,   295,   296,
     298,   299,   313,   316,   331,   353,   357,   375,   377,   381,
     384,   399,   401,   408,   415,   416,   421,   423,   427,   440,
     447,   448,   451,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   624,   626,   627,   629,   630,   897,
     901,   621,   862,   643,   862,   488,   499,   499,   608,   482,
     221,   501,   287,     4,     6,     7,     8,     9,    10,    37,
      51,    53,    54,    62,    63,    66,    67,    74,    76,   100,
     101,   102,   103,   104,   105,   106,   114,   115,   117,   152,
     158,   159,   164,   181,   182,   213,   214,   216,   239,   240,
     265,   267,   272,   277,   278,   280,   289,   299,   313,   331,
     357,   375,   384,   401,   415,   416,   421,   423,   424,   427,
     440,   448,   483,   490,   491,   492,   497,   499,   504,   506,
     507,   673,   718,   757,   760,   763,   764,   765,   767,   768,
     769,   772,   773,   784,   786,   787,   788,   790,   804,   805,
     812,   832,   837,   844,   845,   846,   859,   860,   861,   862,
     863,   843,   845,   601,   601,   862,   601,   482,   171,   417,
     488,   499,   854,   492,   840,     3,   170,   172,   451,   627,
     648,   650,   170,   651,   784,   816,   817,   863,   678,   503,
     499,   870,   500,   500,   512,   854,   482,   221,    29,   132,
     683,   683,    56,   683,   161,   166,   235,   284,   693,   695,
     696,   721,   723,   724,   725,   687,   688,   499,   171,   217,
     536,   741,   152,    25,    31,   137,   291,   342,   346,   376,
     444,   528,   531,   532,   342,   152,    38,    57,   108,   199,
     250,   258,   270,   301,   342,   348,   370,   376,   390,   531,
     588,   591,   152,   342,   376,   531,   152,   342,   376,   531,
       3,    29,    46,    52,    76,    84,    96,   100,   101,   102,
     103,   106,   132,   170,   172,   175,   176,   192,   206,   219,
     220,   222,   232,   234,   246,   266,   275,   296,   298,   353,
     375,   381,   399,   408,   427,   440,   449,   451,   492,   500,
     784,   819,   820,   865,   871,   897,   902,   784,   839,     3,
      29,    33,    34,    35,    36,    37,    38,    39,    42,    55,
      62,    63,    69,    75,    77,    88,    95,   104,   105,   117,
     119,   126,   132,   133,   139,   143,   147,   159,   161,   166,
     168,   171,   178,   180,   184,   197,   204,   215,   217,   229,
     230,   235,   239,   240,   272,   277,   284,   287,   288,   292,
     293,   310,   320,   327,   336,   350,   369,   386,   403,   406,
     414,   417,   418,   424,   433,   434,   441,   447,   449,   457,
     458,   460,   461,   858,   872,   897,   901,   903,   838,   500,
     499,   574,   585,   272,   521,   501,   869,    38,   453,   190,
     854,   190,   518,   854,   854,   854,    84,   616,   465,    85,
     129,   304,   411,   450,   771,   771,   771,   499,   759,   759,
     316,   499,   761,   152,   499,    66,    67,   771,   759,   756,
     463,   485,   499,   774,   499,   774,    60,   349,   503,   635,
     499,    37,   755,   499,   111,   112,   187,   188,   252,   253,
     254,   255,   256,   257,   260,   261,   366,   367,   479,   480,
     499,   775,   776,   777,   778,   779,   780,   781,   782,   783,
     759,   152,   503,   635,   152,   503,   635,   152,   287,   817,
     500,   503,     4,   159,   287,   424,   490,   491,   590,   593,
     622,   624,   625,   628,   861,   862,   623,   499,   660,   664,
     590,   603,   605,   628,   819,   754,   821,    38,   233,   863,
     499,   841,   497,   673,   784,   836,   499,   499,   166,   499,
     499,   673,   499,   499,   499,   784,   499,   499,   499,   499,
     499,   499,   499,   499,   499,   784,   784,   784,   148,   847,
     848,   817,   818,   673,   784,   816,   806,   807,   808,   864,
       9,   841,   840,   499,   862,   499,   861,   862,     3,     8,
      11,    15,    16,    17,    18,    19,    20,    35,    38,    43,
      50,    75,   176,   192,   197,   219,   220,   234,   272,   275,
     289,   292,   381,   483,   486,   487,   488,   490,   491,   492,
     493,   494,   495,   810,   811,   812,   814,   462,   791,   841,
     298,   784,   503,   217,   680,   499,   862,   841,   501,   840,
     680,     3,   117,   238,   590,   604,   773,   862,    99,   117,
     605,   117,   605,   854,   500,   503,   621,   503,   500,   679,
     855,   856,    38,   870,   233,   675,   675,    29,   492,   689,
     690,   784,   675,   163,   269,   709,   224,   270,   330,   379,
     439,     4,     9,    29,   704,   784,   490,   491,   705,   706,
     784,   786,   721,   722,   696,   695,   693,   694,   166,   724,
     282,   726,   693,   721,   817,   536,   854,   879,   376,    38,
     863,   854,    69,    77,    88,   168,   190,   320,   434,   556,
     566,   581,   863,    77,    88,   597,    88,   597,   499,   417,
     499,   554,   244,   437,   554,    88,   503,   417,   854,   756,
     590,    56,   592,   590,   590,   108,   250,   258,    56,   417,
     461,   485,   589,   263,   362,   589,   591,   741,    88,   417,
     597,   362,   854,   417,   362,   819,   819,   820,   500,   503,
     687,   688,    13,    14,   498,   508,   417,   573,   578,   863,
     461,   663,   334,   406,   453,   152,    95,   522,   539,   613,
     638,   640,   858,   501,   754,   854,   272,   588,   641,   272,
      38,   499,   574,   574,   499,   612,   190,   568,   617,   863,
     499,   818,   861,   637,   821,   771,   771,    37,   755,   415,
     415,   861,   861,   754,   751,   863,   497,   497,   861,   861,
     417,   417,   417,   417,   634,   868,   855,   857,   857,   868,
     500,   623,   629,     4,   861,     4,   861,   662,   669,   872,
      52,    97,   123,   141,   145,   167,   170,   185,   277,   285,
     328,   666,   503,   500,   503,   500,   503,   535,   609,   652,
     672,   877,   817,   838,   818,   457,   833,   834,   784,   817,
     499,   861,   861,     3,   775,   776,   777,   778,   779,   780,
     781,   782,   822,   823,   862,   861,   861,   784,     8,    15,
      18,    19,    20,   486,   487,   488,   490,   491,   492,   493,
     494,   495,   810,   815,   863,   784,   824,   490,   491,   499,
     785,   786,   812,   826,   500,   817,   784,   816,   827,   784,
      55,   171,   230,   418,   784,   817,   830,   784,   499,   863,
     344,   852,   498,   500,   503,   503,   505,   508,   817,   784,
     783,   783,   754,   784,   784,   784,   784,   784,   784,   784,
       5,   872,   873,   415,    42,   403,   842,   868,   784,   784,
     499,   673,   831,   132,   159,   272,   277,   282,   424,   435,
     784,   277,   499,   784,   417,    50,   176,   192,   197,   234,
     381,   784,   784,   784,   784,   784,   784,   784,   784,   784,
     784,    29,    36,   386,   809,   180,   162,   792,   357,   499,
     805,   846,   177,   238,   406,   410,   412,   437,   681,   854,
     171,   730,   819,   492,   730,   499,   862,   500,   854,   648,
     595,   854,   784,   503,   500,   499,    39,   126,   691,   691,
     503,   441,   691,   357,   358,   490,   491,   706,   708,   786,
     379,   224,   288,   309,   309,   503,   494,     4,   707,   861,
     707,   357,   358,   708,   853,   854,   276,   383,   727,   722,
     694,   500,   441,   538,    38,   117,   300,   499,   672,   878,
     499,   863,   883,   892,   893,   895,   863,   342,   531,   499,
     190,   566,   857,   224,   272,   224,   441,   499,   559,   753,
     754,   857,   863,   190,   857,   190,   863,    25,   137,   376,
     527,   530,   550,   564,   872,   857,   558,   577,   872,   857,
     528,   857,   342,   376,   531,   588,   590,   868,   857,   590,
     868,   857,   590,   342,   376,   531,   857,   857,   857,   857,
     342,   376,   531,   857,   857,   687,   687,   687,   449,   820,
     191,   347,   686,   784,   784,   784,   839,   325,   659,   500,
     503,   285,   171,   417,   654,   453,   518,   854,   854,   863,
     292,   585,   858,   499,   152,   152,   151,   672,   234,   556,
     566,   569,   572,   582,   584,   863,   461,   463,   561,   461,
     618,   500,   819,    38,   272,   287,   817,   500,   500,   635,
     500,   497,   482,   482,   500,   500,   500,   503,   754,   861,
     498,   861,   500,   500,   776,   778,   779,   780,   779,   780,
     780,   635,   635,   287,   635,   500,   503,   492,   499,   590,
     628,   661,    38,   658,   862,   658,   272,   277,   328,   658,
     658,   603,   754,   500,   498,   784,   139,   834,   835,    38,
     500,   784,   500,   500,   500,   171,   500,   500,   503,   500,
     501,   310,   825,   500,   785,   785,   784,    11,    15,    18,
      19,    20,   197,   219,   289,   486,   487,   488,   490,   491,
     492,   493,   494,   495,   812,   785,   500,   500,   166,   171,
     828,   829,   503,   500,    38,   830,   817,   830,   830,   171,
     500,    38,   856,   499,   784,   849,   841,   784,   806,   784,
     500,   500,   482,   785,   785,   145,   817,   171,   132,   159,
     277,   282,   424,   435,   499,   145,   815,   784,   403,   842,
     784,   831,   784,   417,   499,   673,   499,   499,   155,   793,
     410,   412,   410,   412,   854,   406,   682,   682,   682,   229,
     358,   499,   673,   729,   731,   732,   733,   734,   741,   742,
     787,   789,   790,   863,   458,   747,   687,   848,   747,   861,
     783,   870,   609,   484,   692,   692,   690,   289,   810,   813,
     692,     4,   861,   708,   288,   439,   705,   503,   243,   732,
     458,   537,   863,   447,   405,   440,   887,   863,   882,   891,
     287,   884,   888,   895,   841,   503,   730,   488,   417,   784,
     272,   581,   499,   152,   499,   559,   200,   578,   579,   540,
      38,   175,   549,   575,   540,    25,   137,   346,   348,   376,
     524,   525,   526,   532,   533,   152,   635,   152,   635,   550,
     564,   550,   500,   503,   543,   862,   500,   503,   488,   501,
     417,   362,    88,   417,   597,   362,   417,   417,   417,   362,
     686,   686,   686,   820,   279,   279,   500,   498,   393,   394,
     668,   862,   573,   659,   854,    38,   499,   574,   521,   344,
     406,   578,   854,   518,   854,   857,   461,   517,   854,   500,
     503,   285,   554,   285,   287,   553,   554,    38,   500,   406,
     784,   152,   854,   500,   755,   861,   774,   774,   755,   863,
     498,   498,   868,   662,   628,   656,   667,   862,   862,   277,
     578,   492,   578,   862,   862,   414,   784,   143,   754,   500,
     784,   784,   815,   784,   828,   754,   785,   785,   785,   785,
     785,   132,   272,   282,   785,   785,   785,   785,   785,   785,
     785,   785,   785,   785,   784,   784,   829,   828,   754,   500,
     500,   500,   817,   754,   500,   784,   849,   850,   851,    38,
     500,   783,   784,    35,    35,   784,   500,   784,   171,   499,
     821,   784,   500,   145,   785,   785,   145,   145,   784,   784,
     688,   458,   784,   297,   797,   682,   682,   682,   682,   854,
     854,   854,   673,   742,   171,   673,   729,   733,   734,    38,
     735,   736,   863,   735,   503,    96,   172,   206,   222,   232,
     266,   353,   738,   736,    38,   735,   737,   863,   485,   746,
     840,   784,   180,   710,   686,   852,   710,   500,   500,   163,
     228,   499,   692,   288,   854,   784,   350,   886,   446,   841,
     500,   503,    86,   886,   500,   503,   883,   537,   784,   857,
     500,   152,   579,   566,   579,   540,   568,   503,   500,   119,
     204,   270,   272,   565,   499,    32,    56,   586,   575,    69,
      75,    88,   117,   119,   204,   272,   277,   320,   336,   434,
     441,   545,   546,   560,   175,   117,   189,   272,   554,   589,
     109,   117,   175,   272,   392,   395,   554,   591,   376,   526,
     428,   857,   863,   530,   577,     3,    46,    52,    76,    84,
      96,   100,   101,   102,   103,   106,   170,   172,   175,   176,
     192,   206,   219,   220,   222,   232,   234,   246,   266,   271,
     275,   289,   296,   298,   353,   375,   377,   381,   399,   408,
     427,   440,   451,   490,   491,   541,   580,   590,   754,   813,
     862,   865,   897,   903,   872,   857,   857,   857,   857,   857,
     857,   857,   857,   857,   857,   500,   500,   500,   687,   589,
     668,   499,   672,   572,   618,   585,   190,   854,   500,   641,
      38,   499,   599,   109,   270,   563,   561,   569,    81,   672,
     672,   568,   441,   615,   498,   754,   635,   500,   503,   578,
     784,   500,   500,   829,   171,   132,   282,   499,   500,   500,
     503,   500,   863,   784,   784,   784,   821,   500,   784,    35,
      35,   784,   784,   145,   500,   500,   784,   500,   499,   798,
     863,   854,   854,   854,   854,   736,   737,   499,   500,   864,
     408,   701,   702,   499,   702,   733,   222,   296,   739,   733,
     739,   222,   738,   739,   222,   702,   499,   864,   702,   499,
     294,    56,   184,   719,   500,   719,   862,   815,   844,   672,
     300,   672,   882,   287,   499,   880,   488,   895,   886,   540,
     566,   500,   500,   461,   571,   120,   193,   202,   119,   443,
     784,   117,    38,   499,   868,   857,   785,   120,   193,   119,
     277,   224,   854,   571,    83,   586,   190,   277,   590,   784,
     586,   277,   490,   491,   593,   863,   754,   635,   635,   246,
     399,   865,   869,   488,   417,   417,   686,   660,   441,   655,
     657,   578,   517,   500,    38,   406,   272,   499,   618,   151,
     672,   572,   517,   109,   149,   198,   553,   122,   137,   319,
     461,   639,   287,   614,   863,   499,   667,   785,   171,   499,
     821,   849,   500,   784,   784,   784,   500,   799,   863,   743,
     744,   789,   735,   499,     4,     9,   697,   699,   700,   863,
     856,   733,   287,   441,   740,   733,   222,   733,   748,   749,
     864,   499,   748,   864,    29,    98,   181,   356,   492,   499,
     711,   712,   713,   714,   715,   716,   717,   784,   784,   460,
     794,   862,   794,   500,   503,   887,    88,   499,   789,   863,
     885,   894,   133,   784,   336,   571,   499,   562,   540,   500,
     189,   499,   784,   272,   546,   571,   574,   857,    38,   152,
      75,   750,   869,   494,   541,   857,   857,   500,   589,   124,
     500,   561,   672,   854,   152,    38,   857,   517,   500,    29,
      80,    89,   118,   189,   201,   392,   395,   557,   557,   358,
     358,    61,    69,   238,   854,   894,   785,   821,   500,   306,
     800,   500,   503,    38,   745,   856,   309,   494,   309,   358,
     494,   499,   499,   500,   784,   499,   733,   740,   500,   503,
     754,   748,   500,   499,   378,   499,   500,   503,   795,   796,
     863,   327,   720,   720,   446,   857,   784,    75,   889,   889,
     500,   503,   273,   439,   854,   540,   567,   570,   872,   396,
     455,   547,   548,   499,   542,   784,   500,   248,   583,   189,
     868,   441,   529,   494,   428,   660,   862,   618,   553,   639,
     499,   854,   672,   599,   561,    69,   290,    69,   615,   500,
     500,    56,   687,   746,   743,   499,   500,   863,   697,   856,
     749,   750,   500,   817,   499,   817,   713,   503,    38,   784,
     441,   698,   698,   672,   500,   868,   868,   890,   890,   747,
     885,   376,   574,   500,   503,   488,   588,   500,   270,   555,
     172,   305,   382,   287,   551,   552,   576,   542,   784,   428,
      38,   499,   639,   517,   553,   290,   290,   499,   618,   816,
     329,   358,   801,   748,   500,   503,   500,   500,   500,   712,
     500,   796,   798,   360,   889,   691,   691,   893,   583,   570,
     541,   500,   548,   202,   122,   439,   287,   576,   287,   551,
     672,   894,   747,    50,    99,   430,   784,   802,   803,   802,
     500,   500,     9,   343,   703,   500,   700,   890,   692,   692,
     747,   552,    60,   270,   349,   376,   544,   544,   639,   500,
     803,   357,   165,   315,   165,   315,   500,   499,   691,   540,
      24,   117,   277,   618,    35,     9,   692,   747,   803,   500
};

#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.  */

#define YYFAIL		goto yyerrlab

#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 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 <stdio.h> /* 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 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
    yytype_int16 *bottom;
    yytype_int16 *top;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; bottom <= top; ++bottom)
    YYFPRINTF (stderr, " %d", *bottom);
  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++)
    {
      fprintf (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       , &(yylsp[(yyi + 1) - (yynrhs)])		       , yyscanner);
      fprintf (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.  |
`----------*/

#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 look-ahead symbol.  */
int yychar;

/* The semantic value of the look-ahead symbol.  */
YYSTYPE yylval;

/* Number of syntax errors so far.  */
int yynerrs;
/* Location data for the look-ahead symbol.  */
YYLTYPE yylloc;

  int yystate;
  int yyn;
  int yyresult;
  /* Number of tokens to shift before error messages enabled.  */
  int yyerrstatus;
  /* Look-ahead token as an internal (translated) token number.  */
  int yytoken = 0;
#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

  /* Three 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 = yyssa;
  yytype_int16 *yyssp;

  /* The semantic value stack.  */
  YYSTYPE yyvsa[YYINITDEPTH];
  YYSTYPE *yyvs = yyvsa;
  YYSTYPE *yyvsp;

  /* The location stack.  */
  YYLTYPE yylsa[YYINITDEPTH];
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;
  /* The locations where the error started and ended.  */
  YYLTYPE yyerror_range[2];

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))

  YYSIZE_T yystacksize = YYINITDEPTH;

  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;
  YYLTYPE yyloc;

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  YYDPRINTF ((stderr, "Starting parse\n"));

  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 YYLTYPE_IS_TRIVIAL
  /* Initialize the default location before parsing starts.  */
  yylloc.first_line   = yylloc.last_line   = 1;
  yylloc.first_column = yylloc.last_column = 0;
#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);
	YYSTACK_RELOCATE (yyvs);
	YYSTACK_RELOCATE (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));

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     look-ahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to look-ahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a look-ahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead 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;
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the look-ahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token unless it is eof.  */
  if (yychar != YYEOF)
    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 467 "third_party/libpg_query/grammar/grammar.y"
    {
				pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list);
			;}
    break;

  case 3:
#line 483 "third_party/libpg_query/grammar/grammar.y"
    {
					if ((yyvsp[(1) - (3)].list) != NIL)
					{
						/* update length of previous stmt */
						updateRawStmtEnd(llast_node(PGRawStmt, (yyvsp[(1) - (3)].list)), (yylsp[(2) - (3)]));
					}
					if ((yyvsp[(3) - (3)].node) != NULL)
						(yyval.list) = lappend((yyvsp[(1) - (3)].list), makeRawStmt((yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]) + 1));
					else
						(yyval.list) = (yyvsp[(1) - (3)].list);
				;}
    break;

  case 4:
#line 495 "third_party/libpg_query/grammar/grammar.y"
    {
					if ((yyvsp[(1) - (1)].node) != NULL)
						(yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0));
					else
						(yyval.list) = NIL;
				;}
    break;

  case 39:
#line 538 "third_party/libpg_query/grammar/grammar.y"
    { (yyval.node) = NULL; ;}
    break;

  case 40:
#line 2 "third_party/libpg_query/grammar/statements/variable_reset.y"
    { (yyval.node) = (PGNode *) (yyvsp[(2) - (2)].vsetstmt); ;}
    break;

  case 41:
#line 8 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (yyvsp[(1) - (1)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 42:
#line 15 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET_ALL;
					(yyval.vsetstmt) = n;
				;}
    break;

  case 43:
#line 24 "third_party/libpg_query/grammar/statements/variable_reset.y"
    { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;}
    break;

  case 44:
#line 26 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (char*) "timezone";
					(yyval.vsetstmt) = n;
				;}
    break;

  case 45:
#line 33 "third_party/libpg_query/grammar/statements/variable_reset.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_RESET;
					n->name = (char*) "transaction_isolation";
					(yyval.vsetstmt) = n;
				;}
    break;

  case 46:
#line 12 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					ctas->query = (yyvsp[(6) - (7)].node);
					ctas->into = (yyvsp[(4) - (7)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_ERROR_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(4) - (7)].into)->rel->relpersistence = (yyvsp[(2) - (7)].ival);
					(yyvsp[(4) - (7)].into)->skipData = !((yyvsp[(7) - (7)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 47:
#line 25 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					ctas->query = (yyvsp[(9) - (10)].node);
					ctas->into = (yyvsp[(7) - (10)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_IGNORE_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(7) - (10)].into)->rel->relpersistence = (yyvsp[(2) - (10)].ival);
					(yyvsp[(7) - (10)].into)->skipData = !((yyvsp[(10) - (10)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 48:
#line 38 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					ctas->query = (yyvsp[(8) - (9)].node);
					ctas->into = (yyvsp[(6) - (9)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_REPLACE_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(6) - (9)].into)->rel->relpersistence = (yyvsp[(4) - (9)].ival);
					(yyvsp[(6) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 49:
#line 54 "third_party/libpg_query/grammar/statements/create_as.y"
    { (yyval.boolean) = true; ;}
    break;

  case 50:
#line 55 "third_party/libpg_query/grammar/statements/create_as.y"
    { (yyval.boolean) = false; ;}
    break;

  case 51:
#line 56 "third_party/libpg_query/grammar/statements/create_as.y"
    { (yyval.boolean) = true; ;}
    break;

  case 52:
#line 62 "third_party/libpg_query/grammar/statements/create_as.y"
    {
					(yyval.into) = makeNode(PGIntoClause);
					(yyval.into)->rel = (yyvsp[(1) - (4)].range);
					(yyval.into)->colNames = (yyvsp[(2) - (4)].list);
					(yyval.into)->options = (yyvsp[(3) - (4)].list);
					(yyval.into)->onCommit = (yyvsp[(4) - (4)].oncommit);
					(yyval.into)->viewQuery = NULL;
					(yyval.into)->skipData = false;		/* might get changed later */
				;}
    break;

  case 53:
#line 8 "third_party/libpg_query/grammar/statements/pragma.y"
    {
					PGPragmaStmt *n = makeNode(PGPragmaStmt);
					n->kind = PG_PRAGMA_TYPE_NOTHING;
					n->name = (yyvsp[(2) - (2)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 54:
#line 15 "third_party/libpg_query/grammar/statements/pragma.y"
    {
					PGPragmaStmt *n = makeNode(PGPragmaStmt);
					n->kind = PG_PRAGMA_TYPE_ASSIGNMENT;
					n->name = (yyvsp[(2) - (4)].str);
					n->args = (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 55:
#line 23 "third_party/libpg_query/grammar/statements/pragma.y"
    {
					PGPragmaStmt *n = makeNode(PGPragmaStmt);
					n->kind = PG_PRAGMA_TYPE_CALL;
					n->name = (yyvsp[(2) - (5)].str);
					n->args = (yyvsp[(4) - (5)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 56:
#line 8 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
					/* ...but not both */
					n->schemaname = (yyvsp[(3) - (4)].str);
					n->schemaElts = (yyvsp[(4) - (4)].list);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 57:
#line 17 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt);
					/* ...but not here */
					n->schemaname = (yyvsp[(6) - (7)].str);
					if ((yyvsp[(7) - (7)].list) != NIL)
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
								 parser_errposition((yylsp[(7) - (7)]))));
					n->schemaElts = (yyvsp[(7) - (7)].list);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 58:
#line 35 "third_party/libpg_query/grammar/statements/create_schema.y"
    {
					if ((yyloc) < 0)			/* see comments for YYLLOC_DEFAULT */
						(yyloc) = (yylsp[(2) - (2)]);
					(yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 59:
#line 41 "third_party/libpg_query/grammar/statements/create_schema.y"
    { (yyval.list) = NIL; ;}
    break;

  case 64:
#line 10 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_TABLE;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 65:
#line 19 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_TABLE;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 66:
#line 28 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_INDEX;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 67:
#line 37 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_INDEX;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 68:
#line 46 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_SEQUENCE;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 69:
#line 55 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_SEQUENCE;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 70:
#line 64 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(3) - (4)].range);
					n->cmds = (yyvsp[(4) - (4)].list);
					n->relkind = PG_OBJECT_VIEW;
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 71:
#line 73 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableStmt *n = makeNode(PGAlterTableStmt);
					n->relation = (yyvsp[(5) - (6)].range);
					n->cmds = (yyvsp[(6) - (6)].list);
					n->relkind = PG_OBJECT_VIEW;
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 72:
#line 86 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 73:
#line 88 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 74:
#line 93 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = (yyvsp[(3) - (3)].node); ;}
    break;

  case 75:
#line 94 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = NULL; ;}
    break;

  case 76:
#line 100 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 77:
#line 104 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 78:
#line 108 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					if (strcmp((yyvsp[(2) - (2)].defelt)->defname, "as") == 0 ||
						strcmp((yyvsp[(2) - (2)].defelt)->defname, "restart") == 0 ||
						strcmp((yyvsp[(2) - (2)].defelt)->defname, "owned_by") == 0)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("sequence option \"%s\" not supported here", (yyvsp[(2) - (2)].defelt)->defname),
								 parser_errposition((yylsp[(2) - (2)]))));
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
				;}
    break;

  case 79:
#line 119 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElem("generated", (PGNode *) makeInteger((yyvsp[(3) - (3)].ival)), (yylsp[(1) - (3)]));
				;}
    break;

  case 80:
#line 127 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 81:
#line 131 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 82:
#line 140 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def = (yyvsp[(2) - (2)].node);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 83:
#line 149 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def = (yyvsp[(5) - (5)].node);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 84:
#line 158 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def = (yyvsp[(3) - (3)].node);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 85:
#line 167 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddColumn;
					n->def = (yyvsp[(6) - (6)].node);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 86:
#line 176 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ColumnDefault;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (yyvsp[(4) - (4)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 87:
#line 185 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropNotNull;
					n->name = (yyvsp[(3) - (6)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 88:
#line 193 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetNotNull;
					n->name = (yyvsp[(3) - (6)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 89:
#line 201 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetStatistics;
					n->name = (yyvsp[(3) - (6)].str);
					n->def = (PGNode *) makeInteger((yyvsp[(6) - (6)].ival));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 90:
#line 210 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetOptions;
					n->name = (yyvsp[(3) - (5)].str);
					n->def = (PGNode *) (yyvsp[(5) - (5)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 91:
#line 219 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ResetOptions;
					n->name = (yyvsp[(3) - (5)].str);
					n->def = (PGNode *) (yyvsp[(5) - (5)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 92:
#line 228 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetStorage;
					n->name = (yyvsp[(3) - (6)].str);
					n->def = (PGNode *) makeString((yyvsp[(6) - (6)].str));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 93:
#line 237 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					PGConstraint *c = makeNode(PGConstraint);

					c->contype = PG_CONSTR_IDENTITY;
					c->generated_when = (yyvsp[(6) - (9)].ival);
					c->options = (yyvsp[(9) - (9)].list);
					c->location = (yylsp[(5) - (9)]);

					n->subtype = PG_AT_AddIdentity;
					n->name = (yyvsp[(3) - (9)].str);
					n->def = (PGNode *) c;

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 94:
#line 254 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetIdentity;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (PGNode *) (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 95:
#line 263 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = AT_DropIdentity;
					n->name = (yyvsp[(3) - (5)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 96:
#line 272 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = AT_DropIdentity;
					n->name = (yyvsp[(3) - (7)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 97:
#line 281 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropColumn;
					n->name = (yyvsp[(5) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 98:
#line 291 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropColumn;
					n->name = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 99:
#line 304 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					PGColumnDef *def = makeNode(PGColumnDef);
					n->subtype = PG_AT_AlterColumnType;
					n->name = (yyvsp[(3) - (8)].str);
					n->def = (PGNode *) def;
					/* We only use these fields of the PGColumnDef node */
					def->typeName = (yyvsp[(6) - (8)].typnam);
					def->collClause = (PGCollateClause *) (yyvsp[(7) - (8)].node);
					def->raw_default = (yyvsp[(8) - (8)].node);
					def->location = (yylsp[(3) - (8)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 100:
#line 319 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AlterColumnGenericOptions;
					n->name = (yyvsp[(3) - (4)].str);
					n->def = (PGNode *) (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 101:
#line 328 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_AddConstraint;
					n->def = (yyvsp[(2) - (2)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 102:
#line 336 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					PGConstraint *c = makeNode(PGConstraint);
					n->subtype = PG_AT_AlterConstraint;
					n->def = (PGNode *) c;
					c->contype = PG_CONSTR_FOREIGN; /* others not supported, yet */
					c->conname = (yyvsp[(3) - (4)].str);
					processCASbits((yyvsp[(4) - (4)].ival), (yylsp[(4) - (4)]), "ALTER CONSTRAINT statement",
									&c->deferrable,
									&c->initdeferred,
									NULL, NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 103:
#line 351 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ValidateConstraint;
					n->name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 104:
#line 359 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropConstraint;
					n->name = (yyvsp[(5) - (6)].str);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 105:
#line 369 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_DropConstraint;
					n->name = (yyvsp[(3) - (4)].str);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 106:
#line 379 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetLogged;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 107:
#line 386 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetUnLogged;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 108:
#line 393 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_SetRelOptions;
					n->def = (PGNode *)(yyvsp[(2) - (2)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 109:
#line 401 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_ResetRelOptions;
					n->def = (PGNode *)(yyvsp[(2) - (2)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 110:
#line 408 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					PGAlterTableCmd *n = makeNode(PGAlterTableCmd);
					n->subtype = PG_AT_GenericOptions;
					n->def = (PGNode *)(yyvsp[(1) - (1)].list);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 111:
#line 418 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 112:
#line 419 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.node) = NULL; ;}
    break;

  case 113:
#line 425 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = (yyvsp[(1) - (1)].defelt);
				;}
    break;

  case 114:
#line 429 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
					(yyval.defelt)->defaction = PG_DEFELEM_SET;
				;}
    break;

  case 115:
#line 434 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = (yyvsp[(2) - (2)].defelt);
					(yyval.defelt)->defaction = PG_DEFELEM_ADD;
				;}
    break;

  case 116:
#line 439 "third_party/libpg_query/grammar/statements/alter_table.y"
    {
					(yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[(2) - (2)].str), NULL, DEFELEM_DROP, (yylsp[(2) - (2)]));
				;}
    break;

  case 117:
#line 446 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 118:
#line 447 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 119:
#line 452 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 120:
#line 456 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.ival) = 1; ;}
    break;

  case 121:
#line 457 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.ival) = 0; ;}
    break;

  case 122:
#line 458 "third_party/libpg_query/grammar/statements/alter_table.y"
    { (yyval.ival) = 0; ;}
    break;

  case 123:
#line 8 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = (yyvsp[(2) - (2)].str);
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 124:
#line 14 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = (yyvsp[(3) - (3)].str);
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 125:
#line 20 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = NULL;
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 126:
#line 26 "third_party/libpg_query/grammar/statements/deallocate.y"
    {
						PGDeallocateStmt *n = makeNode(PGDeallocateStmt);
						n->name = NULL;
						(yyval.node) = (PGNode *) n;
					;}
    break;

  case 127:
#line 9 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGDeleteStmt *n = makeNode(PGDeleteStmt);
					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) = (PGNode *)n;
				;}
    break;

  case 128:
#line 22 "third_party/libpg_query/grammar/statements/delete.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
				;}
    break;

  case 129:
#line 26 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGAlias *alias = makeNode(PGAlias);
					alias->aliasname = (yyvsp[(2) - (2)].str);
					(yyvsp[(1) - (2)].range)->alias = alias;
					(yyval.range) = (yyvsp[(1) - (2)].range);
				;}
    break;

  case 130:
#line 33 "third_party/libpg_query/grammar/statements/delete.y"
    {
					PGAlias *alias = makeNode(PGAlias);
					alias->aliasname = (yyvsp[(3) - (3)].str);
					(yyvsp[(1) - (3)].range)->alias = alias;
					(yyval.range) = (yyvsp[(1) - (3)].range);
				;}
    break;

  case 131:
#line 43 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 132:
#line 44 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.node) = NULL; ;}
    break;

  case 133:
#line 50 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 134:
#line 51 "third_party/libpg_query/grammar/statements/delete.y"
    { (yyval.list) = NIL; ;}
    break;

  case 135:
#line 9 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGCreateStmt *n = makeNode(PGCreateStmt);
					(yyvsp[(4) - (9)].range)->relpersistence = (yyvsp[(2) - (9)].ival);
					n->relation = (yyvsp[(4) - (9)].range);
					n->tableElts = (yyvsp[(6) - (9)].list);
					n->ofTypename = NULL;
					n->constraints = NIL;
					n->options = (yyvsp[(8) - (9)].list);
					n->oncommit = (yyvsp[(9) - (9)].oncommit);
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 136:
#line 24 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGCreateStmt *n = makeNode(PGCreateStmt);
					(yyvsp[(7) - (12)].range)->relpersistence = (yyvsp[(2) - (12)].ival);
					n->relation = (yyvsp[(7) - (12)].range);
					n->tableElts = (yyvsp[(9) - (12)].list);
					n->ofTypename = NULL;
					n->constraints = NIL;
					n->options = (yyvsp[(11) - (12)].list);
					n->oncommit = (yyvsp[(12) - (12)].oncommit);
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 137:
#line 39 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGCreateStmt *n = makeNode(PGCreateStmt);
					(yyvsp[(6) - (11)].range)->relpersistence = (yyvsp[(4) - (11)].ival);
					n->relation = (yyvsp[(6) - (11)].range);
					n->tableElts = (yyvsp[(8) - (11)].list);
					n->ofTypename = NULL;
					n->constraints = NIL;
					n->options = (yyvsp[(10) - (11)].list);
					n->oncommit = (yyvsp[(11) - (11)].oncommit);
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 138:
#line 56 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = 0; ;}
    break;

  case 139:
#line 58 "third_party/libpg_query/grammar/statements/create.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(PG_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(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("conflicting constraint properties"),
								 parser_errposition((yylsp[(2) - (2)]))));
					(yyval.ival) = newspec;
				;}
    break;

  case 140:
#line 84 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].typnam); ;}
    break;

  case 141:
#line 85 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
    break;

  case 142:
#line 86 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].list); ;}
    break;

  case 143:
#line 87 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].value); ;}
    break;

  case 144:
#line 88 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 145:
#line 89 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *)makeString(pstrdup((yyvsp[(1) - (1)].keyword))); ;}
    break;

  case 146:
#line 93 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 147:
#line 94 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 148:
#line 99 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 149:
#line 104 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_NOACTION; ;}
    break;

  case 150:
#line 105 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_RESTRICT; ;}
    break;

  case 151:
#line 106 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_CASCADE; ;}
    break;

  case 152:
#line 107 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_SETNULL; ;}
    break;

  case 153:
#line 108 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_FKCONSTR_ACTION_SETDEFAULT; ;}
    break;

  case 154:
#line 114 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
					n->conname = (yyvsp[(2) - (3)].str);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 155:
#line 120 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 156:
#line 121 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 157:
#line 123 "third_party/libpg_query/grammar/statements/create.y"
    {
					/*
					 * Note: the PGCollateClause is momentarily included in
					 * the list built by ColQualList, but we split it out
					 * again in SplitColQualList.
					 */
					PGCollateClause *n = makeNode(PGCollateClause);
					n->arg = NULL;
					n->collname = (yyvsp[(2) - (2)].list);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 158:
#line 140 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_NOTNULL;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 159:
#line 147 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_NULL;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 160:
#line 154 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (2)]);
					n->keys = NULL;
					n->options = (yyvsp[(2) - (2)].list);
					n->indexname = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 161:
#line 164 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (3)]);
					n->keys = NULL;
					n->options = (yyvsp[(3) - (3)].list);
					n->indexname = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 162:
#line 174 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_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;
					n->skip_validation = false;
					n->initially_valid = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 163:
#line 186 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_COMPRESSION;
					n->location = (yylsp[(1) - (3)]);
					n->compression_name = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 164:
#line 194 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_DEFAULT;
					n->location = (yylsp[(1) - (2)]);
					n->raw_expr = (yyvsp[(2) - (2)].node);
					n->cooked_expr = NULL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 165:
#line 203 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_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) = (PGNode *)n;
				;}
    break;

  case 166:
#line 220 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;}
    break;

  case 167:
#line 221 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = PG_CONSTR_GENERATED_STORED; ;}
    break;

  case 168:
#line 225 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = (yyvsp[(1) - (1)].constr) ;}
    break;

  case 169:
#line 226 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.constr) = PG_CONSTR_GENERATED_VIRTUAL; ;}
    break;

  case 170:
#line 231 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_IDENTITY;
					n->generated_when = (yyvsp[(2) - (5)].ival);
					n->options = (yyvsp[(5) - (5)].list);
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 171:
#line 240 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = (yyvsp[(7) - (7)].constr);
					n->generated_when = (yyvsp[(2) - (7)].ival);
					n->raw_expr = (yyvsp[(5) - (7)].node);
					n->cooked_expr = NULL;
					n->location = (yylsp[(1) - (7)]);

					/*
					 * Can't do this in the grammar because of shift/reduce
					 * conflicts.  (IDENTITY allows both ALWAYS and BY
					 * DEFAULT, but generated columns only allow ALWAYS.)  We
					 * can also give a more useful error message and location.
					 */
					if ((yyvsp[(2) - (7)].ival) != PG_ATTRIBUTE_IDENTITY_ALWAYS)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("for a generated column, GENERATED ALWAYS must be specified"),
								 parser_errposition((yylsp[(2) - (7)]))));

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 172:
#line 263 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = (yyvsp[(5) - (5)].constr);
					n->generated_when = PG_ATTRIBUTE_IDENTITY_ALWAYS;
					n->raw_expr = (yyvsp[(3) - (5)].node);
					n->cooked_expr = NULL;
					n->location = (yylsp[(1) - (5)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 173:
#line 277 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 174:
#line 283 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
    break;

  case 175:
#line 289 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ((yyvsp[(1) - (1)].ival) << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
    break;

  case 176:
#line 291 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | ((yyvsp[(1) - (1)].ival) & 0xFF); ;}
    break;

  case 177:
#line 293 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ((yyvsp[(1) - (2)].ival) << 8) | ((yyvsp[(2) - (2)].ival) & 0xFF); ;}
    break;

  case 178:
#line 295 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ((yyvsp[(2) - (2)].ival) << 8) | ((yyvsp[(1) - (2)].ival) & 0xFF); ;}
    break;

  case 179:
#line 297 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (PG_FKCONSTR_ACTION_NOACTION << 8) | (PG_FKCONSTR_ACTION_NOACTION & 0xFF); ;}
    break;

  case 180:
#line 300 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = ONCOMMIT_DROP; ;}
    break;

  case 181:
#line 301 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = PG_ONCOMMIT_DELETE_ROWS; ;}
    break;

  case 182:
#line 302 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = PG_ONCOMMIT_PRESERVE_ROWS; ;}
    break;

  case 183:
#line 303 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.oncommit) = PG_ONCOMMIT_NOOP; ;}
    break;

  case 184:
#line 308 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 185:
#line 312 "third_party/libpg_query/grammar/statements/create.y"
    {  (yyval.boolean) = true; ;}
    break;

  case 186:
#line 313 "third_party/libpg_query/grammar/statements/create.y"
    {  (yyval.boolean) = false; ;}
    break;

  case 187:
#line 319 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = castNode(PGConstraint, (yyvsp[(3) - (3)].node));
					n->conname = (yyvsp[(2) - (3)].str);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 188:
#line 325 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 189:
#line 330 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_COMMENTS; ;}
    break;

  case 190:
#line 331 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_CONSTRAINTS; ;}
    break;

  case 191:
#line 332 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_DEFAULTS; ;}
    break;

  case 192:
#line 333 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_IDENTITY; ;}
    break;

  case 193:
#line 334 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_INDEXES; ;}
    break;

  case 194:
#line 335 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_STATISTICS; ;}
    break;

  case 195:
#line 336 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_STORAGE; ;}
    break;

  case 196:
#line 337 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_CREATE_TABLE_LIKE_ALL; ;}
    break;

  case 197:
#line 343 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 198:
#line 344 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 199:
#line 348 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.str) = (yyvsp[(3) - (3)].str); ;}
    break;

  case 200:
#line 354 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_DEFERRABLE;
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 201:
#line 361 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_NOT_DEFERRABLE;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 202:
#line 368 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_DEFERRED;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 203:
#line 375 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_ATTR_IMMEDIATE;
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 204:
#line 386 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 205:
#line 387 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(true), (yylsp[(1) - (2)]))); ;}
    break;

  case 206:
#line 388 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1(makeDefElem("oids", (PGNode *) makeInteger(false), (yylsp[(1) - (2)]))); ;}
    break;

  case 207:
#line 389 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 208:
#line 393 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 209:
#line 398 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
    break;

  case 210:
#line 399 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) & ~(yyvsp[(3) - (3)].ival); ;}
    break;

  case 211:
#line 400 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = 0; ;}
    break;

  case 212:
#line 405 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 213:
#line 410 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_NOT_DEFERRABLE; ;}
    break;

  case 214:
#line 411 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_DEFERRABLE; ;}
    break;

  case 215:
#line 412 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; ;}
    break;

  case 216:
#line 413 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_INITIALLY_DEFERRED; ;}
    break;

  case 217:
#line 414 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_NOT_VALID; ;}
    break;

  case 218:
#line 415 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = CAS_NO_INHERIT; ;}
    break;

  case 219:
#line 421 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGColumnDef *n = makeNode(PGColumnDef);
					n->category = COL_STANDARD;
					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->collOid = InvalidOid;
					SplitColQualList((yyvsp[(3) - (3)].list), &n->constraints, &n->collClause,
									 yyscanner);
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *)n;
			;}
    break;

  case 220:
#line 441 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGColumnDef *n = makeNode(PGColumnDef);
					n->category = COL_GENERATED;
					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;
					// merge the constraints with the generated column constraint
					auto constraints = (yyvsp[(4) - (4)].list);
					if (constraints) {
					    constraints = lappend(constraints, (yyvsp[(3) - (4)].node));
					} else {
					    constraints = list_make1((yyvsp[(3) - (4)].node));
					}
					SplitColQualList(constraints, &n->constraints, &n->collClause,
									 yyscanner);
					n->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *)n;
			;}
    break;

  case 221:
#line 469 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 222:
#line 470 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;}
    break;

  case 223:
#line 474 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 224:
#line 478 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 225:
#line 479 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 226:
#line 480 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 227:
#line 485 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]));
				;}
    break;

  case 228:
#line 489 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 229:
#line 496 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 230:
#line 497 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 231:
#line 502 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 232:
#line 503 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 233:
#line 504 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 234:
#line 509 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str));
				;}
    break;

  case 235:
#line 516 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 236:
#line 517 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 237:
#line 522 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 238:
#line 523 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = NIL; ;}
    break;

  case 239:
#line 527 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = (yyvsp[(3) - (3)].ival); ;}
    break;

  case 240:
#line 533 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (3)].str), (PGNode *) (yyvsp[(3) - (3)].node), (yylsp[(1) - (3)]));
				;}
    break;

  case 241:
#line 537 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (1)].str), NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 242:
#line 541 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (PGNode *) (yyvsp[(5) - (5)].node),
											 PG_DEFELEM_UNSPEC, (yylsp[(1) - (5)]));
				;}
    break;

  case 243:
#line 546 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.defelt) = makeDefElemExtended((yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str), NULL, PG_DEFELEM_UNSPEC, (yylsp[(1) - (3)]));
				;}
    break;

  case 244:
#line 553 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 245:
#line 554 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 246:
#line 558 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 247:
#line 559 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 248:
#line 563 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 249:
#line 565 "third_party/libpg_query/grammar/statements/create.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 250:
#line 571 "third_party/libpg_query/grammar/statements/create.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 251:
#line 582 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_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) = (PGNode *)n;
				;}
    break;

  case 252:
#line 596 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_UNIQUE;
					n->location = (yylsp[(1) - (6)]);
					n->keys = (yyvsp[(3) - (6)].list);
					n->options = (yyvsp[(5) - (6)].list);
					n->indexname = NULL;
					processCASbits((yyvsp[(6) - (6)].ival), (yylsp[(6) - (6)]), "UNIQUE",
								   &n->deferrable, &n->initdeferred, NULL,
								   NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 253:
#line 609 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_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) = (PGNode *)n;
				;}
    break;

  case 254:
#line 624 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_CONSTR_PRIMARY;
					n->location = (yylsp[(1) - (7)]);
					n->keys = (yyvsp[(4) - (7)].list);
					n->options = (yyvsp[(6) - (7)].list);
					n->indexname = NULL;
					processCASbits((yyvsp[(7) - (7)].ival), (yylsp[(7) - (7)]), "PRIMARY KEY",
								   &n->deferrable, &n->initdeferred, NULL,
								   NULL, yyscanner);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 255:
#line 637 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_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) = (PGNode *)n;
				;}
    break;

  case 256:
#line 652 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGConstraint *n = makeNode(PGConstraint);
					n->contype = PG_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) = (PGNode *)n;
				;}
    break;

  case 257:
#line 674 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 258:
#line 678 "third_party/libpg_query/grammar/statements/create.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 259:
#line 685 "third_party/libpg_query/grammar/statements/create.y"
    {
				(yyval.ival) = PG_FKCONSTR_MATCH_FULL;
			;}
    break;

  case 260:
#line 689 "third_party/libpg_query/grammar/statements/create.y"
    {
				ereport(ERROR,
						(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
						 errmsg("MATCH PARTIAL not yet implemented"),
						 parser_errposition((yylsp[(1) - (2)]))));
				(yyval.ival) = PG_FKCONSTR_MATCH_PARTIAL;
			;}
    break;

  case 261:
#line 697 "third_party/libpg_query/grammar/statements/create.y"
    {
				(yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
			;}
    break;

  case 262:
#line 701 "third_party/libpg_query/grammar/statements/create.y"
    {
				(yyval.ival) = PG_FKCONSTR_MATCH_SIMPLE;
			;}
    break;

  case 263:
#line 709 "third_party/libpg_query/grammar/statements/create.y"
    {
					PGTableLikeClause *n = makeNode(PGTableLikeClause);
					n->relation = (yyvsp[(2) - (3)].range);
					n->options = (yyvsp[(3) - (3)].ival);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 264:
#line 718 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 265:
#line 719 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 266:
#line 720 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 267:
#line 721 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_TEMP; ;}
    break;

  case 268:
#line 723 "third_party/libpg_query/grammar/statements/create.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (2)]))));
					(yyval.ival) = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 269:
#line 730 "third_party/libpg_query/grammar/statements/create.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (2)]))));
					(yyval.ival) = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 270:
#line 736 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_RELPERSISTENCE_UNLOGGED; ;}
    break;

  case 271:
#line 737 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = RELPERSISTENCE_PERMANENT; ;}
    break;

  case 272:
#line 742 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = PG_ATTRIBUTE_IDENTITY_ALWAYS; ;}
    break;

  case 273:
#line 743 "third_party/libpg_query/grammar/statements/create.y"
    { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; ;}
    break;

  case 274:
#line 10 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
					n->sequence = (yyvsp[(3) - (4)].range);
					n->options = (yyvsp[(4) - (4)].list);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 275:
#line 18 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					PGAlterSeqStmt *n = makeNode(PGAlterSeqStmt);
					n->sequence = (yyvsp[(5) - (6)].range);
					n->options = (yyvsp[(6) - (6)].list);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 276:
#line 29 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;}
    break;

  case 277:
#line 30 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 278:
#line 34 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 279:
#line 35 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 280:
#line 36 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 281:
#line 41 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.value) = makeFloat((yyvsp[(1) - (1)].str)); ;}
    break;

  case 282:
#line 42 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.value) = makeFloat((yyvsp[(2) - (2)].str)); ;}
    break;

  case 283:
#line 44 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.value) = makeFloat((yyvsp[(2) - (2)].str));
					doNegateFloat((yyval.value));
				;}
    break;

  case 284:
#line 48 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.value) = makeInteger((yyvsp[(1) - (1)].ival)); ;}
    break;

  case 285:
#line 53 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("as", (PGNode *)(yyvsp[(2) - (2)].typnam), (yylsp[(1) - (2)]));
				;}
    break;

  case 286:
#line 57 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("cache", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
				;}
    break;

  case 287:
#line 61 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 288:
#line 65 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("cycle", (PGNode *)makeInteger(false), (yylsp[(1) - (2)]));
				;}
    break;

  case 289:
#line 69 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("increment", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 290:
#line 73 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("maxvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
				;}
    break;

  case 291:
#line 77 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("minvalue", (PGNode *)(yyvsp[(2) - (2)].value), (yylsp[(1) - (2)]));
				;}
    break;

  case 292:
#line 81 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[(1) - (2)]));
				;}
    break;

  case 293:
#line 85 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[(1) - (2)]));
				;}
    break;

  case 294:
#line 89 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("owned_by", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 295:
#line 93 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					/* not documented, only used by pg_dump */
					(yyval.defelt) = makeDefElem("sequence_name", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 296:
#line 98 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("start", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 297:
#line 102 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("restart", NULL, (yylsp[(1) - (1)]));
				;}
    break;

  case 298:
#line 106 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {
					(yyval.defelt) = makeDefElem("restart", (PGNode *)(yyvsp[(3) - (3)].value), (yylsp[(1) - (3)]));
				;}
    break;

  case 299:
#line 112 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 300:
#line 113 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    {;}
    break;

  case 301:
#line 117 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 302:
#line 118 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.ival) = + (yyvsp[(2) - (2)].ival); ;}
    break;

  case 303:
#line 119 "third_party/libpg_query/grammar/statements/alter_sequence.y"
    { (yyval.ival) = - (yyvsp[(2) - (2)].ival); ;}
    break;

  case 304:
#line 8 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 305:
#line 17 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->newschema = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 306:
#line 26 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 307:
#line 35 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->newschema = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 308:
#line 44 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(3) - (6)].range);
					n->newschema = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 309:
#line 53 "third_party/libpg_query/grammar/statements/alter_schema.y"
    {
					PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt);
					n->objectType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(5) - (8)].range);
					n->newschema = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 310:
#line 10 "third_party/libpg_query/grammar/statements/analyze.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_ANALYZE;
					if ((yyvsp[(2) - (2)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 311:
#line 20 "third_party/libpg_query/grammar/statements/analyze.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_ANALYZE;
					if ((yyvsp[(2) - (4)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = (yyvsp[(3) - (4)].range);
					n->va_cols = (yyvsp[(4) - (4)].list);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 312:
#line 7 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_SCHEMA;
					n->subname = (yyvsp[(3) - (6)].str);
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 313:
#line 16 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 314:
#line 26 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABLE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 315:
#line 36 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 316:
#line 46 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_SEQUENCE;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 317:
#line 56 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 318:
#line 66 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_VIEW;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 319:
#line 76 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_INDEX;
					n->relation = (yyvsp[(3) - (6)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(6) - (6)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 320:
#line 86 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_INDEX;
					n->relation = (yyvsp[(5) - (8)].range);
					n->subname = NULL;
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 321:
#line 96 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_COLUMN;
					n->relationType = PG_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) = (PGNode *)n;
				;}
    break;

  case 322:
#line 107 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_COLUMN;
					n->relationType = PG_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) = (PGNode *)n;
				;}
    break;

  case 323:
#line 118 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABCONSTRAINT;
					n->relation = (yyvsp[(3) - (8)].range);
					n->subname = (yyvsp[(6) - (8)].str);
					n->newname = (yyvsp[(8) - (8)].str);
					n->missing_ok = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 324:
#line 128 "third_party/libpg_query/grammar/statements/rename.y"
    {
					PGRenameStmt *n = makeNode(PGRenameStmt);
					n->renameType = PG_OBJECT_TABCONSTRAINT;
					n->relation = (yyvsp[(5) - (10)].range);
					n->subname = (yyvsp[(8) - (10)].str);
					n->newname = (yyvsp[(10) - (10)].str);
					n->missing_ok = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 325:
#line 140 "third_party/libpg_query/grammar/statements/rename.y"
    { (yyval.ival) = COLUMN; ;}
    break;

  case 326:
#line 141 "third_party/libpg_query/grammar/statements/rename.y"
    { (yyval.ival) = 0; ;}
    break;

  case 327:
#line 8 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGExecuteStmt *n = makeNode(PGExecuteStmt);
					n->name = (yyvsp[(2) - (3)].str);
					n->params = (yyvsp[(3) - (3)].list);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 328:
#line 16 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					PGExecuteStmt *n = makeNode(PGExecuteStmt);
					n->name = (yyvsp[(7) - (9)].str);
					n->params = (yyvsp[(8) - (9)].list);
					ctas->query = (PGNode *) n;
					ctas->into = (yyvsp[(4) - (9)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_ERROR_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(4) - (9)].into)->rel->relpersistence = (yyvsp[(2) - (9)].ival);
					(yyvsp[(4) - (9)].into)->skipData = !((yyvsp[(9) - (9)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 329:
#line 33 "third_party/libpg_query/grammar/statements/execute.y"
    {
					PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt);
					PGExecuteStmt *n = makeNode(PGExecuteStmt);
					n->name = (yyvsp[(10) - (12)].str);
					n->params = (yyvsp[(11) - (12)].list);
					ctas->query = (PGNode *) n;
					ctas->into = (yyvsp[(7) - (12)].into);
					ctas->relkind = PG_OBJECT_TABLE;
					ctas->is_select_into = false;
					ctas->onconflict = PG_IGNORE_ON_CONFLICT;
					/* cram additional flags into the PGIntoClause */
					(yyvsp[(7) - (12)].into)->rel->relpersistence = (yyvsp[(2) - (12)].ival);
					(yyvsp[(7) - (12)].into)->skipData = !((yyvsp[(12) - (12)].boolean));
					(yyval.node) = (PGNode *) ctas;
				;}
    break;

  case 330:
#line 51 "third_party/libpg_query/grammar/statements/execute.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 331:
#line 52 "third_party/libpg_query/grammar/statements/execute.y"
    { (yyval.list) = NIL; ;}
    break;

  case 332:
#line 11 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt);
					n->scope = VAR_SET_SCOPE_DEFAULT;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 333:
#line 17 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_LOCAL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 334:
#line 23 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_SESSION;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 335:
#line 29 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt);
					n->scope = VAR_SET_SCOPE_GLOBAL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 336:
#line 38 "third_party/libpg_query/grammar/statements/variable_set.y"
    {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;}
    break;

  case 337:
#line 40 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_CURRENT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 338:
#line 48 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (char*) "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 339:
#line 59 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (char*) "search_path";
					n->args = list_make1(makeStringConst((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])));
					(yyval.vsetstmt) = n;
				;}
    break;

  case 340:
#line 71 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (yyvsp[(1) - (3)].str);
					n->args = (yyvsp[(3) - (3)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 341:
#line 79 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_VALUE;
					n->name = (yyvsp[(1) - (3)].str);
					n->args = (yyvsp[(3) - (3)].list);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 342:
#line 87 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_DEFAULT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 343:
#line 94 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGVariableSetStmt *n = makeNode(PGVariableSetStmt);
					n->kind = VAR_SET_DEFAULT;
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.vsetstmt) = n;
				;}
    break;

  case 344:
#line 104 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;}
    break;

  case 345:
#line 106 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
    break;

  case 346:
#line 112 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 347:
#line 116 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					(yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 348:
#line 120 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGTypeName *t = (yyvsp[(1) - (3)].typnam);
					if ((yyvsp[(3) - (3)].list) != NIL)
					{
						PGAConst *n = (PGAConst *) linitial((yyvsp[(3) - (3)].list));
						if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
							ereport(ERROR,
									(errcode(PG_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 349:
#line 135 "third_party/libpg_query/grammar/statements/variable_set.y"
    {
					PGTypeName *t = (yyvsp[(1) - (5)].typnam);
					t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
											makeIntConst((yyvsp[(3) - (5)].ival), (yylsp[(3) - (5)])));
					(yyval.node) = makeStringConstCast((yyvsp[(5) - (5)].str), (yylsp[(5) - (5)]), t);
				;}
    break;

  case 350:
#line 141 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;}
    break;

  case 351:
#line 142 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = NULL; ;}
    break;

  case 352:
#line 143 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.node) = NULL; ;}
    break;

  case 353:
#line 147 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 354:
#line 148 "third_party/libpg_query/grammar/statements/variable_set.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 355:
#line 6 "third_party/libpg_query/grammar/statements/checkpoint.y"
    {
					PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
					n->force = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 356:
#line 12 "third_party/libpg_query/grammar/statements/checkpoint.y"
    {
					PGCheckPointStmt *n = makeNode(PGCheckPointStmt);
					n->force = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 357:
#line 8 "third_party/libpg_query/grammar/statements/prepare.y"
    {
					PGPrepareStmt *n = makeNode(PGPrepareStmt);
					n->name = (yyvsp[(2) - (5)].str);
					n->argtypes = (yyvsp[(3) - (5)].list);
					n->query = (yyvsp[(5) - (5)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 358:
#line 18 "third_party/libpg_query/grammar/statements/prepare.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 359:
#line 19 "third_party/libpg_query/grammar/statements/prepare.y"
    { (yyval.list) = NIL; ;}
    break;

  case 364:
#line 9 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				n->relpersistence=(yyvsp[(2) - (8)].ival);
				n->name = (yyvsp[(4) - (8)].range);
				n->params = (yyvsp[(5) - (8)].list);
				n->function = NULL;
				n->query = (yyvsp[(8) - (8)].node);
				(yyval.node) = (PGNode *)n;
				
			;}
    break;

  case 365:
#line 21 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				PGCreateFunctionStmt *n = makeNode(PGCreateFunctionStmt);
				n->relpersistence=(yyvsp[(2) - (7)].ival);
				n->name = (yyvsp[(4) - (7)].range);
				n->params = (yyvsp[(5) - (7)].list);
				n->function = (yyvsp[(7) - (7)].node);
				n->query = NULL;
				(yyval.node) = (PGNode *)n;
                         ;}
    break;

  case 368:
#line 42 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = NIL;
			;}
    break;

  case 369:
#line 46 "third_party/libpg_query/grammar/statements/create_function.y"
    {
				(yyval.list) = (yyvsp[(2) - (3)].list);
			;}
    break;

  case 370:
#line 11 "third_party/libpg_query/grammar/statements/index.y"
    {
					PGIndexStmt *n = makeNode(PGIndexStmt);
					n->unique = (yyvsp[(2) - (13)].boolean);
					n->concurrent = (yyvsp[(4) - (13)].boolean);
					n->idxname = (yyvsp[(5) - (13)].str);
					n->relation = (yyvsp[(7) - (13)].range);
					n->accessMethod = (yyvsp[(8) - (13)].str);
					n->indexParams = (yyvsp[(10) - (13)].list);
					n->options = (yyvsp[(12) - (13)].list);
					n->whereClause = (yyvsp[(13) - (13)].node);
					n->excludeOpNames = NIL;
					n->idxcomment = NULL;
					n->indexOid = InvalidOid;
					n->oldNode = InvalidOid;
					n->primary = false;
					n->isconstraint = false;
					n->deferrable = false;
					n->initdeferred = false;
					n->transformed = false;
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 371:
#line 36 "third_party/libpg_query/grammar/statements/index.y"
    {
					PGIndexStmt *n = makeNode(PGIndexStmt);
					n->unique = (yyvsp[(2) - (16)].boolean);
					n->concurrent = (yyvsp[(4) - (16)].boolean);
					n->idxname = (yyvsp[(8) - (16)].str);
					n->relation = (yyvsp[(10) - (16)].range);
					n->accessMethod = (yyvsp[(11) - (16)].str);
					n->indexParams = (yyvsp[(13) - (16)].list);
					n->options = (yyvsp[(15) - (16)].list);
					n->whereClause = (yyvsp[(16) - (16)].node);
					n->excludeOpNames = NIL;
					n->idxcomment = NULL;
					n->indexOid = InvalidOid;
					n->oldNode = InvalidOid;
					n->primary = false;
					n->isconstraint = false;
					n->deferrable = false;
					n->initdeferred = false;
					n->transformed = false;
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 372:
#line 62 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 373:
#line 66 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (yyvsp[(2) - (2)].str); ;}
    break;

  case 374:
#line 67 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;}
    break;

  case 375:
#line 72 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = true; ;}
    break;

  case 376:
#line 73 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = false; ;}
    break;

  case 377:
#line 78 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 378:
#line 79 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.str) = NULL; ;}
    break;

  case 379:
#line 83 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 380:
#line 84 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.list) = NIL; ;}
    break;

  case 381:
#line 89 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = true; ;}
    break;

  case 382:
#line 90 "third_party/libpg_query/grammar/statements/index.y"
    { (yyval.boolean) = false; ;}
    break;

  case 383:
#line 10 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(2) - (2)].node);
					n->options = NIL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 384:
#line 17 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(4) - (4)].node);
					n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[(2) - (4)])));
					if ((yyvsp[(3) - (4)].boolean))
						n->options = lappend(n->options,
											 makeDefElem("verbose", NULL, (yylsp[(3) - (4)])));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 385:
#line 27 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(3) - (3)].node);
					n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[(2) - (3)])));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 386:
#line 34 "third_party/libpg_query/grammar/statements/explain.y"
    {
					PGExplainStmt *n = makeNode(PGExplainStmt);
					n->query = (yyvsp[(5) - (5)].node);
					n->options = (yyvsp[(3) - (5)].list);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 387:
#line 44 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.boolean) = true; ;}
    break;

  case 388:
#line 45 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.boolean) = false; ;}
    break;

  case 389:
#line 50 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 390:
#line 51 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
    break;

  case 391:
#line 52 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.node) = NULL; ;}
    break;

  case 422:
#line 90 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 423:
#line 91 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 424:
#line 92 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 425:
#line 97 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 426:
#line 98 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 427:
#line 104 "third_party/libpg_query/grammar/statements/explain.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 428:
#line 108 "third_party/libpg_query/grammar/statements/explain.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 429:
#line 115 "third_party/libpg_query/grammar/statements/explain.y"
    {;}
    break;

  case 430:
#line 116 "third_party/libpg_query/grammar/statements/explain.y"
    {;}
    break;

  case 431:
#line 121 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "true"; ;}
    break;

  case 432:
#line 122 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "false"; ;}
    break;

  case 433:
#line 123 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "on"; ;}
    break;

  case 434:
#line 129 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 435:
#line 135 "third_party/libpg_query/grammar/statements/explain.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 436:
#line 142 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 437:
#line 143 "third_party/libpg_query/grammar/statements/explain.y"
    { (yyval.str) = (char*) "analyze"; ;}
    break;

  case 438:
#line 10 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->missing_ok = true;
					n->objects = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 439:
#line 20 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (4)].objtype);
					n->missing_ok = false;
					n->objects = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 440:
#line 30 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->missing_ok = true;
					n->objects = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 441:
#line 40 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (4)].objtype);
					n->missing_ok = false;
					n->objects = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 442:
#line 50 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (6)].objtype);
					n->objects = list_make1(lappend((yyvsp[(5) - (6)].list), makeString((yyvsp[(3) - (6)].str))));
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->missing_ok = false;
					n->concurrent = false;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 443:
#line 60 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = (yyvsp[(2) - (8)].objtype);
					n->objects = list_make1(lappend((yyvsp[(7) - (8)].list), makeString((yyvsp[(5) - (8)].str))));
					n->behavior = (yyvsp[(8) - (8)].dbehavior);
					n->missing_ok = true;
					n->concurrent = false;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 444:
#line 70 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = PG_OBJECT_TYPE;
					n->missing_ok = false;
					n->objects = (yyvsp[(3) - (4)].list);
					n->behavior = (yyvsp[(4) - (4)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 445:
#line 80 "third_party/libpg_query/grammar/statements/drop.y"
    {
					PGDropStmt *n = makeNode(PGDropStmt);
					n->removeType = PG_OBJECT_TYPE;
					n->missing_ok = true;
					n->objects = (yyvsp[(5) - (6)].list);
					n->behavior = (yyvsp[(6) - (6)].dbehavior);
					n->concurrent = false;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 446:
#line 93 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TABLE; ;}
    break;

  case 447:
#line 94 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;}
    break;

  case 448:
#line 95 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
    break;

  case 449:
#line 96 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FUNCTION; ;}
    break;

  case 450:
#line 97 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; ;}
    break;

  case 451:
#line 98 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_VIEW; ;}
    break;

  case 452:
#line 99 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_MATVIEW; ;}
    break;

  case 453:
#line 100 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_INDEX; ;}
    break;

  case 454:
#line 101 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FOREIGN_TABLE; ;}
    break;

  case 455:
#line 102 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_COLLATION; ;}
    break;

  case 456:
#line 103 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_CONVERSION; ;}
    break;

  case 457:
#line 104 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_STATISTIC_EXT; ;}
    break;

  case 458:
#line 105 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSPARSER; ;}
    break;

  case 459:
#line 106 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSDICTIONARY; ;}
    break;

  case 460:
#line 107 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSTEMPLATE; ;}
    break;

  case 461:
#line 108 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TSCONFIGURATION; ;}
    break;

  case 462:
#line 113 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_ACCESS_METHOD; ;}
    break;

  case 463:
#line 114 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_EVENT_TRIGGER; ;}
    break;

  case 464:
#line 115 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_EXTENSION; ;}
    break;

  case 465:
#line 116 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FDW; ;}
    break;

  case 466:
#line 117 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_PUBLICATION; ;}
    break;

  case 467:
#line 118 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_SCHEMA; ;}
    break;

  case 468:
#line 119 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_FOREIGN_SERVER; ;}
    break;

  case 469:
#line 124 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 470:
#line 125 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 471:
#line 130 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.dbehavior) = PG_DROP_CASCADE; ;}
    break;

  case 472:
#line 131 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.dbehavior) = PG_DROP_RESTRICT; ;}
    break;

  case 473:
#line 132 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.dbehavior) = PG_DROP_RESTRICT; /* default */ ;}
    break;

  case 474:
#line 137 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_POLICY; ;}
    break;

  case 475:
#line 138 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_RULE; ;}
    break;

  case 476:
#line 139 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.objtype) = PG_OBJECT_TRIGGER; ;}
    break;

  case 477:
#line 142 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
    break;

  case 478:
#line 143 "third_party/libpg_query/grammar/statements/drop.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;}
    break;

  case 479:
#line 10 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					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->onconflict = PG_ERROR_ON_CONFLICT;
					n->options = (yyvsp[(6) - (9)].list);
					n->withCheckOption = (yyvsp[(9) - (9)].viewcheckoption);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 480:
#line 23 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					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->onconflict = PG_REPLACE_ON_CONFLICT;
					n->options = (yyvsp[(8) - (11)].list);
					n->withCheckOption = (yyvsp[(11) - (11)].viewcheckoption);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 481:
#line 36 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(5) - (12)].range);
					n->view->relpersistence = (yyvsp[(2) - (12)].ival);
					n->aliases = (yyvsp[(7) - (12)].list);
					n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(11) - (12)].node));
					n->onconflict = PG_ERROR_ON_CONFLICT;
					n->options = (yyvsp[(9) - (12)].list);
					n->withCheckOption = (yyvsp[(12) - (12)].viewcheckoption);
					if (n->withCheckOption != PG_NO_CHECK_OPTION)
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("WITH CHECK OPTION not supported on recursive views"),
								 parser_errposition((yylsp[(12) - (12)]))));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 482:
#line 54 "third_party/libpg_query/grammar/statements/view.y"
    {
					PGViewStmt *n = makeNode(PGViewStmt);
					n->view = (yyvsp[(7) - (14)].range);
					n->view->relpersistence = (yyvsp[(4) - (14)].ival);
					n->aliases = (yyvsp[(9) - (14)].list);
					n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[(13) - (14)].node));
					n->onconflict = PG_REPLACE_ON_CONFLICT;
					n->options = (yyvsp[(11) - (14)].list);
					n->withCheckOption = (yyvsp[(14) - (14)].viewcheckoption);
					if (n->withCheckOption != PG_NO_CHECK_OPTION)
						ereport(ERROR,
								(errcode(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
								 errmsg("WITH CHECK OPTION not supported on recursive views"),
								 parser_errposition((yylsp[(14) - (14)]))));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 483:
#line 74 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
    break;

  case 484:
#line 75 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;}
    break;

  case 485:
#line 76 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;}
    break;

  case 486:
#line 77 "third_party/libpg_query/grammar/statements/view.y"
    { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;}
    break;

  case 487:
#line 10 "third_party/libpg_query/grammar/statements/create_sequence.y"
    {
					PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
					(yyvsp[(4) - (5)].range)->relpersistence = (yyvsp[(2) - (5)].ival);
					n->sequence = (yyvsp[(4) - (5)].range);
					n->options = (yyvsp[(5) - (5)].list);
					n->ownerId = InvalidOid;
					n->onconflict = PG_ERROR_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 488:
#line 20 "third_party/libpg_query/grammar/statements/create_sequence.y"
    {
					PGCreateSeqStmt *n = makeNode(PGCreateSeqStmt);
					(yyvsp[(7) - (8)].range)->relpersistence = (yyvsp[(2) - (8)].ival);
					n->sequence = (yyvsp[(7) - (8)].range);
					n->options = (yyvsp[(8) - (8)].list);
					n->ownerId = InvalidOid;
					n->onconflict = PG_IGNORE_ON_CONFLICT;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 489:
#line 32 "third_party/libpg_query/grammar/statements/create_sequence.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 490:
#line 33 "third_party/libpg_query/grammar/statements/create_sequence.y"
    { (yyval.list) = NIL; ;}
    break;

  case 491:
#line 8 "third_party/libpg_query/grammar/statements/load.y"
    {
					PGLoadStmt *n = makeNode(PGLoadStmt);
					n->filename = (yyvsp[(2) - (2)].str);
					n->load_type = PG_LOAD_TYPE_LOAD;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 492:
#line 14 "third_party/libpg_query/grammar/statements/load.y"
    {
                    PGLoadStmt *n = makeNode(PGLoadStmt);
                    n->filename = (yyvsp[(2) - (2)].str);
                    n->load_type = PG_LOAD_TYPE_INSTALL;
                    (yyval.node) = (PGNode *)n;
				;}
    break;

  case 493:
#line 20 "third_party/libpg_query/grammar/statements/load.y"
    {
                      PGLoadStmt *n = makeNode(PGLoadStmt);
                      n->filename = (yyvsp[(3) - (3)].str);
                      n->load_type = PG_LOAD_TYPE_FORCE_INSTALL;
                      (yyval.node) = (PGNode *)n;
                ;}
    break;

  case 494:
#line 28 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 495:
#line 29 "third_party/libpg_query/grammar/statements/load.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 496:
#line 3 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt);
				n->stmt = (yyvsp[(2) - (2)].node);
				n->name = (char*) "select";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 497:
#line 10 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt);
				n->stmt = (yyvsp[(2) - (2)].node);
				n->name = (char*) "select";
				n->is_summary = 1;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 498:
#line 18 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->name = (yyvsp[(2) - (2)].str);
				n->is_summary = 1;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 499:
#line 25 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->name = (yyvsp[(2) - (2)].str);
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 500:
#line 32 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->name = (char*) "timezone";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 501:
#line 39 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->name = (char*) "transaction_isolation";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 502:
#line 46 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->name = (char*) "__show_tables_expanded";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 503:
#line 53 "third_party/libpg_query/grammar/statements/variable_show.y"
    {
				PGVariableShowStmt *n = makeNode(PGVariableShowStmt);
				n->name = (char*) "__show_tables_expanded";
				n->is_summary = 0;
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 506:
#line 63 "third_party/libpg_query/grammar/statements/variable_show.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 507:
#line 65 "third_party/libpg_query/grammar/statements/variable_show.y"
    { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;}
    break;

  case 508:
#line 9 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM;
					if ((yyvsp[(2) - (4)].boolean))
						n->options |= PG_VACOPT_FULL;
					if ((yyvsp[(3) - (4)].boolean))
						n->options |= PG_VACOPT_FREEZE;
					if ((yyvsp[(4) - (4)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 509:
#line 23 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM;
					if ((yyvsp[(2) - (5)].boolean))
						n->options |= PG_VACOPT_FULL;
					if ((yyvsp[(3) - (5)].boolean))
						n->options |= PG_VACOPT_FREEZE;
					if ((yyvsp[(4) - (5)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					n->relation = (yyvsp[(5) - (5)].range);
					n->va_cols = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 510:
#line 37 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node);
					n->options |= PG_VACOPT_VACUUM;
					if ((yyvsp[(2) - (5)].boolean))
						n->options |= PG_VACOPT_FULL;
					if ((yyvsp[(3) - (5)].boolean))
						n->options |= PG_VACOPT_FREEZE;
					if ((yyvsp[(4) - (5)].boolean))
						n->options |= PG_VACOPT_VERBOSE;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 511:
#line 49 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (4)].ival);
					n->relation = NULL;
					n->va_cols = NIL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 512:
#line 57 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					PGVacuumStmt *n = makeNode(PGVacuumStmt);
					n->options = PG_VACOPT_VACUUM | (yyvsp[(3) - (6)].ival);
					n->relation = (yyvsp[(5) - (6)].range);
					n->va_cols = (yyvsp[(6) - (6)].list);
					if (n->va_cols != NIL)	/* implies analyze */
						n->options |= PG_VACOPT_ANALYZE;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 513:
#line 70 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_ANALYZE; ;}
    break;

  case 514:
#line 71 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_VERBOSE; ;}
    break;

  case 515:
#line 72 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_FREEZE; ;}
    break;

  case 516:
#line 73 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = PG_VACOPT_FULL; ;}
    break;

  case 517:
#line 75 "third_party/libpg_query/grammar/statements/vacuum.y"
    {
					if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0)
						(yyval.ival) = PG_VACOPT_DISABLE_PAGE_SKIPPING;
					else
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
							 errmsg("unrecognized VACUUM option \"%s\"", (yyvsp[(1) - (1)].str)),
									 parser_errposition((yylsp[(1) - (1)]))));
				;}
    break;

  case 518:
#line 87 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = true; ;}
    break;

  case 519:
#line 88 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = false; ;}
    break;

  case 520:
#line 93 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 521:
#line 94 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;}
    break;

  case 522:
#line 98 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = true; ;}
    break;

  case 523:
#line 99 "third_party/libpg_query/grammar/statements/vacuum.y"
    { (yyval.boolean) = false; ;}
    break;

  case 524:
#line 12 "third_party/libpg_query/grammar/statements/update.y"
    {
					PGUpdateStmt *n = makeNode(PGUpdateStmt);
					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) = (PGNode *)n;
				;}
    break;

  case 525:
#line 3 "third_party/libpg_query/grammar/statements/copy.y"
    {
					PGCopyStmt *n = makeNode(PGCopyStmt);
					n->relation = (yyvsp[(3) - (11)].range);
					n->query = NULL;
					n->attlist = (yyvsp[(4) - (11)].list);
					n->is_from = (yyvsp[(6) - (11)].boolean);
					n->is_program = (yyvsp[(7) - (11)].boolean);
					n->filename = (yyvsp[(8) - (11)].str);

					if (n->is_program && n->filename == NULL)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("STDIN/STDOUT not allowed with PROGRAM"),
								 parser_errposition((yylsp[(8) - (11)]))));

					n->options = NIL;
					/* Concatenate user-supplied flags */
					if ((yyvsp[(2) - (11)].defelt))
						n->options = lappend(n->options, (yyvsp[(2) - (11)].defelt));
					if ((yyvsp[(5) - (11)].defelt))
						n->options = lappend(n->options, (yyvsp[(5) - (11)].defelt));
					if ((yyvsp[(9) - (11)].defelt))
						n->options = lappend(n->options, (yyvsp[(9) - (11)].defelt));
					if ((yyvsp[(11) - (11)].list))
						n->options = list_concat(n->options, (yyvsp[(11) - (11)].list));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 526:
#line 31 "third_party/libpg_query/grammar/statements/copy.y"
    {
					PGCopyStmt *n = makeNode(PGCopyStmt);
					n->relation = NULL;
					n->query = (yyvsp[(3) - (9)].node);
					n->attlist = NIL;
					n->is_from = false;
					n->is_program = (yyvsp[(6) - (9)].boolean);
					n->filename = (yyvsp[(7) - (9)].str);
					n->options = (yyvsp[(9) - (9)].list);

					if (n->is_program && n->filename == NULL)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("STDIN/STDOUT not allowed with PROGRAM"),
								 parser_errposition((yylsp[(5) - (9)]))));

					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 527:
#line 53 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = true; ;}
    break;

  case 528:
#line 54 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = false; ;}
    break;

  case 529:
#line 60 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(2) - (3)]));
				;}
    break;

  case 530:
#line 63 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 531:
#line 69 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 532:
#line 73 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 533:
#line 80 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 534:
#line 81 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 535:
#line 85 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 536:
#line 86 "third_party/libpg_query/grammar/statements/copy.y"
    {;}
    break;

  case 537:
#line 91 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = true; ;}
    break;

  case 538:
#line 92 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.boolean) = false; ;}
    break;

  case 539:
#line 96 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 540:
#line 97 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 541:
#line 102 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 542:
#line 103 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;}
    break;

  case 543:
#line 104 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) makeNode(PGAStar); ;}
    break;

  case 544:
#line 105 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].list); ;}
    break;

  case 545:
#line 106 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = NULL; ;}
    break;

  case 546:
#line 112 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)]));
				;}
    break;

  case 547:
#line 120 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (2)]));
				;}
    break;

  case 548:
#line 123 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 549:
#line 128 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].defelt)); ;}
    break;

  case 550:
#line 129 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.list) = NIL; ;}
    break;

  case 551:
#line 135 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)]));
				;}
    break;

  case 552:
#line 138 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.defelt) = NULL; ;}
    break;

  case 553:
#line 144 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("format", (PGNode *)makeString("binary"), (yylsp[(1) - (1)]));
				;}
    break;

  case 554:
#line 148 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("oids", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 555:
#line 152 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("freeze", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 556:
#line 156 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("delimiter", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 557:
#line 160 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("null", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 558:
#line 164 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("format", (PGNode *)makeString("csv"), (yylsp[(1) - (1)]));
				;}
    break;

  case 559:
#line 168 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("header", (PGNode *)makeInteger(true), (yylsp[(1) - (1)]));
				;}
    break;

  case 560:
#line 172 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("quote", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 561:
#line 176 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("escape", (PGNode *)makeString((yyvsp[(3) - (3)].str)), (yylsp[(1) - (3)]));
				;}
    break;

  case 562:
#line 180 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_quote", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 563:
#line 184 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_quote", (PGNode *)makeNode(PGAStar), (yylsp[(1) - (3)]));
				;}
    break;

  case 564:
#line 188 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_not_null", (PGNode *)(yyvsp[(4) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 565:
#line 192 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("force_null", (PGNode *)(yyvsp[(3) - (3)].list), (yylsp[(1) - (3)]));
				;}
    break;

  case 566:
#line 196 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.defelt) = makeDefElem("encoding", (PGNode *)makeString((yyvsp[(2) - (2)].str)), (yylsp[(1) - (2)]));
				;}
    break;

  case 567:
#line 203 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;}
    break;

  case 568:
#line 209 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 569:
#line 210 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = NULL; ;}
    break;

  case 570:
#line 211 "third_party/libpg_query/grammar/statements/copy.y"
    { (yyval.str) = NULL; ;}
    break;

  case 571:
#line 217 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].defelt));
				;}
    break;

  case 572:
#line 221 "third_party/libpg_query/grammar/statements/copy.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt));
				;}
    break;

  case 573:
#line 8 "third_party/libpg_query/grammar/statements/export.y"
    {
					PGExportStmt *n = makeNode(PGExportStmt);
					n->filename = (yyvsp[(3) - (4)].str);
					n->options = NIL;
					if ((yyvsp[(4) - (4)].list)) {
						n->options = list_concat(n->options, (yyvsp[(4) - (4)].list));
					}
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 574:
#line 21 "third_party/libpg_query/grammar/statements/export.y"
    {
					PGImportStmt *n = makeNode(PGImportStmt);
					n->filename = (yyvsp[(3) - (3)].str);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 577:
#line 52 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 578:
#line 53 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 579:
#line 68 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 580:
#line 70 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list), NIL,
										NULL, NULL, NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (2)].node);
				;}
    break;

  case 581:
#line 77 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].list),
										(PGNode*) list_nth((yyvsp[(4) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (4)].list), 1),
										NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (4)].node);
				;}
    break;

  case 582:
#line 85 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].list), (yyvsp[(4) - (4)].list),
										(PGNode*) list_nth((yyvsp[(3) - (4)].list), 0), (PGNode*) list_nth((yyvsp[(3) - (4)].list), 1),
										NULL,
										yyscanner);
					(yyval.node) = (yyvsp[(1) - (4)].node);
				;}
    break;

  case 583:
#line 93 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (2)].node), NULL, NIL,
										NULL, NULL,
										(yyvsp[(1) - (2)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (2)].node);
				;}
    break;

  case 584:
#line 101 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].list), NIL,
										NULL, NULL,
										(yyvsp[(1) - (3)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (3)].node);
				;}
    break;

  case 585:
#line 109 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].list),
										(PGNode*) list_nth((yyvsp[(5) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(5) - (5)].list), 1),
										(yyvsp[(1) - (5)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (5)].node);
				;}
    break;

  case 586:
#line 117 "third_party/libpg_query/grammar/statements/select.y"
    {
					insertSelectOptions((PGSelectStmt *) (yyvsp[(2) - (5)].node), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].list),
										(PGNode*) list_nth((yyvsp[(4) - (5)].list), 0), (PGNode*) list_nth((yyvsp[(4) - (5)].list), 1),
										(yyvsp[(1) - (5)].with),
										yyscanner);
					(yyval.node) = (yyvsp[(2) - (5)].node);
				;}
    break;

  case 587:
#line 127 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 588:
#line 128 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 589:
#line 158 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->targetList = (yyvsp[(3) - (11)].list);
					n->intoClause = (yyvsp[(4) - (11)].into);
					n->fromClause = (yyvsp[(5) - (11)].list);
					n->whereClause = (yyvsp[(6) - (11)].node);
					n->groupClause = (yyvsp[(7) - (11)].list);
					n->havingClause = (yyvsp[(8) - (11)].node);
					n->windowClause = (yyvsp[(9) - (11)].list);
					n->qualifyClause = (yyvsp[(10) - (11)].node);
					n->sampleOptions = (yyvsp[(11) - (11)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 590:
#line 174 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->distinctClause = (yyvsp[(2) - (11)].list);
					n->targetList = (yyvsp[(3) - (11)].list);
					n->intoClause = (yyvsp[(4) - (11)].into);
					n->fromClause = (yyvsp[(5) - (11)].list);
					n->whereClause = (yyvsp[(6) - (11)].node);
					n->groupClause = (yyvsp[(7) - (11)].list);
					n->havingClause = (yyvsp[(8) - (11)].node);
					n->windowClause = (yyvsp[(9) - (11)].list);
					n->qualifyClause = (yyvsp[(10) - (11)].node);
					n->sampleOptions = (yyvsp[(11) - (11)].node);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 591:
#line 188 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 592:
#line 190 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* same as SELECT * FROM relation_expr */
					PGColumnRef *cr = makeNode(PGColumnRef);
					PGResTarget *rt = makeNode(PGResTarget);
					PGSelectStmt *n = makeNode(PGSelectStmt);

					cr->fields = list_make1(makeNode(PGAStar));
					cr->location = -1;

					rt->name = NULL;
					rt->indirection = NIL;
					rt->val = (PGNode *)cr;
					rt->location = -1;

					n->targetList = list_make1(rt);
					n->fromClause = list_make1((yyvsp[(2) - (2)].range));
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 593:
#line 209 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_UNION, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 594:
#line 213 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_INTERSECT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 595:
#line 217 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSetOp(PG_SETOP_EXCEPT, (yyvsp[(3) - (4)].boolean), (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 596:
#line 234 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.with) = makeNode(PGWithClause);
				(yyval.with)->ctes = (yyvsp[(2) - (2)].list);
				(yyval.with)->recursive = false;
				(yyval.with)->location = (yylsp[(1) - (2)]);
			;}
    break;

  case 597:
#line 241 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.with) = makeNode(PGWithClause);
				(yyval.with)->ctes = (yyvsp[(2) - (2)].list);
				(yyval.with)->recursive = false;
				(yyval.with)->location = (yylsp[(1) - (2)]);
			;}
    break;

  case 598:
#line 248 "third_party/libpg_query/grammar/statements/select.y"
    {
				(yyval.with) = makeNode(PGWithClause);
				(yyval.with)->ctes = (yyvsp[(3) - (3)].list);
				(yyval.with)->recursive = true;
				(yyval.with)->location = (yylsp[(1) - (3)]);
			;}
    break;

  case 599:
#line 257 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 600:
#line 258 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 601:
#line 262 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGCommonTableExpr *n = makeNode(PGCommonTableExpr);
				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) = (PGNode *) n;
			;}
    break;

  case 602:
#line 274 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.into) = makeNode(PGIntoClause);
					(yyval.into)->rel = (yyvsp[(2) - (2)].range);
					(yyval.into)->colNames = NIL;
					(yyval.into)->options = NIL;
					(yyval.into)->onCommit = PG_ONCOMMIT_NOOP;
					(yyval.into)->viewQuery = NULL;
					(yyval.into)->skipData = false;
				;}
    break;

  case 603:
#line 284 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.into) = NULL; ;}
    break;

  case 604:
#line 293 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 605:
#line 298 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 606:
#line 303 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 607:
#line 308 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 608:
#line 313 "third_party/libpg_query/grammar/statements/select.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (4)]))));
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 609:
#line 321 "third_party/libpg_query/grammar/statements/select.y"
    {
					ereport(PGWARNING,
							(errmsg("GLOBAL is deprecated in temporary table creation"),
							 parser_errposition((yylsp[(1) - (4)]))));
					(yyval.range) = (yyvsp[(4) - (4)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_TEMP;
				;}
    break;

  case 610:
#line 329 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(3) - (3)].range);
					(yyval.range)->relpersistence = PG_RELPERSISTENCE_UNLOGGED;
				;}
    break;

  case 611:
#line 334 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(2) - (2)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
				;}
    break;

  case 612:
#line 339 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
					(yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
				;}
    break;

  case 613:
#line 345 "third_party/libpg_query/grammar/statements/select.y"
    {;}
    break;

  case 614:
#line 346 "third_party/libpg_query/grammar/statements/select.y"
    {;}
    break;

  case 615:
#line 350 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 616:
#line 351 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 617:
#line 352 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 618:
#line 359 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(NIL); ;}
    break;

  case 619:
#line 360 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
    break;

  case 620:
#line 364 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL;;}
    break;

  case 621:
#line 365 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 622:
#line 369 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true;;}
    break;

  case 623:
#line 370 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false;;}
    break;

  case 624:
#line 371 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 625:
#line 375 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list);;}
    break;

  case 626:
#line 376 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 627:
#line 380 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 628:
#line 382 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSortBy *sort = makeNode(PGSortBy);
					sort->node = (PGNode *) makeNode(PGAStar);
					sort->sortby_dir = (yyvsp[(4) - (5)].sortorder);
					sort->sortby_nulls = (yyvsp[(5) - (5)].nullorder);
					sort->useOp = NIL;
					sort->location = -1;		/* no operator */
					(yyval.list) = list_make1(sort);
				;}
    break;

  case 629:
#line 392 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSortBy *sort = makeNode(PGSortBy);
					sort->node = (PGNode *) makeNode(PGAStar);
					sort->sortby_dir = (yyvsp[(4) - (5)].sortorder);
					sort->sortby_nulls = (yyvsp[(5) - (5)].nullorder);
					sort->useOp = NIL;
					sort->location = -1;		/* no operator */
					(yyval.list) = list_make1(sort);
				;}
    break;

  case 630:
#line 404 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].sortby)); ;}
    break;

  case 631:
#line 405 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].sortby)); ;}
    break;

  case 632:
#line 409 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.sortby) = makeNode(PGSortBy);
					(yyval.sortby)->node = (yyvsp[(1) - (4)].node);
					(yyval.sortby)->sortby_dir = SORTBY_USING;
					(yyval.sortby)->sortby_nulls = (yyvsp[(4) - (4)].nullorder);
					(yyval.sortby)->useOp = (yyvsp[(3) - (4)].list);
					(yyval.sortby)->location = (yylsp[(3) - (4)]);
				;}
    break;

  case 633:
#line 418 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.sortby) = makeNode(PGSortBy);
					(yyval.sortby)->node = (yyvsp[(1) - (3)].node);
					(yyval.sortby)->sortby_dir = (yyvsp[(2) - (3)].sortorder);
					(yyval.sortby)->sortby_nulls = (yyvsp[(3) - (3)].nullorder);
					(yyval.sortby)->useOp = NIL;
					(yyval.sortby)->location = -1;		/* no operator */
				;}
    break;

  case 634:
#line 428 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.sortorder) = PG_SORTBY_ASC; ;}
    break;

  case 635:
#line 429 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.sortorder) = PG_SORTBY_DESC; ;}
    break;

  case 636:
#line 430 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.sortorder) = PG_SORTBY_DEFAULT; ;}
    break;

  case 637:
#line 433 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.nullorder) = PG_SORTBY_NULLS_FIRST; ;}
    break;

  case 638:
#line 434 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.nullorder) = PG_SORTBY_NULLS_LAST; ;}
    break;

  case 639:
#line 435 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.nullorder) = PG_SORTBY_NULLS_DEFAULT; ;}
    break;

  case 640:
#line 439 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(2) - (2)].node), (yyvsp[(1) - (2)].node)); ;}
    break;

  case 641:
#line 440 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 642:
#line 441 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2(NULL, (yyvsp[(1) - (1)].node)); ;}
    break;

  case 643:
#line 442 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (1)].node), NULL); ;}
    break;

  case 644:
#line 446 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 645:
#line 447 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2(NULL,NULL); ;}
    break;

  case 646:
#line 452 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 647:
#line 454 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* Disabled because it was too confusing, bjm 2002-02-18 */
					ereport(ERROR,
							(errcode(PG_ERRCODE_SYNTAX_ERROR),
							 errmsg("LIMIT #,# syntax is not supported"),
							 errhint("Use separate LIMIT and OFFSET clauses."),
							 parser_errposition((yylsp[(1) - (4)]))));
				;}
    break;

  case 648:
#line 470 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(3) - (5)].node); ;}
    break;

  case 649:
#line 472 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeIntConst(1, -1); ;}
    break;

  case 650:
#line 477 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 651:
#line 480 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (3)].node); ;}
    break;

  case 652:
#line 488 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true);
		;}
    break;

  case 653:
#line 492 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true);
		;}
    break;

  case 654:
#line 496 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true);
		;}
    break;

  case 655:
#line 500 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true);
		;}
    break;

  case 656:
#line 504 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (1)].ival)), false);
		;}
    break;

  case 657:
#line 508 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), false);
		;}
    break;

  case 658:
#line 515 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(3) - (3)].node);
				;}
    break;

  case 659:
#line 519 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 660:
#line 526 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 661:
#line 527 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = NULL; ;}
    break;

  case 662:
#line 532 "third_party/libpg_query/grammar/statements/select.y"
    {
					int seed = (yyvsp[(5) - (5)].ival);
					(yyval.node) = makeSampleOptions((yyvsp[(3) - (5)].node), (yyvsp[(1) - (5)].str), &seed, (yylsp[(1) - (5)]));
				;}
    break;

  case 663:
#line 537 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleOptions((yyvsp[(1) - (1)].node), NULL, NULL, (yylsp[(1) - (1)]));
		;}
    break;

  case 664:
#line 541 "third_party/libpg_query/grammar/statements/select.y"
    {
			(yyval.node) = makeSampleOptions((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].str), NULL, (yylsp[(1) - (4)]));
		;}
    break;

  case 665:
#line 545 "third_party/libpg_query/grammar/statements/select.y"
    {
			int seed = (yyvsp[(5) - (6)].ival);
			(yyval.node) = makeSampleOptions((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].str), &seed, (yylsp[(1) - (6)]));
		;}
    break;

  case 666:
#line 553 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(2) - (2)].node);
				;}
    break;

  case 667:
#line 559 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 668:
#line 560 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 669:
#line 565 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;}
    break;

  case 670:
#line 566 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = -1; ;}
    break;

  case 671:
#line 570 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 672:
#line 572 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* LIMIT ALL is represented as a NULL constant */
					(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
				;}
    break;

  case 673:
#line 577 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;}
    break;

  case 674:
#line 579 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;}
    break;

  case 675:
#line 581 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;}
    break;

  case 676:
#line 585 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 677:
#line 605 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 678:
#line 607 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 679:
#line 609 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 680:
#line 613 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;}
    break;

  case 681:
#line 614 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;}
    break;

  case 682:
#line 618 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 683:
#line 619 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 684:
#line 622 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 685:
#line 623 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = 0; ;}
    break;

  case 686:
#line 648 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 687:
#line 650 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)]));
					(yyval.list) = list_make1(node);
				;}
    break;

  case 688:
#line 655 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)]));
					(yyval.list) = list_make1(node);
				;}
    break;

  case 689:
#line 659 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 690:
#line 663 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 691:
#line 664 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;}
    break;

  case 692:
#line 668 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 693:
#line 669 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 694:
#line 673 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 695:
#line 674 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 696:
#line 675 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 697:
#line 676 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 698:
#line 677 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 699:
#line 682 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)]));
				;}
    break;

  case 700:
#line 695 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 701:
#line 702 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 702:
#line 709 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 703:
#line 715 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 704:
#line 716 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 705:
#line 720 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 706:
#line 721 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 707:
#line 725 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 708:
#line 726 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 709:
#line 730 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 710:
#line 731 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 711:
#line 735 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 712:
#line 736 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 713:
#line 740 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 714:
#line 741 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 715:
#line 746 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGLockingClause *n = makeNode(PGLockingClause);
					n->lockedRels = (yyvsp[(2) - (3)].list);
					n->strength = (yyvsp[(1) - (3)].lockstrength);
					n->waitPolicy = (yyvsp[(3) - (3)].lockwaitpolicy);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 716:
#line 756 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = LCS_FORUPDATE; ;}
    break;

  case 717:
#line 757 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;}
    break;

  case 718:
#line 758 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = PG_LCS_FORSHARE; ;}
    break;

  case 719:
#line 759 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;}
    break;

  case 720:
#line 763 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 721:
#line 764 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 722:
#line 769 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockwaitpolicy) = LockWaitError; ;}
    break;

  case 723:
#line 770 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;}
    break;

  case 724:
#line 771 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;}
    break;

  case 725:
#line 781 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = makeNode(PGSelectStmt);
					n->valuesLists = list_make1((yyvsp[(3) - (4)].list));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 726:
#line 787 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node);
					n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 727:
#line 795 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 728:
#line 796 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (2)].node); ;}
    break;

  case 729:
#line 809 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 730:
#line 810 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 731:
#line 814 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 732:
#line 815 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 733:
#line 819 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 734:
#line 820 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 735:
#line 827 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias);
					(yyvsp[(1) - (3)].range)->sample = (yyvsp[(3) - (3)].node);
					(yyval.node) = (PGNode *) (yyvsp[(1) - (3)].range);
				;}
    break;

  case 736:
#line 833 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node);
					n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list));
					n->coldeflist = (PGList*) lsecond((yyvsp[(2) - (3)].list));
					n->sample = (yyvsp[(3) - (3)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 737:
#line 841 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGRangeSubselect *n = makeNode(PGRangeSubselect);
				n->lateral = false;
				n->subquery = (yyvsp[(1) - (3)].node);
				n->alias = (yyvsp[(2) - (3)].alias);
				n->sample = (yyvsp[(3) - (3)].node);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 738:
#line 850 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node);
					n->lateral = true;
					n->alias = (PGAlias*) linitial((yyvsp[(3) - (3)].list));
					n->coldeflist = (PGList*) lsecond((yyvsp[(3) - (3)].list));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 739:
#line 858 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeSubselect *n = makeNode(PGRangeSubselect);
					n->lateral = false;
					n->subquery = (yyvsp[(1) - (3)].node);
					n->alias = (yyvsp[(2) - (3)].alias);
					n->sample = (yyvsp[(3) - (3)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 740:
#line 867 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeSubselect *n = makeNode(PGRangeSubselect);
					n->lateral = true;
					n->subquery = (yyvsp[(2) - (3)].node);
					n->alias = (yyvsp[(3) - (3)].alias);
					n->sample = NULL;
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 741:
#line 876 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr);
				;}
    break;

  case 742:
#line 880 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias);
					(yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr);
				;}
    break;

  case 743:
#line 906 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.jexpr) = (yyvsp[(2) - (3)].jexpr);
				;}
    break;

  case 744:
#line 910 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* CROSS JOIN is same as unqualified inner join */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_JOIN_INNER;
					n->isNatural = false;
					n->larg = (yyvsp[(1) - (4)].node);
					n->rarg = (yyvsp[(4) - (4)].node);
					n->usingClause = NIL;
					n->quals = NULL;
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 745:
#line 923 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGJoinExpr *n = makeNode(PGJoinExpr);
					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), PGList))
						n->usingClause = (PGList *) (yyvsp[(5) - (5)].node); /* USING clause */
					else
						n->quals = (yyvsp[(5) - (5)].node); /* ON clause */
					n->location = (yylsp[(2) - (5)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 746:
#line 937 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* letting join_type reduce to empty doesn't work */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_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), PGList))
						n->usingClause = (PGList *) (yyvsp[(4) - (4)].node); /* USING clause */
					else
						n->quals = (yyvsp[(4) - (4)].node); /* ON clause */
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 747:
#line 952 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGJoinExpr *n = makeNode(PGJoinExpr);
					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 */
					n->location = (yylsp[(2) - (5)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 748:
#line 964 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* letting join_type reduce to empty doesn't work */
					PGJoinExpr *n = makeNode(PGJoinExpr);
					n->jointype = PG_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 */
					n->location = (yylsp[(2) - (4)]);
					(yyval.jexpr) = n;
				;}
    break;

  case 749:
#line 980 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(2) - (5)].str);
					(yyval.alias)->colnames = (yyvsp[(4) - (5)].list);
				;}
    break;

  case 750:
#line 986 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(2) - (2)].str);
				;}
    break;

  case 751:
#line 991 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(1) - (4)].str);
					(yyval.alias)->colnames = (yyvsp[(3) - (4)].list);
				;}
    break;

  case 752:
#line 997 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.alias) = makeNode(PGAlias);
					(yyval.alias)->aliasname = (yyvsp[(1) - (1)].str);
				;}
    break;

  case 753:
#line 1003 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;}
    break;

  case 754:
#line 1004 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.alias) = NULL; ;}
    break;

  case 755:
#line 1013 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL);
				;}
    break;

  case 756:
#line 1017 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list));
				;}
    break;

  case 757:
#line 1021 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAlias *a = makeNode(PGAlias);
					a->aliasname = (yyvsp[(2) - (5)].str);
					(yyval.list) = list_make2(a, (yyvsp[(4) - (5)].list));
				;}
    break;

  case 758:
#line 1027 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAlias *a = makeNode(PGAlias);
					a->aliasname = (yyvsp[(1) - (4)].str);
					(yyval.list) = list_make2(a, (yyvsp[(3) - (4)].list));
				;}
    break;

  case 759:
#line 1033 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2(NULL, NIL);
				;}
    break;

  case 760:
#line 1038 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_FULL; ;}
    break;

  case 761:
#line 1039 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_LEFT; ;}
    break;

  case 762:
#line 1040 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_RIGHT; ;}
    break;

  case 763:
#line 1041 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.jtype) = PG_JOIN_INNER; ;}
    break;

  case 764:
#line 1045 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 765:
#line 1046 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 766:
#line 1058 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;}
    break;

  case 767:
#line 1059 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 768:
#line 1065 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* inheritance query, implicitly */
					(yyval.range) = (yyvsp[(1) - (1)].range);
					(yyval.range)->inh = true;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 769:
#line 1072 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* inheritance query, explicitly */
					(yyval.range) = (yyvsp[(1) - (2)].range);
					(yyval.range)->inh = true;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 770:
#line 1079 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* no inheritance */
					(yyval.range) = (yyvsp[(2) - (2)].range);
					(yyval.range)->inh = false;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 771:
#line 1086 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* no inheritance, SQL99-style syntax */
					(yyval.range) = (yyvsp[(3) - (4)].range);
					(yyval.range)->inh = false;
					(yyval.range)->alias = NULL;
				;}
    break;

  case 772:
#line 1118 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = makeNode(PGRangeFunction);
					n->lateral = false;
					n->ordinality = (yyvsp[(2) - (2)].boolean);
					n->is_rowsfrom = false;
					n->functions = list_make1(list_make2((yyvsp[(1) - (2)].node), NIL));
					n->sample = NULL;
					/* alias and coldeflist are set by table_ref production */
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 773:
#line 1129 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGRangeFunction *n = makeNode(PGRangeFunction);
					n->lateral = false;
					n->ordinality = (yyvsp[(6) - (6)].boolean);
					n->is_rowsfrom = true;
					n->functions = (yyvsp[(4) - (6)].list);
					n->sample = NULL;
					/* alias and coldeflist are set by table_ref production */
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 774:
#line 1142 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 775:
#line 1146 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 776:
#line 1147 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 777:
#line 1150 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 778:
#line 1151 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 779:
#line 1154 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 780:
#line 1155 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 781:
#line 1160 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 782:
#line 1161 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 783:
#line 1167 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 784:
#line 1171 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 785:
#line 1177 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGColumnDef *n = makeNode(PGColumnDef);
					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 = (PGCollateClause *) (yyvsp[(3) - (3)].node);
					n->collOid = InvalidOid;
					n->constraints = NIL;
					n->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 786:
#line 1198 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCollateClause *n = makeNode(PGCollateClause);
					n->arg = NULL;
					n->collname = (yyvsp[(2) - (2)].list);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 787:
#line 1205 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 788:
#line 1218 "third_party/libpg_query/grammar/statements/select.y"
    {
             (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam)));
            ;}
    break;

  case 789:
#line 1221 "third_party/libpg_query/grammar/statements/select.y"
    {
             (yyval.list) = lappend((yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam)));
            ;}
    break;

  case 792:
#line 1228 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 793:
#line 1229 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = NULL; ;}
    break;

  case 794:
#line 1232 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list);
				;}
    break;

  case 795:
#line 1237 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
					(yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list);
					(yyval.typnam)->setof = true;
				;}
    break;

  case 796:
#line 1244 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (5)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival)));
				;}
    break;

  case 797:
#line 1249 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (6)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival)));
					(yyval.typnam)->setof = true;
				;}
    break;

  case 798:
#line 1255 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
				;}
    break;

  case 799:
#line 1260 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (3)].typnam);
					(yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
					(yyval.typnam)->setof = true;
				;}
    break;

  case 800:
#line 1265 "third_party/libpg_query/grammar/statements/select.y"
    {
               (yyval.typnam) = SystemTypeName("struct");
               (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
               (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
               (yyval.typnam)->location = (yylsp[(1) - (5)]);
               ;}
    break;

  case 801:
#line 1271 "third_party/libpg_query/grammar/statements/select.y"
    {
               (yyval.typnam) = SystemTypeName("map");
               (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list);
               (yyval.typnam)->typmods = (yyvsp[(3) - (5)].list);
               (yyval.typnam)->location = (yylsp[(1) - (5)]);
			;}
    break;

  case 802:
#line 1281 "third_party/libpg_query/grammar/statements/select.y"
    {  (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;}
    break;

  case 803:
#line 1283 "third_party/libpg_query/grammar/statements/select.y"
    {  (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;}
    break;

  case 804:
#line 1285 "third_party/libpg_query/grammar/statements/select.y"
    {  (yyval.list) = NIL; ;}
    break;

  case 805:
#line 1289 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 806:
#line 1290 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 807:
#line 1291 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 808:
#line 1292 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 809:
#line 1293 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 810:
#line 1295 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (2)].typnam);
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
				;}
    break;

  case 811:
#line 1300 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (4)].typnam);
					(yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
											 makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
				;}
    break;

  case 812:
#line 1319 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 813:
#line 1320 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 814:
#line 1321 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 815:
#line 1322 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;}
    break;

  case 816:
#line 1334 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str));
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 817:
#line 1347 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 818:
#line 1348 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 819:
#line 1355 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 820:
#line 1360 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 821:
#line 1365 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int2");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 822:
#line 1370 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("int8");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 823:
#line 1375 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("float4");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 824:
#line 1380 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(2) - (2)].typnam);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 825:
#line 1385 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("float8");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 826:
#line 1390 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 827:
#line 1396 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 828:
#line 1402 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("numeric");
					(yyval.typnam)->typmods = (yyvsp[(2) - (2)].list);
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 829:
#line 1408 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("bool");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 830:
#line 1415 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * Check FLOAT() precision limits assuming IEEE floating
					 * types - thomas 1997-09-18
					 */
					if ((yyvsp[(2) - (3)].ival) < 1)
						ereport(ERROR,
								(errcode(PG_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(PG_ERRCODE_INVALID_PARAMETER_VALUE),
								 errmsg("precision for type float must be less than 54 bits"),
								 parser_errposition((yylsp[(2) - (3)]))));
				;}
    break;

  case 831:
#line 1436 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("float4");
				;}
    break;

  case 832:
#line 1446 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 833:
#line 1450 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 834:
#line 1458 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 835:
#line 1462 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
					(yyval.typnam)->typmods = NIL;
				;}
    break;

  case 836:
#line 1470 "third_party/libpg_query/grammar/statements/select.y"
    {
					const 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 837:
#line 1482 "third_party/libpg_query/grammar/statements/select.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 838:
#line 1503 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 839:
#line 1507 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 840:
#line 1513 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
				;}
    break;

  case 841:
#line 1517 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* Length was not specified so allow to be unrestricted.
					 * This handles problems with fixed-length (bpchar) strings
					 * which in column definitions must default to a length
					 * of one, but should not be constrained if the length
					 * was not specified.
					 */
					(yyval.typnam) = (yyvsp[(1) - (1)].typnam);
					(yyval.typnam)->typmods = NIL;
				;}
    break;

  case 842:
#line 1530 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr));
					(yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)])));
					(yyval.typnam)->location = (yylsp[(1) - (4)]);
				;}
    break;

  case 843:
#line 1538 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr));
					/* char defaults to char(1), varchar to no limit */
					if (strcmp((yyvsp[(1) - (1)].conststr), "bpchar") == 0)
						(yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 844:
#line 1548 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 845:
#line 1550 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 846:
#line 1552 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "varchar"; ;}
    break;

  case 847:
#line 1554 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 848:
#line 1556 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 849:
#line 1558 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;}
    break;

  case 850:
#line 1562 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 851:
#line 1563 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 852:
#line 1571 "third_party/libpg_query/grammar/statements/select.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 853:
#line 1580 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].boolean))
						(yyval.typnam) = SystemTypeName("timestamptz");
					else
						(yyval.typnam) = SystemTypeName("timestamp");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 854:
#line 1588 "third_party/libpg_query/grammar/statements/select.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 855:
#line 1597 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].boolean))
						(yyval.typnam) = SystemTypeName("timetz");
					else
						(yyval.typnam) = SystemTypeName("time");
					(yyval.typnam)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 856:
#line 1608 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.typnam) = SystemTypeName("interval");
					(yyval.typnam)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 857:
#line 1615 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 858:
#line 1616 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 859:
#line 1617 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 876:
#line 1646 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;}
    break;

  case 877:
#line 1648 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;}
    break;

  case 878:
#line 1650 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;}
    break;

  case 879:
#line 1652 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;}
    break;

  case 880:
#line 1654 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;}
    break;

  case 881:
#line 1656 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;}
    break;

  case 882:
#line 1658 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;}
    break;

  case 883:
#line 1660 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;}
    break;

  case 884:
#line 1662 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
												 INTERVAL_MASK(MONTH), (yylsp[(1) - (3)])));
				;}
    break;

  case 885:
#line 1667 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR), (yylsp[(1) - (3)])));
				;}
    break;

  case 886:
#line 1672 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
				;}
    break;

  case 887:
#line 1678 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
												 INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE) |
												 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
				;}
    break;

  case 888:
#line 1685 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)])));
				;}
    break;

  case 889:
#line 1690 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
												 INTERVAL_MASK(MINUTE) |
												 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
				;}
    break;

  case 890:
#line 1696 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) |
												 INTERVAL_MASK(SECOND), (yylsp[(1) - (3)])));
				;}
    break;

  case 891:
#line 1701 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 892:
#line 1732 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 893:
#line 1735 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;}
    break;

  case 894:
#line 1737 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCollateClause *n = makeNode(PGCollateClause);
					n->arg = (yyvsp[(1) - (3)].node);
					n->collname = (yyvsp[(3) - (3)].list);
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 895:
#line 1745 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"),
											   list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)),
											   (yylsp[(2) - (5)]));
				;}
    break;

  case 896:
#line 1760 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 897:
#line 1762 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 898:
#line 1764 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 899:
#line 1766 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 900:
#line 1768 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 901:
#line 1770 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 902:
#line 1772 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 903:
#line 1774 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 904:
#line 1776 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 905:
#line 1778 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 906:
#line 1780 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 907:
#line 1782 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 908:
#line 1784 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 909:
#line 1786 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 910:
#line 1788 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 911:
#line 1791 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 912:
#line 1793 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 913:
#line 1795 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
    break;

  case 914:
#line 1798 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 915:
#line 1800 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 916:
#line 1802 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 917:
#line 1804 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 918:
#line 1806 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~",
												   (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
				;}
    break;

  case 919:
#line 1811 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~",
												   (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
				;}
    break;

  case 920:
#line 1816 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
											   list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
											   (yylsp[(2) - (5)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 921:
#line 1823 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~",
												   (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
				;}
    break;

  case 922:
#line 1828 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"),
											   list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
											   (yylsp[(2) - (6)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 923:
#line 1835 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*",
												   (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
				;}
    break;

  case 924:
#line 1840 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("ilike_escape"),
											   list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)),
											   (yylsp[(2) - (5)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 925:
#line 1847 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*",
												   (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
				;}
    break;

  case 926:
#line 1852 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("not_ilike_escape"),
											   list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
											   (yylsp[(2) - (6)]));
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 927:
#line 1860 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)),
											   (yylsp[(2) - (4)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~",
												   (yyvsp[(1) - (4)].node), (PGNode *) n, (yylsp[(2) - (4)]));
				;}
    break;

  case 928:
#line 1868 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
											   (yylsp[(2) - (6)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "~",
												   (yyvsp[(1) - (6)].node), (PGNode *) n, (yylsp[(2) - (6)]));
				;}
    break;

  case 929:
#line 1876 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)),
											   (yylsp[(2) - (5)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~",
												   (yyvsp[(1) - (5)].node), (PGNode *) n, (yylsp[(2) - (5)]));
				;}
    break;

  case 930:
#line 1884 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"),
											   list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
											   (yylsp[(2) - (7)]));
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_SIMILAR, "!~",
												   (yyvsp[(1) - (7)].node), (PGNode *) n, (yylsp[(2) - (7)]));
				;}
    break;

  case 931:
#line 1902 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					n->nulltesttype = PG_IS_NULL;
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 932:
#line 1910 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
					n->nulltesttype = PG_IS_NULL;
					n->location = (yylsp[(2) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 933:
#line 1918 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					n->nulltesttype = IS_NOT_NULL;
					n->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 934:
#line 1926 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					n->nulltesttype = IS_NOT_NULL;
					n->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 935:
#line 1934 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNullTest *n = makeNode(PGNullTest);
					n->arg = (PGExpr *) (yyvsp[(1) - (2)].node);
					n->nulltesttype = IS_NOT_NULL;
					n->location = (yylsp[(2) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 936:
#line 1941 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)]));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 937:
#line 1945 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGFuncCall *n = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)]));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 938:
#line 1949 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)]));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 939:
#line 1954 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGLambdaFunction *n = makeNode(PGLambdaFunction);
				n->lhs = (yyvsp[(1) - (3)].node);
				n->rhs = (yyvsp[(3) - (3)].node);
				n->location = (yylsp[(2) - (3)]);
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 940:
#line 1962 "third_party/libpg_query/grammar/statements/select.y"
    {
                                        (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "->>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
                        ;}
    break;

  case 941:
#line 1966 "third_party/libpg_query/grammar/statements/select.y"
    {
					if (list_length((yyvsp[(1) - (3)].list)) != 2)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("wrong number of parameters on left side of OVERLAPS expression"),
								 parser_errposition((yylsp[(1) - (3)]))));
					if (list_length((yyvsp[(3) - (3)].list)) != 2)
						ereport(ERROR,
								(errcode(PG_ERRCODE_SYNTAX_ERROR),
								 errmsg("wrong number of parameters on right side of OVERLAPS expression"),
								 parser_errposition((yylsp[(3) - (3)]))));
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlaps"),
											   list_concat((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)),
											   (yylsp[(2) - (3)]));
				;}
    break;

  case 942:
#line 1982 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = PG_IS_TRUE;
					b->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 943:
#line 1990 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_TRUE;
					b->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 944:
#line 1998 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_FALSE;
					b->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 945:
#line 2006 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_FALSE;
					b->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 946:
#line 2014 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (3)].node);
					b->booltesttype = IS_UNKNOWN;
					b->location = (yylsp[(2) - (3)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 947:
#line 2022 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGBooleanTest *b = makeNode(PGBooleanTest);
					b->arg = (PGExpr *) (yyvsp[(1) - (4)].node);
					b->booltesttype = IS_NOT_UNKNOWN;
					b->location = (yylsp[(2) - (4)]);
					(yyval.node) = (PGNode *)b;
				;}
    break;

  case 948:
#line 2030 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
				;}
    break;

  case 949:
#line 2034 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 950:
#line 2038 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
				;}
    break;

  case 951:
#line 2042 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
				;}
    break;

  case 952:
#line 2046 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN,
												   "BETWEEN",
												   (yyvsp[(1) - (6)].node),
												   (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
												   (yylsp[(2) - (6)]));
				;}
    break;

  case 953:
#line 2054 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN,
												   "NOT BETWEEN",
												   (yyvsp[(1) - (7)].node),
												   (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
												   (yylsp[(2) - (7)]));
				;}
    break;

  case 954:
#line 2062 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM,
												   "BETWEEN SYMMETRIC",
												   (yyvsp[(1) - (6)].node),
												   (PGNode *) list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)),
												   (yylsp[(2) - (6)]));
				;}
    break;

  case 955:
#line 2070 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM,
												   "NOT BETWEEN SYMMETRIC",
												   (yyvsp[(1) - (7)].node),
												   (PGNode *) list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)),
												   (yylsp[(2) - (7)]));
				;}
    break;

  case 956:
#line 2078 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* in_expr returns a PGSubLink or a list of a_exprs */
					if (IsA((yyvsp[(3) - (3)].node), PGSubLink))
					{
						/* generate foo = ANY (subquery) */
						PGSubLink *n = (PGSubLink *) (yyvsp[(3) - (3)].node);
						n->subLinkType = PG_ANY_SUBLINK;
						n->subLinkId = 0;
						n->testexpr = (yyvsp[(1) - (3)].node);
						n->operName = NIL;		/* show it's IN not = ANY */
						n->location = (yylsp[(2) - (3)]);
						(yyval.node) = (PGNode *)n;
					}
					else
					{
						/* generate scalar IN expression */
						(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)]));
					}
				;}
    break;

  case 957:
#line 2098 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* in_expr returns a PGSubLink or a list of a_exprs */
					if (IsA((yyvsp[(4) - (4)].node), PGSubLink))
					{
						/* generate NOT (foo = ANY (subquery)) */
						/* Make an = ANY node */
						PGSubLink *n = (PGSubLink *) (yyvsp[(4) - (4)].node);
						n->subLinkType = PG_ANY_SUBLINK;
						n->subLinkId = 0;
						n->testexpr = (yyvsp[(1) - (4)].node);
						n->operName = NIL;		/* show it's IN not = ANY */
						n->location = (yylsp[(2) - (4)]);
						/* Stick a NOT on top; must have same parse location */
						(yyval.node) = makeNotExpr((PGNode *) n, (yylsp[(2) - (4)]));
					}
					else
					{
						/* generate scalar NOT IN expression */
						(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_IN, "<>", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)]));
					}
				;}
    break;

  case 958:
#line 2120 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = (yyvsp[(3) - (4)].subquerytype);
					n->subLinkId = 0;
					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) = (PGNode *)n;
				;}
    break;

  case 959:
#line 2131 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK)
						(yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
					else
						(yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ALL, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 960:
#line 2138 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = PG_ARRAY_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NULL;
					n->subselect = (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(2) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 961:
#line 2149 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * The SQL spec only allows DEFAULT in "contextually typed
					 * expressions", but for us, it's easier to allow it in
					 * any a_expr and then throw error during parse analysis
					 * if it's in an inappropriate context.  This way also
					 * lets us say something smarter than "syntax error".
					 */
					PGSetToDefault *n = makeNode(PGSetToDefault);
					/* parse analysis will fill in the rest */
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 962:
#line 2162 "third_party/libpg_query/grammar/statements/select.y"
    {
				PGList *func_name = list_make1(makeString("construct_array"));
				PGFuncCall *n = makeFuncCall(func_name, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				(yyval.node) = (PGNode *) n;
			;}
    break;

  case 963:
#line 2179 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 964:
#line 2181 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;}
    break;

  case 965:
#line 2183 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 966:
#line 2185 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 967:
#line 2187 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 968:
#line 2189 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 969:
#line 2191 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 970:
#line 2193 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 971:
#line 2195 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 972:
#line 2197 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 973:
#line 2199 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 974:
#line 2201 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 975:
#line 2203 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 976:
#line 2205 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 977:
#line 2207 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 978:
#line 2209 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 979:
#line 2211 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 980:
#line 2213 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;}
    break;

  case 981:
#line 2215 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;}
    break;

  case 982:
#line 2217 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;}
    break;

  case 983:
#line 2219 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)]));
				;}
    break;

  case 984:
#line 2223 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)]));
				;}
    break;

  case 985:
#line 2227 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)]));
				;}
    break;

  case 986:
#line 2231 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)]));
				;}
    break;

  case 987:
#line 2244 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 988:
#line 2245 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 989:
#line 2247 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGPositionalReference *n = makeNode(PGPositionalReference);
					n->position = (yyvsp[(2) - (2)].ival);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 990:
#line 2254 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].list))
					{
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = makeParamRef(0, (yylsp[(1) - (2)]));
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (PGNode *) n;
					}
					else
						(yyval.node) = makeParamRef(0, (yylsp[(1) - (2)]));
				;}
    break;

  case 991:
#line 2266 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGParamRef *p = makeNode(PGParamRef);
					p->number = (yyvsp[(1) - (2)].ival);
					p->location = (yylsp[(1) - (2)]);
					if ((yyvsp[(2) - (2)].list))
					{
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = (PGNode *) p;
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (PGNode *) n;
					}
					else
						(yyval.node) = (PGNode *) p;
				;}
    break;

  case 992:
#line 2281 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(4) - (4)].list))
					{
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = (yyvsp[(2) - (4)].node);
						n->indirection = check_indirection((yyvsp[(4) - (4)].list), yyscanner);
						(yyval.node) = (PGNode *)n;
					}
					else
						(yyval.node) = (yyvsp[(2) - (4)].node);
				;}
    break;

  case 993:
#line 2293 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 994:
#line 2295 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].list)) {
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = (yyvsp[(1) - (2)].node);
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (PGNode *)n;
					}
					else {
						(yyval.node) = (yyvsp[(1) - (2)].node);
					}
				;}
    break;

  case 995:
#line 2307 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = PG_EXPR_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(1) - (1)].node);
					n->location = (yylsp[(1) - (1)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 996:
#line 2318 "third_party/libpg_query/grammar/statements/select.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.
					 */
					PGSubLink *n = makeNode(PGSubLink);
					PGAIndirection *a = makeNode(PGAIndirection);
					n->subLinkType = PG_EXPR_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(1) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					a->arg = (PGNode *)n;
					a->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
					(yyval.node) = (PGNode *)a;
				;}
    break;

  case 997:
#line 2342 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subLinkType = PG_EXISTS_SUBLINK;
					n->subLinkId = 0;
					n->testexpr = NULL;
					n->operName = NIL;
					n->subselect = (yyvsp[(2) - (2)].node);
					n->location = (yylsp[(1) - (2)]);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 998:
#line 2353 "third_party/libpg_query/grammar/statements/select.y"
    {
				  PGGroupingFunc *g = makeNode(PGGroupingFunc);
				  g->args = (yyvsp[(3) - (4)].list);
				  g->location = (yylsp[(1) - (4)]);
				  (yyval.node) = (PGNode *)g;
			  ;}
    break;

  case 999:
#line 2362 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)]));
				;}
    break;

  case 1000:
#line 2366 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(3) - (6)].list), (yylsp[(1) - (6)]));
					n->agg_order = (yyvsp[(4) - (6)].list);
					n->agg_ignore_nulls = (yyvsp[(5) - (6)].boolean);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1001:
#line 2373 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), (yylsp[(1) - (7)]));
					n->func_variadic = true;
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1002:
#line 2381 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (9)].list), lappend((yyvsp[(3) - (9)].list), (yyvsp[(6) - (9)].node)), (yylsp[(1) - (9)]));
					n->func_variadic = true;
					n->agg_order = (yyvsp[(7) - (9)].list);
					n->agg_ignore_nulls = (yyvsp[(8) - (9)].boolean);
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1003:
#line 2389 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)]));
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean);
					/* Ideally we'd mark the PGFuncCall node to indicate
					 * "must be an aggregate", but there's no provision
					 * for that in PGFuncCall at the moment.
					 */
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1004:
#line 2400 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)]));
					n->agg_order = (yyvsp[(5) - (7)].list);
					n->agg_ignore_nulls = (yyvsp[(6) - (7)].boolean);
					n->agg_distinct = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1005:
#line 2408 "third_party/libpg_query/grammar/statements/select.y"
    {
					/*
					 * We consider AGGREGATE(*) to invoke a parameterless
					 * aggregate.  This does the right thing for COUNT(*),
					 * and there are no other aggregates in SQL that accept
					 * '*' as parameter.
					 *
					 * The PGFuncCall node is also marked agg_star = true,
					 * so that later processing can detect what the argument
					 * really was.
					 */
					PGFuncCall *n = makeFuncCall((yyvsp[(1) - (4)].list), NIL, (yylsp[(1) - (4)]));
					n->agg_star = true;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1006:
#line 2436 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (5)].node);
					/*
					 * The order clause for WITHIN GROUP and the one for
					 * plain-aggregate ORDER BY share a field, so we have to
					 * check here that at most one is present.  We also check
					 * for DISTINCT and VARIADIC here to give a better error
					 * location.  Other consistency checks are deferred to
					 * parse analysis.
					 */
					if ((yyvsp[(2) - (5)].list) != NIL)
					{
						if (n->agg_order != NIL)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"),
									 parser_errposition((yylsp[(2) - (5)]))));
						if (n->agg_distinct)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("cannot use DISTINCT with WITHIN GROUP"),
									 parser_errposition((yylsp[(2) - (5)]))));
						if (n->func_variadic)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("cannot use VARIADIC with WITHIN GROUP"),
									 parser_errposition((yylsp[(2) - (5)]))));
						n->agg_order = (yyvsp[(2) - (5)].list);
						n->agg_within_group = true;
					}
					n->agg_filter = (yyvsp[(3) - (5)].node);
					n->export_state = (yyvsp[(4) - (5)].boolean);
					n->over = (yyvsp[(5) - (5)].windef);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1007:
#line 2472 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1008:
#line 2482 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1009:
#line 2483 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1010:
#line 2491 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"),
											   list_make1((yyvsp[(4) - (5)].node)),
											   (yylsp[(1) - (5)]));
				;}
    break;

  case 1011:
#line 2497 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_DATE, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1012:
#line 2501 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1013:
#line 2505 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
				;}
    break;

  case 1014:
#line 2509 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1015:
#line 2513 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
				;}
    break;

  case 1016:
#line 2517 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1017:
#line 2521 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIME_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
				;}
    break;

  case 1018:
#line 2525 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1019:
#line 2529 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_LOCALTIMESTAMP_N, (yyvsp[(3) - (4)].ival), (yylsp[(1) - (4)]));
				;}
    break;

  case 1020:
#line 2533 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_ROLE, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1021:
#line 2537 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_USER, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1022:
#line 2541 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_SESSION_USER, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1023:
#line 2545 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_USER, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1024:
#line 2549 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_CATALOG, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1025:
#line 2553 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeSQLValueFunction(PG_SVFOP_CURRENT_SCHEMA, -1, (yylsp[(1) - (1)]));
				;}
    break;

  case 1026:
#line 2557 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 0, (yylsp[(1) - (6)])); ;}
    break;

  case 1027:
#line 2559 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 1, (yylsp[(1) - (6)])); ;}
    break;

  case 1028:
#line 2561 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1029:
#line 2565 "third_party/libpg_query/grammar/statements/select.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)
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("overlay"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1030:
#line 2574 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* position(A in B) is converted to position(B, A) */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("position"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1031:
#line 2579 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* substring(A from B for C) is converted to
					 * substring(A, B, C) - thomas 2000-11-28
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("substring"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1032:
#line 2586 "third_party/libpg_query/grammar/statements/select.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.
					 *
					 * Convert SystemTypeName() to SystemFuncName() even though
					 * at the moment they result in the same thing.
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName(((PGValue *)llast((yyvsp[(5) - (6)].typnam)->names))->val.str),
												list_make1((yyvsp[(3) - (6)].node)),
												(yylsp[(1) - (6)]));
				;}
    break;

  case 1033:
#line 2601 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* various trim expressions are defined in SQL
					 * - thomas 1997-07-19
					 */
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 1034:
#line 2608 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 1035:
#line 2612 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)]));
				;}
    break;

  case 1036:
#line 2616 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)]));
				;}
    break;

  case 1037:
#line 2620 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)]));
				;}
    break;

  case 1038:
#line 2624 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCoalesceExpr *c = makeNode(PGCoalesceExpr);
					c->args = (yyvsp[(3) - (4)].list);
					c->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *)c;
				;}
    break;

  case 1039:
#line 2637 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(4) - (5)].list); ;}
    break;

  case 1040:
#line 2638 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1041:
#line 2642 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(4) - (5)].node); ;}
    break;

  case 1042:
#line 2643 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(3) - (4)].node); ;}
    break;

  case 1043:
#line 2644 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1044:
#line 2648 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = true; ;}
    break;

  case 1045:
#line 2649 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.boolean) = false; ;}
    break;

  case 1046:
#line 2656 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1047:
#line 2657 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1048:
#line 2661 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;}
    break;

  case 1049:
#line 2663 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;}
    break;

  case 1050:
#line 2668 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(3) - (3)].windef);
					n->name = (yyvsp[(1) - (3)].str);
					(yyval.windef) = n;
				;}
    break;

  case 1051:
#line 2676 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;}
    break;

  case 1052:
#line 2678 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					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 1053:
#line 2691 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.windef) = NULL; ;}
    break;

  case 1054:
#line 2696 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					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 1055:
#line 2721 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1056:
#line 2722 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = NULL; ;}
    break;

  case 1057:
#line 2725 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (3)].list); ;}
    break;

  case 1058:
#line 2726 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1059:
#line 2738 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(2) - (2)].windef);
					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
					(yyval.windef) = n;
				;}
    break;

  case 1060:
#line 2744 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(2) - (2)].windef);
					n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
					(yyval.windef) = n;
				;}
    break;

  case 1061:
#line 2750 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->frameOptions = FRAMEOPTION_DEFAULTS;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1062:
#line 2760 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = (yyvsp[(1) - (1)].windef);
					/* reject invalid cases */
					if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
						ereport(ERROR,
								(errcode(PG_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(PG_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 1063:
#line 2777 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n1 = (yyvsp[(2) - (4)].windef);
					PGWindowDef *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(PG_ERRCODE_WINDOWING_ERROR),
								 errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
								 parser_errposition((yylsp[(2) - (4)]))));
					if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
						ereport(ERROR,
								(errcode(PG_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(PG_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(PG_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 1064:
#line 2822 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1065:
#line 2830 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1066:
#line 2838 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
					n->startOffset = NULL;
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1067:
#line 2846 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->frameOptions = FRAMEOPTION_START_VALUE_PRECEDING;
					n->startOffset = (yyvsp[(1) - (2)].node);
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1068:
#line 2854 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGWindowDef *n = makeNode(PGWindowDef);
					n->frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING;
					n->startOffset = (yyvsp[(1) - (2)].node);
					n->endOffset = NULL;
					(yyval.windef) = n;
				;}
    break;

  case 1069:
#line 2874 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1070:
#line 2875 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1071:
#line 2878 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list);;}
    break;

  case 1072:
#line 2879 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;}
    break;

  case 1073:
#line 2883 "third_party/libpg_query/grammar/statements/select.y"
    {
		PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
		na->name = (yyvsp[(1) - (3)].str);
		na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
		na->argnumber = -1;
		na->location = (yylsp[(1) - (3)]);
		(yyval.node) = (PGNode *) na;
	;}
    break;

  case 1074:
#line 2893 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1075:
#line 2894 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;}
    break;

  case 1076:
#line 2898 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1077:
#line 2899 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1078:
#line 2903 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
    break;

  case 1079:
#line 2904 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.subquerytype) = PG_ANY_SUBLINK; ;}
    break;

  case 1080:
#line 2905 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.subquerytype) = PG_ALL_SUBLINK; ;}
    break;

  case 1081:
#line 2908 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1082:
#line 2909 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;}
    break;

  case 1083:
#line 2912 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "+"; ;}
    break;

  case 1084:
#line 2913 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "-"; ;}
    break;

  case 1085:
#line 2914 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "*"; ;}
    break;

  case 1086:
#line 2915 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "/"; ;}
    break;

  case 1087:
#line 2916 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "%"; ;}
    break;

  case 1088:
#line 2917 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "^"; ;}
    break;

  case 1089:
#line 2918 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "**"; ;}
    break;

  case 1090:
#line 2919 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "<"; ;}
    break;

  case 1091:
#line 2920 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = ">"; ;}
    break;

  case 1092:
#line 2921 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "="; ;}
    break;

  case 1093:
#line 2922 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "<="; ;}
    break;

  case 1094:
#line 2923 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = ">="; ;}
    break;

  case 1095:
#line 2924 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.conststr) = "<>"; ;}
    break;

  case 1096:
#line 2928 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1097:
#line 2930 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1098:
#line 2935 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1099:
#line 2937 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1100:
#line 2942 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1101:
#line 2944 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1102:
#line 2946 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("~~")); ;}
    break;

  case 1103:
#line 2948 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("!~~")); ;}
    break;

  case 1104:
#line 2950 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("~~~")); ;}
    break;

  case 1105:
#line 2952 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("!~~~")); ;}
    break;

  case 1106:
#line 2954 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("~~*")); ;}
    break;

  case 1107:
#line 2956 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString("!~~*")); ;}
    break;

  case 1108:
#line 2970 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1109:
#line 2972 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1110:
#line 2976 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1111:
#line 2980 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1112:
#line 2987 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1113:
#line 2992 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (2)].list);
				;}
    break;

  case 1114:
#line 2999 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1115:
#line 3003 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = NULL;
				;}
    break;

  case 1116:
#line 3012 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make1((yyvsp[(1) - (1)].node));
				;}
    break;

  case 1117:
#line 3016 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1118:
#line 3022 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 1119:
#line 3026 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
					na->name = (yyvsp[(1) - (3)].str);
					na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
					na->argnumber = -1;		/* until determined */
					na->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) na;
				;}
    break;

  case 1120:
#line 3035 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGNamedArgExpr *na = makeNode(PGNamedArgExpr);
					na->name = (yyvsp[(1) - (3)].str);
					na->arg = (PGExpr *) (yyvsp[(3) - (3)].node);
					na->argnumber = -1;		/* until determined */
					na->location = (yylsp[(1) - (3)]);
					(yyval.node) = (PGNode *) na;
				;}
    break;

  case 1121:
#line 3045 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;}
    break;

  case 1122:
#line 3046 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;}
    break;

  case 1123:
#line 3051 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1124:
#line 3054 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1125:
#line 3061 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1126:
#line 3062 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "year"; ;}
    break;

  case 1127:
#line 3063 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "month"; ;}
    break;

  case 1128:
#line 3064 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "day"; ;}
    break;

  case 1129:
#line 3065 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "hour"; ;}
    break;

  case 1130:
#line 3066 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "minute"; ;}
    break;

  case 1131:
#line 3067 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "second"; ;}
    break;

  case 1132:
#line 3068 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "millisecond"; ;}
    break;

  case 1133:
#line 3069 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (char*) "microsecond"; ;}
    break;

  case 1134:
#line 3070 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1135:
#line 3081 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
				;}
    break;

  case 1136:
#line 3085 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1137:
#line 3092 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1138:
#line 3098 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(3) - (3)].node), (yyvsp[(1) - (3)].node)); ;}
    break;

  case 1139:
#line 3099 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1140:
#line 3116 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
				;}
    break;

  case 1141:
#line 3120 "third_party/libpg_query/grammar/statements/select.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 1142:
#line 3125 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
				;}
    break;

  case 1143:
#line 3129 "third_party/libpg_query/grammar/statements/select.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"), 0, -1));
				;}
    break;

  case 1144:
#line 3144 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.list) = (yyvsp[(1) - (1)].list);
				;}
    break;

  case 1145:
#line 3148 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1146:
#line 3152 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1147:
#line 3155 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1148:
#line 3158 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;}
    break;

  case 1149:
#line 3159 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1150:
#line 3160 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1151:
#line 3164 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGSubLink *n = makeNode(PGSubLink);
					n->subselect = (yyvsp[(1) - (1)].node);
					/* other fields will be filled later */
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1152:
#line 3170 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;}
    break;

  case 1153:
#line 3181 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCaseExpr *c = makeNode(PGCaseExpr);
					c->casetype = InvalidOid; /* not analyzed yet */
					c->arg = (PGExpr *) (yyvsp[(2) - (5)].node);
					c->args = (yyvsp[(3) - (5)].list);
					c->defresult = (PGExpr *) (yyvsp[(4) - (5)].node);
					c->location = (yylsp[(1) - (5)]);
					(yyval.node) = (PGNode *)c;
				;}
    break;

  case 1154:
#line 3194 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1155:
#line 3195 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1156:
#line 3200 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGCaseWhen *w = makeNode(PGCaseWhen);
					w->expr = (PGExpr *) (yyvsp[(2) - (4)].node);
					w->result = (PGExpr *) (yyvsp[(4) - (4)].node);
					w->location = (yylsp[(1) - (4)]);
					(yyval.node) = (PGNode *)w;
				;}
    break;

  case 1157:
#line 3210 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(2) - (2)].node); ;}
    break;

  case 1158:
#line 3211 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1159:
#line 3214 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1160:
#line 3215 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1161:
#line 3219 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner);
				;}
    break;

  case 1162:
#line 3223 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner);
				;}
    break;

  case 1163:
#line 3230 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = (PGNode *) makeString((yyvsp[(2) - (2)].str));
				;}
    break;

  case 1164:
#line 3234 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = false;
					ai->lidx = NULL;
					ai->uidx = (yyvsp[(2) - (3)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1165:
#line 3242 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGAIndices *ai = makeNode(PGAIndices);
					ai->is_slice = true;
					ai->lidx = (yyvsp[(2) - (5)].node);
					ai->uidx = (yyvsp[(4) - (5)].node);
					(yyval.node) = (PGNode *) ai;
				;}
    break;

  case 1166:
#line 3252 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
    break;

  case 1167:
#line 3253 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.node) = NULL; ;}
    break;

  case 1168:
#line 3257 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;}
    break;

  case 1169:
#line 3258 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1170:
#line 3262 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1171:
#line 3263 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;}
    break;

  case 1174:
#line 3277 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1175:
#line 3278 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1176:
#line 3282 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1177:
#line 3283 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 1178:
#line 3287 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1179:
#line 3288 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1180:
#line 3292 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(3) - (3)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(1) - (3)].node);
					(yyval.target)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1181:
#line 3308 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = (yyvsp[(2) - (2)].str);
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(1) - (2)].node);
					(yyval.target)->location = (yylsp[(1) - (2)]);
				;}
    break;

  case 1182:
#line 3316 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)(yyvsp[(1) - (1)].node);
					(yyval.target)->location = (yylsp[(1) - (1)]);
				;}
    break;

  case 1183:
#line 3324 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGColumnRef *n = makeNode(PGColumnRef);
					PGAStar *star = makeNode(PGAStar);
					n->fields = list_make1(star);
					n->location = (yylsp[(1) - (3)]);
					star->except_list = (yyvsp[(2) - (3)].list);
					star->replace_list = (yyvsp[(3) - (3)].list);

					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)n;
					(yyval.target)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1184:
#line 3339 "third_party/libpg_query/grammar/statements/select.y"
    {
					PGColumnRef *n = makeNode(PGColumnRef);
					PGAStar *star = makeNode(PGAStar);
					n->fields = list_make1(star);
					n->location = (yylsp[(1) - (5)]);
					star->relation = (yyvsp[(1) - (5)].str);
					star->except_list = (yyvsp[(4) - (5)].list);
					star->replace_list = (yyvsp[(5) - (5)].list);

					(yyval.target) = makeNode(PGResTarget);
					(yyval.target)->name = NULL;
					(yyval.target)->indirection = NIL;
					(yyval.target)->val = (PGNode *)n;
					(yyval.target)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 1185:
#line 3356 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1186:
#line 3357 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
    break;

  case 1187:
#line 3360 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1188:
#line 3361 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1189:
#line 3364 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1190:
#line 3368 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;}
    break;

  case 1191:
#line 3369 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;}
    break;

  case 1192:
#line 3373 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1193:
#line 3374 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1194:
#line 3377 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(3) - (4)].list); ;}
    break;

  case 1195:
#line 3378 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;}
    break;

  case 1196:
#line 3379 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NULL; ;}
    break;

  case 1197:
#line 3389 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;}
    break;

  case 1198:
#line 3390 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;}
    break;

  case 1199:
#line 3402 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.range) = makeRangeVar(NULL, (yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1200:
#line 3406 "third_party/libpg_query/grammar/statements/select.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(PG_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 1201:
#line 3433 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1202:
#line 3435 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1203:
#line 3440 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1204:
#line 3441 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1205:
#line 3444 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1206:
#line 3446 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1207:
#line 3457 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1208:
#line 3460 "third_party/libpg_query/grammar/statements/select.y"
    {
						(yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)),
											 yyscanner);
					;}
    break;

  case 1209:
#line 3471 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)]));
				;}
    break;

  case 1210:
#line 3475 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1211:
#line 3479 "third_party/libpg_query/grammar/statements/select.y"
    {
					if ((yyvsp[(2) - (2)].list))
					{
						PGAIndirection *n = makeNode(PGAIndirection);
						n->arg = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)]));
						n->indirection = check_indirection((yyvsp[(2) - (2)].list), yyscanner);
						(yyval.node) = (PGNode *) n;
					}
					else
						(yyval.node) = makeStringConst((yyvsp[(1) - (2)].str), (yylsp[(1) - (2)]));
				;}
    break;

  case 1212:
#line 3491 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1213:
#line 3495 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* This is a bit constant per SQL99:
					 * Without Feature F511, "BIT data type",
					 * a <general literal> shall not be a
					 * <bit string literal> or a <hex string literal>.
					 */
					(yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)]));
				;}
    break;

  case 1214:
#line 3504 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* generic type 'literal' syntax */
					PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list));
					t->location = (yylsp[(1) - (2)]);
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), t);
				;}
    break;

  case 1215:
#line 3511 "third_party/libpg_query/grammar/statements/select.y"
    {
					/* generic syntax with a type modifier */
					PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (7)].list));
					PGListCell *lc;

					/*
					 * We must use func_arg_list and opt_sort_clause in the
					 * production to avoid reduce/reduce conflicts, but we
					 * don't actually wish to allow PGNamedArgExpr in this
					 * context, ORDER BY, nor IGNORE NULLS.
					 */
					foreach(lc, (yyvsp[(3) - (7)].list))
					{
						PGNamedArgExpr *arg = (PGNamedArgExpr *) lfirst(lc);

						if (IsA(arg, PGNamedArgExpr))
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("type modifier cannot have parameter name"),
									 parser_errposition(arg->location)));
					}
					if ((yyvsp[(4) - (7)].list) != NIL)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("type modifier cannot have ORDER BY"),
									 parser_errposition((yylsp[(4) - (7)]))));
					if ((yyvsp[(5) - (7)].boolean) != false)
							ereport(ERROR,
									(errcode(PG_ERRCODE_SYNTAX_ERROR),
									 errmsg("type modifier cannot have IGNORE NULLS"),
									 parser_errposition((yylsp[(5) - (7)]))));


					t->typmods = (yyvsp[(3) - (7)].list);
					t->location = (yylsp[(1) - (7)]);
					(yyval.node) = makeStringConstCast((yyvsp[(7) - (7)].str), (yylsp[(7) - (7)]), t);
				;}
    break;

  case 1216:
#line 3549 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam));
				;}
    break;

  case 1217:
#line 3553 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntervalNode((yyvsp[(3) - (5)].node), (yylsp[(3) - (5)]), (yyvsp[(5) - (5)].list));
				;}
    break;

  case 1218:
#line 3557 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list));
				;}
    break;

  case 1219:
#line 3561 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list));
				;}
    break;

  case 1220:
#line 3565 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)]));
				;}
    break;

  case 1221:
#line 3569 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)]));
				;}
    break;

  case 1222:
#line 3573 "third_party/libpg_query/grammar/statements/select.y"
    {
					(yyval.node) = makeNullAConst((yylsp[(1) - (1)]));
				;}
    break;

  case 1223:
#line 3578 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
    break;

  case 1224:
#line 3579 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1225:
#line 3595 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1226:
#line 3596 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1227:
#line 3597 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1228:
#line 3600 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1229:
#line 3601 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1230:
#line 3607 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1231:
#line 3608 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1232:
#line 3609 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1233:
#line 3612 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1234:
#line 3613 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1235:
#line 3614 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1236:
#line 3617 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1237:
#line 3618 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1238:
#line 3619 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1239:
#line 3622 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;}
    break;

  case 1240:
#line 3623 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;}
    break;

  case 1241:
#line 3627 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;}
    break;

  case 1242:
#line 3629 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;}
    break;

  case 1243:
#line 3633 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = (yyvsp[(2) - (3)].list); ;}
    break;

  case 1244:
#line 3634 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1246:
#line 3645 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1247:
#line 3646 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1248:
#line 3647 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1249:
#line 3648 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;}
    break;

  case 1250:
#line 3651 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1251:
#line 3652 "third_party/libpg_query/grammar/statements/select.y"
    { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
    break;

  case 1252:
#line 7 "third_party/libpg_query/grammar/statements/call.y"
    {
					PGCallStmt *n = makeNode(PGCallStmt);
					n->func = (yyvsp[(2) - (2)].node);
					(yyval.node) = (PGNode *) n;
				;}
    break;

  case 1253:
#line 3 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_ROLLBACK;
					n->options = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1254:
#line 10 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_BEGIN;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1255:
#line 16 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_START;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1256:
#line 22 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_COMMIT;
					n->options = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1257:
#line 29 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_COMMIT;
					n->options = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1258:
#line 36 "third_party/libpg_query/grammar/statements/transaction.y"
    {
					PGTransactionStmt *n = makeNode(PGTransactionStmt);
					n->kind = PG_TRANS_STMT_ROLLBACK;
					n->options = NIL;
					(yyval.node) = (PGNode *)n;
				;}
    break;

  case 1259:
#line 45 "third_party/libpg_query/grammar/statements/transaction.y"
    {;}
    break;

  case 1260:
#line 46 "third_party/libpg_query/grammar/statements/transaction.y"
    {;}
    break;

  case 1261:
#line 47 "third_party/libpg_query/grammar/statements/transaction.y"
    {;}
    break;

  case 1262:
#line 10 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyvsp[(5) - (7)].istmt)->relation = (yyvsp[(4) - (7)].range);
					(yyvsp[(5) - (7)].istmt)->onConflictClause = (yyvsp[(6) - (7)].onconflict);
					(yyvsp[(5) - (7)].istmt)->returningList = (yyvsp[(7) - (7)].list);
					(yyvsp[(5) - (7)].istmt)->withClause = (yyvsp[(1) - (7)].with);
					(yyval.node) = (PGNode *) (yyvsp[(5) - (7)].istmt);
				;}
    break;

  case 1263:
#line 22 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->selectStmt = (yyvsp[(1) - (1)].node);
				;}
    break;

  case 1264:
#line 28 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->override = (yyvsp[(2) - (4)].override);
					(yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
				;}
    break;

  case 1265:
#line 35 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = (yyvsp[(2) - (4)].list);
					(yyval.istmt)->selectStmt = (yyvsp[(4) - (4)].node);
				;}
    break;

  case 1266:
#line 41 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = (yyvsp[(2) - (7)].list);
					(yyval.istmt)->override = (yyvsp[(5) - (7)].override);
					(yyval.istmt)->selectStmt = (yyvsp[(7) - (7)].node);
				;}
    break;

  case 1267:
#line 48 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.istmt) = makeNode(PGInsertStmt);
					(yyval.istmt)->cols = NIL;
					(yyval.istmt)->selectStmt = NULL;
				;}
    break;

  case 1268:
#line 58 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.range) = (yyvsp[(1) - (1)].range);
				;}
    break;

  case 1269:
#line 62 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyvsp[(1) - (3)].range)->alias = makeAlias((yyvsp[(3) - (3)].str), NIL);
					(yyval.range) = (yyvsp[(1) - (3)].range);
				;}
    break;

  case 1270:
#line 71 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.infer) = makeNode(PGInferClause);
					(yyval.infer)->indexElems = (yyvsp[(2) - (4)].list);
					(yyval.infer)->whereClause = (yyvsp[(4) - (4)].node);
					(yyval.infer)->conname = NULL;
					(yyval.infer)->location = (yylsp[(1) - (4)]);
				;}
    break;

  case 1271:
#line 80 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.infer) = makeNode(PGInferClause);
					(yyval.infer)->indexElems = NIL;
					(yyval.infer)->whereClause = NULL;
					(yyval.infer)->conname = (yyvsp[(3) - (3)].str);
					(yyval.infer)->location = (yylsp[(1) - (3)]);
				;}
    break;

  case 1272:
#line 88 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.infer) = NULL;
				;}
    break;

  case 1273:
#line 95 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.with) = (yyvsp[(1) - (1)].with); ;}
    break;

  case 1274:
#line 96 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.with) = NULL; ;}
    break;

  case 1275:
#line 102 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(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 1276:
#line 114 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyvsp[(1) - (3)].target)->val = (PGNode *) (yyvsp[(3) - (3)].node);
					(yyval.list) = list_make1((yyvsp[(1) - (3)].target));
				;}
    break;

  case 1277:
#line 119 "third_party/libpg_query/grammar/statements/insert.y"
    {
					int ncolumns = list_length((yyvsp[(2) - (5)].list));
					int i = 1;
					PGListCell *col_cell;

					/* Create a PGMultiAssignRef source for each target */
					foreach(col_cell, (yyvsp[(2) - (5)].list))
					{
						PGResTarget *res_col = (PGResTarget *) lfirst(col_cell);
						PGMultiAssignRef *r = makeNode(PGMultiAssignRef);

						r->source = (PGNode *) (yyvsp[(5) - (5)].node);
						r->colno = i;
						r->ncolumns = ncolumns;
						res_col->val = (PGNode *) r;
						i++;
					}

					(yyval.list) = (yyvsp[(2) - (5)].list);
				;}
    break;

  case 1278:
#line 144 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflict) = makeNode(PGOnConflictClause);
					(yyval.onconflict)->action = PG_ONCONFLICT_UPDATE;
					(yyval.onconflict)->infer = (yyvsp[(3) - (8)].infer);
					(yyval.onconflict)->targetList = (yyvsp[(7) - (8)].list);
					(yyval.onconflict)->whereClause = (yyvsp[(8) - (8)].node);
					(yyval.onconflict)->location = (yylsp[(1) - (8)]);
				;}
    break;

  case 1279:
#line 154 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflict) = makeNode(PGOnConflictClause);
					(yyval.onconflict)->action = PG_ONCONFLICT_NOTHING;
					(yyval.onconflict)->infer = (yyvsp[(3) - (5)].infer);
					(yyval.onconflict)->targetList = NIL;
					(yyval.onconflict)->whereClause = NULL;
					(yyval.onconflict)->location = (yylsp[(1) - (5)]);
				;}
    break;

  case 1280:
#line 163 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.onconflict) = NULL;
				;}
    break;

  case 1281:
#line 170 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.ielem) = makeNode(PGIndexElem);
					(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)].sortorder);
					(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
				;}
    break;

  case 1282:
#line 181 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.ielem) = makeNode(PGIndexElem);
					(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)].sortorder);
					(yyval.ielem)->nulls_ordering = (yyvsp[(5) - (5)].nullorder);
				;}
    break;

  case 1283:
#line 192 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.ielem) = makeNode(PGIndexElem);
					(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)].sortorder);
					(yyval.ielem)->nulls_ordering = (yyvsp[(7) - (7)].nullorder);
				;}
    break;

  case 1284:
#line 206 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1285:
#line 207 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1286:
#line 213 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.override) = PG_OVERRIDING_USER_VALUE; ;}
    break;

  case 1287:
#line 214 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.override) = OVERRIDING_SYSTEM_VALUE; ;}
    break;

  case 1288:
#line 219 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1289:
#line 220 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].target)); ;}
    break;

  case 1290:
#line 226 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(2) - (2)].list); ;}
    break;

  case 1291:
#line 227 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1292:
#line 231 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1293:
#line 232 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = NIL; ;}
    break;

  case 1294:
#line 238 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;}
    break;

  case 1295:
#line 240 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;}
    break;

  case 1296:
#line 245 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1297:
#line 246 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_concat((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].list)); ;}
    break;

  case 1298:
#line 250 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (1)].list); ;}
    break;

  case 1299:
#line 251 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = (yyvsp[(1) - (2)].list); ;}
    break;

  case 1300:
#line 254 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = list_make1((yyvsp[(1) - (1)].ielem)); ;}
    break;

  case 1301:
#line 255 "third_party/libpg_query/grammar/statements/insert.y"
    { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].ielem)); ;}
    break;

  case 1302:
#line 261 "third_party/libpg_query/grammar/statements/insert.y"
    {
					(yyval.target) = makeNode(PGResTarget);
					(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 1303:
#line 8 "third_party/libpg_query/grammar/statements/create_type.y"
    {
					PGCreateTypeStmt *n = makeNode(PGCreateTypeStmt);
					n->typeName = (yyvsp[(3) - (5)].list);
					auto name = std::string(reinterpret_cast<PGValue *>((yyvsp[(5) - (5)].typnam)->names->tail->data.ptr_value)->val.str);
					if (name == "enum") {
						n->kind = PG_NEWTYPE_ENUM;
						n->vals = (yyvsp[(5) - (5)].typnam)->typmods;
					} else {
						n->kind = PG_NEWTYPE_ALIAS;
						n->ofType = (yyvsp[(5) - (5)].typnam);
					}
					(yyval.node) = (PGNode *)n;
				;}
    break;


/* Line 1267 of yacc.c.  */
#line 25894 "third_party/libpg_query/grammar/grammar_out.cpp"
      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[0] = yylloc;

  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse look-ahead 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 look-ahead 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[0] = 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[0] = *yylsp;
      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp, yylsp, yyscanner);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  *++yyvsp = yylval;

  yyerror_range[1] = yylloc;
  /* Using YYLLOC is tempting, but would change the location of
     the look-ahead.  YYLOC is available though.  */
  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 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;

#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEOF && 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 33 "third_party/libpg_query/grammar/statements/create_type.y"


#line 1 "third_party/libpg_query/grammar/grammar.cpp"
/*
 * 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 PGRawStmt *
makeRawStmt(PGNode *stmt, int stmt_location)
{
	PGRawStmt    *rs = makeNode(PGRawStmt);

	rs->stmt = stmt;
	rs->stmt_location = stmt_location;
	rs->stmt_len = 0;			/* might get changed later */
	return rs;
}

/* Adjust a PGRawStmt to reflect that it doesn't run to the end of the string */
static void
updateRawStmtEnd(PGRawStmt *rs, int end_location)
{
	/*
	 * If we already set the length, don't change it.  This is for situations
	 * like "select foo ;; select bar" where the same statement will be last
	 * in the string for more than one semicolon.
	 */
	if (rs->stmt_len > 0)
		return;

	/* OK, update length of PGRawStmt */
	rs->stmt_len = end_location - rs->stmt_location;
}

static PGNode *
makeColumnRef(char *colname, PGList *indirection,
			  int location, core_yyscan_t yyscanner)
{
	/*
	 * Generate a PGColumnRef node, with an PGAIndirection 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 PGColumnRef node.
	 */
	PGColumnRef  *c = makeNode(PGColumnRef);
	int		nfields = 0;
	PGListCell *l;

	c->location = location;
	foreach(l, indirection)
	{
		if (IsA(lfirst(l), PGAIndices))
		{
			PGAIndirection *i = makeNode(PGAIndirection);

			if (nfields == 0)
			{
				/* easy case - all indirection goes to PGAIndirection */
				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 = (PGNode *) c;
			return (PGNode *) i;
		}
		else if (IsA(lfirst(l), PGAStar))
		{
			/* We only allow '*' at the end of a PGColumnRef */
			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 (PGNode *) c;
}

static PGNode *
makeTypeCast(PGNode *arg, PGTypeName *tpname, int trycast, int location)
{
	PGTypeCast *n = makeNode(PGTypeCast);
	n->arg = arg;
	n->typeName = tpname;
	n->tryCast = trycast;
	n->location = location;
	return (PGNode *) n;
}

static PGNode *
makeStringConst(char *str, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGString;
	n->val.val.str = str;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeStringConstCast(char *str, int location, PGTypeName *tpname)
{
	PGNode *s = makeStringConst(str, location);

	return makeTypeCast(s, tpname, 0, -1);
}

static PGNode *
makeIntervalNode(char *str, int location, PGList *typmods) {
	PGIntervalConstant *n = makeNode(PGIntervalConstant);

	n->val_type = T_PGString;
	n->sval = str;
	n->location = location;
	n->typmods = typmods;

	return (PGNode *)n;

}

static PGNode *
makeIntervalNode(int val, int location, PGList *typmods) {
	PGIntervalConstant *n = makeNode(PGIntervalConstant);

	n->val_type = T_PGInteger;
	n->ival = val;
	n->location = location;
	n->typmods = typmods;

	return (PGNode *)n;
}

static PGNode *
makeIntervalNode(PGNode *arg, int location, PGList *typmods) {
	PGIntervalConstant *n = makeNode(PGIntervalConstant);

	n->val_type = T_PGAExpr;
	n->eval = arg;
	n->location = location;
	n->typmods = typmods;

	return (PGNode *)n;
}

static PGNode *
makeSampleSize(PGValue *sample_size, bool is_percentage) {
	PGSampleSize *n = makeNode(PGSampleSize);

	n->sample_size = *sample_size;
	n->is_percentage = is_percentage;

	return (PGNode *)n;
}

static PGNode *
makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location) {
	PGSampleOptions *n = makeNode(PGSampleOptions);

	n->sample_size = sample_size;
	n->method = method;
	if (seed) {
		n->has_seed = true;
		n->seed = *seed;
	}
	n->location = location;

	return (PGNode *)n;
}

/* makeLimitPercent()
 * Make limit percent node
 */
static PGNode *
makeLimitPercent(PGNode *limit_percent) {
	PGLimitPercent *n = makeNode(PGLimitPercent);

	n->limit_percent = limit_percent;

	return (PGNode *)n;
}

static PGNode *
makeIntConst(int val, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGInteger;
	n->val.val.ival = val;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeFloatConst(char *str, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGFloat;
	n->val.val.str = str;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeBitStringConst(char *str, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGBitString;
	n->val.val.str = str;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeNullAConst(int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGNull;
	n->location = location;

	return (PGNode *)n;
}

static PGNode *
makeAConst(PGValue *v, int location)
{
	PGNode *n;

	switch (v->type)
	{
		case T_PGFloat:
			n = makeFloatConst(v->val.str, location);
			break;

		case T_PGInteger:
			n = makeIntConst(v->val.ival, location);
			break;

		case T_PGString:
		default:
			n = makeStringConst(v->val.str, location);
			break;
	}

	return n;
}

/* makeBoolAConst()
 * Create an PGAConst string node and put it inside a boolean cast.
 */
static PGNode *
makeBoolAConst(bool state, int location)
{
	PGAConst *n = makeNode(PGAConst);

	n->val.type = T_PGString;
	n->val.val.str = (state ? (char*) "t" : (char*) "f");
	n->location = location;

	return makeTypeCast((PGNode *)n, SystemTypeName("bool"), 0, -1);
}

/* 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(PGList *names, core_yyscan_t yyscanner)
{
	PGListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), PGString))
			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 PGList *
check_func_name(PGList *names, core_yyscan_t yyscanner)
{
	PGListCell   *i;

	foreach(i, names)
	{
		if (!IsA(lfirst(i), PGString))
			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 PGList *
check_indirection(PGList *indirection, core_yyscan_t yyscanner)
{
	PGListCell *l;

	foreach(l, indirection)
	{
		if (IsA(lfirst(l), PGAStar))
		{
			if (lnext(l) != NULL)
				parser_yyerror("improper use of \"*\"");
		}
	}
	return indirection;
}

/* makeParamRef
 * Creates a new PGParamRef node
 */
static PGNode* makeParamRef(int number, int location)
{
	PGParamRef *p = makeNode(PGParamRef);
	p->number = number;
	p->location = location;
	return (PGNode *) p;
}


/* insertSelectOptions()
 * Insert ORDER BY, etc into an already-constructed SelectStmt.
 *
 * This routine is just to avoid duplicating code in PGSelectStmt productions.
 */
static void
insertSelectOptions(PGSelectStmt *stmt,
					PGList *sortClause, PGList *lockingClause,
					PGNode *limitOffset, PGNode *limitCount,
					PGWithClause *withClause,
					core_yyscan_t yyscanner)
{
	Assert(IsA(stmt, PGSelectStmt));

	/*
	 * Tests here are to reject constructs like
	 *	(SELECT foo ORDER BY bar) ORDER BY baz
	 */
	if (sortClause)
	{
		if (stmt->sortClause)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple ORDER BY clauses not allowed"),
					 parser_errposition(exprLocation((PGNode *) 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(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple OFFSET clauses not allowed"),
					 parser_errposition(exprLocation(limitOffset))));
		stmt->limitOffset = limitOffset;
	}
	if (limitCount)
	{
		if (stmt->limitCount)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple LIMIT clauses not allowed"),
					 parser_errposition(exprLocation(limitCount))));
		stmt->limitCount = limitCount;
	}
	if (withClause)
	{
		if (stmt->withClause)
			ereport(ERROR,
					(errcode(PG_ERRCODE_SYNTAX_ERROR),
					 errmsg("multiple WITH clauses not allowed"),
					 parser_errposition(exprLocation((PGNode *) withClause))));
		stmt->withClause = withClause;
	}
}

static PGNode *
makeSetOp(PGSetOperation op, bool all, PGNode *larg, PGNode *rarg)
{
	PGSelectStmt *n = makeNode(PGSelectStmt);

	n->op = op;
	n->all = all;
	n->larg = (PGSelectStmt *) larg;
	n->rarg = (PGSelectStmt *) rarg;
	return (PGNode *) n;
}

/* SystemFuncName()
 * Build a properly-qualified reference to a built-in function.
 */
PGList *
SystemFuncName(const char *name)
{
	return list_make2(makeString(DEFAULT_SCHEMA), 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.
 */
PGTypeName *
SystemTypeName(const char *name)
{
	return makeTypeNameFromNameList(list_make2(makeString(DEFAULT_SCHEMA),
											   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 PGNode *
doNegate(PGNode *n, int location)
{
	if (IsA(n, PGAConst))
	{
		PGAConst *con = (PGAConst *)n;

		/* report the constant's location as that of the '-' sign */
		con->location = location;

		if (con->val.type == T_PGInteger)
		{
			con->val.val.ival = -con->val.val.ival;
			return n;
		}
		if (con->val.type == T_PGFloat)
		{
			doNegateFloat(&con->val);
			return n;
		}
	}

	return (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", NULL, n, location);
}

static void
doNegateFloat(PGValue *v)
{
	char   *oldval = v->val.str;

	Assert(IsA(v, PGFloat));
	if (*oldval == '+')
		oldval++;
	if (*oldval == '-')
		v->val.str = oldval+1;	/* just strip the '-' */
	else
		v->val.str = psprintf("-%s", oldval);
}

static PGNode *
makeAndExpr(PGNode *lexpr, PGNode *rexpr, int location)
{
	PGNode	   *lexp = lexpr;

	/* Look through AEXPR_PAREN nodes so they don't affect flattening */
	while (IsA(lexp, PGAExpr) &&
		   ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
		lexp = ((PGAExpr *) lexp)->lexpr;
	/* Flatten "a AND b AND c ..." to a single PGBoolExpr on sight */
	if (IsA(lexp, PGBoolExpr))
	{
		PGBoolExpr *blexpr = (PGBoolExpr *) lexp;

		if (blexpr->boolop == PG_AND_EXPR)
		{
			blexpr->args = lappend(blexpr->args, rexpr);
			return (PGNode *) blexpr;
		}
	}
	return (PGNode *) makeBoolExpr(PG_AND_EXPR, list_make2(lexpr, rexpr), location);
}

static PGNode *
makeOrExpr(PGNode *lexpr, PGNode *rexpr, int location)
{
	PGNode	   *lexp = lexpr;

	/* Look through AEXPR_PAREN nodes so they don't affect flattening */
	while (IsA(lexp, PGAExpr) &&
		   ((PGAExpr *) lexp)->kind == AEXPR_PAREN)
		lexp = ((PGAExpr *) lexp)->lexpr;
	/* Flatten "a OR b OR c ..." to a single PGBoolExpr on sight */
	if (IsA(lexp, PGBoolExpr))
	{
		PGBoolExpr *blexpr = (PGBoolExpr *) lexp;

		if (blexpr->boolop == PG_OR_EXPR)
		{
			blexpr->args = lappend(blexpr->args, rexpr);
			return (PGNode *) blexpr;
		}
	}
	return (PGNode *) makeBoolExpr(PG_OR_EXPR, list_make2(lexpr, rexpr), location);
}

static PGNode *
makeNotExpr(PGNode *expr, int location)
{
	return (PGNode *) makeBoolExpr(PG_NOT_EXPR, list_make1(expr), location);
}

static PGNode *
makeSQLValueFunction(PGSQLValueFunctionOp op, int32_t typmod, int location)
{
	PGSQLValueFunction *svf = makeNode(PGSQLValueFunction);

	svf->op = op;
	/* svf->type will be filled during parse analysis */
	svf->typmod = typmod;
	svf->location = location;
	return (PGNode *) svf;
}

/* Separate PGConstraint nodes from COLLATE clauses in a */
static void
SplitColQualList(PGList *qualList,
				 PGList **constraintList, PGCollateClause **collClause,
				 core_yyscan_t yyscanner)
{
	PGListCell   *cell;
	PGListCell   *prev;
	PGListCell   *next;

	*collClause = NULL;
	prev = NULL;
	for (cell = list_head(qualList); cell; cell = next)
	{
		PGNode   *n = (PGNode *) lfirst(cell);

		next = lnext(cell);
		if (IsA(n, PGConstraint))
		{
			/* keep it in list */
			prev = cell;
			continue;
		}
		if (IsA(n, PGCollateClause))
		{
			PGCollateClause *c = (PGCollateClause *) n;

			if (*collClause)
				ereport(ERROR,
						(errcode(PG_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(PG_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(PG_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(PG_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(PG_ERRCODE_FEATURE_NOT_SUPPORTED),
					 /* translator: %s is CHECK, UNIQUE, or similar */
					 errmsg("%s constraints cannot be marked NO INHERIT",
							constrType),
					 parser_errposition(location)));
	}
}

/*----------
 * Recursive view transformation
 *
 * Convert
 *
 *     CREATE RECURSIVE VIEW relname (aliases) AS query
 *
 * to
 *
 *     CREATE VIEW relname (aliases) AS
 *         WITH RECURSIVE relname (aliases) AS (query)
 *         SELECT aliases FROM relname
 *
 * Actually, just the WITH ... part, which is then inserted into the original
 * view as the query.
 * ----------
 */
static PGNode *
makeRecursiveViewSelect(char *relname, PGList *aliases, PGNode *query)
{
	PGSelectStmt *s = makeNode(PGSelectStmt);
	PGWithClause *w = makeNode(PGWithClause);
	PGCommonTableExpr *cte = makeNode(PGCommonTableExpr);
	PGList	   *tl = NIL;
	PGListCell   *lc;

	/* create common table expression */
	cte->ctename = relname;
	cte->aliascolnames = aliases;
	cte->ctequery = query;
	cte->location = -1;

	/* create WITH clause and attach CTE */
	w->recursive = true;
	w->ctes = list_make1(cte);
	w->location = -1;

	/* create target list for the new SELECT from the alias list of the
	 * recursive view specification */
	foreach (lc, aliases)
	{
		PGResTarget *rt = makeNode(PGResTarget);

		rt->name = NULL;
		rt->indirection = NIL;
		rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0);
		rt->location = -1;

		tl = lappend(tl, rt);
	}

	/* create new SELECT combining WITH clause, target list, and fake FROM
	 * clause */
	s->withClause = w;
	s->targetList = tl;
	s->fromClause = list_make1(makeRangeVar(NULL, relname, -1));

	return (PGNode *) s;
}

/* parser_init()
 * Initialize to parse one query string
 */
void
parser_init(base_yy_extra_type *yyext)
{
	yyext->parsetree = NIL;		/* in case grammar forgets to set it */
}

#undef yyparse
#undef yylex
#undef yyerror
#undef yylval
#undef yychar
#undef yydebug
#undef yynerrs
#undef yylloc

} // namespace duckdb_libpgquery

