package sqlparser

import (
	__yyfmt__ "fmt"
	__yyunsafe__ "unsafe"
)

func setParseTree(yylex yyLexer, stmt Statement) {
	yylex.(*Tokenizer).ParseTree = stmt
}

func setAllowComments(yylex yyLexer, allow bool) {
	yylex.(*Tokenizer).AllowComments = allow
}

func setDDL(yylex yyLexer, node Statement) {
	yylex.(*Tokenizer).partialDDL = node
}

func incNesting(yylex yyLexer) bool {
	yylex.(*Tokenizer).nesting++
	if yylex.(*Tokenizer).nesting == 200 {
		return true
	}
	return false
}

func decNesting(yylex yyLexer) {
	yylex.(*Tokenizer).nesting--
}

func skipToEnd(yylex yyLexer) {
	yylex.(*Tokenizer).SkipToEnd = true
}

func bindVariable(yylex yyLexer, bvar string) {
	yylex.(*Tokenizer).BindVars[bvar] = struct{}{}
}

const LEX_ERROR = 57346
const UNION = 57347
const SELECT = 57348
const STREAM = 57349
const VSTREAM = 57350
const INSERT = 57351
const UPDATE = 57352
const DELETE = 57353
const FROM = 57354
const WHERE = 57355
const GROUP = 57356
const HAVING = 57357
const ORDER = 57358
const BY = 57359
const LIMIT = 57360
const OFFSET = 57361
const FOR = 57362
const ALL = 57363
const DISTINCT = 57364
const AS = 57365
const EXISTS = 57366
const ASC = 57367
const DESC = 57368
const INTO = 57369
const DUPLICATE = 57370
const DEFAULT = 57371
const SET = 57372
const LOCK = 57373
const UNLOCK = 57374
const KEYS = 57375
const DO = 57376
const CALL = 57377
const DISTINCTROW = 57378
const PARSER = 57379
const GENERATED = 57380
const ALWAYS = 57381
const OUTFILE = 57382
const S3 = 57383
const DATA = 57384
const LOAD = 57385
const LINES = 57386
const TERMINATED = 57387
const ESCAPED = 57388
const ENCLOSED = 57389
const DUMPFILE = 57390
const CSV = 57391
const HEADER = 57392
const MANIFEST = 57393
const OVERWRITE = 57394
const STARTING = 57395
const OPTIONALLY = 57396
const VALUES = 57397
const LAST_INSERT_ID = 57398
const NEXT = 57399
const VALUE = 57400
const SHARE = 57401
const MODE = 57402
const SQL_NO_CACHE = 57403
const SQL_CACHE = 57404
const SQL_CALC_FOUND_ROWS = 57405
const JOIN = 57406
const STRAIGHT_JOIN = 57407
const LEFT = 57408
const RIGHT = 57409
const INNER = 57410
const OUTER = 57411
const CROSS = 57412
const NATURAL = 57413
const USE = 57414
const FORCE = 57415
const ON = 57416
const USING = 57417
const INPLACE = 57418
const COPY = 57419
const ALGORITHM = 57420
const NONE = 57421
const SHARED = 57422
const EXCLUSIVE = 57423
const SUBQUERY_AS_EXPR = 57424
const ID = 57425
const AT_ID = 57426
const AT_AT_ID = 57427
const HEX = 57428
const STRING = 57429
const NCHAR_STRING = 57430
const INTEGRAL = 57431
const FLOAT = 57432
const DECIMAL = 57433
const HEXNUM = 57434
const VALUE_ARG = 57435
const LIST_ARG = 57436
const COMMENT = 57437
const COMMENT_KEYWORD = 57438
const BIT_LITERAL = 57439
const COMPRESSION = 57440
const JSON_PRETTY = 57441
const JSON_STORAGE_SIZE = 57442
const JSON_STORAGE_FREE = 57443
const EXTRACT = 57444
const NULL = 57445
const TRUE = 57446
const FALSE = 57447
const OFF = 57448
const DISCARD = 57449
const IMPORT = 57450
const ENABLE = 57451
const DISABLE = 57452
const TABLESPACE = 57453
const VIRTUAL = 57454
const STORED = 57455
const BOTH = 57456
const LEADING = 57457
const TRAILING = 57458
const EMPTY_FROM_CLAUSE = 57459
const LOWER_THAN_CHARSET = 57460
const CHARSET = 57461
const UNIQUE = 57462
const KEY = 57463
const EXPRESSION_PREC_SETTER = 57464
const OR = 57465
const XOR = 57466
const AND = 57467
const NOT = 57468
const BETWEEN = 57469
const CASE = 57470
const WHEN = 57471
const THEN = 57472
const ELSE = 57473
const END = 57474
const LE = 57475
const GE = 57476
const NE = 57477
const NULL_SAFE_EQUAL = 57478
const IS = 57479
const LIKE = 57480
const REGEXP = 57481
const IN = 57482
const SHIFT_LEFT = 57483
const SHIFT_RIGHT = 57484
const DIV = 57485
const MOD = 57486
const UNARY = 57487
const COLLATE = 57488
const BINARY = 57489
const UNDERSCORE_ARMSCII8 = 57490
const UNDERSCORE_ASCII = 57491
const UNDERSCORE_BIG5 = 57492
const UNDERSCORE_BINARY = 57493
const UNDERSCORE_CP1250 = 57494
const UNDERSCORE_CP1251 = 57495
const UNDERSCORE_CP1256 = 57496
const UNDERSCORE_CP1257 = 57497
const UNDERSCORE_CP850 = 57498
const UNDERSCORE_CP852 = 57499
const UNDERSCORE_CP866 = 57500
const UNDERSCORE_CP932 = 57501
const UNDERSCORE_DEC8 = 57502
const UNDERSCORE_EUCJPMS = 57503
const UNDERSCORE_EUCKR = 57504
const UNDERSCORE_GB18030 = 57505
const UNDERSCORE_GB2312 = 57506
const UNDERSCORE_GBK = 57507
const UNDERSCORE_GEOSTD8 = 57508
const UNDERSCORE_GREEK = 57509
const UNDERSCORE_HEBREW = 57510
const UNDERSCORE_HP8 = 57511
const UNDERSCORE_KEYBCS2 = 57512
const UNDERSCORE_KOI8R = 57513
const UNDERSCORE_KOI8U = 57514
const UNDERSCORE_LATIN1 = 57515
const UNDERSCORE_LATIN2 = 57516
const UNDERSCORE_LATIN5 = 57517
const UNDERSCORE_LATIN7 = 57518
const UNDERSCORE_MACCE = 57519
const UNDERSCORE_MACROMAN = 57520
const UNDERSCORE_SJIS = 57521
const UNDERSCORE_SWE7 = 57522
const UNDERSCORE_TIS620 = 57523
const UNDERSCORE_UCS2 = 57524
const UNDERSCORE_UJIS = 57525
const UNDERSCORE_UTF16 = 57526
const UNDERSCORE_UTF16LE = 57527
const UNDERSCORE_UTF32 = 57528
const UNDERSCORE_UTF8 = 57529
const UNDERSCORE_UTF8MB4 = 57530
const INTERVAL = 57531
const JSON_EXTRACT_OP = 57532
const JSON_UNQUOTE_EXTRACT_OP = 57533
const CREATE = 57534
const ALTER = 57535
const DROP = 57536
const RENAME = 57537
const ANALYZE = 57538
const ADD = 57539
const FLUSH = 57540
const CHANGE = 57541
const MODIFY = 57542
const DEALLOCATE = 57543
const REVERT = 57544
const SCHEMA = 57545
const TABLE = 57546
const INDEX = 57547
const VIEW = 57548
const TO = 57549
const IGNORE = 57550
const IF = 57551
const PRIMARY = 57552
const COLUMN = 57553
const SPATIAL = 57554
const FULLTEXT = 57555
const KEY_BLOCK_SIZE = 57556
const CHECK = 57557
const INDEXES = 57558
const ACTION = 57559
const CASCADE = 57560
const CONSTRAINT = 57561
const FOREIGN = 57562
const NO = 57563
const REFERENCES = 57564
const RESTRICT = 57565
const SHOW = 57566
const DESCRIBE = 57567
const EXPLAIN = 57568
const DATE = 57569
const ESCAPE = 57570
const REPAIR = 57571
const OPTIMIZE = 57572
const TRUNCATE = 57573
const COALESCE = 57574
const EXCHANGE = 57575
const REBUILD = 57576
const PARTITIONING = 57577
const REMOVE = 57578
const PREPARE = 57579
const EXECUTE = 57580
const MAXVALUE = 57581
const PARTITION = 57582
const REORGANIZE = 57583
const LESS = 57584
const THAN = 57585
const PROCEDURE = 57586
const TRIGGER = 57587
const VINDEX = 57588
const VINDEXES = 57589
const DIRECTORY = 57590
const NAME = 57591
const UPGRADE = 57592
const STATUS = 57593
const VARIABLES = 57594
const WARNINGS = 57595
const CASCADED = 57596
const DEFINER = 57597
const OPTION = 57598
const SQL = 57599
const UNDEFINED = 57600
const SEQUENCE = 57601
const MERGE = 57602
const TEMPORARY = 57603
const TEMPTABLE = 57604
const INVOKER = 57605
const SECURITY = 57606
const FIRST = 57607
const AFTER = 57608
const LAST = 57609
const VITESS_MIGRATION = 57610
const CANCEL = 57611
const RETRY = 57612
const COMPLETE = 57613
const CLEANUP = 57614
const BEGIN = 57615
const START = 57616
const TRANSACTION = 57617
const COMMIT = 57618
const ROLLBACK = 57619
const SAVEPOINT = 57620
const RELEASE = 57621
const WORK = 57622
const BIT = 57623
const TINYINT = 57624
const SMALLINT = 57625
const MEDIUMINT = 57626
const INT = 57627
const INTEGER = 57628
const BIGINT = 57629
const INTNUM = 57630
const REAL = 57631
const DOUBLE = 57632
const FLOAT_TYPE = 57633
const DECIMAL_TYPE = 57634
const NUMERIC = 57635
const TIME = 57636
const TIMESTAMP = 57637
const DATETIME = 57638
const YEAR = 57639
const CHAR = 57640
const VARCHAR = 57641
const BOOL = 57642
const CHARACTER = 57643
const VARBINARY = 57644
const NCHAR = 57645
const TEXT = 57646
const TINYTEXT = 57647
const MEDIUMTEXT = 57648
const LONGTEXT = 57649
const BLOB = 57650
const TINYBLOB = 57651
const MEDIUMBLOB = 57652
const LONGBLOB = 57653
const JSON = 57654
const ENUM = 57655
const GEOMETRY = 57656
const POINT = 57657
const LINESTRING = 57658
const POLYGON = 57659
const GEOMETRYCOLLECTION = 57660
const MULTIPOINT = 57661
const MULTILINESTRING = 57662
const MULTIPOLYGON = 57663
const ASCII = 57664
const UNICODE = 57665
const NULLX = 57666
const AUTO_INCREMENT = 57667
const APPROXNUM = 57668
const SIGNED = 57669
const UNSIGNED = 57670
const ZEROFILL = 57671
const CODE = 57672
const COLLATION = 57673
const COLUMNS = 57674
const DATABASES = 57675
const ENGINES = 57676
const EVENT = 57677
const EXTENDED = 57678
const FIELDS = 57679
const FULL = 57680
const FUNCTION = 57681
const GTID_EXECUTED = 57682
const KEYSPACES = 57683
const OPEN = 57684
const PLUGINS = 57685
const PRIVILEGES = 57686
const PROCESSLIST = 57687
const SCHEMAS = 57688
const TABLES = 57689
const TRIGGERS = 57690
const USER = 57691
const VGTID_EXECUTED = 57692
const VITESS_KEYSPACES = 57693
const VITESS_METADATA = 57694
const VITESS_MIGRATIONS = 57695
const VITESS_REPLICATION_STATUS = 57696
const VITESS_SHARDS = 57697
const VITESS_TABLETS = 57698
const VSCHEMA = 57699
const NAMES = 57700
const GLOBAL = 57701
const SESSION = 57702
const ISOLATION = 57703
const LEVEL = 57704
const READ = 57705
const WRITE = 57706
const ONLY = 57707
const REPEATABLE = 57708
const COMMITTED = 57709
const UNCOMMITTED = 57710
const SERIALIZABLE = 57711
const CURRENT_TIMESTAMP = 57712
const DATABASE = 57713
const CURRENT_DATE = 57714
const CURRENT_TIME = 57715
const LOCALTIME = 57716
const LOCALTIMESTAMP = 57717
const CURRENT_USER = 57718
const UTC_DATE = 57719
const UTC_TIME = 57720
const UTC_TIMESTAMP = 57721
const DAY = 57722
const DAY_HOUR = 57723
const DAY_MICROSECOND = 57724
const DAY_MINUTE = 57725
const DAY_SECOND = 57726
const HOUR = 57727
const HOUR_MICROSECOND = 57728
const HOUR_MINUTE = 57729
const HOUR_SECOND = 57730
const MICROSECOND = 57731
const MINUTE = 57732
const MINUTE_MICROSECOND = 57733
const MINUTE_SECOND = 57734
const MONTH = 57735
const QUARTER = 57736
const SECOND = 57737
const SECOND_MICROSECOND = 57738
const YEAR_MONTH = 57739
const WEEK = 57740
const REPLACE = 57741
const CONVERT = 57742
const CAST = 57743
const SUBSTR = 57744
const SUBSTRING = 57745
const GROUP_CONCAT = 57746
const SEPARATOR = 57747
const TIMESTAMPADD = 57748
const TIMESTAMPDIFF = 57749
const WEIGHT_STRING = 57750
const LTRIM = 57751
const RTRIM = 57752
const TRIM = 57753
const MATCH = 57754
const AGAINST = 57755
const BOOLEAN = 57756
const LANGUAGE = 57757
const WITH = 57758
const QUERY = 57759
const EXPANSION = 57760
const WITHOUT = 57761
const VALIDATION = 57762
const UNUSED = 57763
const ARRAY = 57764
const CUME_DIST = 57765
const DESCRIPTION = 57766
const DENSE_RANK = 57767
const EMPTY = 57768
const EXCEPT = 57769
const FIRST_VALUE = 57770
const GROUPING = 57771
const GROUPS = 57772
const JSON_TABLE = 57773
const LAG = 57774
const LAST_VALUE = 57775
const LATERAL = 57776
const LEAD = 57777
const MEMBER = 57778
const NTH_VALUE = 57779
const NTILE = 57780
const OF = 57781
const OVER = 57782
const PERCENT_RANK = 57783
const RANK = 57784
const RECURSIVE = 57785
const ROW_NUMBER = 57786
const SYSTEM = 57787
const WINDOW = 57788
const ACTIVE = 57789
const ADMIN = 57790
const BUCKETS = 57791
const CLONE = 57792
const COMPONENT = 57793
const DEFINITION = 57794
const ENFORCED = 57795
const EXCLUDE = 57796
const FOLLOWING = 57797
const GEOMCOLLECTION = 57798
const GET_MASTER_PUBLIC_KEY = 57799
const HISTOGRAM = 57800
const HISTORY = 57801
const INACTIVE = 57802
const INVISIBLE = 57803
const LOCKED = 57804
const MASTER_COMPRESSION_ALGORITHMS = 57805
const MASTER_PUBLIC_KEY_PATH = 57806
const MASTER_TLS_CIPHERSUITES = 57807
const MASTER_ZSTD_COMPRESSION_LEVEL = 57808
const NESTED = 57809
const NETWORK_NAMESPACE = 57810
const NOWAIT = 57811
const NULLS = 57812
const OJ = 57813
const OLD = 57814
const OPTIONAL = 57815
const ORDINALITY = 57816
const ORGANIZATION = 57817
const OTHERS = 57818
const PATH = 57819
const PERSIST = 57820
const PERSIST_ONLY = 57821
const PRECEDING = 57822
const PRIVILEGE_CHECKS_USER = 57823
const PROCESS = 57824
const RANDOM = 57825
const REFERENCE = 57826
const REQUIRE_ROW_FORMAT = 57827
const RESOURCE = 57828
const RESPECT = 57829
const RESTART = 57830
const RETAIN = 57831
const REUSE = 57832
const ROLE = 57833
const SECONDARY = 57834
const SECONDARY_ENGINE = 57835
const SECONDARY_LOAD = 57836
const SECONDARY_UNLOAD = 57837
const SKIP = 57838
const SRID = 57839
const THREAD_PRIORITY = 57840
const TIES = 57841
const UNBOUNDED = 57842
const VCPU = 57843
const VISIBLE = 57844
const FORMAT = 57845
const TREE = 57846
const VITESS = 57847
const TRADITIONAL = 57848
const LOCAL = 57849
const LOW_PRIORITY = 57850
const NO_WRITE_TO_BINLOG = 57851
const LOGS = 57852
const ERROR = 57853
const GENERAL = 57854
const HOSTS = 57855
const OPTIMIZER_COSTS = 57856
const USER_RESOURCES = 57857
const SLOW = 57858
const CHANNEL = 57859
const RELAY = 57860
const EXPORT = 57861
const AVG_ROW_LENGTH = 57862
const CONNECTION = 57863
const CHECKSUM = 57864
const DELAY_KEY_WRITE = 57865
const ENCRYPTION = 57866
const ENGINE = 57867
const INSERT_METHOD = 57868
const MAX_ROWS = 57869
const MIN_ROWS = 57870
const PACK_KEYS = 57871
const PASSWORD = 57872
const FIXED = 57873
const DYNAMIC = 57874
const COMPRESSED = 57875
const REDUNDANT = 57876
const COMPACT = 57877
const ROW_FORMAT = 57878
const STATS_AUTO_RECALC = 57879
const STATS_PERSISTENT = 57880
const STATS_SAMPLE_PAGES = 57881
const STORAGE = 57882
const MEMORY = 57883
const DISK = 57884
const PARTITIONS = 57885
const LINEAR = 57886
const RANGE = 57887
const LIST = 57888
const SUBPARTITION = 57889
const SUBPARTITIONS = 57890
const HASH = 57891

var yyToknames = [...]string{
	"$end",
	"error",
	"$unk",
	"LEX_ERROR",
	"UNION",
	"SELECT",
	"STREAM",
	"VSTREAM",
	"INSERT",
	"UPDATE",
	"DELETE",
	"FROM",
	"WHERE",
	"GROUP",
	"HAVING",
	"ORDER",
	"BY",
	"LIMIT",
	"OFFSET",
	"FOR",
	"ALL",
	"DISTINCT",
	"AS",
	"EXISTS",
	"ASC",
	"DESC",
	"INTO",
	"DUPLICATE",
	"DEFAULT",
	"SET",
	"LOCK",
	"UNLOCK",
	"KEYS",
	"DO",
	"CALL",
	"DISTINCTROW",
	"PARSER",
	"GENERATED",
	"ALWAYS",
	"OUTFILE",
	"S3",
	"DATA",
	"LOAD",
	"LINES",
	"TERMINATED",
	"ESCAPED",
	"ENCLOSED",
	"DUMPFILE",
	"CSV",
	"HEADER",
	"MANIFEST",
	"OVERWRITE",
	"STARTING",
	"OPTIONALLY",
	"VALUES",
	"LAST_INSERT_ID",
	"NEXT",
	"VALUE",
	"SHARE",
	"MODE",
	"SQL_NO_CACHE",
	"SQL_CACHE",
	"SQL_CALC_FOUND_ROWS",
	"JOIN",
	"STRAIGHT_JOIN",
	"LEFT",
	"RIGHT",
	"INNER",
	"OUTER",
	"CROSS",
	"NATURAL",
	"USE",
	"FORCE",
	"ON",
	"USING",
	"INPLACE",
	"COPY",
	"ALGORITHM",
	"NONE",
	"SHARED",
	"EXCLUSIVE",
	"SUBQUERY_AS_EXPR",
	"'('",
	"','",
	"')'",
	"ID",
	"AT_ID",
	"AT_AT_ID",
	"HEX",
	"STRING",
	"NCHAR_STRING",
	"INTEGRAL",
	"FLOAT",
	"DECIMAL",
	"HEXNUM",
	"VALUE_ARG",
	"LIST_ARG",
	"COMMENT",
	"COMMENT_KEYWORD",
	"BIT_LITERAL",
	"COMPRESSION",
	"JSON_PRETTY",
	"JSON_STORAGE_SIZE",
	"JSON_STORAGE_FREE",
	"EXTRACT",
	"NULL",
	"TRUE",
	"FALSE",
	"OFF",
	"DISCARD",
	"IMPORT",
	"ENABLE",
	"DISABLE",
	"TABLESPACE",
	"VIRTUAL",
	"STORED",
	"BOTH",
	"LEADING",
	"TRAILING",
	"EMPTY_FROM_CLAUSE",
	"LOWER_THAN_CHARSET",
	"CHARSET",
	"UNIQUE",
	"KEY",
	"EXPRESSION_PREC_SETTER",
	"OR",
	"'|'",
	"XOR",
	"AND",
	"NOT",
	"'!'",
	"BETWEEN",
	"CASE",
	"WHEN",
	"THEN",
	"ELSE",
	"END",
	"'='",
	"'<'",
	"'>'",
	"LE",
	"GE",
	"NE",
	"NULL_SAFE_EQUAL",
	"IS",
	"LIKE",
	"REGEXP",
	"IN",
	"'&'",
	"SHIFT_LEFT",
	"SHIFT_RIGHT",
	"'+'",
	"'-'",
	"'*'",
	"'/'",
	"DIV",
	"'%'",
	"MOD",
	"'^'",
	"'~'",
	"UNARY",
	"COLLATE",
	"BINARY",
	"UNDERSCORE_ARMSCII8",
	"UNDERSCORE_ASCII",
	"UNDERSCORE_BIG5",
	"UNDERSCORE_BINARY",
	"UNDERSCORE_CP1250",
	"UNDERSCORE_CP1251",
	"UNDERSCORE_CP1256",
	"UNDERSCORE_CP1257",
	"UNDERSCORE_CP850",
	"UNDERSCORE_CP852",
	"UNDERSCORE_CP866",
	"UNDERSCORE_CP932",
	"UNDERSCORE_DEC8",
	"UNDERSCORE_EUCJPMS",
	"UNDERSCORE_EUCKR",
	"UNDERSCORE_GB18030",
	"UNDERSCORE_GB2312",
	"UNDERSCORE_GBK",
	"UNDERSCORE_GEOSTD8",
	"UNDERSCORE_GREEK",
	"UNDERSCORE_HEBREW",
	"UNDERSCORE_HP8",
	"UNDERSCORE_KEYBCS2",
	"UNDERSCORE_KOI8R",
	"UNDERSCORE_KOI8U",
	"UNDERSCORE_LATIN1",
	"UNDERSCORE_LATIN2",
	"UNDERSCORE_LATIN5",
	"UNDERSCORE_LATIN7",
	"UNDERSCORE_MACCE",
	"UNDERSCORE_MACROMAN",
	"UNDERSCORE_SJIS",
	"UNDERSCORE_SWE7",
	"UNDERSCORE_TIS620",
	"UNDERSCORE_UCS2",
	"UNDERSCORE_UJIS",
	"UNDERSCORE_UTF16",
	"UNDERSCORE_UTF16LE",
	"UNDERSCORE_UTF32",
	"UNDERSCORE_UTF8",
	"UNDERSCORE_UTF8MB4",
	"INTERVAL",
	"'.'",
	"JSON_EXTRACT_OP",
	"JSON_UNQUOTE_EXTRACT_OP",
	"CREATE",
	"ALTER",
	"DROP",
	"RENAME",
	"ANALYZE",
	"ADD",
	"FLUSH",
	"CHANGE",
	"MODIFY",
	"DEALLOCATE",
	"REVERT",
	"SCHEMA",
	"TABLE",
	"INDEX",
	"VIEW",
	"TO",
	"IGNORE",
	"IF",
	"PRIMARY",
	"COLUMN",
	"SPATIAL",
	"FULLTEXT",
	"KEY_BLOCK_SIZE",
	"CHECK",
	"INDEXES",
	"ACTION",
	"CASCADE",
	"CONSTRAINT",
	"FOREIGN",
	"NO",
	"REFERENCES",
	"RESTRICT",
	"SHOW",
	"DESCRIBE",
	"EXPLAIN",
	"DATE",
	"ESCAPE",
	"REPAIR",
	"OPTIMIZE",
	"TRUNCATE",
	"COALESCE",
	"EXCHANGE",
	"REBUILD",
	"PARTITIONING",
	"REMOVE",
	"PREPARE",
	"EXECUTE",
	"MAXVALUE",
	"PARTITION",
	"REORGANIZE",
	"LESS",
	"THAN",
	"PROCEDURE",
	"TRIGGER",
	"VINDEX",
	"VINDEXES",
	"DIRECTORY",
	"NAME",
	"UPGRADE",
	"STATUS",
	"VARIABLES",
	"WARNINGS",
	"CASCADED",
	"DEFINER",
	"OPTION",
	"SQL",
	"UNDEFINED",
	"SEQUENCE",
	"MERGE",
	"TEMPORARY",
	"TEMPTABLE",
	"INVOKER",
	"SECURITY",
	"FIRST",
	"AFTER",
	"LAST",
	"VITESS_MIGRATION",
	"CANCEL",
	"RETRY",
	"COMPLETE",
	"CLEANUP",
	"BEGIN",
	"START",
	"TRANSACTION",
	"COMMIT",
	"ROLLBACK",
	"SAVEPOINT",
	"RELEASE",
	"WORK",
	"BIT",
	"TINYINT",
	"SMALLINT",
	"MEDIUMINT",
	"INT",
	"INTEGER",
	"BIGINT",
	"INTNUM",
	"REAL",
	"DOUBLE",
	"FLOAT_TYPE",
	"DECIMAL_TYPE",
	"NUMERIC",
	"TIME",
	"TIMESTAMP",
	"DATETIME",
	"YEAR",
	"CHAR",
	"VARCHAR",
	"BOOL",
	"CHARACTER",
	"VARBINARY",
	"NCHAR",
	"TEXT",
	"TINYTEXT",
	"MEDIUMTEXT",
	"LONGTEXT",
	"BLOB",
	"TINYBLOB",
	"MEDIUMBLOB",
	"LONGBLOB",
	"JSON",
	"ENUM",
	"GEOMETRY",
	"POINT",
	"LINESTRING",
	"POLYGON",
	"GEOMETRYCOLLECTION",
	"MULTIPOINT",
	"MULTILINESTRING",
	"MULTIPOLYGON",
	"ASCII",
	"UNICODE",
	"NULLX",
	"AUTO_INCREMENT",
	"APPROXNUM",
	"SIGNED",
	"UNSIGNED",
	"ZEROFILL",
	"CODE",
	"COLLATION",
	"COLUMNS",
	"DATABASES",
	"ENGINES",
	"EVENT",
	"EXTENDED",
	"FIELDS",
	"FULL",
	"FUNCTION",
	"GTID_EXECUTED",
	"KEYSPACES",
	"OPEN",
	"PLUGINS",
	"PRIVILEGES",
	"PROCESSLIST",
	"SCHEMAS",
	"TABLES",
	"TRIGGERS",
	"USER",
	"VGTID_EXECUTED",
	"VITESS_KEYSPACES",
	"VITESS_METADATA",
	"VITESS_MIGRATIONS",
	"VITESS_REPLICATION_STATUS",
	"VITESS_SHARDS",
	"VITESS_TABLETS",
	"VSCHEMA",
	"NAMES",
	"GLOBAL",
	"SESSION",
	"ISOLATION",
	"LEVEL",
	"READ",
	"WRITE",
	"ONLY",
	"REPEATABLE",
	"COMMITTED",
	"UNCOMMITTED",
	"SERIALIZABLE",
	"CURRENT_TIMESTAMP",
	"DATABASE",
	"CURRENT_DATE",
	"CURRENT_TIME",
	"LOCALTIME",
	"LOCALTIMESTAMP",
	"CURRENT_USER",
	"UTC_DATE",
	"UTC_TIME",
	"UTC_TIMESTAMP",
	"DAY",
	"DAY_HOUR",
	"DAY_MICROSECOND",
	"DAY_MINUTE",
	"DAY_SECOND",
	"HOUR",
	"HOUR_MICROSECOND",
	"HOUR_MINUTE",
	"HOUR_SECOND",
	"MICROSECOND",
	"MINUTE",
	"MINUTE_MICROSECOND",
	"MINUTE_SECOND",
	"MONTH",
	"QUARTER",
	"SECOND",
	"SECOND_MICROSECOND",
	"YEAR_MONTH",
	"WEEK",
	"REPLACE",
	"CONVERT",
	"CAST",
	"SUBSTR",
	"SUBSTRING",
	"GROUP_CONCAT",
	"SEPARATOR",
	"TIMESTAMPADD",
	"TIMESTAMPDIFF",
	"WEIGHT_STRING",
	"LTRIM",
	"RTRIM",
	"TRIM",
	"MATCH",
	"AGAINST",
	"BOOLEAN",
	"LANGUAGE",
	"WITH",
	"QUERY",
	"EXPANSION",
	"WITHOUT",
	"VALIDATION",
	"UNUSED",
	"ARRAY",
	"CUME_DIST",
	"DESCRIPTION",
	"DENSE_RANK",
	"EMPTY",
	"EXCEPT",
	"FIRST_VALUE",
	"GROUPING",
	"GROUPS",
	"JSON_TABLE",
	"LAG",
	"LAST_VALUE",
	"LATERAL",
	"LEAD",
	"MEMBER",
	"NTH_VALUE",
	"NTILE",
	"OF",
	"OVER",
	"PERCENT_RANK",
	"RANK",
	"RECURSIVE",
	"ROW_NUMBER",
	"SYSTEM",
	"WINDOW",
	"ACTIVE",
	"ADMIN",
	"BUCKETS",
	"CLONE",
	"COMPONENT",
	"DEFINITION",
	"ENFORCED",
	"EXCLUDE",
	"FOLLOWING",
	"GEOMCOLLECTION",
	"GET_MASTER_PUBLIC_KEY",
	"HISTOGRAM",
	"HISTORY",
	"INACTIVE",
	"INVISIBLE",
	"LOCKED",
	"MASTER_COMPRESSION_ALGORITHMS",
	"MASTER_PUBLIC_KEY_PATH",
	"MASTER_TLS_CIPHERSUITES",
	"MASTER_ZSTD_COMPRESSION_LEVEL",
	"NESTED",
	"NETWORK_NAMESPACE",
	"NOWAIT",
	"NULLS",
	"OJ",
	"OLD",
	"OPTIONAL",
	"ORDINALITY",
	"ORGANIZATION",
	"OTHERS",
	"PATH",
	"PERSIST",
	"PERSIST_ONLY",
	"PRECEDING",
	"PRIVILEGE_CHECKS_USER",
	"PROCESS",
	"RANDOM",
	"REFERENCE",
	"REQUIRE_ROW_FORMAT",
	"RESOURCE",
	"RESPECT",
	"RESTART",
	"RETAIN",
	"REUSE",
	"ROLE",
	"SECONDARY",
	"SECONDARY_ENGINE",
	"SECONDARY_LOAD",
	"SECONDARY_UNLOAD",
	"SKIP",
	"SRID",
	"THREAD_PRIORITY",
	"TIES",
	"UNBOUNDED",
	"VCPU",
	"VISIBLE",
	"FORMAT",
	"TREE",
	"VITESS",
	"TRADITIONAL",
	"LOCAL",
	"LOW_PRIORITY",
	"NO_WRITE_TO_BINLOG",
	"LOGS",
	"ERROR",
	"GENERAL",
	"HOSTS",
	"OPTIMIZER_COSTS",
	"USER_RESOURCES",
	"SLOW",
	"CHANNEL",
	"RELAY",
	"EXPORT",
	"AVG_ROW_LENGTH",
	"CONNECTION",
	"CHECKSUM",
	"DELAY_KEY_WRITE",
	"ENCRYPTION",
	"ENGINE",
	"INSERT_METHOD",
	"MAX_ROWS",
	"MIN_ROWS",
	"PACK_KEYS",
	"PASSWORD",
	"FIXED",
	"DYNAMIC",
	"COMPRESSED",
	"REDUNDANT",
	"COMPACT",
	"ROW_FORMAT",
	"STATS_AUTO_RECALC",
	"STATS_PERSISTENT",
	"STATS_SAMPLE_PAGES",
	"STORAGE",
	"MEMORY",
	"DISK",
	"PARTITIONS",
	"LINEAR",
	"RANGE",
	"LIST",
	"SUBPARTITION",
	"SUBPARTITIONS",
	"HASH",
	"';'",
}

var yyStatenames = [...]string{}

const yyEofCode = 1
const yyErrCode = 2
const yyInitialStackSize = 16

var yyExca = [...]int{
	-1, 0,
	10, 47,
	11, 47,
	-2, 37,
	-1, 1,
	1, -1,
	-2, 0,
	-1, 47,
	1, 140,
	567, 140,
	-2, 146,
	-1, 48,
	122, 146,
	162, 146,
	318, 146,
	-2, 447,
	-1, 55,
	33, 645,
	222, 645,
	233, 645,
	268, 659,
	269, 659,
	-2, 647,
	-1, 60,
	224, 670,
	-2, 668,
	-1, 114,
	221, 1153,
	-2, 119,
	-1, 116,
	1, 141,
	567, 141,
	-2, 146,
	-1, 126,
	123, 350,
	227, 350,
	-2, 441,
	-1, 145,
	122, 146,
	162, 146,
	318, 146,
	-2, 456,
	-1, 623,
	206, 1174,
	-2, 1170,
	-1, 624,
	206, 1175,
	-2, 1171,
	-1, 698,
	57, 738,
	-2, 753,
	-1, 735,
	138, 1545,
	-2, 112,
	-1, 736,
	138, 1416,
	-2, 113,
	-1, 742,
	138, 1474,
	-2, 1147,
	-1, 888,
	138, 1347,
	-2, 1144,
	-1, 926,
	232, 41,
	237, 41,
	-2, 361,
	-1, 1003,
	1, 495,
	567, 495,
	-2, 146,
	-1, 1211,
	57, 739,
	-2, 758,
	-1, 1212,
	57, 740,
	-2, 759,
	-1, 1264,
	122, 146,
	162, 146,
	318, 146,
	-2, 391,
	-1, 1341,
	123, 350,
	227, 350,
	-2, 441,
	-1, 1350,
	232, 42,
	237, 42,
	-2, 362,
	-1, 1612,
	206, 1179,
	-2, 1173,
	-1, 1696,
	122, 146,
	162, 146,
	318, 146,
	-2, 392,
	-1, 1703,
	23, 165,
	-2, 167,
	-1, 1904,
	84, 39,
	-2, 795,
	-1, 1956,
	75, 94,
	84, 94,
	-2, 815,
	-1, 2128,
	47, 1115,
	-2, 1109,
	-1, 2299,
	84, 39,
	-2, 796,
	-1, 2337,
	5, 53,
	16, 53,
	18, 53,
	85, 53,
	-2, 787,
	-1, 2580,
	90, 535,
	91, 535,
	164, 535,
	165, 535,
	166, 535,
	167, 535,
	168, 535,
	169, 535,
	170, 535,
	171, 535,
	172, 535,
	173, 535,
	174, 535,
	175, 535,
	176, 535,
	177, 535,
	178, 535,
	179, 535,
	180, 535,
	181, 535,
	182, 535,
	183, 535,
	184, 535,
	185, 535,
	186, 535,
	187, 535,
	188, 535,
	189, 535,
	190, 535,
	191, 535,
	192, 535,
	193, 535,
	194, 535,
	195, 535,
	196, 535,
	197, 535,
	198, 535,
	199, 535,
	200, 535,
	201, 535,
	202, 535,
	203, 535,
	204, 535,
	-2, 1476,
}

const yyPrivate = 57344

const yyLast = 37607

var yyAct = [...]int{
	623, 632, 625, 2645, 2644, 2627, 2524, 2621, 1693, 2578,
	2582, 2398, 2251, 1647, 1267, 1067, 3, 2222, 1626, 2486,
	2563, 2142, 2181, 2188, 2139, 572, 96, 1190, 691, 2424,
	2234, 2190, 1756, 1226, 2500, 1892, 2233, 713, 618, 617,
	37, 568, 2308, 626, 2143, 2302, 615, 2429, 2140, 616,
	1666, 182, 594, 2236, 182, 2328, 532, 182, 1950, 2137,
	2129, 1919, 548, 1726, 182, 566, 2294, 2058, 564, 1015,
	1988, 2017, 182, 1731, 1989, 1746, 1990, 891, 740, 36,
	154, 1939, 1682, 714, 1927, 1671, 1213, 182, 1911, 565,
	956, 1670, 1894, 38, 1546, 560, 2074, 1553, 1044, 140,
	1606, 1745, 1651, 693, 1765, 1798, 1505, 1733, 921, 548,
	1982, 1958, 548, 182, 548, 1235, 91, 695, 916, 699,
	577, 95, 1256, 1673, 737, 1193, 1348, 1628, 1565, 1149,
	1523, 1456, 1452, 1355, 898, 1086, 1364, 716, 1743, 927,
	1609, 1438, 1658, 895, 922, 899, 924, 923, 1239, 1461,
	1255, 705, 727, 157, 98, 117, 1340, 123, 1316, 700,
	1722, 118, 1253, 934, 1060, 1321, 1652, 999, 703, 555,
	1156, 97, 2533, 701, 1065, 124, 76, 1152, 2010, 85,
	89, 2628, 2219, 1758, 1619, 1758, 1759, 1760, 2037, 2036,
	1796, 2008, 2066, 1087, 2067, 2654, 702, 77, 8, 7,
	721, 119, 726, 6, 2648, 125, 2655, 707, 1512, 184,
	185, 186, 1623, 1624, 1511, 1510, 1509, 1508, 1507, 1494,
	892, 90, 505, 558, 1424, 559, 961, 2596, 1499, 1890,
	2125, 2641, 1921, 958, 907, 556, 902, 2605, 2618, 2363,
	2482, 2481, 2205, 960, 959, 2640, 972, 973, 692, 976,
	977, 978, 979, 78, 694, 982, 983, 984, 985, 986,
	987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
	119, 734, 913, 1738, 937, 741, 708, 715, 912, 102,
	2655, 2647, 2391, 2573, 1118, 2392, 914, 2631, 78, 78,
	2544, 938, 80, 962, 963, 964, 1087, 1736, 1097, 1836,
	2616, 178, 2442, 2399, 2564, 2491, 1119, 1120, 1121, 1122,
	1123, 1124, 1125, 1127, 1126, 1128, 1129, 969, 1784, 2572,
	104, 105, 2543, 108, 974, 120, 114, 2073, 2284, 179,
	87, 1330, 500, 1891, 119, 78, 2045, 2177, 162, 1967,
	2044, 911, 1966, 1008, 1009, 1968, 2065, 1594, 1051, 1257,
	1053, 1258, 687, 688, 689, 690, 1833, 1625, 698, 1930,
	1687, 906, 1063, 1834, 908, 87, 87, 2178, 2179, 1688,
	1689, 1034, 1039, 1040, 685, 1011, 684, 1002, 1022, 535,
	1972, 2525, 178, 1023, 1931, 1022, 729, 730, 1050, 1052,
	1023, 1093, 1979, 2013, 1085, 159, 1035, 160, 1021, 909,
	1020, 1097, 1028, 2011, 723, 2253, 120, 2305, 142, 535,
	177, 535, 87, 535, 998, 1706, 1705, 2275, 2100, 162,
	1500, 1501, 1502, 2273, 1197, 1498, 546, 550, 544, 1735,
	1586, 1575, 1576, 1577, 1578, 1588, 1579, 1580, 1581, 1593,
	1589, 1582, 1583, 1590, 1591, 1592, 1584, 1585, 1587, 975,
	152, 915, 1444, 1414, 2018, 141, 1766, 2040, 911, 1799,
	903, 1041, 1062, 1810, 1807, 1809, 1808, 905, 904, 2246,
	1804, 1042, 561, 2630, 1439, 1036, 159, 2247, 160, 1048,
	2597, 1029, 1057, 1049, 2254, 1037, 1038, 1342, 1343, 151,
	150, 177, 1043, 1054, 1093, 1004, 2053, 1415, 1815, 1416,
	182, 981, 182, 2255, 717, 182, 1812, 980, 1813, 910,
	1814, 1803, 2384, 2230, 945, 1047, 909, 1801, 163, 911,
	997, 1769, 917, 1055, 943, 1805, 918, 168, 87, 1667,
	918, 954, 953, 548, 548, 548, 2458, 2460, 2459, 600,
	1130, 952, 951, 950, 1130, 949, 1834, 1333, 1200, 948,
	947, 548, 548, 1802, 942, 955, 2194, 1092, 1089, 1090,
	1091, 1096, 1098, 1095, 896, 1094, 896, 2635, 894, 1079,
	2101, 930, 1088, 2614, 2057, 536, 1018, 2184, 1024, 1025,
	1026, 1027, 2204, 896, 1001, 1032, 1453, 146, 1344, 153,
	2492, 1341, 37, 147, 148, 2625, 1653, 1654, 929, 163,
	1354, 1064, 1895, 1897, 728, 536, 1744, 536, 168, 536,
	971, 2054, 1790, 1449, 2532, 2075, 1073, 965, 2212, 936,
	2009, 2039, 2185, 2069, 2229, 1058, 910, 1847, 1328, 1327,
	1326, 1737, 2029, 1450, 1324, 504, 499, 1786, 155, 1133,
	1134, 1135, 1136, 2042, 1131, 1132, 2521, 2187, 1445, 1141,
	1056, 1144, 2052, 2344, 2182, 2051, 2324, 946, 1183, 1963,
	1092, 1089, 1090, 1091, 1096, 1098, 1095, 944, 1094, 2012,
	1926, 2192, 2193, 1000, 1188, 1088, 1882, 1443, 2183, 2306,
	86, 1618, 2542, 116, 1243, 182, 1170, 910, 1013, 548,
	548, 1694, 1129, 1130, 2176, 710, 2077, 2060, 2538, 81,
	1137, 2478, 2059, 2646, 1353, 182, 111, 1061, 1069, 1070,
	2189, 936, 1835, 2380, 1189, 86, 86, 935, 1045, 155,
	1462, 693, 1206, 1204, 548, 2060, 2318, 957, 182, 1201,
	2059, 1800, 1203, 548, 1017, 1010, 1207, 1007, 1446, 548,
	1019, 2093, 695, 1426, 1425, 1427, 1428, 1429, 737, 77,
	1259, 1082, 1080, 1083, 1566, 1896, 1081, 2001, 2087, 2086,
	2085, 2079, 86, 2083, 1566, 2078, 1861, 2076, 1158, 112,
	1102, 1154, 2081, 1155, 1031, 2191, 1189, 1101, 1102, 1205,
	2438, 2080, 2355, 95, 2354, 1033, 1773, 2194, 936, 1363,
	1176, 1177, 1178, 1179, 149, 1362, 2082, 2084, 1352, 936,
	2623, 1783, 1781, 2624, 1100, 2622, 1101, 1102, 1194, 935,
	143, 970, 1440, 144, 1441, 1778, 98, 1442, 1785, 945,
	2549, 619, 2610, 595, 597, 620, 621, 943, 593, 596,
	622, 1219, 1528, 156, 161, 158, 164, 165, 166, 167,
	169, 170, 171, 172, 1778, 1782, 1529, 1530, 1527, 173,
	174, 175, 176, 1191, 1046, 2550, 1463, 598, 599, 2457,
	2461, 2462, 2463, 2514, 1003, 2345, 692, 1016, 936, 1839,
	1840, 1841, 1202, 1225, 1780, 1100, 1244, 1101, 1102, 694,
	936, 1254, 1249, 1250, 2095, 1222, 935, 1518, 1520, 1521,
	2186, 182, 929, 932, 933, 1317, 896, 935, 2515, 741,
	926, 930, 939, 929, 1325, 184, 185, 186, 1433, 1548,
	2281, 1519, 940, 2638, 156, 161, 158, 164, 165, 166,
	167, 169, 170, 171, 172, 548, 2636, 1350, 1659, 1660,
	173, 174, 175, 176, 1220, 1359, 637, 638, 639, 1361,
	2473, 1570, 548, 548, 1431, 548, 2414, 548, 548, 2413,
	548, 548, 548, 548, 548, 548, 1124, 1125, 1127, 1126,
	1128, 1129, 1421, 1360, 2362, 548, 935, 1103, 2361, 182,
	1397, 1432, 929, 932, 933, 1220, 896, 1208, 935, 2339,
	926, 930, 1549, 939, 929, 182, 2220, 2594, 1392, 1393,
	732, 2210, 1986, 940, 1985, 1150, 548, 87, 182, 1741,
	1434, 925, 1346, 2637, 1419, 1331, 1332, 1430, 1857, 1451,
	2588, 1526, 548, 941, 182, 1418, 1100, 2586, 1101, 1102,
	1339, 1100, 1417, 1101, 1102, 1420, 2590, 2591, 1408, 1100,
	182, 1101, 1102, 1402, 2192, 2193, 1399, 182, 1398, 561,
	1373, 2587, 1394, 2611, 1185, 1229, 182, 182, 182, 182,
	182, 182, 182, 182, 182, 548, 548, 548, 2279, 1220,
	1902, 1358, 2518, 1901, 1852, 1400, 1401, 1357, 2517, 1323,
	2516, 1406, 1407, 1851, 1233, 2437, 1336, 1337, 2435, 1366,
	1856, 1367, 2410, 1369, 1371, 1349, 182, 1375, 1377, 1379,
	1381, 1383, 1458, 2612, 1230, 1335, 1356, 1356, 1466, 2359,
	1100, 2351, 1101, 1102, 2287, 1470, 1995, 1472, 1473, 1474,
	1475, 1983, 1410, 1794, 1479, 1100, 1793, 1101, 1102, 1464,
	1465, 1650, 1100, 1236, 1101, 1102, 1632, 1551, 1493, 1550,
	1869, 1547, 1395, 1469, 1100, 1495, 1101, 1102, 2191, 1232,
	1476, 1477, 1478, 1454, 1556, 548, 1100, 1877, 1101, 1102,
	2194, 1850, 1524, 184, 185, 186, 2529, 119, 1459, 913,
	548, 548, 1422, 1409, 1405, 912, 1122, 1123, 1124, 1125,
	1127, 1126, 1128, 1129, 1522, 1404, 1403, 1567, 1231, 1059,
	1468, 1100, 1532, 1101, 1102, 2250, 1610, 1329, 1106, 1107,
	1108, 1109, 1110, 1111, 1112, 1104, 182, 1100, 1072, 1101,
	1102, 548, 184, 185, 186, 1531, 2352, 1533, 1534, 1535,
	1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
	1220, 1220, 1492, 2499, 1631, 182, 1917, 2629, 548, 1489,
	1490, 1491, 2498, 1100, 1525, 1101, 1102, 1220, 182, 2467,
	2286, 548, 1637, 2466, 1638, 2397, 182, 1913, 182, 1612,
	182, 182, 548, 2471, 1100, 548, 1101, 1102, 101, 1610,
	2381, 1100, 94, 1101, 1102, 94, 548, 737, 2171, 100,
	737, 99, 95, 1614, 1615, 2019, 1703, 1834, 1100, 1552,
	1101, 1102, 1100, 1998, 1101, 1102, 1558, 1559, 184, 185,
	186, 95, 1970, 1987, 1100, 100, 1101, 1102, 2601, 1220,
	1643, 1100, 1611, 1101, 1102, 184, 185, 186, 1669, 1754,
	1917, 2570, 1613, 101, 1702, 1616, 1617, 1917, 2557, 1848,
	92, 548, 1612, 1220, 100, 2317, 99, 1747, 1748, 1749,
	178, 93, 1751, 1753, 1100, 94, 1101, 1102, 1220, 707,
	184, 185, 186, 1698, 1752, 1697, 548, 1917, 2553, 2545,
	1220, 1642, 548, 1359, 120, 92, 1359, 1680, 1359, 1917,
	2534, 2560, 94, 1848, 1777, 2319, 93, 162, 2389, 2531,
	1917, 2474, 2389, 1220, 1701, 1664, 1645, 1099, 1767, 1728,
	2537, 1712, 1713, 1714, 1715, 1220, 1917, 2387, 1917, 1662,
	1778, 1220, 1928, 1220, 548, 1734, 1547, 2322, 1220, 2202,
	2201, 1547, 1547, 1685, 2198, 2199, 2198, 2197, 1936, 1220,
	1700, 1848, 1220, 1699, 1684, 1834, 2038, 1936, 741, 87,
	1220, 741, 1460, 1764, 159, 2200, 160, 1120, 1121, 1122,
	1123, 1124, 1125, 1127, 1126, 1128, 1129, 182, 1707, 177,
	1708, 1709, 1710, 1711, 182, 1320, 2023, 2015, 2016, 182,
	182, 1917, 1916, 182, 1779, 182, 1718, 1719, 1720, 1721,
	1729, 1935, 182, 1936, 1740, 1742, 1739, 1928, 1750, 182,
	2113, 1787, 1686, 1724, 1725, 1099, 1220, 1959, 1959, 1772,
	1320, 1319, 1775, 1848, 1776, 1866, 1771, 1865, 1774, 1770,
	1789, 937, 2138, 1729, 1778, 1791, 1792, 182, 548, 1788,
	1265, 1264, 2317, 2364, 1513, 1514, 1515, 1516, 938, 1761,
	1657, 1778, 1224, 1621, 1503, 1936, 1448, 1251, 1356, 1119,
	1120, 1121, 1122, 1123, 1124, 1125, 1127, 1126, 1128, 1129,
	1388, 920, 1221, 1223, 1825, 1826, 919, 2223, 2317, 1828,
	1960, 1960, 697, 1797, 1554, 1555, 2488, 163, 1829, 1962,
	1834, 1227, 1560, 2365, 2366, 2367, 168, 2653, 2464, 2449,
	2379, 2376, 2357, 2290, 2289, 1322, 1524, 1595, 1596, 1597,
	1598, 1599, 1600, 1602, 1727, 2248, 2225, 2221, 2024, 1723,
	1389, 1390, 1391, 1818, 1118, 1717, 1716, 1114, 1436, 1115,
	1351, 1347, 1318, 113, 1991, 1844, 2368, 1992, 1385, 1002,
	2252, 561, 2489, 1116, 1117, 1113, 1119, 1120, 1121, 1122,
	1123, 1124, 1125, 1127, 1126, 1128, 1129, 1738, 1843, 87,
	1845, 1635, 182, 2651, 624, 1941, 1944, 1945, 1946, 1942,
	182, 1943, 1947, 2607, 1888, 2335, 548, 1655, 1656, 1832,
	2583, 1992, 548, 2369, 2370, 1386, 1387, 2332, 1525, 1905,
	2329, 2330, 2217, 548, 2216, 2215, 2138, 2002, 1842, 1941,
	1944, 1945, 1946, 1942, 1692, 1943, 1947, 155, 1819, 2329,
	2330, 1496, 1218, 1214, 2160, 183, 182, 2158, 183, 2161,
	182, 183, 2159, 1932, 1218, 1214, 549, 1215, 183, 2162,
	2334, 1945, 1946, 1860, 2157, 1969, 183, 1612, 2156, 1215,
	2599, 2571, 1858, 1649, 1228, 1641, 37, 2323, 2419, 2118,
	2418, 183, 1639, 1640, 1217, 1952, 1216, 2117, 2130, 2132,
	2021, 2310, 2513, 1730, 1211, 1212, 1217, 2133, 1216, 2309,
	1914, 1875, 2428, 549, 2430, 711, 549, 183, 549, 548,
	2313, 2127, 1447, 712, 182, 1194, 683, 1889, 1879, 1880,
	1611, 182, 2196, 1918, 1977, 1951, 1996, 1899, 2417, 1910,
	967, 966, 2262, 548, 1562, 1991, 2063, 1915, 1071, 92,
	548, 2315, 101, 1925, 1359, 1359, 2014, 1973, 1563, 548,
	93, 92, 2031, 100, 2030, 99, 1957, 120, 94, 1659,
	1660, 2035, 93, 1961, 94, 94, 2633, 2213, 2034, 1822,
	2530, 2484, 182, 182, 182, 182, 182, 1974, 1734, 1964,
	2195, 1980, 1981, 1949, 1971, 1646, 719, 720, 1811, 182,
	182, 2116, 2295, 101, 1838, 99, 1994, 2505, 1984, 2115,
	2504, 2436, 2434, 2433, 100, 182, 99, 2426, 2377, 2314,
	1993, 2312, 2226, 1762, 1334, 101, 718, 100, 1999, 2003,
	2004, 2005, 2425, 1547, 1913, 2303, 100, 1928, 2609, 2608,
	2033, 1339, 156, 161, 158, 164, 165, 166, 167, 169,
	170, 171, 172, 2102, 1867, 1633, 1245, 1237, 173, 174,
	175, 176, 2609, 548, 2519, 693, 2350, 2092, 106, 107,
	709, 103, 2032, 88, 1, 2585, 517, 1622, 2107, 548,
	2025, 2026, 1192, 531, 2581, 1423, 1413, 2400, 2485, 2020,
	1768, 2375, 1732, 2071, 182, 2070, 928, 145, 548, 1695,
	1696, 2566, 110, 2061, 889, 2055, 2062, 548, 109, 931,
	1030, 1763, 2390, 1978, 548, 548, 1704, 182, 182, 182,
	182, 182, 2107, 1271, 1269, 1270, 2072, 2089, 2088, 182,
	1268, 1273, 1272, 1868, 182, 1497, 2141, 182, 545, 182,
	2150, 2141, 182, 182, 182, 2135, 1948, 180, 1260, 1238,
	2144, 1862, 2121, 699, 968, 2170, 507, 2203, 1795, 513,
	1142, 2114, 2106, 1965, 738, 1568, 2108, 731, 1634, 1569,
	1903, 2146, 2307, 1207, 1952, 2126, 2120, 2211, 2128, 2119,
	1920, 2122, 2131, 182, 2124, 2512, 1150, 2427, 2558, 1975,
	1234, 1859, 1564, 700, 1674, 1630, 548, 2172, 1517, 570,
	2173, 1221, 1620, 2152, 2153, 548, 2155, 701, 2151, 2163,
	182, 2154, 569, 2167, 2168, 2112, 95, 567, 2232, 1906,
	182, 1929, 1458, 1105, 2228, 2174, 627, 1893, 1246, 1940,
	1938, 1937, 1820, 2180, 1644, 182, 1681, 2331, 182, 2109,
	2110, 2111, 1236, 2327, 2643, 2207, 2206, 2577, 2263, 1676,
	1672, 2149, 1912, 578, 571, 563, 2347, 2238, 2240, 2041,
	2249, 2239, 2208, 2209, 2043, 1976, 2245, 1084, 1210, 557,
	901, 1561, 2490, 2227, 2476, 1837, 2283, 2231, 1209, 1734,
	1573, 1574, 2218, 1755, 2243, 63, 41, 1601, 552, 2595,
	1075, 725, 32, 31, 548, 182, 30, 29, 28, 23,
	22, 21, 1118, 2257, 183, 20, 183, 2258, 19, 183,
	25, 2260, 2261, 18, 17, 2265, 16, 2264, 1118, 2604,
	2068, 2632, 115, 2271, 1119, 1120, 1121, 1122, 1123, 1124,
	1125, 1127, 1126, 1128, 1129, 50, 47, 549, 549, 549,
	1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1126, 1128,
	1129, 45, 182, 122, 121, 549, 549, 2296, 2297, 48,
	44, 1005, 42, 27, 26, 15, 2304, 14, 13, 2311,
	2353, 12, 11, 10, 9, 182, 5, 4, 2336, 2316,
	35, 34, 33, 1078, 2301, 24, 2, 2007, 1757, 0,
	2333, 0, 0, 182, 0, 0, 182, 182, 182, 0,
	0, 2340, 0, 0, 0, 0, 548, 548, 0, 0,
	2341, 2240, 0, 0, 2239, 2326, 0, 2348, 2349, 2382,
	2383, 2268, 2269, 0, 2270, 0, 0, 2272, 0, 2274,
	0, 2276, 0, 548, 548, 548, 548, 2342, 2343, 0,
	0, 2090, 2091, 0, 0, 1118, 2094, 1846, 0, 2385,
	2096, 2097, 2098, 0, 0, 0, 0, 0, 2396, 0,
	0, 0, 2103, 0, 0, 2394, 2395, 1119, 1120, 1121,
	1122, 1123, 1124, 1125, 1127, 1126, 1128, 1129, 0, 182,
	2358, 0, 2360, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 0, 549, 549, 0, 0, 2422, 0, 0,
	0, 2409, 0, 548, 0, 548, 0, 0, 0, 183,
	0, 0, 0, 2136, 0, 0, 0, 0, 2443, 0,
	0, 2452, 2451, 2141, 0, 2445, 0, 2423, 549, 0,
	2432, 0, 183, 693, 2431, 2447, 2405, 549, 2144, 0,
	2169, 37, 2144, 549, 2441, 608, 2439, 0, 0, 0,
	0, 0, 2406, 0, 0, 0, 0, 0, 0, 0,
	548, 0, 0, 0, 1849, 0, 0, 0, 1853, 0,
	1854, 1855, 2456, 2472, 0, 0, 0, 0, 0, 1863,
	548, 0, 1864, 0, 0, 2468, 0, 0, 0, 0,
	2470, 0, 0, 2469, 0, 2487, 2224, 548, 0, 2479,
	2480, 548, 548, 2475, 0, 2453, 2454, 547, 1870, 1871,
	1872, 1873, 1874, 0, 1876, 0, 0, 0, 1878, 0,
	0, 0, 0, 0, 0, 1883, 1884, 1885, 1886, 1887,
	548, 1644, 0, 2509, 2511, 2506, 2507, 0, 2508, 0,
	0, 0, 1900, 2523, 2520, 548, 0, 0, 0, 0,
	0, 0, 0, 0, 739, 0, 0, 893, 2528, 900,
	693, 2144, 2526, 0, 0, 2522, 0, 0, 0, 548,
	182, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	2285, 2536, 2539, 0, 0, 0, 0, 2291, 0, 0,
	0, 0, 0, 0, 0, 183, 0, 0, 0, 0,
	0, 0, 548, 0, 37, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 548, 548,
	0, 0, 0, 0, 2551, 2141, 548, 2559, 0, 549,
	561, 2561, 0, 2487, 2567, 182, 548, 2565, 0, 0,
	0, 0, 0, 0, 2556, 0, 549, 549, 0, 549,
	37, 549, 549, 2576, 549, 549, 549, 549, 549, 549,
	2592, 2584, 2589, 2598, 0, 0, 0, 0, 0, 549,
	0, 0, 2606, 183, 2603, 548, 0, 0, 0, 0,
	0, 0, 548, 0, 0, 0, 2452, 2620, 2613, 183,
	2615, 2617, 2619, 0, 0, 0, 0, 2626, 0, 0,
	549, 0, 183, 0, 0, 0, 2378, 2634, 0, 0,
	0, 0, 0, 0, 0, 2639, 549, 0, 183, 0,
	0, 0, 2393, 2452, 2642, 0, 0, 2650, 2649, 0,
	2452, 2652, 0, 0, 183, 0, 0, 0, 0, 0,
	0, 183, 0, 0, 0, 0, 0, 0, 0, 0,
	183, 183, 183, 183, 183, 183, 183, 183, 183, 549,
	549, 549, 0, 0, 2407, 0, 2408, 0, 0, 0,
	0, 2411, 2412, 0, 0, 0, 0, 0, 0, 0,
	2099, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	183, 2104, 2105, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2440, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 2448, 0, 0, 2450, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 2455, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2465, 0, 0, 2147, 0, 0, 0, 549,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2165, 2166, 549, 549, 0, 0, 0, 0,
	0, 561, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	183, 0, 0, 0, 0, 549, 0, 0, 0, 0,
	2510, 561, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 549, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 183, 0, 0, 549, 0, 0, 0, 0,
	183, 0, 183, 0, 183, 183, 549, 0, 0, 549,
	0, 0, 561, 0, 0, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 0, 0, 739, 739,
	739, 0, 0, 0, 0, 0, 2267, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1074, 1076, 0, 0,
	2277, 2278, 2280, 2282, 0, 0, 0, 0, 0, 0,
	2288, 0, 0, 0, 0, 2292, 0, 0, 2293, 0,
	0, 0, 178, 0, 2298, 549, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2593, 120, 0, 142, 0,
	549, 0, 0, 0, 0, 0, 549, 2320, 2321, 162,
	0, 2325, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1186, 2337,
	2338, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	152, 0, 0, 0, 0, 141, 0, 0, 549, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 159, 0, 160, 0,
	0, 0, 0, 0, 0, 0, 0, 129, 130, 151,
	150, 177, 0, 0, 1198, 1199, 0, 0, 0, 0,
	0, 183, 0, 0, 0, 2388, 0, 0, 183, 0,
	0, 0, 0, 183, 183, 0, 0, 183, 0, 183,
	0, 0, 0, 0, 0, 0, 183, 0, 0, 1241,
	0, 0, 0, 183, 0, 0, 0, 0, 739, 0,
	0, 0, 0, 0, 1261, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 183, 549, 2415, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 146, 127, 153,
	134, 126, 0, 147, 148, 0, 0, 0, 0, 163,
	0, 0, 0, 0, 0, 0, 0, 0, 168, 135,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 138, 136, 131, 132, 133, 137, 0,
	0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
	0, 0, 0, 0, 139, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2483, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2493,
	2494, 2495, 0, 2496, 2497, 0, 183, 0, 2501, 0,
	0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 549, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 549, 0, 155,
	0, 0, 0, 0, 0, 0, 0, 2527, 0, 0,
	893, 0, 0, 609, 0, 0, 0, 0, 0, 0,
	183, 0, 0, 1186, 183, 0, 0, 1365, 1365, 0,
	1365, 0, 1365, 1365, 0, 1374, 1365, 1365, 1365, 1365,
	1365, 0, 2541, 0, 0, 0, 0, 0, 1186, 1186,
	893, 0, 2546, 0, 0, 0, 0, 0, 2547, 2548,
	0, 0, 0, 0, 181, 0, 0, 503, 0, 0,
	543, 0, 0, 0, 149, 0, 2554, 503, 0, 0,
	0, 1435, 0, 549, 0, 503, 0, 2562, 183, 0,
	143, 0, 0, 144, 0, 183, 0, 1455, 0, 0,
	706, 0, 0, 0, 0, 0, 0, 549, 0, 0,
	0, 0, 0, 0, 549, 0, 724, 0, 724, 0,
	0, 0, 0, 549, 0, 0, 503, 0, 0, 2600,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	739, 739, 739, 0, 0, 0, 183, 183, 183, 183,
	183, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 183, 183, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 156, 161, 158, 164, 165, 166,
	167, 169, 170, 171, 172, 0, 0, 0, 0, 0,
	173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 549, 0, 0,
	1557, 0, 0, 0, 0, 0, 0, 1186, 0, 0,
	0, 0, 0, 549, 0, 1571, 1572, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 739, 0, 183, 0,
	0, 0, 549, 0, 0, 0, 0, 0, 0, 0,
	0, 549, 0, 0, 0, 0, 0, 0, 549, 549,
	0, 183, 183, 183, 183, 183, 1636, 0, 0, 0,
	0, 0, 0, 183, 0, 0, 0, 0, 183, 0,
	0, 183, 0, 183, 0, 0, 183, 183, 183, 0,
	0, 0, 0, 1648, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1241, 0, 0, 739,
	0, 0, 0, 0, 0, 0, 0, 739, 0, 0,
	739, 0, 0, 0, 0, 0, 0, 183, 0, 0,
	0, 893, 0, 0, 0, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 0, 0, 0, 549,
	0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
	0, 184, 185, 186, 0, 0, 0, 0, 0, 183,
	0, 0, 183, 0, 0, 0, 900, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 178, 0, 0, 0, 535, 0, 0,
	0, 893, 0, 0, 1338, 0, 0, 900, 0, 0,
	1195, 0, 0, 0, 0, 0, 0, 120, 0, 142,
	0, 0, 0, 0, 0, 0, 0, 0, 549, 183,
	162, 0, 0, 0, 0, 0, 0, 0, 522, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 893,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 152, 0, 0, 502, 0, 141, 0, 0, 0,
	0, 0, 0, 0, 551, 0, 0, 0, 0, 0,
	0, 0, 686, 503, 521, 503, 183, 159, 503, 160,
	0, 0, 0, 0, 0, 0, 519, 0, 1342, 1343,
	151, 150, 177, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 897, 0, 0, 0, 183, 0, 0,
	183, 183, 183, 0, 0, 0, 516, 0, 0, 0,
	549, 549, 0, 0, 0, 530, 0, 0, 0, 0,
	0, 0, 0, 1831, 0, 0, 0, 0, 0, 0,
	527, 0, 0, 0, 0, 0, 0, 549, 549, 549,
	549, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 536, 0, 0, 0, 0, 146, 1344,
	153, 0, 1341, 0, 147, 148, 0, 0, 0, 0,
	163, 0, 0, 183, 0, 0, 1187, 0, 0, 168,
	0, 0, 0, 506, 0, 508, 523, 0, 538, 0,
	537, 512, 0, 510, 514, 524, 515, 549, 509, 549,
	520, 0, 0, 511, 525, 526, 528, 542, 541, 529,
	0, 518, 539, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 634, 79, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 739, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 706, 0,
	0, 1648, 0, 0, 549, 0, 0, 1907, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1922, 0,
	0, 503, 0, 0, 549, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	155, 549, 0, 0, 0, 549, 549, 0, 0, 0,
	0, 696, 0, 79, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 696, 0, 0, 549, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 549,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1997, 0, 0, 0, 0, 540,
	0, 0, 0, 549, 183, 149, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 533, 1648, 0,
	0, 143, 0, 0, 144, 2022, 0, 0, 0, 0,
	0, 0, 534, 0, 2027, 0, 549, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 549, 549, 0, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 0, 0, 0, 183,
	549, 0, 0, 0, 503, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 549,
	1006, 0, 1012, 0, 0, 1014, 549, 0, 0, 0,
	0, 1187, 0, 0, 0, 156, 161, 158, 164, 165,
	166, 167, 169, 170, 171, 172, 0, 0, 739, 0,
	0, 173, 174, 175, 176, 0, 1187, 1187, 0, 0,
	0, 0, 503, 0, 1365, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1411, 0,
	0, 0, 0, 2123, 0, 0, 0, 0, 0, 0,
	0, 503, 739, 0, 0, 0, 1186, 0, 0, 2148,
	1365, 1186, 0, 0, 0, 0, 0, 1457, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 635, 636, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	503, 0, 0, 0, 0, 0, 0, 0, 0, 1480,
	1481, 503, 503, 503, 503, 503, 503, 503, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 503,
	0, 893, 0, 0, 1186, 0, 0, 0, 0, 0,
	1648, 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, 724, 0, 0, 0, 0, 0, 0, 724,
	724, 0, 0, 0, 0, 1187, 0, 0, 1248, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 724, 1457, 724, 724, 724, 724, 724,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2123,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1411,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 724, 0, 1066, 1066, 1066, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 706, 0,
	0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
	2602, 503, 0, 0, 0, 0, 0, 1457, 0, 503,
	1288, 503, 0, 503, 1683, 0, 0, 0, 0, 0,
	0, 0, 0, 696, 1138, 1139, 1140, 0, 1143, 0,
	1145, 1146, 1147, 1148, 0, 1151, 1153, 1153, 0, 1153,
	1157, 1157, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
	1167, 1168, 1169, 0, 1171, 1172, 1173, 1174, 1175, 0,
	0, 1648, 1648, 1157, 1157, 1157, 1157, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1266, 0, 0, 0, 0, 0, 0, 2401, 2402,
	2403, 2404, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1196, 0, 0, 0, 0, 0, 696, 0, 0, 0,
	696, 0, 0, 1276, 0, 0, 696, 0, 0, 0,
	0, 0, 0, 1186, 0, 0, 0, 0, 2444, 1396,
	2446, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1288, 0, 1437, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	503, 0, 0, 0, 0, 0, 0, 503, 0, 0,
	0, 0, 503, 503, 0, 1648, 503, 0, 1823, 0,
	1467, 0, 0, 0, 1289, 503, 0, 1471, 0, 0,
	0, 0, 503, 0, 0, 739, 0, 0, 1482, 1483,
	1484, 1485, 1486, 1487, 1488, 0, 0, 0, 0, 0,
	0, 0, 2502, 0, 0, 0, 2502, 2502, 0, 0,
	503, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1506, 0, 1302, 1305,
	1306, 1307, 1308, 1309, 1310, 1648, 1311, 1312, 1313, 1314,
	1315, 1290, 1291, 1292, 1293, 1274, 1275, 1303, 0, 1277,
	1648, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286,
	1287, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1276,
	0, 0, 0, 0, 1648, 724, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1186, 0, 2552, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 724, 724, 739, 739, 0, 0, 0, 0, 0,
	0, 2574, 1457, 0, 0, 503, 0, 0, 0, 0,
	0, 2579, 0, 1411, 0, 0, 0, 0, 0, 0,
	1289, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1304, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1661, 0,
	1648, 0, 0, 0, 0, 0, 1665, 2579, 1668, 503,
	0, 1506, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1302, 1305, 1306, 1307, 1308, 1309,
	1310, 0, 1311, 1312, 1313, 1314, 1315, 1290, 1291, 1292,
	1293, 1274, 1275, 1303, 0, 1277, 0, 1278, 1279, 1280,
	1281, 1282, 1283, 1284, 1285, 1286, 1287, 1294, 1295, 1296,
	1297, 1298, 1299, 1300, 1301, 0, 0, 0, 1066, 1066,
	1066, 0, 0, 0, 0, 0, 0, 503, 0, 0,
	0, 0, 0, 0, 2006, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 78, 39, 40,
	80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 84, 0, 0,
	0, 43, 69, 70, 0, 67, 71, 0, 0, 0,
	0, 0, 0, 0, 68, 503, 503, 503, 503, 503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 503, 503, 0, 0, 0, 1304, 0, 0,
	0, 0, 0, 56, 0, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
	0, 0, 724, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 1806, 0, 0, 0, 0, 1816,
	1817, 0, 0, 1821, 0, 724, 0, 0, 0, 0,
	0, 0, 1824, 0, 0, 0, 0, 0, 0, 1827,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 503, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1830, 0, 0,
	0, 0, 0, 1675, 1187, 0, 0, 0, 0, 1187,
	503, 503, 503, 503, 503, 0, 0, 0, 0, 0,
	0, 0, 2164, 0, 0, 0, 0, 503, 0, 0,
	1411, 0, 503, 0, 0, 503, 2175, 1457, 0, 0,
	46, 49, 52, 51, 54, 0, 66, 0, 0, 75,
	72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 55, 83, 82, 0, 503, 64, 65, 53,
	0, 0, 0, 0, 0, 73, 74, 0, 0, 0,
	0, 0, 1187, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 57, 58, 0, 59, 60, 61, 62, 503, 0,
	0, 503, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1956, 0, 0, 0, 0, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 2000, 503, 0, 81, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 86, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 503, 0, 0, 503,
	503, 503, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2046, 2047, 2048, 2049, 2050, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1506,
	2056, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2064, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1881, 0, 0, 0, 0, 0,
	0, 0, 1411, 0, 0, 0, 0, 0, 0, 0,
	0, 1898, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1187, 0, 0, 0, 0, 0, 0, 0, 0,
	696, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1933, 1934, 0, 0, 0, 0, 0, 0, 0, 1953,
	0, 1954, 1955, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2214, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	2235, 0, 0, 2028, 0, 0, 0, 0, 0, 0,
	2244, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2256, 0, 0, 2259, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1187, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2300, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1411, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	87, 0, 0, 0, 0, 0, 628, 635, 636, 637,
	638, 639, 629, 631, 0, 0, 0, 630, 0, 0,
	0, 0, 0, 633, 640, 641, 0, 1675, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2145, 0, 79, 0, 0,
	1675, 1675, 1675, 1675, 1675, 2356, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1953, 696, 2241,
	2242, 0, 1675, 2371, 0, 1675, 2372, 2373, 2374, 0,
	0, 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, 0, 87, 0, 0, 0, 0, 0, 628,
	635, 636, 637, 638, 639, 629, 631, 0, 0, 0,
	630, 0, 0, 0, 0, 2237, 633, 640, 641, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 2266, 0, 0,
	0, 0, 2241, 2242, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 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, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1675, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 2346, 0,
	0, 0, 0, 0, 619, 0, 0, 0, 620, 621,
	0, 0, 0, 622, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 2386, 0, 0, 0, 0, 0,
	2540, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 2416, 0,
	2420, 2421, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2145, 0, 79, 0, 2145, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 2477, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 2145, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2555,
	0, 871, 856, 424, 79, 803, 874, 772, 791, 884,
	794, 797, 838, 751, 817, 345, 788, 0, 776, 746,
	783, 747, 774, 805, 244, 771, 858, 821, 873, 300,
	241, 753, 777, 359, 793, 193, 840, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 880, 304, 827, 0, 409, 330, 0, 0, 0,
	807, 862, 815, 852, 802, 839, 761, 826, 875, 789,
	835, 876, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 2568, 0, 2569, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 785, 832, 870, 786, 834, 239, 285, 246, 238,
	428, 881, 861, 750, 814, 869, 0, 0, 209, 872,
	809, 0, 837, 0, 887, 745, 829, 0, 748, 752,
	883, 865, 780, 249, 0, 0, 0, 0, 0, 0,
	0, 806, 816, 849, 800, 0, 0, 0, 0, 0,
	0, 0, 778, 0, 825, 0, 0, 0, 757, 749,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 804, 0, 0, 0, 760, 0, 779, 850, 0,
	743, 268, 754, 331, 231, 0, 854, 864, 801, 462,
	868, 799, 798, 844, 758, 860, 792, 299, 756, 293,
	188, 205, 0, 790, 341, 382, 388, 859, 775, 784,
	229, 782, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 824, 842, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 1068, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 770, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 855,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 847, 886, 354, 387,
	219, 448, 408, 765, 769, 763, 764, 819, 820, 766,
	877, 878, 879, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 851, 759, 0, 767, 768, 0, 857, 866,
	867, 498, 316, 399, 445, 823, 187, 202, 302, 882,
	376, 261, 476, 456, 452, 744, 762, 236, 773, 781,
	0, 787, 795, 796, 808, 810, 811, 812, 813, 327,
	830, 831, 833, 841, 843, 846, 848, 853, 863, 885,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 822, 828, 313, 254, 273, 284, 836, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 818, 845, 309,
	425, 426, 280, 871, 856, 424, 0, 803, 874, 772,
	791, 884, 794, 797, 838, 751, 817, 345, 788, 0,
	776, 746, 783, 747, 774, 805, 244, 771, 858, 821,
	873, 300, 241, 753, 777, 359, 793, 193, 840, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 880, 304, 827, 0, 409, 330, 0,
	0, 0, 807, 862, 815, 852, 802, 839, 761, 826,
	875, 789, 835, 876, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 785, 832, 870, 786, 834, 239, 285,
	246, 238, 428, 881, 861, 750, 814, 869, 0, 0,
	209, 872, 809, 0, 837, 0, 887, 745, 829, 0,
	748, 752, 883, 865, 780, 249, 0, 0, 0, 0,
	0, 0, 0, 806, 816, 849, 800, 0, 0, 0,
	0, 0, 2176, 0, 778, 0, 825, 0, 0, 0,
	757, 749, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 804, 0, 0, 0, 760, 0, 779,
	850, 0, 743, 268, 754, 331, 231, 0, 854, 864,
	801, 462, 868, 799, 798, 844, 758, 860, 792, 299,
	756, 293, 188, 205, 0, 790, 341, 382, 388, 859,
	775, 784, 229, 782, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 824, 842, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 1068, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 770, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 855, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 847, 886,
	354, 387, 219, 448, 408, 765, 769, 763, 764, 819,
	820, 766, 877, 878, 879, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 851, 759, 0, 767, 768, 0,
	857, 866, 867, 498, 316, 399, 445, 823, 187, 202,
	302, 882, 376, 261, 476, 456, 452, 744, 762, 236,
	773, 781, 0, 787, 795, 796, 808, 810, 811, 812,
	813, 327, 830, 831, 833, 841, 843, 846, 848, 853,
	863, 885, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 822, 828, 313, 254, 273, 284, 836,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 818,
	845, 309, 425, 426, 280, 871, 856, 424, 0, 803,
	874, 772, 791, 884, 794, 797, 838, 751, 817, 345,
	788, 0, 776, 746, 783, 747, 774, 805, 244, 771,
	858, 821, 873, 300, 241, 753, 777, 359, 793, 193,
	840, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 880, 304, 827, 0, 409,
	330, 0, 0, 0, 807, 862, 815, 852, 802, 839,
	761, 826, 875, 789, 835, 876, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 785, 832, 870, 786, 834,
	239, 285, 246, 238, 428, 881, 861, 750, 814, 869,
	0, 0, 209, 872, 809, 0, 837, 0, 887, 745,
	829, 0, 748, 752, 883, 865, 780, 249, 0, 0,
	0, 0, 0, 0, 0, 806, 816, 849, 800, 0,
	0, 0, 0, 0, 2134, 0, 778, 0, 825, 0,
	0, 0, 757, 749, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 804, 0, 0, 0, 760,
	0, 779, 850, 0, 743, 268, 754, 331, 231, 0,
	854, 864, 801, 462, 868, 799, 798, 844, 758, 860,
	792, 299, 756, 293, 188, 205, 0, 790, 341, 382,
	388, 859, 775, 784, 229, 782, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 824, 842, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 1068, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	770, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 855, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	847, 886, 354, 387, 219, 448, 408, 765, 769, 763,
	764, 819, 820, 766, 877, 878, 879, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 851, 759, 0, 767,
	768, 0, 857, 866, 867, 498, 316, 399, 445, 823,
	187, 202, 302, 882, 376, 261, 476, 456, 452, 744,
	762, 236, 773, 781, 0, 787, 795, 796, 808, 810,
	811, 812, 813, 327, 830, 831, 833, 841, 843, 846,
	848, 853, 863, 885, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 822, 828, 313, 254, 273,
	284, 836, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 818, 845, 309, 425, 426, 280, 871, 856, 424,
	0, 803, 874, 772, 791, 884, 794, 797, 838, 751,
	817, 345, 788, 0, 776, 746, 783, 747, 774, 805,
	244, 771, 858, 821, 873, 300, 241, 753, 777, 359,
	793, 193, 840, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 880, 304, 827,
	0, 409, 330, 0, 0, 0, 807, 862, 815, 852,
	802, 839, 761, 826, 875, 789, 835, 876, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 785, 832, 870,
	786, 834, 239, 285, 246, 238, 428, 881, 861, 750,
	814, 869, 0, 0, 209, 872, 809, 0, 837, 0,
	887, 745, 829, 0, 748, 752, 883, 865, 780, 249,
	0, 0, 0, 0, 0, 0, 0, 806, 816, 849,
	800, 0, 0, 0, 0, 0, 1663, 0, 778, 0,
	825, 0, 0, 0, 757, 749, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 804, 0, 0,
	0, 760, 0, 779, 850, 0, 743, 268, 754, 331,
	231, 0, 854, 864, 801, 462, 868, 799, 798, 844,
	758, 860, 792, 299, 756, 293, 188, 205, 0, 790,
	341, 382, 388, 859, 775, 784, 229, 782, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 824, 842,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	1068, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 770, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 855, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 847, 886, 354, 387, 219, 448, 408, 765,
	769, 763, 764, 819, 820, 766, 877, 878, 879, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 851, 759,
	0, 767, 768, 0, 857, 866, 867, 498, 316, 399,
	445, 823, 187, 202, 302, 882, 376, 261, 476, 456,
	452, 744, 762, 236, 773, 781, 0, 787, 795, 796,
	808, 810, 811, 812, 813, 327, 830, 831, 833, 841,
	843, 846, 848, 853, 863, 885, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 822, 828, 313,
	254, 273, 284, 836, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 818, 845, 309, 425, 426, 280, 871,
	856, 424, 0, 803, 874, 772, 791, 884, 794, 797,
	838, 751, 817, 345, 788, 0, 776, 746, 783, 747,
	774, 805, 244, 771, 858, 821, 873, 300, 241, 753,
	777, 359, 793, 193, 840, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 880,
	304, 827, 0, 409, 330, 0, 0, 0, 807, 862,
	815, 852, 802, 839, 761, 826, 875, 789, 835, 876,
	287, 226, 192, 342, 410, 259, 0, 87, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 785,
	832, 870, 786, 834, 239, 285, 246, 238, 428, 881,
	861, 750, 814, 869, 0, 0, 209, 872, 809, 0,
	837, 0, 887, 745, 829, 0, 748, 752, 883, 865,
	780, 249, 0, 0, 0, 0, 0, 0, 0, 806,
	816, 849, 800, 0, 0, 0, 0, 0, 0, 0,
	778, 0, 825, 0, 0, 0, 757, 749, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 804,
	0, 0, 0, 760, 0, 779, 850, 0, 743, 268,
	754, 331, 231, 0, 854, 864, 801, 462, 868, 799,
	798, 844, 758, 860, 792, 299, 756, 293, 188, 205,
	0, 790, 341, 382, 388, 859, 775, 784, 229, 782,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	824, 842, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 1068, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 770, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 855, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 847, 886, 354, 387, 219, 448,
	408, 765, 769, 763, 764, 819, 820, 766, 877, 878,
	879, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	851, 759, 0, 767, 768, 0, 857, 866, 867, 498,
	316, 399, 445, 823, 187, 202, 302, 882, 376, 261,
	476, 456, 452, 744, 762, 236, 773, 781, 0, 787,
	795, 796, 808, 810, 811, 812, 813, 327, 830, 831,
	833, 841, 843, 846, 848, 853, 863, 885, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 822,
	828, 313, 254, 273, 284, 836, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 818, 845, 309, 425, 426,
	280, 871, 856, 424, 0, 803, 874, 772, 791, 884,
	794, 797, 838, 751, 817, 345, 788, 0, 776, 746,
	783, 747, 774, 805, 244, 771, 858, 821, 873, 300,
	241, 753, 777, 359, 793, 193, 840, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 880, 304, 827, 0, 409, 330, 0, 0, 0,
	807, 862, 815, 852, 802, 839, 761, 826, 875, 789,
	835, 876, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 785, 832, 870, 786, 834, 239, 285, 246, 238,
	428, 881, 861, 750, 814, 869, 0, 0, 209, 872,
	809, 0, 837, 0, 887, 745, 829, 0, 748, 752,
	883, 865, 780, 249, 0, 0, 0, 0, 0, 0,
	0, 806, 816, 849, 800, 0, 0, 0, 0, 0,
	0, 0, 778, 0, 825, 0, 0, 0, 757, 749,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 804, 0, 0, 0, 760, 0, 779, 850, 0,
	743, 268, 754, 331, 231, 0, 854, 864, 801, 462,
	868, 799, 798, 844, 758, 860, 792, 299, 756, 293,
	188, 205, 0, 790, 341, 382, 388, 859, 775, 784,
	229, 782, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 824, 842, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 1068, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 770, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 855,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 847, 886, 354, 387,
	219, 448, 408, 765, 769, 763, 764, 819, 820, 766,
	877, 878, 879, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 851, 759, 0, 767, 768, 0, 857, 866,
	867, 498, 316, 399, 445, 823, 187, 202, 302, 882,
	376, 261, 476, 456, 452, 744, 762, 236, 773, 781,
	0, 787, 795, 796, 808, 810, 811, 812, 813, 327,
	830, 831, 833, 841, 843, 846, 848, 853, 863, 885,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 822, 828, 313, 254, 273, 284, 836, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 818, 845, 309,
	425, 426, 280, 871, 856, 424, 0, 803, 874, 772,
	791, 884, 794, 797, 838, 751, 817, 345, 788, 0,
	776, 746, 783, 747, 774, 805, 244, 771, 858, 821,
	873, 300, 241, 753, 777, 359, 793, 193, 840, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 880, 304, 827, 0, 409, 330, 0,
	0, 0, 807, 862, 815, 852, 802, 839, 761, 826,
	875, 789, 835, 876, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 785, 832, 870, 786, 834, 239, 285,
	246, 238, 428, 881, 861, 750, 814, 869, 0, 0,
	888, 872, 809, 0, 837, 0, 887, 745, 829, 0,
	748, 752, 883, 865, 780, 249, 0, 0, 0, 0,
	0, 0, 0, 806, 816, 849, 800, 0, 0, 0,
	0, 0, 0, 0, 778, 0, 825, 0, 0, 0,
	757, 749, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 804, 0, 0, 0, 760, 0, 779,
	850, 0, 743, 268, 754, 331, 231, 0, 854, 864,
	801, 462, 868, 799, 798, 844, 758, 860, 792, 299,
	756, 293, 188, 205, 0, 790, 341, 382, 388, 859,
	775, 784, 229, 782, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 824, 842, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 755, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 770, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 855, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 742, 736, 735, 294, 306, 847, 886,
	354, 387, 219, 448, 408, 765, 769, 763, 764, 819,
	820, 766, 877, 878, 879, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 851, 759, 0, 767, 768, 0,
	857, 866, 867, 498, 316, 399, 445, 823, 187, 202,
	302, 882, 376, 261, 476, 456, 452, 744, 762, 236,
	773, 781, 0, 787, 795, 796, 808, 810, 811, 812,
	813, 327, 830, 831, 833, 841, 843, 846, 848, 853,
	863, 885, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 822, 828, 313, 254, 273, 284, 836,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 818,
	845, 309, 425, 426, 280, 871, 856, 424, 0, 803,
	874, 772, 791, 884, 794, 797, 838, 751, 817, 345,
	788, 0, 776, 746, 783, 747, 774, 805, 244, 771,
	858, 821, 873, 300, 241, 753, 777, 359, 793, 193,
	840, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 880, 304, 827, 0, 409,
	330, 0, 0, 0, 807, 862, 815, 852, 802, 839,
	761, 826, 875, 789, 835, 876, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 785, 832, 870, 786, 834,
	239, 285, 246, 238, 428, 881, 861, 750, 814, 869,
	0, 0, 888, 872, 809, 0, 837, 0, 887, 745,
	829, 0, 748, 752, 883, 865, 780, 249, 0, 0,
	0, 0, 0, 0, 0, 806, 816, 849, 800, 0,
	0, 0, 0, 0, 0, 0, 778, 0, 825, 0,
	0, 0, 757, 749, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 804, 0, 0, 0, 760,
	0, 779, 850, 0, 743, 268, 754, 331, 231, 0,
	854, 864, 801, 462, 868, 799, 798, 844, 758, 860,
	792, 299, 756, 293, 188, 205, 0, 790, 341, 382,
	388, 859, 775, 784, 229, 782, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 824, 842, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 1252, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 755, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	770, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 855, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 742, 736, 735, 294, 306,
	847, 886, 354, 387, 219, 448, 408, 765, 769, 763,
	764, 819, 820, 766, 877, 878, 879, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 851, 759, 0, 767,
	768, 0, 857, 866, 867, 498, 316, 399, 445, 823,
	187, 202, 302, 882, 376, 261, 476, 456, 452, 744,
	762, 236, 773, 781, 0, 787, 795, 796, 808, 810,
	811, 812, 813, 327, 830, 831, 833, 841, 843, 846,
	848, 853, 863, 885, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 822, 828, 313, 254, 273,
	284, 836, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 818, 845, 309, 425, 426, 280, 871, 856, 424,
	0, 803, 874, 772, 791, 884, 794, 797, 838, 751,
	817, 345, 788, 0, 776, 746, 783, 747, 774, 805,
	244, 771, 858, 821, 873, 300, 241, 753, 777, 359,
	793, 193, 840, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 880, 304, 827,
	0, 409, 330, 0, 0, 0, 807, 862, 815, 852,
	802, 839, 761, 826, 875, 789, 835, 876, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 785, 832, 870,
	786, 834, 239, 285, 246, 238, 428, 881, 861, 750,
	814, 869, 0, 0, 888, 872, 809, 0, 837, 0,
	887, 745, 829, 0, 748, 752, 883, 865, 780, 249,
	0, 0, 0, 0, 0, 0, 0, 806, 816, 849,
	800, 0, 0, 0, 0, 0, 0, 0, 778, 0,
	825, 0, 0, 0, 757, 749, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 804, 0, 0,
	0, 760, 0, 779, 850, 0, 743, 268, 754, 331,
	231, 0, 854, 864, 801, 462, 868, 799, 798, 844,
	758, 860, 792, 299, 756, 293, 188, 205, 0, 790,
	341, 382, 388, 859, 775, 784, 229, 782, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 824, 842,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 733, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	755, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 770, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 855, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 742, 736, 735,
	294, 306, 847, 886, 354, 387, 219, 448, 408, 765,
	769, 763, 764, 819, 820, 766, 877, 878, 879, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 851, 759,
	0, 767, 768, 0, 857, 866, 867, 498, 316, 399,
	445, 823, 187, 202, 302, 882, 376, 261, 476, 456,
	452, 744, 762, 236, 773, 781, 0, 787, 795, 796,
	808, 810, 811, 812, 813, 327, 830, 831, 833, 841,
	843, 846, 848, 853, 863, 885, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 822, 828, 313,
	254, 273, 284, 836, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 818, 845, 309, 425, 426, 280, 424,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 1607, 0, 579, 0, 0, 0,
	244, 584, 0, 0, 0, 300, 241, 0, 1608, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 591, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 586, 587,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 87, 0, 0, 184, 185,
	186, 628, 635, 636, 637, 638, 639, 629, 631, 0,
	0, 217, 630, 224, 602, 604, 603, 600, 633, 640,
	641, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 562, 576, 0, 590, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 573, 574, 722, 0, 0, 0,
	613, 0, 575, 0, 0, 583, 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, 585, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 612, 0, 0, 462, 0, 0, 610, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 619,
	611, 595, 597, 620, 621, 592, 593, 596, 622, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 614, 582,
	581, 0, 588, 589, 0, 598, 599, 601, 605, 606,
	607, 580, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	579, 0, 0, 0, 244, 584, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 591, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 586, 587, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 87,
	0, 0, 184, 185, 186, 628, 635, 636, 637, 638,
	639, 629, 631, 0, 0, 217, 630, 224, 602, 604,
	603, 600, 633, 640, 641, 0, 239, 285, 246, 238,
	428, 0, 0, 1603, 1604, 1605, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 562, 576, 0, 590,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 573, 574,
	0, 0, 0, 0, 613, 0, 575, 0, 0, 583,
	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, 585, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 612, 0, 0, 462,
	0, 0, 610, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 619, 611, 595, 597, 620, 621, 592,
	593, 596, 622, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 614, 582, 581, 0, 588, 589, 0, 598,
	599, 601, 605, 606, 607, 580, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 579, 0, 0, 0, 244, 584,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 591, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 586, 587, 0, 0,
	0, 0, 0, 0, 1690, 0, 287, 226, 192, 342,
	410, 259, 0, 87, 0, 0, 184, 185, 186, 628,
	635, 636, 637, 638, 639, 629, 631, 0, 0, 217,
	630, 224, 602, 604, 603, 600, 633, 640, 641, 1691,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	562, 576, 0, 590, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 573, 574, 0, 0, 0, 0, 613, 0,
	575, 0, 0, 583, 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, 585, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	612, 0, 0, 462, 0, 0, 610, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 619, 611, 595,
	597, 620, 621, 592, 593, 596, 622, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 614, 582, 581, 0,
	588, 589, 0, 598, 599, 601, 605, 606, 607, 580,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 78, 424, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 0, 579,
	0, 0, 0, 244, 584, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	591, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 586, 587, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 87, 0,
	0, 184, 185, 186, 628, 635, 636, 637, 638, 639,
	629, 631, 0, 0, 217, 630, 224, 602, 604, 603,
	600, 633, 640, 641, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 562, 576, 0, 590, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 573, 574, 0,
	0, 0, 0, 613, 0, 575, 0, 0, 583, 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,
	585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 612, 0, 0, 462, 0,
	0, 610, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 0, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 619, 611, 595, 597, 620, 621, 592, 593,
	596, 622, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 614, 582, 581, 0, 588, 589, 0, 598, 599,
	601, 605, 606, 607, 580, 187, 202, 302, 86, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 579, 0, 0, 0, 244, 584, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 591, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 586, 587, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 87, 0, 0, 184, 185, 186, 628, 635,
	636, 637, 638, 639, 629, 631, 0, 0, 217, 630,
	224, 602, 604, 603, 600, 633, 640, 641, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 0, 0, 0, 0, 0, 0, 562,
	576, 0, 590, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 573, 574, 0, 0, 0, 0, 613, 0, 575,
	0, 0, 583, 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, 585, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 612,
	0, 0, 462, 0, 0, 610, 0, 0, 0, 0,
	299, 0, 293, 188, 205, 0, 0, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 2535, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 619, 611, 595, 597,
	620, 621, 592, 593, 596, 622, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 614, 582, 581, 0, 588,
	589, 0, 598, 599, 601, 605, 606, 607, 580, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	424, 0, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 345, 0, 0, 0, 0, 579, 0, 0,
	0, 244, 584, 0, 0, 0, 300, 241, 0, 0,
	359, 0, 193, 0, 400, 228, 310, 307, 431, 255,
	247, 243, 227, 281, 317, 357, 418, 351, 591, 304,
	0, 0, 409, 330, 0, 0, 0, 0, 0, 586,
	587, 0, 0, 0, 0, 0, 0, 0, 0, 287,
	226, 192, 342, 410, 259, 0, 87, 0, 1220, 184,
	185, 186, 628, 635, 636, 637, 638, 639, 629, 631,
	0, 0, 217, 630, 224, 602, 604, 603, 600, 633,
	640, 641, 0, 239, 285, 246, 238, 428, 0, 0,
	0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
	0, 0, 0, 562, 576, 0, 590, 0, 0, 0,
	249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 573, 574, 0, 0, 0,
	0, 613, 0, 575, 0, 0, 583, 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, 585, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
	331, 231, 0, 612, 0, 0, 462, 0, 0, 610,
	0, 0, 0, 0, 299, 0, 293, 188, 205, 0,
	0, 341, 382, 388, 0, 0, 0, 229, 0, 386,
	355, 446, 213, 257, 379, 360, 384, 367, 260, 0,
	0, 385, 305, 433, 374, 443, 463, 464, 237, 335,
	453, 422, 459, 475, 206, 234, 349, 415, 449, 406,
	328, 429, 430, 292, 405, 266, 191, 303, 469, 204,
	394, 221, 211, 197, 417, 441, 218, 397, 0, 0,
	477, 199, 439, 414, 324, 289, 290, 198, 0, 378,
	242, 264, 232, 344, 436, 437, 230, 478, 208, 458,
	201, 0, 457, 337, 432, 440, 325, 315, 200, 438,
	323, 314, 295, 253, 275, 372, 308, 373, 276, 333,
	332, 334, 194, 450, 0, 195, 0, 411, 451, 479,
	214, 215, 216, 0, 252, 256, 263, 265, 271, 272,
	279, 301, 348, 371, 369, 375, 0, 427, 444, 454,
	461, 467, 468, 470, 471, 472, 473, 474, 336, 278,
	407, 294, 306, 0, 0, 354, 387, 219, 448, 408,
	619, 611, 595, 597, 620, 621, 592, 593, 596, 622,
	480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
	490, 491, 492, 493, 494, 495, 496, 497, 0, 614,
	582, 581, 0, 588, 589, 0, 598, 599, 601, 605,
	606, 607, 580, 187, 202, 302, 0, 376, 261, 476,
	456, 452, 0, 0, 236, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 189, 190, 203,
	212, 222, 235, 250, 258, 269, 274, 277, 282, 283,
	286, 291, 312, 318, 319, 320, 321, 338, 339, 340,
	343, 346, 347, 350, 352, 353, 356, 363, 364, 365,
	366, 368, 370, 377, 381, 389, 390, 391, 392, 393,
	395, 396, 401, 402, 403, 404, 412, 416, 434, 435,
	447, 460, 465, 270, 442, 466, 0, 311, 0, 0,
	313, 254, 273, 284, 0, 455, 413, 207, 383, 262,
	196, 225, 210, 233, 248, 251, 288, 322, 329, 358,
	362, 267, 245, 223, 380, 220, 398, 419, 420, 421,
	423, 326, 240, 361, 424, 0, 309, 425, 426, 280,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 579, 0, 0, 0, 244, 584, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 591, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 586, 587, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	87, 0, 0, 184, 185, 186, 628, 635, 636, 637,
	638, 639, 629, 631, 0, 0, 217, 630, 224, 602,
	604, 603, 600, 633, 640, 641, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 562, 576, 0,
	590, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 573,
	574, 722, 0, 0, 0, 613, 0, 575, 0, 0,
	583, 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, 585, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 612, 0, 0,
	462, 0, 0, 610, 0, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 619, 611, 595, 597, 620, 621,
	592, 593, 596, 622, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 614, 582, 581, 0, 588, 589, 0,
	598, 599, 601, 605, 606, 607, 580, 187, 202, 302,
	0, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 579, 0, 0, 0, 244,
	584, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 591, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 586, 587, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 87, 0, 0, 184, 185, 186,
	628, 635, 636, 637, 638, 639, 629, 631, 0, 0,
	217, 630, 224, 602, 604, 603, 600, 633, 640, 641,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 562, 576, 0, 590, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 573, 574, 0, 0, 0, 0, 613,
	0, 575, 0, 0, 583, 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, 585, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 612, 0, 0, 462, 0, 0, 610, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 619, 611,
	595, 597, 620, 621, 592, 593, 596, 622, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 614, 582, 581,
	0, 588, 589, 0, 598, 599, 601, 605, 606, 607,
	580, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 424, 0, 309, 425, 426, 280, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 0, 579,
	0, 0, 0, 244, 584, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	591, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 586, 587, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 87, 0,
	0, 184, 185, 186, 628, 635, 636, 637, 638, 639,
	629, 631, 0, 0, 217, 630, 224, 602, 604, 603,
	600, 633, 640, 641, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 0, 576, 0, 590, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 573, 574, 0,
	0, 0, 0, 613, 0, 575, 0, 0, 583, 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,
	585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 612, 0, 0, 462, 0,
	0, 610, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 0, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 619, 611, 595, 597, 620, 621, 592, 593,
	596, 622, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 614, 582, 581, 0, 588, 589, 0, 598, 599,
	601, 605, 606, 607, 580, 187, 202, 302, 0, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 0, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 0, 0, 0, 184, 185, 186, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
	224, 296, 298, 297, 0, 0, 0, 0, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 936, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 0,
	0, 935, 462, 0, 0, 0, 0, 0, 932, 933,
	299, 896, 293, 188, 205, 926, 930, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 0, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 498, 316, 399, 445, 0, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	78, 424, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 87, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 86, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 1678, 0, 0, 1677, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 1240, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 1242, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 1100, 0, 1101, 1102, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 1182, 1185, 0, 0, 0, 0, 1181, 1184, 0,
	0, 217, 1180, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 78, 424, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 0, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	87, 0, 1220, 184, 185, 186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 217, 0, 224, 296,
	298, 297, 0, 0, 0, 0, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 0, 0, 0,
	462, 0, 0, 0, 0, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 498, 316, 399, 445, 0, 187, 202, 302,
	86, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 0, 0, 0, 0, 244,
	0, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 0, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 87, 0, 0, 184, 185, 186,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	217, 0, 224, 296, 298, 297, 0, 0, 0, 0,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 498, 316, 399, 445,
	0, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 1678,
	0, 0, 1677, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 424, 0, 309, 425, 426, 280, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 1629, 0,
	0, 0, 0, 244, 0, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	0, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 0, 0,
	0, 184, 185, 186, 0, 1412, 0, 0, 0, 0,
	0, 0, 0, 0, 217, 0, 224, 296, 298, 297,
	0, 0, 0, 0, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 0, 0, 0, 462, 0,
	0, 0, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 1627, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	498, 316, 399, 445, 0, 187, 202, 302, 0, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 0, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 0, 0, 0, 184, 185, 186, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
	224, 296, 298, 297, 0, 0, 0, 0, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 890, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 0,
	0, 0, 462, 0, 0, 0, 0, 0, 0, 0,
	299, 896, 293, 188, 205, 894, 0, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 0, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 498, 316, 399, 445, 0, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	424, 0, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 345, 0, 0, 0, 1629, 0, 0, 0,
	0, 244, 0, 0, 0, 0, 300, 241, 0, 0,
	359, 0, 193, 0, 400, 228, 310, 307, 431, 255,
	247, 243, 227, 281, 317, 357, 418, 351, 0, 304,
	0, 0, 409, 330, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
	226, 192, 342, 410, 259, 0, 0, 0, 0, 184,
	185, 186, 0, 1412, 0, 0, 0, 0, 0, 0,
	0, 0, 217, 0, 224, 296, 298, 297, 0, 0,
	0, 0, 0, 239, 285, 246, 238, 428, 0, 0,
	0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
	331, 231, 0, 0, 0, 0, 462, 0, 0, 0,
	0, 0, 0, 0, 299, 0, 293, 188, 205, 0,
	0, 341, 382, 388, 0, 0, 0, 229, 0, 386,
	355, 446, 213, 257, 379, 360, 384, 367, 260, 0,
	0, 385, 305, 433, 374, 443, 463, 464, 237, 335,
	453, 422, 459, 475, 206, 234, 349, 415, 449, 406,
	328, 429, 430, 292, 405, 266, 191, 303, 469, 204,
	394, 221, 211, 197, 417, 441, 218, 397, 0, 0,
	477, 199, 439, 414, 324, 289, 290, 198, 0, 378,
	242, 264, 232, 344, 436, 437, 230, 478, 208, 458,
	201, 0, 457, 337, 432, 440, 325, 315, 200, 438,
	323, 314, 295, 253, 275, 372, 308, 373, 276, 333,
	332, 334, 194, 450, 0, 195, 0, 411, 451, 479,
	214, 215, 216, 0, 252, 256, 263, 265, 271, 272,
	279, 301, 348, 371, 369, 375, 0, 427, 444, 454,
	461, 467, 468, 470, 471, 472, 473, 474, 336, 278,
	407, 294, 306, 0, 0, 354, 387, 219, 448, 408,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
	490, 491, 492, 493, 494, 495, 496, 497, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 498, 316,
	399, 445, 0, 187, 202, 302, 0, 376, 261, 476,
	456, 452, 0, 0, 236, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 189, 190, 203,
	212, 222, 235, 250, 258, 269, 274, 277, 282, 283,
	286, 291, 312, 318, 319, 320, 321, 338, 339, 340,
	343, 346, 347, 350, 352, 353, 356, 363, 364, 365,
	366, 368, 370, 377, 381, 389, 390, 391, 392, 393,
	395, 396, 401, 402, 403, 404, 412, 416, 434, 435,
	447, 460, 465, 270, 442, 466, 0, 311, 0, 0,
	313, 254, 273, 284, 0, 455, 413, 207, 383, 262,
	196, 225, 210, 233, 248, 251, 288, 322, 329, 358,
	362, 267, 245, 223, 380, 220, 398, 419, 420, 421,
	423, 326, 240, 361, 424, 0, 309, 425, 426, 280,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 0, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	0, 0, 1220, 184, 185, 186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 217, 0, 224, 296,
	298, 297, 0, 0, 0, 0, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 0, 0, 0,
	462, 0, 0, 0, 2503, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 498, 316, 399, 445, 0, 187, 202, 302,
	0, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 0, 0, 0, 0, 244,
	0, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 0, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 0, 0, 0, 184, 185, 186,
	0, 1923, 0, 0, 0, 0, 0, 0, 0, 0,
	217, 0, 224, 296, 298, 297, 0, 0, 0, 0,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1924, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 498, 316, 399, 445,
	0, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 424, 0, 309, 425, 426, 280, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 0, 0,
	0, 0, 0, 244, 0, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	0, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 0, 0,
	0, 184, 185, 186, 0, 0, 0, 1908, 0, 0,
	0, 1909, 0, 0, 217, 0, 224, 296, 298, 297,
	0, 0, 0, 0, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 0, 0, 0, 462, 0,
	0, 0, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 0, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	498, 316, 399, 445, 0, 187, 202, 302, 0, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 0, 0, 0, 0, 244, 1263, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 0, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 0, 0, 0, 184, 185, 186, 0, 1262,
	0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
	224, 296, 298, 297, 0, 0, 0, 0, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 0,
	0, 0, 462, 0, 0, 0, 0, 0, 0, 0,
	299, 0, 293, 188, 205, 0, 0, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 0, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 498, 316, 399, 445, 0, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	424, 0, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 345, 0, 0, 0, 0, 0, 0, 0,
	0, 244, 0, 0, 0, 0, 300, 241, 0, 0,
	359, 0, 193, 0, 400, 228, 310, 307, 431, 255,
	247, 243, 227, 281, 317, 357, 418, 351, 0, 304,
	0, 0, 409, 330, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
	226, 192, 342, 410, 259, 0, 0, 0, 0, 184,
	185, 186, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 217, 0, 224, 296, 298, 297, 0, 0,
	0, 0, 0, 239, 285, 246, 238, 428, 0, 0,
	0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
	331, 231, 0, 0, 0, 0, 462, 0, 0, 0,
	2575, 0, 0, 0, 299, 0, 293, 188, 205, 0,
	0, 341, 382, 388, 0, 0, 0, 229, 0, 386,
	355, 446, 213, 257, 379, 360, 384, 367, 260, 0,
	0, 385, 305, 433, 374, 443, 463, 464, 237, 335,
	453, 422, 459, 475, 206, 234, 349, 415, 449, 406,
	328, 429, 430, 292, 405, 266, 191, 303, 469, 204,
	394, 221, 211, 197, 417, 441, 218, 397, 0, 0,
	477, 199, 439, 414, 324, 289, 290, 198, 0, 378,
	242, 264, 232, 344, 436, 437, 230, 478, 208, 458,
	201, 0, 457, 337, 432, 440, 325, 315, 200, 438,
	323, 314, 295, 253, 275, 372, 308, 373, 276, 333,
	332, 334, 194, 450, 0, 195, 0, 411, 451, 479,
	214, 215, 216, 0, 252, 256, 263, 265, 271, 272,
	279, 301, 348, 371, 369, 375, 0, 427, 444, 454,
	461, 467, 468, 470, 471, 472, 473, 474, 336, 278,
	407, 294, 306, 0, 0, 354, 387, 219, 448, 408,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
	490, 491, 492, 493, 494, 495, 496, 497, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 498, 316,
	399, 445, 0, 187, 202, 302, 0, 376, 261, 476,
	456, 452, 0, 0, 236, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 189, 190, 203,
	212, 222, 235, 250, 258, 269, 274, 277, 282, 283,
	286, 291, 312, 318, 319, 320, 321, 338, 339, 340,
	343, 346, 347, 350, 352, 353, 356, 363, 364, 365,
	366, 368, 370, 377, 381, 389, 390, 391, 392, 393,
	395, 396, 401, 402, 403, 404, 412, 416, 434, 435,
	447, 460, 465, 270, 442, 466, 0, 311, 0, 0,
	313, 254, 273, 284, 0, 455, 413, 207, 383, 262,
	196, 225, 210, 233, 248, 251, 288, 322, 329, 358,
	362, 267, 245, 223, 380, 220, 398, 419, 420, 421,
	423, 326, 240, 361, 424, 0, 309, 425, 426, 280,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 0, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	0, 0, 0, 184, 185, 186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 217, 0, 224, 296,
	298, 297, 0, 0, 0, 0, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 0, 0, 0,
	462, 0, 0, 0, 2503, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 498, 316, 399, 445, 0, 187, 202, 302,
	0, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 0, 0, 0, 0, 244,
	0, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 0, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 0, 0, 0, 184, 185, 186,
	0, 1412, 0, 0, 0, 0, 0, 0, 0, 0,
	217, 0, 224, 296, 298, 297, 0, 0, 0, 0,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 498, 316, 399, 445,
	0, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 0, 424, 309, 425, 426, 280, 1679, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	1242, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 0, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1130, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 1504, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 1384, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 1382, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 1380, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 1378, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 0, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 1376,
	0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 1372, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 1370, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 1368, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 1345, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 0, 0, 0, 0, 1247, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 1077, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 704, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 554, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	553, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 0, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 501, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 2580, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 2299, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 1904, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 0, 0, 309, 425, 426, 280,
}

var yyPact = [...]int{
	5051, -1000, -387, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 1761, 1767, -1000, -1000,
	-1000, -1000, 1878, -1000, 623, 1510, -1000, 1758, 2937, -1000,
	35932, 415, -1000, 34824, 414, 3585, 35932, -1000, 136, -1000,
	129, 35932, 132, 34270, -1000, -1000, -301, 15431, 1704, 12,
	10, 35932, -1000, -1000, -1000, -1000, 1840, 1536, -1000, 282,
	-1000, -1000, -1000, -1000, -1000, -1000, 33716, -1000, -1000, -1000,
	1768, 1749, 1880, 547, 1695, -1000, 1807, 1536, -1000, 15431,
	1829, 1795, 14877, -1000, 14877, 379, -1000, -1000, 10992, -1000,
	-1000, 20419, 35932, 35932, 238, -1000, 1758, -1000, -1000, 289,
	-1000, 269, 1452, -1000, 1447, -1000, 744, 756, 297, 410,
	400, 293, 292, 288, 286, 285, 284, 275, 274, 303,
	-1000, 589, 589, -193, -194, 1325, 370, 370, 370, 393,
	1728, 1727, -1000, 587, -1000, 589, 589, 287, 589, 589,
	589, 589, 242, 236, 589, 589, 589, 589, 589, 589,
	589, 589, 589, 589, 589, 589, 589, 589, 589, 299,
	1758, 228, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 35932,
	121, 35932, -1000, 482, 35932, 721, 721, 36, 721, 721,
	721, 721, 134, 552, 7, -1000, 128, 217, 104, 224,
	706, 127, 123, -1000, -1000, 213, 706, 1089, 561, 98,
	-1000, 721, 8744, 8744, 8744, -1000, 1738, -1000, -1000, -1000,
	-1000, -1000, -1000, 1111, -1000, 392, -1000, -1000, -1000, -1000,
	35932, 33162, 283, 615, -1000, -1000, -1000, 30, -1000, -1000,
	1293, 678, 15431, 1050, -1000, 1457, 531, -1000, -1000, -1000,
	-1000, -1000, 437, 15985, 15985, 15985, 15985, -1000, -1000, 1336,
	1336, 1336, 1336, 15985, 1336, 15985, 1336, 1336, 1336, 1336,
	15431, 1336, 1336, 1336, -1000, 1336, 1336, 1336, 1336, 1336,
	1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 480,
	1336, 1336, 1336, 1336, 1336, -1000, -1000, -1000, -1000, 1336,
	1336, 1336, 1336, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 18202, -1000, 13215, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, 35932, -1000, 1336, 139, 35932, 35932,
	294, 1807, 1536, -1000, 1840, 1818, 282, -1000, 1663, 1308,
	1335, 1136, 1536, 1428, 35932, -1000, 1468, -1000, -1000, -1000,
	1645, 1004, 1088, -1000, -1000, -1000, -1000, 1055, 15431, -1000,
	-1000, 1865, -1000, 17648, 478, 778, 1864, 32608, -1000, 379,
	379, 1433, 10430, -29, -1000, -1000, -1000, 612, 23189, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 1738, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1416,
	35932, -1000, -1000, 4686, 1067, -1000, 1509, -1000, 1396, -1000,
	1482, 1521, 413, 1067, 408, 407, 406, -1000, -85, -1000,
	-1000, -1000, -1000, -1000, 589, 589, -1000, 295, 1827, 2937,
	3698, -1000, -1000, -1000, 32054, 1508, 1067, -1000, 1507, -1000,
	674, 477, 495, 495, 1067, -1000, -1000, 35932, 1067, 671,
	665, 35932, 35932, -1000, 31500, -1000, 30946, 30392, 948, 35932,
	29838, 29284, 28730, 28176, 27622, -1000, 1569, -1000, 1501, -1000,
	-1000, -1000, 35932, 35932, 35932, 291, -1000, -1000, 35932, 1067,
	-1000, -1000, 946, 944, 589, 589, 941, 1086, 1085, 1074,
	589, 589, 936, 1073, 24851, 215, 930, 923, 912, 933,
	1072, 195, 915, 879, 908, 35932, 1505, 35932, -1000, 202,
	603, 362, 600, 1758, 1700, 1432, 389, 412, 1067, 360,
	360, 35932, -1000, 9306, -1000, -1000, 1068, 15431, -1000, 708,
	706, 706, -1000, -1000, -1000, -1000, -1000, -1000, 721, 35932,
	708, -1000, -1000, -1000, 706, 721, 35932, 721, 721, 721,
	721, 706, 706, 706, 721, 35932, 35932, 35932, 35932, 35932,
	35932, 35932, 35932, 35932, 8744, 8744, 8744, 561, 721, -308,
	-1000, 1045, -1000, 1597, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 130, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -101, 1430, 27068, -1000, -309, -310, -311,
	-312, -1000, -1000, -1000, -313, -319, -1000, -1000, -1000, 15431,
	15431, 15431, 15431, -1000, 781, 15985, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 914, 700, 15985, 15985, 15985, 15985, 15985,
	15985, 15985, 15985, 15985, 15985, 15985, 15985, 15985, 15985, 15985,
	819, 1039, 1037, 531, 531, 531, 531, -1000, 14877, 15431,
	15431, 531, -1000, 1067, 26514, 14877, 14877, 15431, 1742, 620,
	678, 35932, -1000, 1136, -1000, -1000, -1000, 849, -1000, 35932,
	35932, 33, 15431, 15431, 15431, 15431, 15431, 15431, 12106, 11552,
	9306, 14877, 14877, 14877, 14877, 14877, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 475, 1253, 1300,
	1391, -1000, 1429, -1000, -168, 19865, 15431, 1036, 1863, 1546,
	35932, -1000, -1000, -1000, 1807, -1000, 1807, 1253, 1651, 1648,
	14877, -1000, -1000, 1651, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 1238, -1000, 35932, 1428, 1792, 35932, 1643, 1031,
	257, -1000, 15431, 15431, 1426, -1000, 903, 35932, -1000, -1000,
	25960, -1000, -1000, 8182, -1000, 35932, 272, 35932, -1000, 19311,
	25406, 9868, -29, -1000, 9868, 1388, -1000, -19, -12, 12660,
	529, -1000, -1000, -1000, 1325, 16539, 1229, 529, 71, -1000,
	-1000, -1000, 1482, -1000, 1482, 1482, 1482, 1482, 257, 257,
	257, 257, -1000, -1000, -1000, -1000, -1000, 1503, 1502, -1000,
	1482, 1482, 1482, 1482, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 1496, 1496, 1496, 1491, 1491, 351, -1000, 15431, 198,
	35932, 1764, 907, 202, 380, 1542, 1067, 1067, 1067, 380,
	-1000, 1254, 1219, -1000, -376, 1425, -1000, -1000, 1826, -1000,
	-1000, 664, 713, 705, 675, 35932, 174, 264, -1000, 334,
	-1000, 35932, 1067, 662, 495, 1067, -1000, 1067, -1000, -1000,
	-1000, -1000, -1000, 1067, 1410, -1000, 1427, 760, 688, 731,
	687, 1410, -1000, -1000, -115, 1410, -1000, 1410, -1000, 1410,
	-1000, 1410, -1000, 1410, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 607, 35932, 174, 819, -1000, 388, -1000, -1000,
	819, 819, -1000, -1000, -1000, -1000, 1026, 1023, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -367, 35932, -1000, 185, 593,
	254, 290, 249, 35932, 177, 1797, 231, 233, 35932, 35932,
	360, 1594, 35932, 1775, 35932, -1000, -1000, -1000, -1000, -1000,
	678, 35932, -1000, -1000, 721, 721, -1000, -1000, 35932, 721,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 721, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 35932, 35932, -1000, -1000,
	-1000, -1000, -1000, 133, -24, 279, -1000, -1000, -1000, -1000,
	-1000, 1804, -1000, 678, 649, 641, -1000, -1000, -1000, 763,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 914, 15985, 15985,
	15985, 2138, 382, 1995, 1370, 1277, 1014, 1014, 802, 802,
	533, 533, 533, 533, 533, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 1327, -1000, 1128, 989, 1136, -1000, 1327, 1327,
	996, 14877, -1000, -1000, 630, -1000, 15431, 1136, -1000, -1000,
	1136, 1403, 1401, 1862, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 1107, 1152, 1152, 1152, 1152,
	1152, 15431, 1135, -1000, -1000, -1000, 1136, 14877, 14877, 1399,
	1336, 470, -1000, 1327, 1136, 1136, 1327, 1327, 9306, 1136,
	-1000, 35932, -1000, -295, -1000, -48, 530, 1336, -1000, 24851,
	1136, 1293, -1000, 973, -1000, 37040, -1000, -1000, -1000, -1000,
	-1000, 22635, 1235, 1651, -1000, -1000, 1336, 1367, -1000, -1000,
	257, 29, 22081, -1000, -1000, 678, 678, 15431, -1000, -1000,
	-1000, -1000, -1000, -1000, 464, 1844, 329, 1336, -1000, 1431,
	1561, -1000, -1000, -1000, 1790, 17094, -1000, 1336, 1336, 35932,
	1466, 1465, -1000, 453, -1000, 1388, -29, -41, -1000, -1000,
	-1000, -1000, 678, -1000, 1202, 273, 296, -1000, 332, -1000,
	-1000, -1000, -1000, 1716, 46, -1000, -1000, -1000, 257, 257,
	-1000, -1000, -1000, -1000, -1000, -1000, 1021, 1021, -1000, -1000,
	-1000, -1000, -1000, 902, -1000, -1000, -1000, 900, -1000, -1000,
	1208, 1563, 198, -1000, -1000, 589, 1016, 1719, 35932, -1000,
	-1000, 1198, 185, 35932, 627, 1583, -1000, 1542, 1542, 1542,
	35932, -1000, -1000, -1000, -1000, -369, 54, 320, -1000, -1000,
	-1000, 377, 35932, 1363, -1000, 171, -1000, 1190, 1665, 35932,
	-1000, 1361, 1495, 1067, 1067, -1000, -1000, -1000, 35932, 1336,
	-1000, -1000, -1000, -1000, 411, 1755, 1753, 174, 171, 529,
	1067, -1000, -1000, -1000, -1000, -1000, -370, 1331, 398, 176,
	250, 35932, 35932, 35932, 35932, 35932, 441, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 230, 387, -1000, 35932, 35932,
	490, -1000, -1000, -1000, 706, -1000, -1000, 706, -1000, -1000,
	-1000, -1000, -1000, 1735, 35932, -34, -344, -1000, -340, -1000,
	-1000, -1000, -1000, 2011, 378, 1995, 15985, 15985, 14877, -103,
	452, 452, 819, -1000, -1000, -1000, 15431, 15431, 1279, 604,
	-1000, 15431, 749, -1000, -1000, 15431, 15431, 15431, 1136, 255,
	-1000, -1000, -1000, -1000, -1000, 1861, -1000, 15431, -1000, 1327,
	1327, 14877, 9306, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 530, -1000, 495, 495, 495, 35932, -1000,
	-1000, -1000, -1000, -1000, -1000, 1386, 1809, -1000, 1662, 1654,
	1842, 1844, -1000, 19311, 1651, -1000, -1000, 35932, -290, -1000,
	1697, 1673, -1000, -1000, -1000, -1000, 7620, 1807, 15431, 1582,
	35932, 1336, -1000, 18757, 35932, 35932, 19311, 19311, 19311, 19311,
	19311, -1000, 1634, 1630, -1000, 1613, 1610, 1625, 35932, -1000,
	1324, 1136, 1818, 17094, 282, 15431, 20973, 1193, 19311, -1000,
	-1000, 19311, 35932, 7058, -1000, -1000, -43, -17, -1000, -1000,
	-1000, -1000, 1325, -1000, -1000, 548, 1787, 1713, -1000, -1000,
	-1000, -1000, 1322, -1000, 1320, 1341, 1315, 112, -1000, 1519,
	1734, 589, 589, -1000, 899, -1000, 1067, -1000, -1000, 395,
	-1000, 1773, 35932, 1581, 1580, 1578, -1000, -382, 894, 1494,
	1459, 15431, 1493, 1825, 1304, 35932, -1000, -1000, 35932, -1000,
	-1000, 365, -1000, 198, 35932, -1000, -1000, -1000, 264, 35932,
	-1000, 5900, 171, -1000, -1000, -1000, -1000, -1000, -1000, 35932,
	197, -1000, 1492, 1098, -1000, -1000, 1525, -1000, -1000, -1000,
	-1000, 142, 240, -1000, 35932, 462, 1563, 35932, -1000, -1000,
	-1000, 721, 721, -1000, -1000, 1731, -1000, 1067, 15985, 15985,
	-1000, 531, -1000, 1336, 1136, 1482, 1482, -1000, 1482, 1491,
	-1000, 1482, 120, 1482, 114, 1482, -1000, -1000, 1136, 1136,
	974, 890, -94, -1000, 678, 15431, 1156, 1020, 1152, -1000,
	1481, 1480, 15431, 1152, -1000, -1000, 1136, -1000, -1000, 1802,
	1802, 1802, 1306, 36486, 35932, -1000, -1000, -1000, -1000, 1844,
	1841, 1333, -1000, -1000, 29, 358, -1000, 1676, 1673, -1000,
	1824, 1693, 1822, -1000, -1000, -1000, 678, -1000, 1743, 1418,
	-1000, 588, 1281, -1000, -1000, 14323, 1313, 1652, 450, 1306,
	1454, 1561, 1576, 1573, 1595, -1000, -1000, -1000, -1000, 1626,
	-1000, 1571, -1000, -1000, 1468, -1000, -1000, 1300, 1136, 895,
	272, 19311, 1379, 1379, -1000, 447, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 759, 5777, 1876, -1000, 1011, -1000, 1116,
	-1000, 660, 658, -1000, 35932, 1479, -1000, 257, 1009, 257,
	876, -1000, 872, -1000, -1000, -231, -1000, -1000, 1474, 1567,
	-1000, -1000, 35932, -1000, -1000, 35932, 35932, 35932, 1478, 1821,
	-1000, 15431, 1477, 575, 1175, 35932, 35932, -1000, -1000, 252,
	1336, -1000, 1302, 1288, -1000, -151, -1000, 15431, -1000, -1000,
	-1000, 844, 844, -1000, 1468, -1000, -1000, -1000, 1160, -1000,
	-1000, -130, 35932, 35932, 35932, 35932, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 531, 15985, -1000, -1000, 257,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15431,
	-1000, 15431, -1000, 1807, 992, 678, 15431, 15431, -1000, 857,
	854, 1152, -1000, -1000, 1336, 1694, 1336, 1336, 20973, -1000,
	-1000, 1841, 1837, 1820, 1681, 1684, 1684, 1676, -1000, 1816,
	1815, -1000, 988, 1814, 985, 656, -1000, 35932, 15431, 1336,
	-1000, 247, 35932, 1336, 35932, -1000, 1831, -1000, -1000, 15431,
	1476, -1000, 15431, -1000, -1000, -1000, -1000, -1000, -1000, 4227,
	1844, 1379, -1000, -1000, 540, -1000, 15431, -1000, -1000, -1000,
	434, -1000, -1000, -1000, -1000, -1000, 1475, 15431, -1000, -1000,
	-1000, 1158, 1154, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 1468, -1000, -1000, -1000, -1000, 264, -378, 1168, 35932,
	848, -1000, 1286, 1304, 445, -1000, 15431, 317, -1000, 264,
	-1000, -196, -197, 1152, -1000, -1000, 1778, -1000, -1000, 9306,
	-1000, -1000, 1463, 1527, -1000, 157, -1000, 1152, 1152, 1136,
	-1000, 1152, 1152, 1147, 1138, -1000, 21527, -1000, 1813, 1810,
	24297, 24297, 530, 1837, -1000, 15431, 15431, 1670, 789, -1000,
	-1000, -1000, -1000, 980, 978, -1000, 972, -1000, 1874, -1000,
	678, -1000, 1336, -1000, 440, 1281, -1000, 1807, 678, 35932,
	678, 32, 954, 1831, -1000, 1152, -1000, 1336, 1336, 1336,
	1336, 1336, 1336, 1336, 35932, 1071, -1000, -1000, 1777, 1284,
	48, -1000, 1275, -1000, -1000, -1000, -1000, 13769, -1000, -1000,
	-1000, -1000, -1000, -1000, 282, 1296, -1000, 560, 35932, 35932,
	1136, 251, -144, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	1265, -1000, -1000, -1000, -1000, -1000, 1265, 1265, -1000, -1000,
	678, 1293, -1000, 746, -1000, -1000, -1000, -1000, -1000, 35932,
	1281, 35932, -1000, 1263, 1136, 1336, 1807, -1000, 1233, -1000,
	282, -1000, 1278, 1459, -1000, 1136, -129, 9306, 6496, 1226,
	-1000, -1000, 1641, -113, -152, 23743, -1000, -1000, -1000, -1000,
	-1000, 1241, -1000, -1000, 20973, 35378, -1000, 1566, 911, -129,
	15431, 904, -1000, -1000, -44, -1000, -1000, -1000, -1000, -1000,
	1525, -1000, 1640, -1000, -1000, -1000, -1000, 1214, -1000, 4510,
	-257, 1559, -1000, 1848, -1000, -1000, -1000, 716, 953, -1000,
	-1000, -1000, -1000, 1008, 35932, 341, -1000, -1000, -130, -133,
	-1000, 35378, -253, 529, 4227, -1000, -1000, 1872, 565, 565,
	-1000, -1000, -384, 1142, 200, -1000, -147, -1000, -1000, 1772,
	32, -1000, -1000, -1000, 333, 897, -1000, -1000, 821, -384,
	-1000, -190, -263, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 4227, 175, 175, -1000, 1549, -1000, -1000, 4227, -1000,
	1483, -248, -1000, -322, -1000, -1000,
}

var yyPgo = [...]int{
	0, 2208, 2207, 17, 5, 2206, 39, 79, 176, 16,
	179, 93, 2205, 2203, 2202, 2201, 2200, 2197, 2196, 203,
	199, 198, 2194, 2193, 2192, 2191, 2188, 2187, 2185, 2184,
	2183, 2182, 196, 151, 168, 2181, 2180, 2179, 99, 156,
	74, 76, 175, 2174, 2173, 70, 2171, 2156, 2155, 161,
	155, 683, 2142, 153, 104, 32, 2141, 2139, 2136, 2134,
	2133, 2130, 2128, 2125, 2121, 2120, 2119, 2118, 2117, 2116,
	2113, 2112, 279, 2111, 2110, 20, 2109, 67, 2108, 2107,
	2106, 2105, 118, 2103, 2102, 2101, 2100, 2098, 2096, 135,
	2095, 2094, 2092, 2091, 171, 2090, 2089, 140, 100, 97,
	2088, 2087, 86, 167, 2086, 105, 2085, 2084, 2080, 141,
	2079, 404, 2077, 53, 49, 2076, 89, 65, 46, 43,
	2, 2075, 2074, 52, 68, 2073, 88, 58, 2072, 91,
	85, 2070, 2069, 9, 6, 2067, 4, 2064, 3, 55,
	2063, 2057, 106, 2056, 2052, 2051, 81, 2050, 2049, 3720,
	2048, 82, 123, 92, 66, 2047, 35, 84, 2046, 2043,
	2041, 2039, 2037, 41, 2032, 2019, 2018, 130, 27, 2015,
	21, 38, 44, 120, 2014, 25, 71, 2012, 128, 129,
	2011, 45, 29, 28, 2010, 26, 115, 142, 37, 83,
	116, 2009, 2008, 47, 61, 2007, 2005, 2004, 2002, 2000,
	1998, 60, 1995, 42, 1992, 184, 1991, 13, 1990, 33,
	34, 1988, 50, 136, 59, 24, 1987, 166, 1984, 48,
	162, 122, 150, 1983, 1981, 1980, 152, 232, 1979, 1978,
	69, 164, 132, 138, 1977, 236, 1976, 1974, 78, 1624,
	2365, 15, 148, 1969, 1968, 3293, 131, 127, 18, 1967,
	98, 1966, 1958, 1955, 169, 174, 94, 881, 96, 1953,
	14, 1952, 1951, 1950, 1945, 1944, 1943, 165, 170, 102,
	8, 160, 63, 1936, 1933, 1932, 110, 77, 1931, 147,
	144, 108, 163, 1930, 149, 133, 126, 1929, 90, 1928,
	1924, 1922, 1921, 80, 1920, 1919, 1917, 1916, 145, 134,
	107, 75, 1912, 73, 101, 139, 143, 36, 1911, 30,
	1910, 1909, 157, 19, 1908, 11, 0, 1907, 12, 158,
	234, 146, 1906, 1905, 7, 1904, 10, 1903, 1902, 125,
	1897, 1896, 1895, 23, 31, 22, 1, 1894, 1893, 3973,
	831, 111, 1891, 177,
}

type yySymType struct {
	union             any
	empty             struct{}
	LengthScaleOption LengthScaleOption
	tableName         TableName
	tableIdent        TableIdent
	str               string
	strs              []string
	vindexParam       VindexParam
	colIdent          ColIdent
	joinCondition     *JoinCondition
	collateAndCharset CollateAndCharset
	columnType        ColumnType
	yys               int
}

func (st *yySymType) JSONTableExprUnion() *JSONTableExpr {
	v, _ := st.union.(*JSONTableExpr)
	return v
}

func (st *yySymType) ReferenceActionUnion() ReferenceAction {
	v, _ := st.union.(ReferenceAction)
	return v
}

func (st *yySymType) aliasedTableNameUnion() *AliasedTableExpr {
	v, _ := st.union.(*AliasedTableExpr)
	return v
}

func (st *yySymType) alterDatabaseUnion() *AlterDatabase {
	v, _ := st.union.(*AlterDatabase)
	return v
}

func (st *yySymType) alterMigrationUnion() *AlterMigration {
	v, _ := st.union.(*AlterMigration)
	return v
}

func (st *yySymType) alterOptionUnion() AlterOption {
	v, _ := st.union.(AlterOption)
	return v
}

func (st *yySymType) alterOptionsUnion() []AlterOption {
	v, _ := st.union.([]AlterOption)
	return v
}

func (st *yySymType) alterTableUnion() *AlterTable {
	v, _ := st.union.(*AlterTable)
	return v
}

func (st *yySymType) boolValUnion() BoolVal {
	v, _ := st.union.(BoolVal)
	return v
}

func (st *yySymType) booleanUnion() bool {
	v, _ := st.union.(bool)
	return v
}

func (st *yySymType) characteristicUnion() Characteristic {
	v, _ := st.union.(Characteristic)
	return v
}

func (st *yySymType) characteristicsUnion() []Characteristic {
	v, _ := st.union.([]Characteristic)
	return v
}

func (st *yySymType) colKeyOptUnion() ColumnKeyOption {
	v, _ := st.union.(ColumnKeyOption)
	return v
}

func (st *yySymType) colNameUnion() *ColName {
	v, _ := st.union.(*ColName)
	return v
}

func (st *yySymType) colTupleUnion() ColTuple {
	v, _ := st.union.(ColTuple)
	return v
}

func (st *yySymType) collateAndCharsetsUnion() []CollateAndCharset {
	v, _ := st.union.([]CollateAndCharset)
	return v
}

func (st *yySymType) columnDefinitionUnion() *ColumnDefinition {
	v, _ := st.union.(*ColumnDefinition)
	return v
}

func (st *yySymType) columnDefinitionsUnion() []*ColumnDefinition {
	v, _ := st.union.([]*ColumnDefinition)
	return v
}

func (st *yySymType) columnStorageUnion() ColumnStorage {
	v, _ := st.union.(ColumnStorage)
	return v
}

func (st *yySymType) columnTypeOptionsUnion() *ColumnTypeOptions {
	v, _ := st.union.(*ColumnTypeOptions)
	return v
}

func (st *yySymType) columnsUnion() Columns {
	v, _ := st.union.(Columns)
	return v
}

func (st *yySymType) comparisonExprOperatorUnion() ComparisonExprOperator {
	v, _ := st.union.(ComparisonExprOperator)
	return v
}

func (st *yySymType) constraintDefinitionUnion() *ConstraintDefinition {
	v, _ := st.union.(*ConstraintDefinition)
	return v
}

func (st *yySymType) constraintInfoUnion() ConstraintInfo {
	v, _ := st.union.(ConstraintInfo)
	return v
}

func (st *yySymType) convertTypeUnion() *ConvertType {
	v, _ := st.union.(*ConvertType)
	return v
}

func (st *yySymType) createDatabaseUnion() *CreateDatabase {
	v, _ := st.union.(*CreateDatabase)
	return v
}

func (st *yySymType) createTableUnion() *CreateTable {
	v, _ := st.union.(*CreateTable)
	return v
}

func (st *yySymType) cteUnion() *CommonTableExpr {
	v, _ := st.union.(*CommonTableExpr)
	return v
}

func (st *yySymType) ctesUnion() []*CommonTableExpr {
	v, _ := st.union.([]*CommonTableExpr)
	return v
}

func (st *yySymType) definerUnion() *Definer {
	v, _ := st.union.(*Definer)
	return v
}

func (st *yySymType) derivedTableUnion() *DerivedTable {
	v, _ := st.union.(*DerivedTable)
	return v
}

func (st *yySymType) explainTypeUnion() ExplainType {
	v, _ := st.union.(ExplainType)
	return v
}

func (st *yySymType) exprUnion() Expr {
	v, _ := st.union.(Expr)
	return v
}

func (st *yySymType) exprsUnion() Exprs {
	v, _ := st.union.(Exprs)
	return v
}

func (st *yySymType) ignoreUnion() Ignore {
	v, _ := st.union.(Ignore)
	return v
}

func (st *yySymType) indexColumnUnion() *IndexColumn {
	v, _ := st.union.(*IndexColumn)
	return v
}

func (st *yySymType) indexColumnsUnion() []*IndexColumn {
	v, _ := st.union.([]*IndexColumn)
	return v
}

func (st *yySymType) indexDefinitionUnion() *IndexDefinition {
	v, _ := st.union.(*IndexDefinition)
	return v
}

func (st *yySymType) indexHintUnion() *IndexHint {
	v, _ := st.union.(*IndexHint)
	return v
}

func (st *yySymType) indexHintForTypeUnion() IndexHintForType {
	v, _ := st.union.(IndexHintForType)
	return v
}

func (st *yySymType) indexHintsUnion() IndexHints {
	v, _ := st.union.(IndexHints)
	return v
}

func (st *yySymType) indexInfoUnion() *IndexInfo {
	v, _ := st.union.(*IndexInfo)
	return v
}

func (st *yySymType) indexOptionUnion() *IndexOption {
	v, _ := st.union.(*IndexOption)
	return v
}

func (st *yySymType) indexOptionsUnion() []*IndexOption {
	v, _ := st.union.([]*IndexOption)
	return v
}

func (st *yySymType) insUnion() *Insert {
	v, _ := st.union.(*Insert)
	return v
}

func (st *yySymType) insertActionUnion() InsertAction {
	v, _ := st.union.(InsertAction)
	return v
}

func (st *yySymType) integerUnion() int {
	v, _ := st.union.(int)
	return v
}

func (st *yySymType) intervalTypeUnion() IntervalTypes {
	v, _ := st.union.(IntervalTypes)
	return v
}

func (st *yySymType) isExprOperatorUnion() IsExprOperator {
	v, _ := st.union.(IsExprOperator)
	return v
}

func (st *yySymType) isolationLevelUnion() IsolationLevel {
	v, _ := st.union.(IsolationLevel)
	return v
}

func (st *yySymType) joinTypeUnion() JoinType {
	v, _ := st.union.(JoinType)
	return v
}

func (st *yySymType) jtColumnDefinitionUnion() *JtColumnDefinition {
	v, _ := st.union.(*JtColumnDefinition)
	return v
}

func (st *yySymType) jtColumnListUnion() []*JtColumnDefinition {
	v, _ := st.union.([]*JtColumnDefinition)
	return v
}

func (st *yySymType) jtOnResponseUnion() *JtOnResponse {
	v, _ := st.union.(*JtOnResponse)
	return v
}

func (st *yySymType) limitUnion() *Limit {
	v, _ := st.union.(*Limit)
	return v
}

func (st *yySymType) literalUnion() *Literal {
	v, _ := st.union.(*Literal)
	return v
}

func (st *yySymType) lockUnion() Lock {
	v, _ := st.union.(Lock)
	return v
}

func (st *yySymType) lockTypeUnion() LockType {
	v, _ := st.union.(LockType)
	return v
}

func (st *yySymType) matchExprOptionUnion() MatchExprOption {
	v, _ := st.union.(MatchExprOption)
	return v
}

func (st *yySymType) optLikeUnion() *OptLike {
	v, _ := st.union.(*OptLike)
	return v
}

func (st *yySymType) optValUnion() Expr {
	v, _ := st.union.(Expr)
	return v
}

func (st *yySymType) orderUnion() *Order {
	v, _ := st.union.(*Order)
	return v
}

func (st *yySymType) orderByUnion() OrderBy {
	v, _ := st.union.(OrderBy)
	return v
}

func (st *yySymType) orderDirectionUnion() OrderDirection {
	v, _ := st.union.(OrderDirection)
	return v
}

func (st *yySymType) partDefUnion() *PartitionDefinition {
	v, _ := st.union.(*PartitionDefinition)
	return v
}

func (st *yySymType) partDefsUnion() []*PartitionDefinition {
	v, _ := st.union.([]*PartitionDefinition)
	return v
}

func (st *yySymType) partSpecUnion() *PartitionSpec {
	v, _ := st.union.(*PartitionSpec)
	return v
}

func (st *yySymType) partSpecsUnion() []*PartitionSpec {
	v, _ := st.union.([]*PartitionSpec)
	return v
}

func (st *yySymType) partitionByTypeUnion() PartitionByType {
	v, _ := st.union.(PartitionByType)
	return v
}

func (st *yySymType) partitionOptionUnion() *PartitionOption {
	v, _ := st.union.(*PartitionOption)
	return v
}

func (st *yySymType) partitionValueRangeUnion() *PartitionValueRange {
	v, _ := st.union.(*PartitionValueRange)
	return v
}

func (st *yySymType) partitionsUnion() Partitions {
	v, _ := st.union.(Partitions)
	return v
}

func (st *yySymType) referenceDefinitionUnion() *ReferenceDefinition {
	v, _ := st.union.(*ReferenceDefinition)
	return v
}

func (st *yySymType) renameTablePairsUnion() []*RenameTablePair {
	v, _ := st.union.([]*RenameTablePair)
	return v
}

func (st *yySymType) revertMigrationUnion() *RevertMigration {
	v, _ := st.union.(*RevertMigration)
	return v
}

func (st *yySymType) scopeUnion() Scope {
	v, _ := st.union.(Scope)
	return v
}

func (st *yySymType) selStmtUnion() SelectStatement {
	v, _ := st.union.(SelectStatement)
	return v
}

func (st *yySymType) selectExprUnion() SelectExpr {
	v, _ := st.union.(SelectExpr)
	return v
}

func (st *yySymType) selectExprsUnion() SelectExprs {
	v, _ := st.union.(SelectExprs)
	return v
}

func (st *yySymType) selectIntoUnion() *SelectInto {
	v, _ := st.union.(*SelectInto)
	return v
}

func (st *yySymType) setExprUnion() *SetExpr {
	v, _ := st.union.(*SetExpr)
	return v
}

func (st *yySymType) setExprsUnion() SetExprs {
	v, _ := st.union.(SetExprs)
	return v
}

func (st *yySymType) showFilterUnion() *ShowFilter {
	v, _ := st.union.(*ShowFilter)
	return v
}

func (st *yySymType) statementUnion() Statement {
	v, _ := st.union.(Statement)
	return v
}

func (st *yySymType) subPartitionUnion() *SubPartition {
	v, _ := st.union.(*SubPartition)
	return v
}

func (st *yySymType) subqueryUnion() *Subquery {
	v, _ := st.union.(*Subquery)
	return v
}

func (st *yySymType) tableAndLockTypeUnion() *TableAndLockType {
	v, _ := st.union.(*TableAndLockType)
	return v
}

func (st *yySymType) tableAndLockTypesUnion() TableAndLockTypes {
	v, _ := st.union.(TableAndLockTypes)
	return v
}

func (st *yySymType) tableExprUnion() TableExpr {
	v, _ := st.union.(TableExpr)
	return v
}

func (st *yySymType) tableExprsUnion() TableExprs {
	v, _ := st.union.(TableExprs)
	return v
}

func (st *yySymType) tableNamesUnion() TableNames {
	v, _ := st.union.(TableNames)
	return v
}

func (st *yySymType) tableOptionUnion() *TableOption {
	v, _ := st.union.(*TableOption)
	return v
}

func (st *yySymType) tableOptionsUnion() TableOptions {
	v, _ := st.union.(TableOptions)
	return v
}

func (st *yySymType) tableSpecUnion() *TableSpec {
	v, _ := st.union.(*TableSpec)
	return v
}

func (st *yySymType) trimTypeUnion() TrimType {
	v, _ := st.union.(TrimType)
	return v
}

func (st *yySymType) updateExprUnion() *UpdateExpr {
	v, _ := st.union.(*UpdateExpr)
	return v
}

func (st *yySymType) updateExprsUnion() UpdateExprs {
	v, _ := st.union.(UpdateExprs)
	return v
}

func (st *yySymType) valTupleUnion() ValTuple {
	v, _ := st.union.(ValTuple)
	return v
}

func (st *yySymType) valuesUnion() Values {
	v, _ := st.union.(Values)
	return v
}

func (st *yySymType) vindexParamsUnion() []VindexParam {
	v, _ := st.union.([]VindexParam)
	return v
}

func (st *yySymType) whenUnion() *When {
	v, _ := st.union.(*When)
	return v
}

func (st *yySymType) whensUnion() []*When {
	v, _ := st.union.([]*When)
	return v
}

func (st *yySymType) withUnion() *With {
	v, _ := st.union.(*With)
	return v
}

var yyR1 = [...]int{
	0, 337, 338, 338, 5, 5, 5, 5, 5, 5,
	5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
	5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
	5, 5, 5, 5, 5, 5, 5, 5, 316, 316,
	316, 319, 319, 30, 67, 32, 32, 31, 31, 34,
	34, 33, 6, 6, 6, 7, 7, 7, 7, 7,
	7, 7, 7, 8, 8, 8, 8, 8, 9, 9,
	9, 9, 11, 11, 11, 11, 11, 17, 18, 10,
	10, 19, 19, 80, 80, 20, 21, 21, 21, 21,
	341, 341, 144, 144, 142, 142, 143, 143, 212, 212,
	22, 23, 23, 222, 222, 221, 221, 221, 223, 223,
	223, 223, 257, 257, 24, 24, 24, 24, 24, 95,
	95, 318, 318, 317, 315, 315, 314, 314, 313, 36,
	37, 46, 46, 46, 46, 47, 48, 320, 320, 289,
	52, 52, 51, 51, 51, 51, 53, 53, 50, 50,
	49, 49, 291, 291, 278, 278, 290, 290, 290, 290,
	290, 290, 290, 277, 277, 106, 106, 191, 191, 191,
	191, 191, 191, 191, 191, 191, 191, 191, 332, 332,
	192, 192, 192, 192, 192, 192, 115, 115, 123, 123,
	123, 123, 113, 113, 114, 112, 112, 112, 118, 118,
	118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 122, 122, 119, 119, 119, 120, 120, 120, 333,
	333, 333, 333, 260, 260, 260, 260, 263, 263, 261,
	261, 261, 261, 261, 261, 261, 261, 261, 262, 262,
	262, 262, 262, 264, 264, 264, 264, 264, 265, 265,
	265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
	265, 265, 265, 266, 266, 266, 266, 266, 266, 266,
	266, 276, 276, 267, 267, 271, 271, 272, 272, 272,
	273, 273, 273, 274, 274, 269, 269, 269, 269, 269,
	269, 270, 270, 270, 279, 303, 303, 302, 302, 300,
	300, 300, 300, 288, 288, 297, 297, 297, 297, 297,
	287, 287, 283, 283, 283, 284, 284, 285, 285, 282,
	282, 286, 286, 299, 299, 298, 280, 280, 281, 281,
	305, 334, 334, 334, 334, 335, 335, 306, 325, 326,
	324, 324, 324, 324, 324, 77, 77, 77, 234, 234,
	234, 295, 295, 294, 294, 294, 296, 296, 293, 293,
	293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
	293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
	293, 293, 293, 293, 293, 293, 229, 229, 229, 323,
	323, 323, 323, 323, 323, 322, 322, 322, 292, 292,
	292, 321, 321, 54, 54, 176, 176, 43, 43, 43,
	43, 43, 43, 42, 42, 42, 38, 38, 38, 38,
	38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
	38, 38, 38, 38, 38, 38, 38, 38, 38, 44,
	44, 39, 39, 39, 39, 39, 39, 39, 39, 39,
	25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
	25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
	82, 82, 83, 83, 83, 83, 84, 84, 84, 308,
	308, 55, 55, 3, 3, 132, 134, 135, 135, 133,
	133, 133, 133, 133, 133, 57, 57, 56, 56, 137,
	136, 138, 138, 138, 1, 1, 2, 2, 4, 4,
	312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
	312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
	312, 312, 275, 275, 275, 307, 307, 309, 311, 311,
	311, 311, 310, 91, 91, 26, 35, 35, 27, 27,
	27, 27, 28, 28, 58, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 327, 327, 228, 228, 236, 236, 227,
	227, 250, 250, 250, 230, 230, 230, 231, 231, 331,
	331, 331, 60, 60, 60, 62, 62, 63, 64, 64,
	252, 252, 253, 253, 65, 66, 78, 78, 78, 78,
	78, 78, 81, 81, 81, 13, 13, 13, 13, 74,
	74, 74, 12, 12, 61, 61, 68, 328, 328, 329,
	330, 330, 330, 330, 69, 71, 29, 29, 29, 29,
	29, 29, 101, 101, 89, 89, 89, 89, 89, 89,
	89, 89, 89, 89, 89, 89, 96, 96, 96, 90,
	90, 342, 72, 73, 73, 94, 94, 94, 87, 87,
	87, 93, 93, 93, 14, 14, 15, 211, 211, 16,
	16, 98, 98, 100, 100, 100, 100, 100, 102, 102,
	102, 102, 102, 102, 102, 97, 97, 99, 99, 99,
	99, 243, 243, 243, 242, 242, 126, 126, 128, 127,
	127, 129, 129, 130, 130, 130, 130, 174, 174, 152,
	152, 209, 209, 207, 207, 208, 208, 210, 210, 210,
	210, 213, 213, 131, 131, 131, 131, 139, 139, 140,
	140, 141, 141, 251, 251, 248, 248, 248, 247, 247,
	145, 145, 145, 147, 146, 146, 146, 146, 148, 148,
	150, 150, 149, 149, 151, 156, 156, 155, 155, 153,
	153, 153, 153, 154, 154, 154, 154, 157, 157, 111,
	111, 111, 111, 111, 111, 121, 121, 121, 121, 124,
	124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
	116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
	116, 116, 116, 117, 117, 117, 117, 117, 117, 117,
	117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
	117, 117, 117, 117, 117, 117, 79, 79, 79, 225,
	225, 158, 158, 166, 166, 166, 166, 159, 159, 159,
	159, 159, 159, 159, 167, 167, 167, 173, 168, 168,
	164, 164, 164, 164, 162, 162, 162, 162, 162, 162,
	162, 162, 162, 162, 163, 163, 163, 163, 163, 163,
	163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
	163, 86, 86, 86, 86, 86, 86, 86, 86, 86,
	86, 86, 86, 85, 85, 85, 85, 85, 85, 85,
	85, 85, 343, 343, 268, 268, 268, 165, 165, 165,
	165, 165, 92, 92, 92, 92, 92, 256, 256, 256,
	259, 259, 259, 258, 258, 258, 258, 258, 258, 258,
	258, 258, 258, 258, 258, 258, 258, 258, 179, 179,
	88, 88, 177, 177, 178, 180, 180, 175, 175, 175,
	161, 161, 161, 181, 181, 182, 182, 183, 183, 185,
	184, 184, 186, 187, 187, 187, 188, 188, 189, 189,
	189, 45, 45, 45, 45, 45, 40, 40, 40, 40,
	41, 41, 41, 103, 103, 103, 103, 105, 105, 104,
	104, 75, 75, 76, 76, 76, 109, 109, 110, 110,
	110, 107, 107, 108, 108, 205, 205, 190, 190, 190,
	197, 197, 197, 193, 193, 195, 195, 195, 196, 196,
	196, 194, 202, 202, 204, 204, 203, 203, 199, 199,
	200, 200, 201, 201, 201, 198, 198, 160, 160, 160,
	160, 160, 206, 206, 206, 206, 214, 214, 170, 170,
	172, 172, 171, 125, 215, 215, 219, 216, 216, 220,
	220, 220, 220, 220, 217, 217, 218, 218, 244, 244,
	244, 224, 224, 235, 235, 232, 232, 233, 233, 226,
	226, 237, 237, 237, 70, 169, 169, 304, 304, 301,
	240, 240, 241, 241, 245, 245, 249, 249, 246, 246,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 339, 340, 254,
	255, 255, 255,
}

var yyR2 = [...]int{
	0, 2, 0, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
	1, 0, 1, 2, 3, 2, 3, 0, 1, 3,
	1, 4, 3, 3, 4, 3, 2, 3, 4, 3,
	4, 2, 7, 1, 3, 3, 3, 3, 1, 2,
	1, 1, 3, 2, 3, 3, 2, 5, 7, 9,
	8, 7, 8, 1, 1, 10, 11, 9, 8, 8,
	1, 1, 1, 3, 1, 3, 1, 3, 0, 4,
	3, 5, 4, 1, 3, 3, 2, 2, 2, 2,
	2, 1, 1, 1, 2, 2, 6, 12, 2, 0,
	2, 0, 2, 1, 0, 2, 1, 3, 3, 6,
	4, 7, 8, 8, 8, 6, 3, 1, 1, 5,
	0, 1, 1, 1, 2, 2, 0, 1, 4, 4,
	4, 4, 2, 4, 1, 3, 1, 1, 3, 4,
	3, 3, 3, 5, 10, 0, 2, 0, 2, 3,
	5, 3, 4, 2, 3, 2, 3, 3, 1, 1,
	0, 2, 2, 3, 3, 2, 1, 1, 2, 2,
	2, 2, 1, 1, 1, 1, 2, 2, 1, 1,
	1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
	1, 2, 1, 3, 1, 1, 1, 2, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
	2, 2, 2, 1, 2, 2, 2, 2, 3, 3,
	2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
	1, 5, 5, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 3, 0, 3, 0, 5, 0, 3, 5,
	0, 1, 1, 0, 1, 0, 2, 2, 2, 1,
	1, 0, 2, 2, 5, 0, 1, 1, 2, 1,
	3, 2, 3, 0, 1, 4, 3, 3, 4, 2,
	0, 2, 1, 1, 1, 1, 1, 0, 1, 1,
	1, 0, 1, 1, 3, 3, 3, 1, 3, 1,
	7, 5, 6, 6, 7, 0, 1, 5, 3, 3,
	1, 1, 2, 2, 2, 0, 1, 1, 0, 1,
	2, 0, 1, 1, 3, 2, 1, 2, 3, 3,
	4, 4, 3, 3, 3, 3, 4, 4, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 4, 5, 0, 2, 2, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 0, 1, 0, 1, 0, 2, 0, 1, 5,
	1, 3, 7, 1, 3, 3, 1, 2, 2, 2,
	5, 5, 5, 6, 8, 6, 5, 5, 2, 2,
	2, 2, 3, 3, 3, 4, 1, 3, 5, 1,
	3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
	3, 4, 4, 2, 11, 3, 6, 8, 6, 6,
	6, 13, 8, 6, 10, 5, 5, 5, 5, 5,
	0, 6, 5, 6, 4, 5, 0, 8, 9, 0,
	3, 0, 1, 0, 3, 8, 4, 1, 3, 3,
	6, 7, 7, 8, 4, 0, 1, 0, 1, 3,
	3, 1, 1, 2, 1, 1, 0, 2, 0, 2,
	5, 3, 7, 4, 4, 4, 4, 3, 3, 3,
	7, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 2, 0, 2, 2, 1, 3, 2, 0, 4,
	4, 3, 2, 1, 3, 3, 3, 5, 7, 7,
	6, 5, 3, 2, 3, 3, 3, 7, 3, 3,
	3, 3, 4, 7, 5, 2, 4, 4, 4, 4,
	4, 5, 5, 4, 4, 4, 4, 4, 4, 4,
	4, 4, 4, 4, 2, 4, 2, 4, 5, 4,
	4, 4, 4, 4, 3, 3, 3, 5, 2, 3,
	3, 3, 3, 1, 1, 0, 1, 0, 1, 1,
	1, 0, 2, 2, 0, 2, 2, 0, 2, 0,
	1, 1, 2, 1, 3, 1, 2, 1, 1, 5,
	0, 1, 0, 1, 2, 3, 0, 3, 3, 3,
	3, 1, 1, 1, 1, 1, 1, 1, 1, 0,
	1, 1, 3, 3, 2, 2, 3, 1, 3, 2,
	1, 2, 1, 2, 2, 4, 3, 3, 6, 4,
	7, 6, 1, 3, 2, 2, 2, 2, 1, 1,
	1, 3, 2, 1, 1, 1, 0, 1, 1, 0,
	3, 0, 2, 0, 2, 1, 2, 2, 0, 1,
	1, 0, 1, 1, 5, 5, 4, 0, 2, 4,
	4, 0, 1, 0, 1, 2, 3, 4, 1, 1,
	1, 1, 1, 1, 1, 1, 3, 1, 2, 3,
	5, 0, 1, 2, 1, 1, 0, 1, 2, 1,
	3, 1, 1, 1, 4, 3, 1, 3, 4, 3,
	7, 0, 3, 1, 3, 1, 3, 1, 1, 3,
	3, 1, 3, 4, 4, 4, 3, 2, 4, 0,
	1, 0, 2, 0, 1, 0, 1, 2, 1, 1,
	1, 2, 2, 1, 2, 3, 2, 3, 2, 2,
	2, 1, 1, 3, 3, 0, 1, 1, 2, 6,
	5, 6, 6, 0, 2, 3, 3, 0, 2, 3,
	3, 3, 2, 3, 1, 3, 4, 3, 1, 3,
	4, 5, 6, 3, 4, 5, 6, 3, 4, 1,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 1, 1, 1, 1, 1, 3, 1, 1,
	2, 2, 2, 2, 1, 1, 2, 9, 6, 6,
	6, 2, 2, 3, 3, 3, 1, 1, 1, 0,
	3, 1, 1, 1, 2, 1, 2, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
	4, 5, 5, 6, 4, 4, 8, 6, 8, 6,
	8, 5, 4, 2, 2, 1, 2, 2, 2, 8,
	8, 6, 5, 4, 4, 4, 4, 4, 7, 4,
	6, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 0, 2, 0, 2, 3, 4, 4, 4,
	4, 4, 0, 3, 4, 7, 3, 1, 1, 1,
	0, 5, 5, 2, 3, 1, 2, 2, 1, 2,
	1, 2, 2, 1, 2, 2, 1, 1, 0, 1,
	0, 2, 1, 2, 4, 0, 2, 1, 3, 5,
	1, 2, 2, 0, 3, 0, 2, 0, 1, 3,
	1, 3, 2, 0, 1, 1, 0, 1, 2, 4,
	4, 0, 2, 2, 1, 1, 3, 3, 3, 3,
	3, 3, 3, 0, 3, 3, 3, 0, 3, 1,
	1, 0, 4, 0, 1, 1, 0, 3, 1, 3,
	2, 1, 1, 0, 1, 2, 4, 9, 3, 5,
	0, 3, 3, 0, 1, 0, 2, 2, 0, 2,
	2, 2, 0, 2, 1, 2, 3, 3, 0, 2,
	1, 2, 3, 4, 3, 0, 1, 2, 1, 5,
	4, 4, 1, 3, 3, 5, 0, 5, 1, 3,
	1, 2, 3, 1, 1, 3, 3, 1, 3, 3,
	3, 3, 3, 2, 1, 2, 1, 1, 1, 1,
	1, 1, 1, 0, 1, 0, 2, 0, 3, 0,
	1, 0, 1, 1, 5, 0, 1, 0, 1, 2,
	1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 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,
	0, 1, 1,
}

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

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

var yyTok1 = [...]int{
	1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 131, 3, 3, 3, 157, 149, 3,
	83, 85, 154, 152, 84, 153, 206, 155, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 567,
	139, 138, 140, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 159, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 127, 3, 160,
}

var yyTok2 = [...]int{
	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, 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, 128, 129, 130, 132, 133, 134, 135, 136,
	137, 141, 142, 143, 144, 145, 146, 147, 148, 150,
	151, 156, 158, 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, 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,
}

var yyTok3 = [...]int{
	57600, 275, 57601, 276, 57602, 277, 57603, 278, 57604, 279,
	57605, 280, 57606, 281, 57607, 282, 57608, 283, 57609, 284,
	57610, 285, 57611, 286, 57612, 287, 57613, 288, 57614, 289,
	57615, 290, 57616, 291, 57617, 292, 57618, 293, 57619, 294,
	57620, 295, 57621, 296, 57622, 297, 57623, 298, 57624, 299,
	57625, 300, 57626, 301, 57627, 302, 57628, 303, 57629, 304,
	57630, 305, 57631, 306, 57632, 307, 57633, 308, 57634, 309,
	57635, 310, 57636, 311, 57637, 312, 57638, 313, 57639, 314,
	57640, 315, 57641, 316, 57642, 317, 57643, 318, 57644, 319,
	57645, 320, 57646, 321, 57647, 322, 57648, 323, 57649, 324,
	57650, 325, 57651, 326, 57652, 327, 57653, 328, 57654, 329,
	57655, 330, 57656, 331, 57657, 332, 57658, 333, 57659, 334,
	57660, 335, 57661, 336, 57662, 337, 57663, 338, 57664, 339,
	57665, 340, 57666, 341, 57667, 342, 57668, 343, 57669, 344,
	57670, 345, 57671, 346, 57672, 347, 57673, 348, 57674, 349,
	57675, 350, 57676, 351, 57677, 352, 57678, 353, 57679, 354,
	57680, 355, 57681, 356, 57682, 357, 57683, 358, 57684, 359,
	57685, 360, 57686, 361, 57687, 362, 57688, 363, 57689, 364,
	57690, 365, 57691, 366, 57692, 367, 57693, 368, 57694, 369,
	57695, 370, 57696, 371, 57697, 372, 57698, 373, 57699, 374,
	57700, 375, 57701, 376, 57702, 377, 57703, 378, 57704, 379,
	57705, 380, 57706, 381, 57707, 382, 57708, 383, 57709, 384,
	57710, 385, 57711, 386, 57712, 387, 57713, 388, 57714, 389,
	57715, 390, 57716, 391, 57717, 392, 57718, 393, 57719, 394,
	57720, 395, 57721, 396, 57722, 397, 57723, 398, 57724, 399,
	57725, 400, 57726, 401, 57727, 402, 57728, 403, 57729, 404,
	57730, 405, 57731, 406, 57732, 407, 57733, 408, 57734, 409,
	57735, 410, 57736, 411, 57737, 412, 57738, 413, 57739, 414,
	57740, 415, 57741, 416, 57742, 417, 57743, 418, 57744, 419,
	57745, 420, 57746, 421, 57747, 422, 57748, 423, 57749, 424,
	57750, 425, 57751, 426, 57752, 427, 57753, 428, 57754, 429,
	57755, 430, 57756, 431, 57757, 432, 57758, 433, 57759, 434,
	57760, 435, 57761, 436, 57762, 437, 57763, 438, 57764, 439,
	57765, 440, 57766, 441, 57767, 442, 57768, 443, 57769, 444,
	57770, 445, 57771, 446, 57772, 447, 57773, 448, 57774, 449,
	57775, 450, 57776, 451, 57777, 452, 57778, 453, 57779, 454,
	57780, 455, 57781, 456, 57782, 457, 57783, 458, 57784, 459,
	57785, 460, 57786, 461, 57787, 462, 57788, 463, 57789, 464,
	57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469,
	57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474,
	57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479,
	57805, 480, 57806, 481, 57807, 482, 57808, 483, 57809, 484,
	57810, 485, 57811, 486, 57812, 487, 57813, 488, 57814, 489,
	57815, 490, 57816, 491, 57817, 492, 57818, 493, 57819, 494,
	57820, 495, 57821, 496, 57822, 497, 57823, 498, 57824, 499,
	57825, 500, 57826, 501, 57827, 502, 57828, 503, 57829, 504,
	57830, 505, 57831, 506, 57832, 507, 57833, 508, 57834, 509,
	57835, 510, 57836, 511, 57837, 512, 57838, 513, 57839, 514,
	57840, 515, 57841, 516, 57842, 517, 57843, 518, 57844, 519,
	57845, 520, 57846, 521, 57847, 522, 57848, 523, 57849, 524,
	57850, 525, 57851, 526, 57852, 527, 57853, 528, 57854, 529,
	57855, 530, 57856, 531, 57857, 532, 57858, 533, 57859, 534,
	57860, 535, 57861, 536, 57862, 537, 57863, 538, 57864, 539,
	57865, 540, 57866, 541, 57867, 542, 57868, 543, 57869, 544,
	57870, 545, 57871, 546, 57872, 547, 57873, 548, 57874, 549,
	57875, 550, 57876, 551, 57877, 552, 57878, 553, 57879, 554,
	57880, 555, 57881, 556, 57882, 557, 57883, 558, 57884, 559,
	57885, 560, 57886, 561, 57887, 562, 57888, 563, 57889, 564,
	57890, 565, 57891, 566, 0,
}

var yyErrorMessages = [...]struct {
	state int
	token int
	msg   string
}{}

func yyIaddr(v any) __yyunsafe__.Pointer {
	type h struct {
		t __yyunsafe__.Pointer
		p __yyunsafe__.Pointer
	}
	return (*h)(__yyunsafe__.Pointer(&v)).p
}

var (
	yyDebug        = 0
	yyErrorVerbose = false
)

type yyLexer interface {
	Lex(lval *yySymType) int
	Error(s string)
}

type yyParser interface {
	Parse(yyLexer) int
	Lookahead() int
}

type yyParserImpl struct {
	lval  yySymType
	stack [yyInitialStackSize]yySymType
	char  int
}

func (p *yyParserImpl) Lookahead() int {
	return p.char
}

func yyNewParser() yyParser {
	return &yyParserImpl{}
}

const yyFlag = -1000

func yyTokname(c int) string {
	if c >= 1 && c-1 < len(yyToknames) {
		if yyToknames[c-1] != "" {
			return yyToknames[c-1]
		}
	}
	return __yyfmt__.Sprintf("tok-%v", c)
}

func yyStatname(s int) string {
	if s >= 0 && s < len(yyStatenames) {
		if yyStatenames[s] != "" {
			return yyStatenames[s]
		}
	}
	return __yyfmt__.Sprintf("state-%v", s)
}

func yyErrorMessage(state, lookAhead int) string {
	const TOKSTART = 4

	if !yyErrorVerbose {
		return "syntax error"
	}

	for _, e := range yyErrorMessages {
		if e.state == state && e.token == lookAhead {
			return "syntax error: " + e.msg
		}
	}

	res := "syntax error: unexpected " + yyTokname(lookAhead)

	expected := make([]int, 0, 4)

	base := yyPact[state]
	for tok := TOKSTART; tok-1 < len(yyToknames); tok++ {
		if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok {
			if len(expected) == cap(expected) {
				return res
			}
			expected = append(expected, tok)
		}
	}

	if yyDef[state] == -2 {
		i := 0
		for yyExca[i] != -1 || yyExca[i+1] != state {
			i += 2
		}

		for i += 2; yyExca[i] >= 0; i += 2 {
			tok := yyExca[i]
			if tok < TOKSTART || yyExca[i+1] == 0 {
				continue
			}
			if len(expected) == cap(expected) {
				return res
			}
			expected = append(expected, tok)
		}

		if yyExca[i+1] != 0 {
			return res
		}
	}

	for i, tok := range expected {
		if i == 0 {
			res += ", expecting "
		} else {
			res += " or "
		}
		res += yyTokname(tok)
	}
	return res
}

func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
	token = 0
	char = lex.Lex(lval)
	if char <= 0 {
		token = yyTok1[0]
		goto out
	}
	if char < len(yyTok1) {
		token = yyTok1[char]
		goto out
	}
	if char >= yyPrivate {
		if char < yyPrivate+len(yyTok2) {
			token = yyTok2[char-yyPrivate]
			goto out
		}
	}
	for i := 0; i < len(yyTok3); i += 2 {
		token = yyTok3[i+0]
		if token == char {
			token = yyTok3[i+1]
			goto out
		}
	}

out:
	if token == 0 {
		token = yyTok2[1] 
	}
	if yyDebug >= 3 {
		__yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
	}
	return char, token
}

func yyParse(yylex yyLexer) int {
	return yyNewParser().Parse(yylex)
}

func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
	var yyn int
	var yyVAL yySymType
	var yyDollar []yySymType
	_ = yyDollar 
	yyS := yyrcvr.stack[:]

	Nerrs := 0   
	Errflag := 0 
	yystate := 0
	yyrcvr.char = -1
	yytoken := -1 
	defer func() {

		yystate = -1
		yyrcvr.char = -1
		yytoken = -1
	}()
	yyp := -1
	goto yystack

ret0:
	return 0

ret1:
	return 1

yystack:

	if yyDebug >= 4 {
		__yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
	}

	yyp++
	if yyp >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyS[yyp] = yyVAL
	yyS[yyp].yys = yystate

yynewstate:
	yyn = yyPact[yystate]
	if yyn <= yyFlag {
		goto yydefault 
	}
	if yyrcvr.char < 0 {
		yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
	}
	yyn += yytoken
	if yyn < 0 || yyn >= yyLast {
		goto yydefault
	}
	yyn = yyAct[yyn]
	if yyChk[yyn] == yytoken { 
		yyrcvr.char = -1
		yytoken = -1
		yyVAL = yyrcvr.lval
		yystate = yyn
		if Errflag > 0 {
			Errflag--
		}
		goto yystack
	}

yydefault:

	yyn = yyDef[yystate]
	if yyn == -2 {
		if yyrcvr.char < 0 {
			yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
		}

		xi := 0
		for {
			if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate {
				break
			}
			xi += 2
		}
		for xi += 2; ; xi += 2 {
			yyn = yyExca[xi+0]
			if yyn < 0 || yyn == yytoken {
				break
			}
		}
		yyn = yyExca[xi+1]
		if yyn < 0 {
			goto ret0
		}
	}
	if yyn == 0 {

		switch Errflag {
		case 0: 
			yylex.Error(yyErrorMessage(yystate, yytoken))
			Nerrs++
			if yyDebug >= 1 {
				__yyfmt__.Printf("%s", yyStatname(yystate))
				__yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
			}
			fallthrough

		case 1, 2: 
			Errflag = 3

			for yyp >= 0 {
				yyn = yyPact[yyS[yyp].yys] + yyErrCode
				if yyn >= 0 && yyn < yyLast {
					yystate = yyAct[yyn] 
					if yyChk[yystate] == yyErrCode {
						goto yystack
					}
				}

				if yyDebug >= 2 {
					__yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
				}
				yyp--
			}

			goto ret1

		case 3: 
			if yyDebug >= 2 {
				__yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
			}
			if yytoken == yyEofCode {
				goto ret1
			}
			yyrcvr.char = -1
			yytoken = -1
			goto yynewstate 
		}
	}

	if yyDebug >= 2 {
		__yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
	}

	yynt := yyn
	yypt := yyp
	_ = yypt 

	yyp -= yyR2[yyn]

	if yyp+1 >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyVAL = yyS[yyp+1]

	yyn = yyR1[yyn]
	yyg := yyPgo[yyn]
	yyj := yyg + yyS[yyp].yys + 1

	if yyj >= yyLast {
		yystate = yyAct[yyg]
	} else {
		yystate = yyAct[yyj]
		if yyChk[yystate] != -yyn {
			yystate = yyAct[yyg]
		}
	}

	switch yynt {

	case 1:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			setParseTree(yylex, yyDollar[1].statementUnion())
		}
	case 2:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
		}
	case 3:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
		}
	case 4:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 37:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			setParseTree(yylex, nil)
		}
	case 38:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt)
		}
	case 39:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt)
		}
	case 40:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt)
		}
	case 41:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.colIdent = NewColIdentWithAt("", NoAt)
		}
	case 42:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 43:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &OtherAdmin{}
		}
		yyVAL.union = yyLOCAL
	case 44:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Load{}
		}
		yyVAL.union = yyLOCAL
	case 45:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *With

		{
			yyLOCAL = &With{ctes: yyDollar[2].ctesUnion(), Recursive: false}
		}
		yyVAL.union = yyLOCAL
	case 46:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *With

		{
			yyLOCAL = &With{ctes: yyDollar[3].ctesUnion(), Recursive: true}
		}
		yyVAL.union = yyLOCAL
	case 47:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *With

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 48:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *With

		{
			yyLOCAL = yyDollar[1].withUnion()
		}
		yyVAL.union = yyLOCAL
	case 49:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]*CommonTableExpr)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].cteUnion())
		}
	case 50:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*CommonTableExpr

		{
			yyLOCAL = []*CommonTableExpr{yyDollar[1].cteUnion()}
		}
		yyVAL.union = yyLOCAL
	case 51:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *CommonTableExpr

		{
			yyLOCAL = &CommonTableExpr{TableID: yyDollar[1].tableIdent, Columns: yyDollar[2].columnsUnion(), Subquery: yyDollar[4].subqueryUnion()}
		}
		yyVAL.union = yyLOCAL
	case 52:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 53:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 54:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL SelectStatement

		{
			setLockInSelect(yyDollar[2].selStmtUnion(), yyDollar[3].lockUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 55:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion())
			yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 56:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetLimit(yyDollar[2].limitUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 57:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion())
			yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 58:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
			yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion())
			yyDollar[2].selStmtUnion().SetLimit(yyDollar[4].limitUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 59:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
			yyDollar[2].selStmtUnion().SetLimit(yyDollar[3].limitUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 60:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
			yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion())
			yyDollar[2].selStmtUnion().SetLimit(yyDollar[4].limitUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 61:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
		}
	case 62:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} , nil, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil , nil , nil )
		}
		yyVAL.union = yyLOCAL
	case 63:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 64:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 65:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 66:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 67:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 68:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 69:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement

		{
			setLockInSelect(yyDollar[1].selStmtUnion(), yyDollar[2].lockUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 70:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 71:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 72:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 73:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 74:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion())
			yyDollar[1].selStmtUnion().SetLock(yyDollar[3].lockUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 75:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[3].selectIntoUnion())
			yyDollar[1].selStmtUnion().SetLock(yyDollar[2].lockUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 76:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 77:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName}
		}
		yyVAL.union = yyLOCAL
	case 78:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 79:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() , yyDollar[3].strs , yyDollar[5].selectIntoUnion() , yyDollar[6].tableExprsUnion() , NewWhere(WhereClause, yyDollar[7].exprUnion()), GroupBy(yyDollar[8].exprsUnion()), NewWhere(HavingClause, yyDollar[9].exprUnion()))
		}
		yyVAL.union = yyLOCAL
	case 80:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL SelectStatement

		{
			yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() , yyDollar[3].strs , nil, yyDollar[5].tableExprsUnion() , NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion()))
		}
		yyVAL.union = yyLOCAL
	case 81:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{

			ins := yyDollar[6].insUnion()
			ins.Action = yyDollar[1].insertActionUnion()
			ins.Comments = yyDollar[2].strs
			ins.Ignore = yyDollar[3].ignoreUnion()
			ins.Table = yyDollar[4].tableName
			ins.Partitions = yyDollar[5].partitionsUnion()
			ins.OnDup = OnDup(yyDollar[7].updateExprsUnion())
			yyLOCAL = ins
		}
		yyVAL.union = yyLOCAL
	case 82:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement

		{
			cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion()))
			vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion()))
			for _, updateList := range yyDollar[7].updateExprsUnion() {
				cols = append(cols, updateList.Name.Name)
				vals = append(vals, updateList.Expr)
			}
			yyLOCAL = &Insert{Action: yyDollar[1].insertActionUnion(), Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitionsUnion(), Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprsUnion())}
		}
		yyVAL.union = yyLOCAL
	case 83:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL InsertAction

		{
			yyLOCAL = InsertAct
		}
		yyVAL.union = yyLOCAL
	case 84:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL InsertAction

		{
			yyLOCAL = ReplaceAct
		}
		yyVAL.union = yyLOCAL
	case 85:
		yyDollar = yyS[yypt-10 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Update{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), TableExprs: yyDollar[5].tableExprsUnion(), Exprs: yyDollar[7].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion()), OrderBy: yyDollar[9].orderByUnion(), Limit: yyDollar[10].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 86:
		yyDollar = yyS[yypt-11 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[6].tableName, As: yyDollar[7].tableIdent}}, Partitions: yyDollar[8].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion()), OrderBy: yyDollar[10].orderByUnion(), Limit: yyDollar[11].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 87:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[6].tableNamesUnion(), TableExprs: yyDollar[8].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion())}
		}
		yyVAL.union = yyLOCAL
	case 88:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())}
		}
		yyVAL.union = yyLOCAL
	case 89:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())}
		}
		yyVAL.union = yyLOCAL
	case 90:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
		}
	case 91:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
		}
	case 92:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableNames

		{
			yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()}
		}
		yyVAL.union = yyLOCAL
	case 93:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*TableNames)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName())
		}
	case 94:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableNames

		{
			yyLOCAL = TableNames{yyDollar[1].tableName}
		}
		yyVAL.union = yyLOCAL
	case 95:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*TableNames)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableName)
		}
	case 96:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableNames

		{
			yyLOCAL = TableNames{yyDollar[1].tableName}
		}
		yyVAL.union = yyLOCAL
	case 97:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*TableNames)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableName)
		}
	case 98:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Partitions

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 99:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Partitions

		{
			yyLOCAL = yyDollar[3].partitionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 100:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 101:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 102:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope}
		}
		yyVAL.union = yyLOCAL
	case 103:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []Characteristic

		{
			yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()}
		}
		yyVAL.union = yyLOCAL
	case 104:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion())
		}
	case 105:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Characteristic

		{
			yyLOCAL = yyDollar[3].isolationLevelUnion()
		}
		yyVAL.union = yyLOCAL
	case 106:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Characteristic

		{
			yyLOCAL = ReadWrite
		}
		yyVAL.union = yyLOCAL
	case 107:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Characteristic

		{
			yyLOCAL = ReadOnly
		}
		yyVAL.union = yyLOCAL
	case 108:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsolationLevel

		{
			yyLOCAL = RepeatableRead
		}
		yyVAL.union = yyLOCAL
	case 109:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsolationLevel

		{
			yyLOCAL = ReadCommitted
		}
		yyVAL.union = yyLOCAL
	case 110:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsolationLevel

		{
			yyLOCAL = ReadUncommitted
		}
		yyVAL.union = yyLOCAL
	case 111:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IsolationLevel

		{
			yyLOCAL = Serializable
		}
		yyVAL.union = yyLOCAL
	case 112:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Scope

		{
			yyLOCAL = SessionScope
		}
		yyVAL.union = yyLOCAL
	case 113:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Scope

		{
			yyLOCAL = GlobalScope
		}
		yyVAL.union = yyLOCAL
	case 114:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion()
			yyDollar[1].createTableUnion().FullyParsed = true
			yyLOCAL = yyDollar[1].createTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 115:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{

			yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion()
			yyDollar[1].createTableUnion().FullyParsed = true
			yyLOCAL = yyDollar[1].createTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 116:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition
			indexDef.Columns = yyDollar[3].indexColumnsUnion()
			indexDef.Options = append(indexDef.Options, yyDollar[5].indexOptionsUnion()...)
			yyDollar[1].alterTableUnion().AlterOptions = append(yyDollar[1].alterTableUnion().AlterOptions, yyDollar[6].alterOptionsUnion()...)
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 117:
		yyDollar = yyS[yypt-12 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), Comments: Comments(yyDollar[2].strs), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].definerUnion(), Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str}
		}
		yyVAL.union = yyLOCAL
	case 118:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].createDatabaseUnion().FullyParsed = true
			yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion()
			yyLOCAL = yyDollar[1].createDatabaseUnion()
		}
		yyVAL.union = yyLOCAL
	case 119:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 120:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 121:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.colIdent = NewColIdent("")
		}
	case 122:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.colIdent = yyDollar[2].colIdent
		}
	case 123:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 124:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []VindexParam

		{
			var v []VindexParam
			yyLOCAL = v
		}
		yyVAL.union = yyLOCAL
	case 125:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL []VindexParam

		{
			yyLOCAL = yyDollar[2].vindexParamsUnion()
		}
		yyVAL.union = yyLOCAL
	case 126:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []VindexParam

		{
			yyLOCAL = make([]VindexParam, 0, 4)
			yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam)
		}
		yyVAL.union = yyLOCAL
	case 127:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].vindexParam)
		}
	case 128:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str}
		}
	case 129:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *CreateTable

		{
			yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 130:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *AlterTable

		{
			yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 131:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *AlterTable

		{
			yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 132:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *AlterTable

		{
			yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 133:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *AlterTable

		{
			yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 134:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *AlterTable

		{
			yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 135:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *CreateDatabase

		{
			yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 136:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *AlterDatabase

		{
			yyLOCAL = &AlterDatabase{}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 139:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *TableSpec

		{
			yyLOCAL = yyDollar[2].tableSpecUnion()
			yyLOCAL.Options = yyDollar[4].tableOptionsUnion()
			yyLOCAL.PartitionOption = yyDollar[5].partitionOptionUnion()
		}
		yyVAL.union = yyLOCAL
	case 140:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []CollateAndCharset

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 141:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []CollateAndCharset

		{
			yyLOCAL = yyDollar[1].collateAndCharsetsUnion()
		}
		yyVAL.union = yyLOCAL
	case 142:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []CollateAndCharset

		{
			yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset}
		}
		yyVAL.union = yyLOCAL
	case 143:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []CollateAndCharset

		{
			yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset}
		}
		yyVAL.union = yyLOCAL
	case 144:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset)
		}
	case 145:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset)
		}
	case 146:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 147:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 148:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 149:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 150:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 151:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 152:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *OptLike

		{
			yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName}
		}
		yyVAL.union = yyLOCAL
	case 153:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *OptLike

		{
			yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName}
		}
		yyVAL.union = yyLOCAL
	case 154:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*ColumnDefinition

		{
			yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 155:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion())
		}
	case 156:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *TableSpec

		{
			yyLOCAL = &TableSpec{}
			yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion())
		}
		yyVAL.union = yyLOCAL
	case 157:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *TableSpec

		{
			yyLOCAL = &TableSpec{}
			yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion())
		}
		yyVAL.union = yyLOCAL
	case 158:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion())
		}
	case 159:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion())
			yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion())
		}
	case 160:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion())
		}
	case 161:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion())
		}
	case 162:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion())
		}
	case 163:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ColumnDefinition

		{
			yyDollar[2].columnType.Options = yyDollar[4].columnTypeOptionsUnion()
			if yyDollar[2].columnType.Options.Collate == "" {
				yyDollar[2].columnType.Options.Collate = yyDollar[3].str
			}
			yyDollar[2].columnType.Options.Reference = yyDollar[5].referenceDefinitionUnion()
			yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType}
		}
		yyVAL.union = yyLOCAL
	case 164:
		yyDollar = yyS[yypt-10 : yypt+1]
		var yyLOCAL *ColumnDefinition

		{
			yyDollar[2].columnType.Options = yyDollar[9].columnTypeOptionsUnion()
			yyDollar[2].columnType.Options.As = yyDollar[7].exprUnion()
			yyDollar[2].columnType.Options.Reference = yyDollar[10].referenceDefinitionUnion()
			yyDollar[2].columnType.Options.Collate = yyDollar[3].str
			yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType}
		}
		yyVAL.union = yyLOCAL
	case 165:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 166:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 167:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil}
		}
		yyVAL.union = yyLOCAL
	case 168:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			val := true
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 169:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			val := false
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 170:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[4].exprUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 171:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 172:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 173:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Autoincrement = true
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 174:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str)
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 175:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 176:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyDollar[1].columnTypeOptionsUnion().Collate = encodeSQLString(yyDollar[3].str)
		}
	case 177:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Collate = string(yyDollar[3].colIdent.String())
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 178:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnStorage

		{
			yyLOCAL = VirtualStorage
		}
		yyVAL.union = yyLOCAL
	case 179:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnStorage

		{
			yyLOCAL = StoredStorage
		}
		yyVAL.union = yyLOCAL
	case 180:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyLOCAL = &ColumnTypeOptions{}
		}
		yyVAL.union = yyLOCAL
	case 181:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 182:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			val := true
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 183:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			val := false
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 184:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str)
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 185:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions

		{
			yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 186:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 188:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 189:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 190:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 191:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 194:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &NullVal{}
		}
		yyVAL.union = yyLOCAL
	case 196:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 197:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 198:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 199:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 200:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].boolValUnion()
		}
		yyVAL.union = yyLOCAL
	case 201:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewHexLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 202:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewHexNumLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 203:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewBitLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 204:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewArgument(yyDollar[1].str[1:])
			bindVariable(yylex, yyDollar[1].str[1:])
		}
		yyVAL.union = yyLOCAL
	case 205:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewBitLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 206:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexNumLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 207:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 208:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: yyDollar[2].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 209:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			bindVariable(yylex, yyDollar[2].str[1:])
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewArgument(yyDollar[2].str[1:])}
		}
		yyVAL.union = yyLOCAL
	case 210:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Armscii8Str
		}
	case 211:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = ASCIIStr
		}
	case 212:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Big5Str
		}
	case 213:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = UBinaryStr
		}
	case 214:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp1250Str
		}
	case 215:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp1251Str
		}
	case 216:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp1256Str
		}
	case 217:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp1257Str
		}
	case 218:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp850Str
		}
	case 219:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp852Str
		}
	case 220:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp866Str
		}
	case 221:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Cp932Str
		}
	case 222:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Dec8Str
		}
	case 223:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = EucjpmsStr
		}
	case 224:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = EuckrStr
		}
	case 225:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Gb18030Str
		}
	case 226:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Gb2312Str
		}
	case 227:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = GbkStr
		}
	case 228:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Geostd8Str
		}
	case 229:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = GreekStr
		}
	case 230:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = HebrewStr
		}
	case 231:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Hp8Str
		}
	case 232:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Keybcs2Str
		}
	case 233:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Koi8rStr
		}
	case 234:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Koi8uStr
		}
	case 235:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Latin1Str
		}
	case 236:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Latin2Str
		}
	case 237:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Latin5Str
		}
	case 238:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Latin7Str
		}
	case 239:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = MacceStr
		}
	case 240:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = MacromanStr
		}
	case 241:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = SjisStr
		}
	case 242:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Swe7Str
		}
	case 243:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Tis620Str
		}
	case 244:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Ucs2Str
		}
	case 245:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = UjisStr
		}
	case 246:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Utf16Str
		}
	case 247:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Utf16leStr
		}
	case 248:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Utf32Str
		}
	case 249:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Utf8Str
		}
	case 250:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = Utf8mb4Str
		}
	case 253:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewIntLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 254:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewFloatLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 255:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewDecimalLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 256:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewStrLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 257:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &UnaryExpr{Operator: NStringOp, Expr: NewStrLiteral(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 258:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewStrLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 259:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ColumnKeyOption

		{
			yyLOCAL = colKeyPrimary
		}
		yyVAL.union = yyLOCAL
	case 260:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnKeyOption

		{
			yyLOCAL = colKeyUnique
		}
		yyVAL.union = yyLOCAL
	case 261:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ColumnKeyOption

		{
			yyLOCAL = colKeyUniqueKey
		}
		yyVAL.union = yyLOCAL
	case 262:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnKeyOption

		{
			yyLOCAL = colKey
		}
		yyVAL.union = yyLOCAL
	case 263:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.columnType = yyDollar[1].columnType
			yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion()
			yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion()
		}
	case 267:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = yyDollar[1].columnType
			yyVAL.columnType.Length = yyDollar[2].literalUnion()
		}
	case 268:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = yyDollar[1].columnType
		}
	case 269:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 270:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 271:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 272:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 273:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 274:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 275:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 276:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 277:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 278:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 279:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 280:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 281:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 282:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 283:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 284:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 285:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 286:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 287:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 288:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str}
		}
	case 289:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str}
		}
	case 290:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 291:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 292:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 293:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 294:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 295:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 296:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 297:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 298:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 299:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 300:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 301:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str}
		}
	case 302:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str}
		}
	case 303:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 304:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 305:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 306:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 307:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 308:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 309:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 310:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 311:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.strs = make([]string, 0, 4)
			yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str))
		}
	case 312:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str))
		}
	case 313:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Literal

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 314:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Literal

		{
			yyLOCAL = NewIntLiteral(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 315:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.LengthScaleOption = LengthScaleOption{}
		}
	case 316:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yyVAL.LengthScaleOption = LengthScaleOption{
				Length: NewIntLiteral(yyDollar[2].str),
				Scale:  NewIntLiteral(yyDollar[4].str),
			}
		}
	case 317:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.LengthScaleOption = LengthScaleOption{}
		}
	case 318:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.LengthScaleOption = LengthScaleOption{
				Length: NewIntLiteral(yyDollar[2].str),
			}
		}
	case 319:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yyVAL.LengthScaleOption = LengthScaleOption{
				Length: NewIntLiteral(yyDollar[2].str),
				Scale:  NewIntLiteral(yyDollar[4].str),
			}
		}
	case 320:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 321:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 322:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 323:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 324:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 325:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 326:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[2].colIdent.String())
		}
	case 327:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = encodeSQLString(yyDollar[2].str)
		}
	case 328:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[2].str)
		}
	case 329:
		yyDollar = yyS[yypt-1 : yypt+1]

		{

			yyVAL.str = "latin1"
		}
	case 330:
		yyDollar = yyS[yypt-1 : yypt+1]

		{

			yyVAL.str = "ucs2"
		}
	case 331:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 332:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[2].colIdent.String())
		}
	case 333:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = encodeSQLString(yyDollar[2].str)
		}
	case 334:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *IndexDefinition

		{
			yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 335:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []*IndexOption

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 336:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexOption

		{
			yyLOCAL = yyDollar[1].indexOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 337:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexOption

		{
			yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 338:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion())
		}
	case 339:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *IndexOption

		{
			yyLOCAL = yyDollar[1].indexOptionUnion()
		}
		yyVAL.union = yyLOCAL
	case 340:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexOption

		{

			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 341:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *IndexOption

		{
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 342:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexOption

		{
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()}
		}
		yyVAL.union = yyLOCAL
	case 343:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 344:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 345:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *IndexInfo

		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true}
		}
		yyVAL.union = yyLOCAL
	case 346:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexInfo

		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false}
		}
		yyVAL.union = yyLOCAL
	case 347:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexInfo

		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false}
		}
		yyVAL.union = yyLOCAL
	case 348:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *IndexInfo

		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true}
		}
		yyVAL.union = yyLOCAL
	case 349:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *IndexInfo

		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false}
		}
		yyVAL.union = yyLOCAL
	case 350:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 351:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = yyDollar[2].str
		}
	case 352:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 353:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 354:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 355:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 356:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 357:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = "key"
		}
	case 358:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str
		}
	case 359:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 360:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 361:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 362:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].colIdent.String())
		}
	case 363:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexColumn

		{
			yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()}
		}
		yyVAL.union = yyLOCAL
	case 364:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion())
		}
	case 365:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexColumn

		{
			yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 366:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ConstraintDefinition

		{
			yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 367:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConstraintDefinition

		{
			yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 368:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ConstraintDefinition

		{
			yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 369:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConstraintDefinition

		{
			yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 370:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL ConstraintInfo

		{
			yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 371:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ReferenceDefinition

		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 372:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *ReferenceDefinition

		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 373:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *ReferenceDefinition

		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 374:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *ReferenceDefinition

		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 375:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ReferenceDefinition

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 376:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ReferenceDefinition

		{
			yyLOCAL = yyDollar[1].referenceDefinitionUnion()
		}
		yyVAL.union = yyLOCAL
	case 377:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL ConstraintInfo

		{
			yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 378:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = yyDollar[3].ReferenceActionUnion()
		}
		yyVAL.union = yyLOCAL
	case 379:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = yyDollar[3].ReferenceActionUnion()
		}
		yyVAL.union = yyLOCAL
	case 380:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = Restrict
		}
		yyVAL.union = yyLOCAL
	case 381:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = Cascade
		}
		yyVAL.union = yyLOCAL
	case 382:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = NoAction
		}
		yyVAL.union = yyLOCAL
	case 383:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = SetDefault
		}
		yyVAL.union = yyLOCAL
	case 384:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ReferenceAction

		{
			yyLOCAL = SetNull
		}
		yyVAL.union = yyLOCAL
	case 385:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 386:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 387:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 388:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 389:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 390:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 391:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL TableOptions

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 392:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableOptions

		{
			yyLOCAL = yyDollar[1].tableOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 393:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableOptions

		{
			yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 394:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion())
		}
	case 395:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion())
		}
	case 396:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableOptions

		{
			yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 397:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion())
		}
	case 398:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 399:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 400:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str}
		}
		yyVAL.union = yyLOCAL
	case 401:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str}
		}
		yyVAL.union = yyLOCAL
	case 402:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 403:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 404:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 405:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 406:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 407:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 408:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 409:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 410:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].tableIdent.String()}
		}
		yyVAL.union = yyLOCAL
	case 411:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 412:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 413:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 414:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 415:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 416:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 417:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 418:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 419:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 420:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 421:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 422:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 423:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 424:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 425:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *TableOption

		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 426:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 427:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 428:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 438:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].colIdent.String()
		}
	case 439:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = encodeSQLString(yyDollar[1].str)
		}
	case 440:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 441:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 443:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 444:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 445:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ColName

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 446:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColName

		{
			yyLOCAL = yyDollar[2].colNameUnion()
		}
		yyVAL.union = yyLOCAL
	case 447:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 448:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = yyDollar[1].alterOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 449:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()})
		}
	case 450:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = yyDollar[1].alterOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 451:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...)
		}
	case 452:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()})
		}
		yyVAL.union = yyLOCAL
	case 453:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 454:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
		}
	case 455:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
		}
	case 456:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = yyDollar[1].tableOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 457:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 458:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 459:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 460:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 461:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 462:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true}
		}
		yyVAL.union = yyLOCAL
	case 463:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 464:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 465:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 466:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 467:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str}
		}
		yyVAL.union = yyLOCAL
	case 468:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &KeyState{Enable: false}
		}
		yyVAL.union = yyLOCAL
	case 469:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &KeyState{Enable: true}
		}
		yyVAL.union = yyLOCAL
	case 470:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &TablespaceOperation{Import: false}
		}
		yyVAL.union = yyLOCAL
	case 471:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &TablespaceOperation{Import: true}
		}
		yyVAL.union = yyLOCAL
	case 472:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 473:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 474:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &DropKey{Type: PrimaryKeyType}
		}
		yyVAL.union = yyLOCAL
	case 475:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 476:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &Force{}
		}
		yyVAL.union = yyLOCAL
	case 477:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName}
		}
		yyVAL.union = yyLOCAL
	case 478:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 479:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 480:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
		}
	case 481:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
		}
		yyVAL.union = yyLOCAL
	case 482:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
		}
		yyVAL.union = yyLOCAL
	case 483:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
		}
		yyVAL.union = yyLOCAL
	case 484:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: DefaultType}
		}
		yyVAL.union = yyLOCAL
	case 485:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: NoneType}
		}
		yyVAL.union = yyLOCAL
	case 486:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: SharedType}
		}
		yyVAL.union = yyLOCAL
	case 487:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: ExclusiveType}
		}
		yyVAL.union = yyLOCAL
	case 488:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &Validation{With: true}
		}
		yyVAL.union = yyLOCAL
	case 489:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &Validation{With: false}
		}
		yyVAL.union = yyLOCAL
	case 490:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
			yyDollar[1].alterTableUnion().PartitionOption = yyDollar[3].partitionOptionUnion()
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 491:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
			yyDollar[1].alterTableUnion().PartitionSpec = &PartitionSpec{Action: RemoveAction}
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 492:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
			yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[4].partSpecUnion()
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 493:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion()
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 494:
		yyDollar = yyS[yypt-11 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Comments: Comments(yyDollar[2].strs), Algorithm: yyDollar[3].str, Definer: yyDollar[4].definerUnion(), Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str}
		}
		yyVAL.union = yyLOCAL
	case 495:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].alterDatabaseUnion().FullyParsed = true
			yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent
			yyDollar[1].alterDatabaseUnion().AlterOptions = yyDollar[3].collateAndCharsetsUnion()
			yyLOCAL = yyDollar[1].alterDatabaseUnion()
		}
		yyVAL.union = yyLOCAL
	case 496:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyDollar[1].alterDatabaseUnion().FullyParsed = true
			yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent
			yyDollar[1].alterDatabaseUnion().UpdateDataDirectory = true
			yyLOCAL = yyDollar[1].alterDatabaseUnion()
		}
		yyVAL.union = yyLOCAL
	case 497:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{
				Action: CreateVindexDDLAction,
				Table:  yyDollar[6].tableName,
				VindexSpec: &VindexSpec{
					Name:   NewColIdent(yyDollar[6].tableName.Name.String()),
					Type:   yyDollar[7].colIdent,
					Params: yyDollar[8].vindexParamsUnion(),
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 498:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{
				Action: DropVindexDDLAction,
				Table:  yyDollar[6].tableName,
				VindexSpec: &VindexSpec{
					Name: NewColIdent(yyDollar[6].tableName.Name.String()),
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 499:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName}
		}
		yyVAL.union = yyLOCAL
	case 500:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName}
		}
		yyVAL.union = yyLOCAL
	case 501:
		yyDollar = yyS[yypt-13 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{
				Action: AddColVindexDDLAction,
				Table:  yyDollar[5].tableName,
				VindexSpec: &VindexSpec{
					Name:   yyDollar[8].colIdent,
					Type:   yyDollar[12].colIdent,
					Params: yyDollar[13].vindexParamsUnion(),
				},
				VindexCols: yyDollar[10].columnsUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 502:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{
				Action: DropColVindexDDLAction,
				Table:  yyDollar[5].tableName,
				VindexSpec: &VindexSpec{
					Name: yyDollar[8].colIdent,
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 503:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName}
		}
		yyVAL.union = yyLOCAL
	case 504:
		yyDollar = yyS[yypt-10 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterVschema{
				Action: AddAutoIncDDLAction,
				Table:  yyDollar[5].tableName,
				AutoIncSpec: &AutoIncSpec{
					Column:   yyDollar[8].colIdent,
					Sequence: yyDollar[10].tableName,
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 505:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterMigration{
				Type: RetryMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 506:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterMigration{
				Type: CleanupMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 507:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterMigration{
				Type: CompleteMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 508:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterMigration{
				Type: CancelMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 509:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &AlterMigration{
				Type: CancelAllMigrationType,
			}
		}
		yyVAL.union = yyLOCAL
	case 510:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *PartitionOption

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 511:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *PartitionOption

		{
			yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion()
			yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion()
			yyDollar[3].partitionOptionUnion().Definitions = yyDollar[6].partDefsUnion()
			yyLOCAL = yyDollar[3].partitionOptionUnion()
		}
		yyVAL.union = yyLOCAL
	case 512:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *PartitionOption

		{
			yyLOCAL = &PartitionOption{
				IsLinear: yyDollar[1].booleanUnion(),
				Type:     HashType,
				Expr:     yyDollar[4].exprUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 513:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *PartitionOption

		{
			yyLOCAL = &PartitionOption{
				IsLinear:     yyDollar[1].booleanUnion(),
				Type:         KeyType,
				KeyAlgorithm: yyDollar[3].integerUnion(),
				ColList:      yyDollar[5].columnsUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 514:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionOption

		{
			yyLOCAL = &PartitionOption{
				Type: yyDollar[1].partitionByTypeUnion(),
				Expr: yyDollar[3].exprUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 515:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *PartitionOption

		{
			yyLOCAL = &PartitionOption{
				Type:    yyDollar[1].partitionByTypeUnion(),
				ColList: yyDollar[4].columnsUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 516:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *SubPartition

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 517:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *SubPartition

		{
			yyLOCAL = &SubPartition{
				IsLinear:      yyDollar[3].booleanUnion(),
				Type:          HashType,
				Expr:          yyDollar[6].exprUnion(),
				SubPartitions: yyDollar[8].integerUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 518:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL *SubPartition

		{
			yyLOCAL = &SubPartition{
				IsLinear:      yyDollar[3].booleanUnion(),
				Type:          KeyType,
				KeyAlgorithm:  yyDollar[5].integerUnion(),
				ColList:       yyDollar[7].columnsUnion(),
				SubPartitions: yyDollar[9].integerUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 519:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []*PartitionDefinition

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 520:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL []*PartitionDefinition

		{
			yyLOCAL = yyDollar[2].partDefsUnion()
		}
		yyVAL.union = yyLOCAL
	case 521:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 522:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 523:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL int

		{
			yyLOCAL = 0
		}
		yyVAL.union = yyLOCAL
	case 524:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL int

		{
			yyLOCAL = convertStringToInt(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 525:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].tableIdent}
		}
		yyVAL.union = yyLOCAL
	case 526:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL []*JtColumnDefinition

		{
			yyLOCAL = yyDollar[3].jtColumnListUnion()
		}
		yyVAL.union = yyLOCAL
	case 527:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*JtColumnDefinition

		{
			yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 528:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion())
		}
	case 529:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *JtColumnDefinition

		{
			yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].colIdent}}
		}
		yyVAL.union = yyLOCAL
	case 530:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *JtColumnDefinition

		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 531:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *JtColumnDefinition

		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 532:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *JtColumnDefinition

		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 533:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *JtColumnDefinition

		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 534:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *JtColumnDefinition

		{
			jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()}
			yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath}
		}
		yyVAL.union = yyLOCAL
	case 535:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 536:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 537:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 538:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 539:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *JtOnResponse

		{
			yyLOCAL = yyDollar[1].jtOnResponseUnion()
		}
		yyVAL.union = yyLOCAL
	case 540:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *JtOnResponse

		{
			yyLOCAL = yyDollar[1].jtOnResponseUnion()
		}
		yyVAL.union = yyLOCAL
	case 541:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *JtOnResponse

		{
			yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType}
		}
		yyVAL.union = yyLOCAL
	case 542:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *JtOnResponse

		{
			yyLOCAL = &JtOnResponse{ResponseType: NullJSONType}
		}
		yyVAL.union = yyLOCAL
	case 543:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *JtOnResponse

		{
			yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 544:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL PartitionByType

		{
			yyLOCAL = RangeType
		}
		yyVAL.union = yyLOCAL
	case 545:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL PartitionByType

		{
			yyLOCAL = ListType
		}
		yyVAL.union = yyLOCAL
	case 546:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL int

		{
			yyLOCAL = -1
		}
		yyVAL.union = yyLOCAL
	case 547:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL int

		{
			yyLOCAL = convertStringToInt(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 548:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL int

		{
			yyLOCAL = -1
		}
		yyVAL.union = yyLOCAL
	case 549:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL int

		{
			yyLOCAL = convertStringToInt(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 550:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 551:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 552:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 553:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 554:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 555:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 556:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 557:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 558:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 559:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 560:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 561:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 562:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 563:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 564:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 565:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 566:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 567:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 568:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 569:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 570:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 571:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *PartitionSpec

		{
			yyLOCAL = &PartitionSpec{Action: UpgradeAction}
		}
		yyVAL.union = yyLOCAL
	case 572:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 573:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 574:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 575:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*PartitionDefinition

		{
			yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()}
		}
		yyVAL.union = yyLOCAL
	case 576:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].partDefUnion())
		}
	case 577:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.partDefUnion().ValueRange = yyDollar[2].partitionValueRangeUnion()
		}
	case 578:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *PartitionValueRange

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 579:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionValueRange

		{
			yyLOCAL = &PartitionValueRange{
				Type:  LessThanType,
				Range: yyDollar[4].valTupleUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 580:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionValueRange

		{
			yyLOCAL = &PartitionValueRange{
				Type:     LessThanType,
				Maxvalue: true,
			}
		}
		yyVAL.union = yyLOCAL
	case 581:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionValueRange

		{
			yyLOCAL = &PartitionValueRange{
				Type:  InType,
				Range: yyDollar[3].valTupleUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 582:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *PartitionDefinition

		{
			yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 583:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 584:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 585:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 586:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL []*RenameTablePair

		{
			yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 587:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName})
		}
	case 588:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 589:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{

			if yyDollar[4].colIdent.Lowered() == "primary" {
				yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: PrimaryKeyType}}, yyDollar[7].alterOptionsUnion()...)}
			} else {
				yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: NormalKeyType, Name: yyDollar[4].colIdent}}, yyDollar[7].alterOptionsUnion()...)}
			}
		}
		yyVAL.union = yyLOCAL
	case 590:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs), IfExists: yyDollar[4].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 591:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 592:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName}
		}
		yyVAL.union = yyLOCAL
	case 593:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName}
		}
		yyVAL.union = yyLOCAL
	case 594:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &OtherRead{}
		}
		yyVAL.union = yyLOCAL
	case 595:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 596:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 597:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 598:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 599:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 600:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 601:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 602:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 603:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 604:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 605:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Privilege}}
		}
		yyVAL.union = yyLOCAL
	case 606:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 607:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 608:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 609:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 610:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 611:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 612:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 613:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 614:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 615:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 616:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 617:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 618:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 619:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 620:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 621:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 622:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 623:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 624:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 625:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 626:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 627:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 628:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 629:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 630:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 631:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()}
			yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}}
		}
		yyVAL.union = yyLOCAL
	case 632:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 633:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 634:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()}
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope, ShowTablesOpt: showTablesOpt}}
		}
		yyVAL.union = yyLOCAL
	case 635:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 636:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 637:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 638:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowBasic{Command: Warnings}}
		}
		yyVAL.union = yyLOCAL
	case 639:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{

			showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()}
			yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}}
		}
		yyVAL.union = yyLOCAL
	case 640:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 641:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 642:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 643:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 644:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 645:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 646:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = "extended "
		}
	case 647:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 648:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 649:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 650:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 651:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent("")
		}
	case 652:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.tableIdent = yyDollar[2].tableIdent
		}
	case 653:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.tableIdent = yyDollar[2].tableIdent
		}
	case 654:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ShowFilter

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 655:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ShowFilter

		{
			yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 656:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ShowFilter

		{
			yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 657:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ShowFilter

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 658:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ShowFilter

		{
			yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 659:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 660:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 661:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 662:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Use{DBName: yyDollar[2].tableIdent}
		}
		yyVAL.union = yyLOCAL
	case 663:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Use{DBName: TableIdent{v: ""}}
		}
		yyVAL.union = yyLOCAL
	case 664:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Use{DBName: NewTableIdent(yyDollar[2].tableIdent.String() + "@" + string(yyDollar[3].str))}
		}
		yyVAL.union = yyLOCAL
	case 665:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Begin{}
		}
		yyVAL.union = yyLOCAL
	case 666:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Begin{}
		}
		yyVAL.union = yyLOCAL
	case 667:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Commit{}
		}
		yyVAL.union = yyLOCAL
	case 668:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Rollback{}
		}
		yyVAL.union = yyLOCAL
	case 669:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &SRollback{Name: yyDollar[5].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 670:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 671:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 672:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 673:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 674:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 675:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Release{Name: yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 676:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL ExplainType

		{
			yyLOCAL = EmptyType
		}
		yyVAL.union = yyLOCAL
	case 677:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType

		{
			yyLOCAL = JSONType
		}
		yyVAL.union = yyLOCAL
	case 678:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType

		{
			yyLOCAL = TreeType
		}
		yyVAL.union = yyLOCAL
	case 679:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType

		{
			yyLOCAL = VitessType
		}
		yyVAL.union = yyLOCAL
	case 680:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType

		{
			yyLOCAL = TraditionalType
		}
		yyVAL.union = yyLOCAL
	case 681:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ExplainType

		{
			yyLOCAL = AnalyzeType
		}
		yyVAL.union = yyLOCAL
	case 682:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str
		}
	case 683:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str
		}
	case 684:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str
		}
	case 685:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 686:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = yyDollar[1].statementUnion()
		}
		yyVAL.union = yyLOCAL
	case 687:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = yyDollar[1].statementUnion()
		}
		yyVAL.union = yyLOCAL
	case 688:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = yyDollar[1].statementUnion()
		}
		yyVAL.union = yyLOCAL
	case 689:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 690:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].colIdent.val
		}
	case 691:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = encodeSQLString(yyDollar[1].str)
		}
	case 692:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str}
		}
		yyVAL.union = yyLOCAL
	case 693:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()}
		}
		yyVAL.union = yyLOCAL
	case 694:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &OtherAdmin{}
		}
		yyVAL.union = yyLOCAL
	case 695:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &OtherAdmin{}
		}
		yyVAL.union = yyLOCAL
	case 696:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 697:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableAndLockTypes

		{
			yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 698:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion())
		}
	case 699:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *TableAndLockType

		{
			yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 700:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL LockType

		{
			yyLOCAL = Read
		}
		yyVAL.union = yyLOCAL
	case 701:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL LockType

		{
			yyLOCAL = ReadLocal
		}
		yyVAL.union = yyLOCAL
	case 702:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL LockType

		{
			yyLOCAL = Write
		}
		yyVAL.union = yyLOCAL
	case 703:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL LockType

		{
			yyLOCAL = LowPriorityWrite
		}
		yyVAL.union = yyLOCAL
	case 704:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &UnlockTables{}
		}
		yyVAL.union = yyLOCAL
	case 705:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 706:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs}
		}
		yyVAL.union = yyLOCAL
	case 707:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 708:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true}
		}
		yyVAL.union = yyLOCAL
	case 709:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 710:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true}
		}
		yyVAL.union = yyLOCAL
	case 711:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true}
		}
		yyVAL.union = yyLOCAL
	case 712:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.strs = []string{yyDollar[1].str}
		}
	case 713:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str)
		}
	case 714:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 715:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 716:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 717:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 718:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 719:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 720:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 721:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str
		}
	case 722:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 723:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 724:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 725:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 726:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 727:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 728:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 729:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 730:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String()
		}
	case 731:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			setAllowComments(yylex, true)
		}
	case 732:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.strs = yyDollar[2].strs
			setAllowComments(yylex, false)
		}
	case 733:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.strs = nil
		}
	case 734:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str)
		}
	case 735:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 736:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 737:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 738:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 739:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = SQLNoCacheStr
		}
	case 740:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = SQLCacheStr
		}
	case 741:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 742:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 743:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 744:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &PrepareStmt{Name: yyDollar[3].colIdent, Comments: yyDollar[2].strs, Statement: yyDollar[5].str}
		}
		yyVAL.union = yyLOCAL
	case 745:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &PrepareStmt{Name: yyDollar[3].colIdent, Comments: yyDollar[2].strs, StatementIdentifier: NewColIdentWithAt(string(yyDollar[5].str), SingleAt)}
		}
		yyVAL.union = yyLOCAL
	case 746:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &ExecuteStmt{Name: yyDollar[3].colIdent, Comments: yyDollar[2].strs, Arguments: yyDollar[4].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 747:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 748:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = yyDollar[2].columnsUnion()
		}
		yyVAL.union = yyLOCAL
	case 749:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &DeallocateStmt{Type: DeallocateType, Comments: yyDollar[2].strs, Name: yyDollar[4].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 750:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &DeallocateStmt{Type: DropType, Comments: yyDollar[2].strs, Name: yyDollar[4].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 751:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL SelectExprs

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 752:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectExprs

		{
			yyLOCAL = yyDollar[1].selectExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 753:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.strs = nil
		}
	case 754:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.strs = []string{yyDollar[1].str}
		}
	case 755:
		yyDollar = yyS[yypt-2 : yypt+1]

		{ 
			yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str}
		}
	case 756:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str}
		}
	case 757:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str}
		}
	case 758:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = SQLNoCacheStr
		}
	case 759:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = SQLCacheStr
		}
	case 760:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = DistinctStr
		}
	case 761:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = DistinctStr
		}
	case 762:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = StraightJoinHint
		}
	case 763:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = SQLCalcFoundRowsStr
		}
	case 764:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = AllStr 
		}
	case 765:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectExprs

		{
			yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 766:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion())
		}
	case 767:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectExpr

		{
			yyLOCAL = &StarExpr{}
		}
		yyVAL.union = yyLOCAL
	case 768:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectExpr

		{
			yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 769:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectExpr

		{
			yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 770:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL SelectExpr

		{
			yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 771:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.colIdent = ColIdent{}
		}
	case 772:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 773:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.colIdent = yyDollar[2].colIdent
		}
	case 775:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = NewColIdent(string(yyDollar[1].str))
		}
	case 776:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL TableExprs

		{
			yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}}
		}
		yyVAL.union = yyLOCAL
	case 777:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExprs

		{
			yyLOCAL = yyDollar[1].tableExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 778:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL TableExprs

		{
			yyLOCAL = yyDollar[2].tableExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 779:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExprs

		{
			yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 780:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*TableExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion())
		}
	case 783:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = yyDollar[1].aliasedTableNameUnion()
		}
		yyVAL.union = yyLOCAL
	case 784:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent, Columns: yyDollar[4].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 785:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 786:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = yyDollar[1].tableExprUnion()
		}
		yyVAL.union = yyLOCAL
	case 787:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *DerivedTable

		{
			yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[2].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 788:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *DerivedTable

		{
			yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 789:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *AliasedTableExpr

		{
			yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 790:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *AliasedTableExpr

		{
			yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 791:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 792:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = yyDollar[2].columnsUnion()
		}
		yyVAL.union = yyLOCAL
	case 793:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = Columns{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 794:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 795:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = Columns{NewColIdentWithAt(string(yyDollar[1].str), SingleAt)}
		}
		yyVAL.union = yyLOCAL
	case 796:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, NewColIdentWithAt(string(yyDollar[3].str), SingleAt))
		}
	case 797:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = Columns{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 798:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))}
		}
		yyVAL.union = yyLOCAL
	case 799:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 800:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str)))
		}
	case 801:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Partitions

		{
			yyLOCAL = Partitions{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 802:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Partitions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 803:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
		}
		yyVAL.union = yyLOCAL
	case 804:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
		}
		yyVAL.union = yyLOCAL
	case 805:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
		}
		yyVAL.union = yyLOCAL
	case 806:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL TableExpr

		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 807:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
		}
	case 808:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()}
		}
	case 809:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.joinCondition = &JoinCondition{}
		}
	case 810:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.joinCondition = yyDollar[1].joinCondition
		}
	case 811:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.joinCondition = &JoinCondition{}
		}
	case 812:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
		}
	case 813:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 814:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 815:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent("")
		}
	case 816:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableIdent = yyDollar[1].tableIdent
		}
	case 817:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.tableIdent = yyDollar[2].tableIdent
		}
	case 819:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str))
		}
	case 820:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = NormalJoinType
		}
		yyVAL.union = yyLOCAL
	case 821:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = NormalJoinType
		}
		yyVAL.union = yyLOCAL
	case 822:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = NormalJoinType
		}
		yyVAL.union = yyLOCAL
	case 823:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = StraightJoinType
		}
		yyVAL.union = yyLOCAL
	case 824:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = LeftJoinType
		}
		yyVAL.union = yyLOCAL
	case 825:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = LeftJoinType
		}
		yyVAL.union = yyLOCAL
	case 826:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = RightJoinType
		}
		yyVAL.union = yyLOCAL
	case 827:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = RightJoinType
		}
		yyVAL.union = yyLOCAL
	case 828:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType

		{
			yyLOCAL = NaturalJoinType
		}
		yyVAL.union = yyLOCAL
	case 829:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType

		{
			if yyDollar[2].joinTypeUnion() == LeftJoinType {
				yyLOCAL = NaturalLeftJoinType
			} else {
				yyLOCAL = NaturalRightJoinType
			}
		}
		yyVAL.union = yyLOCAL
	case 830:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.tableName = yyDollar[2].tableName
		}
	case 831:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableName = yyDollar[1].tableName
		}
	case 832:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
		}
	case 833:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}
		}
	case 834:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
		}
	case 835:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL IndexHints

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 836:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IndexHints

		{
			yyLOCAL = yyDollar[1].indexHintsUnion()
		}
		yyVAL.union = yyLOCAL
	case 837:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IndexHints

		{
			yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()}
		}
		yyVAL.union = yyLOCAL
	case 838:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*IndexHints)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion())
		}
	case 839:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *IndexHint

		{
			yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 840:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *IndexHint

		{
			yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 841:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *IndexHint

		{
			yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 842:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *IndexHint

		{
			yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 843:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL IndexHintForType

		{
			yyLOCAL = NoForType
		}
		yyVAL.union = yyLOCAL
	case 844:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IndexHintForType

		{
			yyLOCAL = JoinForType
		}
		yyVAL.union = yyLOCAL
	case 845:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL IndexHintForType

		{
			yyLOCAL = OrderByForType
		}
		yyVAL.union = yyLOCAL
	case 846:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL IndexHintForType

		{
			yyLOCAL = GroupByForType
		}
		yyVAL.union = yyLOCAL
	case 847:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 848:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 849:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 850:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 851:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 852:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 853:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()}
		}
		yyVAL.union = yyLOCAL
	case 854:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 855:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp}
		}
		yyVAL.union = yyLOCAL
	case 856:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp}
		}
		yyVAL.union = yyLOCAL
	case 857:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 858:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 859:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()}
		}
		yyVAL.union = yyLOCAL
	case 860:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()}
		}
		yyVAL.union = yyLOCAL
	case 861:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 862:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 863:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 864:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 865:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 866:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 867:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 868:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 869:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 870:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 871:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 872:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 873:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 874:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 875:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 876:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 877:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 878:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 879:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 880:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 881:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 882:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 883:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 884:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 885:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 886:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 887:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str}
		}
		yyVAL.union = yyLOCAL
	case 888:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 889:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].colNameUnion()
		}
		yyVAL.union = yyLOCAL
	case 890:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[2].exprUnion() 
		}
		yyVAL.union = yyLOCAL
	case 891:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 892:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 893:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 894:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].subqueryUnion()
		}
		yyVAL.union = yyLOCAL
	case 895:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 896:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()}
		}
		yyVAL.union = yyLOCAL
	case 897:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 898:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 899:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 900:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str}
		}
		yyVAL.union = yyLOCAL
	case 901:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{

			yyLOCAL = &ConvertExpr{Expr: yyDollar[2].exprUnion(), Type: &ConvertType{Type: yyDollar[1].str}}
		}
		yyVAL.union = yyLOCAL
	case 902:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &Default{ColName: yyDollar[2].str}
		}
		yyVAL.union = yyLOCAL
	case 903:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{

			yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()}
		}
		yyVAL.union = yyLOCAL
	case 904:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 905:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 906:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TrimType

		{
			yyLOCAL = BothTrimType
		}
		yyVAL.union = yyLOCAL
	case 907:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TrimType

		{
			yyLOCAL = LeadingTrimType
		}
		yyVAL.union = yyLOCAL
	case 908:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TrimType

		{
			yyLOCAL = TrailingTrimType
		}
		yyVAL.union = yyLOCAL
	case 909:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 910:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = string(yyDollar[2].colIdent.String())
		}
	case 911:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL BoolVal

		{
			yyLOCAL = BoolVal(true)
		}
		yyVAL.union = yyLOCAL
	case 912:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL BoolVal

		{
			yyLOCAL = BoolVal(false)
		}
		yyVAL.union = yyLOCAL
	case 913:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IsExprOperator

		{
			yyLOCAL = IsTrueOp
		}
		yyVAL.union = yyLOCAL
	case 914:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsExprOperator

		{
			yyLOCAL = IsNotTrueOp
		}
		yyVAL.union = yyLOCAL
	case 915:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IsExprOperator

		{
			yyLOCAL = IsFalseOp
		}
		yyVAL.union = yyLOCAL
	case 916:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsExprOperator

		{
			yyLOCAL = IsNotFalseOp
		}
		yyVAL.union = yyLOCAL
	case 917:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = EqualOp
		}
		yyVAL.union = yyLOCAL
	case 918:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = LessThanOp
		}
		yyVAL.union = yyLOCAL
	case 919:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = GreaterThanOp
		}
		yyVAL.union = yyLOCAL
	case 920:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = LessEqualOp
		}
		yyVAL.union = yyLOCAL
	case 921:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = GreaterEqualOp
		}
		yyVAL.union = yyLOCAL
	case 922:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = NotEqualOp
		}
		yyVAL.union = yyLOCAL
	case 923:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator

		{
			yyLOCAL = NullSafeEqualOp
		}
		yyVAL.union = yyLOCAL
	case 924:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColTuple

		{
			yyLOCAL = yyDollar[1].valTupleUnion()
		}
		yyVAL.union = yyLOCAL
	case 925:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColTuple

		{
			yyLOCAL = yyDollar[1].subqueryUnion()
		}
		yyVAL.union = yyLOCAL
	case 926:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColTuple

		{
			yyLOCAL = ListArg(yyDollar[1].str[2:])
			bindVariable(yylex, yyDollar[1].str[2:])
		}
		yyVAL.union = yyLOCAL
	case 927:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Subquery

		{
			yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 928:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Exprs

		{
			yyLOCAL = Exprs{yyDollar[1].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 929:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Exprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].exprUnion())
		}
	case 930:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 931:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 932:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 933:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 934:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 935:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 936:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 937:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 938:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 939:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 940:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 941:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 942:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 943:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 944:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")}
		}
		yyVAL.union = yyLOCAL
	case 945:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 946:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")}
		}
		yyVAL.union = yyLOCAL
	case 947:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 948:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 949:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 950:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 951:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &ExtractFuncExpr{IntervalTypes: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 952:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 953:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 954:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 955:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 956:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, StringArg: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 957:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, StringArg: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 958:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 959:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 960:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 961:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
		}
	case 962:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalDayHour
		}
		yyVAL.union = yyLOCAL
	case 963:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalDayMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 964:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalDayMinute
		}
		yyVAL.union = yyLOCAL
	case 965:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalDaySecond
		}
		yyVAL.union = yyLOCAL
	case 966:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalHourMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 967:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalHourMinute
		}
		yyVAL.union = yyLOCAL
	case 968:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalHourSecond
		}
		yyVAL.union = yyLOCAL
	case 969:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalMinuteMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 970:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalMinuteSecond
		}
		yyVAL.union = yyLOCAL
	case 971:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalSecondMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 972:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalYearMonth
		}
		yyVAL.union = yyLOCAL
	case 973:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalDay
		}
		yyVAL.union = yyLOCAL
	case 974:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalWeek
		}
		yyVAL.union = yyLOCAL
	case 975:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalHour
		}
		yyVAL.union = yyLOCAL
	case 976:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalMinute
		}
		yyVAL.union = yyLOCAL
	case 977:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalMonth
		}
		yyVAL.union = yyLOCAL
	case 978:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalQuarter
		}
		yyVAL.union = yyLOCAL
	case 979:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalSecond
		}
		yyVAL.union = yyLOCAL
	case 980:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 981:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes

		{
			yyLOCAL = IntervalYear
		}
		yyVAL.union = yyLOCAL
	case 984:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Literal

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 985:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Literal

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 986:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Literal

		{
			yyLOCAL = NewIntLiteral(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 987:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 988:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 989:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 990:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 991:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 992:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL MatchExprOption

		{
			yyLOCAL = NoOption
		}
		yyVAL.union = yyLOCAL
	case 993:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL MatchExprOption

		{
			yyLOCAL = BooleanModeOpt
		}
		yyVAL.union = yyLOCAL
	case 994:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL MatchExprOption

		{
			yyLOCAL = NaturalLanguageModeOpt
		}
		yyVAL.union = yyLOCAL
	case 995:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL MatchExprOption

		{
			yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt
		}
		yyVAL.union = yyLOCAL
	case 996:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL MatchExprOption

		{
			yyLOCAL = QueryExpansionOpt
		}
		yyVAL.union = yyLOCAL
	case 997:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].colIdent.String())
		}
	case 998:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 999:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1000:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1001:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: NewIntLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 1002:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: NewIntLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 1003:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1004:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str}
		}
		yyVAL.union = yyLOCAL
	case 1005:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1006:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1007:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
			yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length
			yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale
		}
		yyVAL.union = yyLOCAL
	case 1008:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1009:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1010:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1011:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1012:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1013:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1014:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1015:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1016:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1017:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType

		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1018:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1019:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1020:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = string("")
		}
	case 1021:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str)
		}
	case 1022:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*When

		{
			yyLOCAL = []*When{yyDollar[1].whenUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1023:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yySLICE := (*[]*When)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].whenUnion())
		}
	case 1024:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *When

		{
			yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1025:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1026:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1027:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ColName

		{
			yyLOCAL = &ColName{Name: yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1028:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColName

		{
			yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1029:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ColName

		{
			yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1030:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{

			if yyDollar[1].colIdent.Lowered() != "value" {
				yylex.Error("expecting value after next")
				return 1
			}
			yyLOCAL = NewIntLiteral("1")
		}
		yyVAL.union = yyLOCAL
	case 1031:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewIntLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 1032:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewArgument(yyDollar[1].str[1:])
			bindVariable(yylex, yyDollar[1].str[1:])
		}
		yyVAL.union = yyLOCAL
	case 1033:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Exprs

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1034:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Exprs

		{
			yyLOCAL = yyDollar[3].exprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 1035:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1036:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1037:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL OrderBy

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1038:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderBy

		{
			yyLOCAL = yyDollar[1].orderByUnion()
		}
		yyVAL.union = yyLOCAL
	case 1039:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL OrderBy

		{
			yyLOCAL = yyDollar[3].orderByUnion()
		}
		yyVAL.union = yyLOCAL
	case 1040:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderBy

		{
			yyLOCAL = OrderBy{yyDollar[1].orderUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1041:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*OrderBy)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].orderUnion())
		}
	case 1042:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Order

		{
			yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1043:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL OrderDirection

		{
			yyLOCAL = AscOrder
		}
		yyVAL.union = yyLOCAL
	case 1044:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderDirection

		{
			yyLOCAL = AscOrder
		}
		yyVAL.union = yyLOCAL
	case 1045:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderDirection

		{
			yyLOCAL = DescOrder
		}
		yyVAL.union = yyLOCAL
	case 1046:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Limit

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1047:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Limit

		{
			yyLOCAL = yyDollar[1].limitUnion()
		}
		yyVAL.union = yyLOCAL
	case 1048:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Limit

		{
			yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1049:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Limit

		{
			yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1050:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Limit

		{
			yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1051:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1052:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1053:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1054:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1055:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption

		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1056:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: DefaultType}
		}
		yyVAL.union = yyLOCAL
	case 1057:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: NoneType}
		}
		yyVAL.union = yyLOCAL
	case 1058:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: SharedType}
		}
		yyVAL.union = yyLOCAL
	case 1059:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = &LockOption{Type: ExclusiveType}
		}
		yyVAL.union = yyLOCAL
	case 1060:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = AlgorithmValue(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 1061:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = AlgorithmValue(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 1062:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption

		{
			yyLOCAL = AlgorithmValue(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 1063:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1064:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = string(yyDollar[3].str)
		}
	case 1065:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = string(yyDollar[3].str)
		}
	case 1066:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = string(yyDollar[3].str)
		}
	case 1067:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1068:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = yyDollar[3].str
		}
	case 1069:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1070:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1071:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1072:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.str = yyDollar[2].str
		}
	case 1073:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = "cascaded"
		}
	case 1074:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1075:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1076:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Definer

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1077:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Definer

		{
			yyLOCAL = yyDollar[3].definerUnion()
		}
		yyVAL.union = yyLOCAL
	case 1078:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Definer

		{
			yyLOCAL = &Definer{
				Name: string(yyDollar[1].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 1079:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Definer

		{
			yyLOCAL = &Definer{
				Name: string(yyDollar[1].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 1080:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Definer

		{
			yyLOCAL = &Definer{
				Name:    yyDollar[1].str,
				Address: yyDollar[2].str,
			}
		}
		yyVAL.union = yyLOCAL
	case 1081:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = encodeSQLString(yyDollar[1].str)
		}
	case 1082:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = formatIdentifier(yyDollar[1].str)
		}
	case 1083:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1084:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = formatAddress(yyDollar[1].str)
		}
	case 1085:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Lock

		{
			yyLOCAL = ForUpdateLock
		}
		yyVAL.union = yyLOCAL
	case 1086:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Lock

		{
			yyLOCAL = ShareModeLock
		}
		yyVAL.union = yyLOCAL
	case 1087:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL *SelectInto

		{
			yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str}
		}
		yyVAL.union = yyLOCAL
	case 1088:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SelectInto

		{
			yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""}
		}
		yyVAL.union = yyLOCAL
	case 1089:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *SelectInto

		{
			yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""}
		}
		yyVAL.union = yyLOCAL
	case 1090:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1091:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " format csv" + yyDollar[3].str
		}
	case 1092:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " format text" + yyDollar[3].str
		}
	case 1093:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1094:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = " header"
		}
	case 1095:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1096:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " manifest on"
		}
	case 1097:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " manifest off"
		}
	case 1098:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1099:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " overwrite on"
		}
	case 1100:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " overwrite off"
		}
	case 1101:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str + yyDollar[2].str
		}
	case 1102:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1103:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " lines" + yyDollar[2].str
		}
	case 1104:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str
		}
	case 1105:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str + yyDollar[2].str
		}
	case 1106:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str)
		}
	case 1107:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
		}
	case 1108:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1109:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str
		}
	case 1110:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str
		}
	case 1111:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str + yyDollar[2].str
		}
	case 1112:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
		}
	case 1113:
		yyDollar = yyS[yypt-4 : yypt+1]

		{
			yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str)
		}
	case 1114:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str)
		}
	case 1115:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.str = ""
		}
	case 1116:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.str = " optionally"
		}
	case 1117:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Insert

		{
			yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1118:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Insert

		{
			yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1119:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *Insert

		{
			yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1120:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Insert

		{
			yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1121:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Insert

		{
			yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1122:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = Columns{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1123:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Columns

		{
			yyLOCAL = Columns{yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1124:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 1125:
		yyDollar = yyS[yypt-5 : yypt+1]

		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[5].colIdent)
		}
	case 1126:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL UpdateExprs

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1127:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL UpdateExprs

		{
			yyLOCAL = yyDollar[5].updateExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 1128:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Values

		{
			yyLOCAL = Values{yyDollar[1].valTupleUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1129:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*Values)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion())
		}
	case 1130:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ValTuple

		{
			yyLOCAL = yyDollar[1].valTupleUnion()
		}
		yyVAL.union = yyLOCAL
	case 1131:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ValTuple

		{
			yyLOCAL = ValTuple{}
		}
		yyVAL.union = yyLOCAL
	case 1132:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ValTuple

		{
			yyLOCAL = ValTuple(yyDollar[2].exprsUnion())
		}
		yyVAL.union = yyLOCAL
	case 1133:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			if len(yyDollar[1].valTupleUnion()) == 1 {
				yyLOCAL = yyDollar[1].valTupleUnion()[0]
			} else {
				yyLOCAL = yyDollar[1].valTupleUnion()
			}
		}
		yyVAL.union = yyLOCAL
	case 1134:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL UpdateExprs

		{
			yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1135:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion())
		}
	case 1136:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *UpdateExpr

		{
			yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1137:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SetExprs

		{
			yyLOCAL = SetExprs{yyDollar[1].setExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1138:
		yyDollar = yyS[yypt-3 : yypt+1]

		{
			yySLICE := (*SetExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].setExprUnion())
		}
	case 1139:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr

		{
			yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")}
		}
		yyVAL.union = yyLOCAL
	case 1140:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr

		{
			yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")}
		}
		yyVAL.union = yyLOCAL
	case 1141:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr

		{
			yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1142:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr

		{
			yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1143:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *SetExpr

		{
			yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion()
			yyLOCAL = yyDollar[2].setExprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1145:
		yyDollar = yyS[yypt-2 : yypt+1]

		{
			yyVAL.str = "charset"
		}
	case 1148:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String())
		}
		yyVAL.union = yyLOCAL
	case 1149:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = NewStrLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 1150:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr

		{
			yyLOCAL = &Default{}
		}
		yyVAL.union = yyLOCAL
	case 1153:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1154:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1155:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1156:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1157:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1158:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL bool

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1159:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Ignore

		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1160:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Ignore

		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1161:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 1162:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 1163:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.empty = struct{}{}
		}
	case 1164:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement

		{
			yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1165:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Exprs

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1166:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Exprs

		{
			yyLOCAL = yyDollar[1].exprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 1167:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []*IndexOption

		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1168:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexOption

		{
			yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1169:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *IndexOption

		{
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())}
		}
		yyVAL.union = yyLOCAL
	case 1170:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 1171:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = NewColIdent(string(yyDollar[1].str))
		}
	case 1173:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.colIdent = NewColIdent(string(yyDollar[1].str))
		}
	case 1174:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String()))
		}
	case 1175:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str))
		}
	case 1176:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent("")
		}
	case 1177:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableIdent = yyDollar[1].tableIdent
		}
	case 1179:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str))
		}
	case 1637:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			if incNesting(yylex) {
				yylex.Error("max nesting level reached")
				return 1
			}
		}
	case 1638:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			decNesting(yylex)
		}
	case 1639:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			skipToEnd(yylex)
		}
	case 1640:
		yyDollar = yyS[yypt-0 : yypt+1]

		{
			skipToEnd(yylex)
		}
	case 1641:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			skipToEnd(yylex)
		}
	case 1642:
		yyDollar = yyS[yypt-1 : yypt+1]

		{
			skipToEnd(yylex)
		}
	}
	goto yystack 
}
// Code generated by goyacc -fast-append -o sql.go sql.y. DO NOT EDIT.

//line sql.y:18
package sqlparser

import (
	__yyfmt__ "fmt"
	__yyunsafe__ "unsafe"
)

//line sql.y:18

func setParseTree(yylex yyLexer, stmt Statement) {
	yylex.(*Tokenizer).ParseTree = stmt
}

func setAllowComments(yylex yyLexer, allow bool) {
	yylex.(*Tokenizer).AllowComments = allow
}

func setDDL(yylex yyLexer, node Statement) {
	yylex.(*Tokenizer).partialDDL = node
}

func incNesting(yylex yyLexer) bool {
	yylex.(*Tokenizer).nesting++
	if yylex.(*Tokenizer).nesting == 200 {
		return true
	}
	return false
}

func decNesting(yylex yyLexer) {
	yylex.(*Tokenizer).nesting--
}

// skipToEnd forces the lexer to end prematurely. Not all SQL statements
// are supported by the Parser, thus calling skipToEnd will make the lexer
// return EOF early.
func skipToEnd(yylex yyLexer) {
	yylex.(*Tokenizer).SkipToEnd = true
}

func bindVariable(yylex yyLexer, bvar string) {
	yylex.(*Tokenizer).BindVars[bvar] = struct{}{}
}

const LEX_ERROR = 57346
const UNION = 57347
const SELECT = 57348
const STREAM = 57349
const VSTREAM = 57350
const INSERT = 57351
const UPDATE = 57352
const DELETE = 57353
const FROM = 57354
const WHERE = 57355
const GROUP = 57356
const HAVING = 57357
const ORDER = 57358
const BY = 57359
const LIMIT = 57360
const OFFSET = 57361
const FOR = 57362
const ALL = 57363
const DISTINCT = 57364
const AS = 57365
const EXISTS = 57366
const ASC = 57367
const DESC = 57368
const INTO = 57369
const DUPLICATE = 57370
const DEFAULT = 57371
const SET = 57372
const LOCK = 57373
const UNLOCK = 57374
const KEYS = 57375
const DO = 57376
const CALL = 57377
const DISTINCTROW = 57378
const PARSER = 57379
const GENERATED = 57380
const ALWAYS = 57381
const OUTFILE = 57382
const S3 = 57383
const DATA = 57384
const LOAD = 57385
const LINES = 57386
const TERMINATED = 57387
const ESCAPED = 57388
const ENCLOSED = 57389
const DUMPFILE = 57390
const CSV = 57391
const HEADER = 57392
const MANIFEST = 57393
const OVERWRITE = 57394
const STARTING = 57395
const OPTIONALLY = 57396
const VALUES = 57397
const LAST_INSERT_ID = 57398
const NEXT = 57399
const VALUE = 57400
const SHARE = 57401
const MODE = 57402
const SQL_NO_CACHE = 57403
const SQL_CACHE = 57404
const SQL_CALC_FOUND_ROWS = 57405
const JOIN = 57406
const STRAIGHT_JOIN = 57407
const LEFT = 57408
const RIGHT = 57409
const INNER = 57410
const OUTER = 57411
const CROSS = 57412
const NATURAL = 57413
const USE = 57414
const FORCE = 57415
const ON = 57416
const USING = 57417
const INPLACE = 57418
const COPY = 57419
const ALGORITHM = 57420
const NONE = 57421
const SHARED = 57422
const EXCLUSIVE = 57423
const SUBQUERY_AS_EXPR = 57424
const ID = 57425
const AT_ID = 57426
const AT_AT_ID = 57427
const HEX = 57428
const STRING = 57429
const NCHAR_STRING = 57430
const INTEGRAL = 57431
const FLOAT = 57432
const DECIMAL = 57433
const HEXNUM = 57434
const VALUE_ARG = 57435
const LIST_ARG = 57436
const COMMENT = 57437
const COMMENT_KEYWORD = 57438
const BIT_LITERAL = 57439
const COMPRESSION = 57440
const JSON_PRETTY = 57441
const JSON_STORAGE_SIZE = 57442
const JSON_STORAGE_FREE = 57443
const EXTRACT = 57444
const NULL = 57445
const TRUE = 57446
const FALSE = 57447
const OFF = 57448
const DISCARD = 57449
const IMPORT = 57450
const ENABLE = 57451
const DISABLE = 57452
const TABLESPACE = 57453
const VIRTUAL = 57454
const STORED = 57455
const BOTH = 57456
const LEADING = 57457
const TRAILING = 57458
const EMPTY_FROM_CLAUSE = 57459
const LOWER_THAN_CHARSET = 57460
const CHARSET = 57461
const UNIQUE = 57462
const KEY = 57463
const EXPRESSION_PREC_SETTER = 57464
const OR = 57465
const XOR = 57466
const AND = 57467
const NOT = 57468
const BETWEEN = 57469
const CASE = 57470
const WHEN = 57471
const THEN = 57472
const ELSE = 57473
const END = 57474
const LE = 57475
const GE = 57476
const NE = 57477
const NULL_SAFE_EQUAL = 57478
const IS = 57479
const LIKE = 57480
const REGEXP = 57481
const IN = 57482
const SHIFT_LEFT = 57483
const SHIFT_RIGHT = 57484
const DIV = 57485
const MOD = 57486
const UNARY = 57487
const COLLATE = 57488
const BINARY = 57489
const UNDERSCORE_ARMSCII8 = 57490
const UNDERSCORE_ASCII = 57491
const UNDERSCORE_BIG5 = 57492
const UNDERSCORE_BINARY = 57493
const UNDERSCORE_CP1250 = 57494
const UNDERSCORE_CP1251 = 57495
const UNDERSCORE_CP1256 = 57496
const UNDERSCORE_CP1257 = 57497
const UNDERSCORE_CP850 = 57498
const UNDERSCORE_CP852 = 57499
const UNDERSCORE_CP866 = 57500
const UNDERSCORE_CP932 = 57501
const UNDERSCORE_DEC8 = 57502
const UNDERSCORE_EUCJPMS = 57503
const UNDERSCORE_EUCKR = 57504
const UNDERSCORE_GB18030 = 57505
const UNDERSCORE_GB2312 = 57506
const UNDERSCORE_GBK = 57507
const UNDERSCORE_GEOSTD8 = 57508
const UNDERSCORE_GREEK = 57509
const UNDERSCORE_HEBREW = 57510
const UNDERSCORE_HP8 = 57511
const UNDERSCORE_KEYBCS2 = 57512
const UNDERSCORE_KOI8R = 57513
const UNDERSCORE_KOI8U = 57514
const UNDERSCORE_LATIN1 = 57515
const UNDERSCORE_LATIN2 = 57516
const UNDERSCORE_LATIN5 = 57517
const UNDERSCORE_LATIN7 = 57518
const UNDERSCORE_MACCE = 57519
const UNDERSCORE_MACROMAN = 57520
const UNDERSCORE_SJIS = 57521
const UNDERSCORE_SWE7 = 57522
const UNDERSCORE_TIS620 = 57523
const UNDERSCORE_UCS2 = 57524
const UNDERSCORE_UJIS = 57525
const UNDERSCORE_UTF16 = 57526
const UNDERSCORE_UTF16LE = 57527
const UNDERSCORE_UTF32 = 57528
const UNDERSCORE_UTF8 = 57529
const UNDERSCORE_UTF8MB4 = 57530
const INTERVAL = 57531
const JSON_EXTRACT_OP = 57532
const JSON_UNQUOTE_EXTRACT_OP = 57533
const CREATE = 57534
const ALTER = 57535
const DROP = 57536
const RENAME = 57537
const ANALYZE = 57538
const ADD = 57539
const FLUSH = 57540
const CHANGE = 57541
const MODIFY = 57542
const DEALLOCATE = 57543
const REVERT = 57544
const SCHEMA = 57545
const TABLE = 57546
const INDEX = 57547
const VIEW = 57548
const TO = 57549
const IGNORE = 57550
const IF = 57551
const PRIMARY = 57552
const COLUMN = 57553
const SPATIAL = 57554
const FULLTEXT = 57555
const KEY_BLOCK_SIZE = 57556
const CHECK = 57557
const INDEXES = 57558
const ACTION = 57559
const CASCADE = 57560
const CONSTRAINT = 57561
const FOREIGN = 57562
const NO = 57563
const REFERENCES = 57564
const RESTRICT = 57565
const SHOW = 57566
const DESCRIBE = 57567
const EXPLAIN = 57568
const DATE = 57569
const ESCAPE = 57570
const REPAIR = 57571
const OPTIMIZE = 57572
const TRUNCATE = 57573
const COALESCE = 57574
const EXCHANGE = 57575
const REBUILD = 57576
const PARTITIONING = 57577
const REMOVE = 57578
const PREPARE = 57579
const EXECUTE = 57580
const MAXVALUE = 57581
const PARTITION = 57582
const REORGANIZE = 57583
const LESS = 57584
const THAN = 57585
const PROCEDURE = 57586
const TRIGGER = 57587
const VINDEX = 57588
const VINDEXES = 57589
const DIRECTORY = 57590
const NAME = 57591
const UPGRADE = 57592
const STATUS = 57593
const VARIABLES = 57594
const WARNINGS = 57595
const CASCADED = 57596
const DEFINER = 57597
const OPTION = 57598
const SQL = 57599
const UNDEFINED = 57600
const SEQUENCE = 57601
const MERGE = 57602
const TEMPORARY = 57603
const TEMPTABLE = 57604
const INVOKER = 57605
const SECURITY = 57606
const FIRST = 57607
const AFTER = 57608
const LAST = 57609
const VITESS_MIGRATION = 57610
const CANCEL = 57611
const RETRY = 57612
const COMPLETE = 57613
const CLEANUP = 57614
const BEGIN = 57615
const START = 57616
const TRANSACTION = 57617
const COMMIT = 57618
const ROLLBACK = 57619
const SAVEPOINT = 57620
const RELEASE = 57621
const WORK = 57622
const BIT = 57623
const TINYINT = 57624
const SMALLINT = 57625
const MEDIUMINT = 57626
const INT = 57627
const INTEGER = 57628
const BIGINT = 57629
const INTNUM = 57630
const REAL = 57631
const DOUBLE = 57632
const FLOAT_TYPE = 57633
const DECIMAL_TYPE = 57634
const NUMERIC = 57635
const TIME = 57636
const TIMESTAMP = 57637
const DATETIME = 57638
const YEAR = 57639
const CHAR = 57640
const VARCHAR = 57641
const BOOL = 57642
const CHARACTER = 57643
const VARBINARY = 57644
const NCHAR = 57645
const TEXT = 57646
const TINYTEXT = 57647
const MEDIUMTEXT = 57648
const LONGTEXT = 57649
const BLOB = 57650
const TINYBLOB = 57651
const MEDIUMBLOB = 57652
const LONGBLOB = 57653
const JSON = 57654
const ENUM = 57655
const GEOMETRY = 57656
const POINT = 57657
const LINESTRING = 57658
const POLYGON = 57659
const GEOMETRYCOLLECTION = 57660
const MULTIPOINT = 57661
const MULTILINESTRING = 57662
const MULTIPOLYGON = 57663
const ASCII = 57664
const UNICODE = 57665
const NULLX = 57666
const AUTO_INCREMENT = 57667
const APPROXNUM = 57668
const SIGNED = 57669
const UNSIGNED = 57670
const ZEROFILL = 57671
const CODE = 57672
const COLLATION = 57673
const COLUMNS = 57674
const DATABASES = 57675
const ENGINES = 57676
const EVENT = 57677
const EXTENDED = 57678
const FIELDS = 57679
const FULL = 57680
const FUNCTION = 57681
const GTID_EXECUTED = 57682
const KEYSPACES = 57683
const OPEN = 57684
const PLUGINS = 57685
const PRIVILEGES = 57686
const PROCESSLIST = 57687
const SCHEMAS = 57688
const TABLES = 57689
const TRIGGERS = 57690
const USER = 57691
const VGTID_EXECUTED = 57692
const VITESS_KEYSPACES = 57693
const VITESS_METADATA = 57694
const VITESS_MIGRATIONS = 57695
const VITESS_REPLICATION_STATUS = 57696
const VITESS_SHARDS = 57697
const VITESS_TABLETS = 57698
const VSCHEMA = 57699
const NAMES = 57700
const GLOBAL = 57701
const SESSION = 57702
const ISOLATION = 57703
const LEVEL = 57704
const READ = 57705
const WRITE = 57706
const ONLY = 57707
const REPEATABLE = 57708
const COMMITTED = 57709
const UNCOMMITTED = 57710
const SERIALIZABLE = 57711
const CURRENT_TIMESTAMP = 57712
const DATABASE = 57713
const CURRENT_DATE = 57714
const CURRENT_TIME = 57715
const LOCALTIME = 57716
const LOCALTIMESTAMP = 57717
const CURRENT_USER = 57718
const UTC_DATE = 57719
const UTC_TIME = 57720
const UTC_TIMESTAMP = 57721
const DAY = 57722
const DAY_HOUR = 57723
const DAY_MICROSECOND = 57724
const DAY_MINUTE = 57725
const DAY_SECOND = 57726
const HOUR = 57727
const HOUR_MICROSECOND = 57728
const HOUR_MINUTE = 57729
const HOUR_SECOND = 57730
const MICROSECOND = 57731
const MINUTE = 57732
const MINUTE_MICROSECOND = 57733
const MINUTE_SECOND = 57734
const MONTH = 57735
const QUARTER = 57736
const SECOND = 57737
const SECOND_MICROSECOND = 57738
const YEAR_MONTH = 57739
const WEEK = 57740
const REPLACE = 57741
const CONVERT = 57742
const CAST = 57743
const SUBSTR = 57744
const SUBSTRING = 57745
const GROUP_CONCAT = 57746
const SEPARATOR = 57747
const TIMESTAMPADD = 57748
const TIMESTAMPDIFF = 57749
const WEIGHT_STRING = 57750
const LTRIM = 57751
const RTRIM = 57752
const TRIM = 57753
const MATCH = 57754
const AGAINST = 57755
const BOOLEAN = 57756
const LANGUAGE = 57757
const WITH = 57758
const QUERY = 57759
const EXPANSION = 57760
const WITHOUT = 57761
const VALIDATION = 57762
const UNUSED = 57763
const ARRAY = 57764
const CUME_DIST = 57765
const DESCRIPTION = 57766
const DENSE_RANK = 57767
const EMPTY = 57768
const EXCEPT = 57769
const FIRST_VALUE = 57770
const GROUPING = 57771
const GROUPS = 57772
const JSON_TABLE = 57773
const LAG = 57774
const LAST_VALUE = 57775
const LATERAL = 57776
const LEAD = 57777
const MEMBER = 57778
const NTH_VALUE = 57779
const NTILE = 57780
const OF = 57781
const OVER = 57782
const PERCENT_RANK = 57783
const RANK = 57784
const RECURSIVE = 57785
const ROW_NUMBER = 57786
const SYSTEM = 57787
const WINDOW = 57788
const ACTIVE = 57789
const ADMIN = 57790
const BUCKETS = 57791
const CLONE = 57792
const COMPONENT = 57793
const DEFINITION = 57794
const ENFORCED = 57795
const EXCLUDE = 57796
const FOLLOWING = 57797
const GEOMCOLLECTION = 57798
const GET_MASTER_PUBLIC_KEY = 57799
const HISTOGRAM = 57800
const HISTORY = 57801
const INACTIVE = 57802
const INVISIBLE = 57803
const LOCKED = 57804
const MASTER_COMPRESSION_ALGORITHMS = 57805
const MASTER_PUBLIC_KEY_PATH = 57806
const MASTER_TLS_CIPHERSUITES = 57807
const MASTER_ZSTD_COMPRESSION_LEVEL = 57808
const NESTED = 57809
const NETWORK_NAMESPACE = 57810
const NOWAIT = 57811
const NULLS = 57812
const OJ = 57813
const OLD = 57814
const OPTIONAL = 57815
const ORDINALITY = 57816
const ORGANIZATION = 57817
const OTHERS = 57818
const PATH = 57819
const PERSIST = 57820
const PERSIST_ONLY = 57821
const PRECEDING = 57822
const PRIVILEGE_CHECKS_USER = 57823
const PROCESS = 57824
const RANDOM = 57825
const REFERENCE = 57826
const REQUIRE_ROW_FORMAT = 57827
const RESOURCE = 57828
const RESPECT = 57829
const RESTART = 57830
const RETAIN = 57831
const REUSE = 57832
const ROLE = 57833
const SECONDARY = 57834
const SECONDARY_ENGINE = 57835
const SECONDARY_LOAD = 57836
const SECONDARY_UNLOAD = 57837
const SKIP = 57838
const SRID = 57839
const THREAD_PRIORITY = 57840
const TIES = 57841
const UNBOUNDED = 57842
const VCPU = 57843
const VISIBLE = 57844
const FORMAT = 57845
const TREE = 57846
const VITESS = 57847
const TRADITIONAL = 57848
const LOCAL = 57849
const LOW_PRIORITY = 57850
const NO_WRITE_TO_BINLOG = 57851
const LOGS = 57852
const ERROR = 57853
const GENERAL = 57854
const HOSTS = 57855
const OPTIMIZER_COSTS = 57856
const USER_RESOURCES = 57857
const SLOW = 57858
const CHANNEL = 57859
const RELAY = 57860
const EXPORT = 57861
const AVG_ROW_LENGTH = 57862
const CONNECTION = 57863
const CHECKSUM = 57864
const DELAY_KEY_WRITE = 57865
const ENCRYPTION = 57866
const ENGINE = 57867
const INSERT_METHOD = 57868
const MAX_ROWS = 57869
const MIN_ROWS = 57870
const PACK_KEYS = 57871
const PASSWORD = 57872
const FIXED = 57873
const DYNAMIC = 57874
const COMPRESSED = 57875
const REDUNDANT = 57876
const COMPACT = 57877
const ROW_FORMAT = 57878
const STATS_AUTO_RECALC = 57879
const STATS_PERSISTENT = 57880
const STATS_SAMPLE_PAGES = 57881
const STORAGE = 57882
const MEMORY = 57883
const DISK = 57884
const PARTITIONS = 57885
const LINEAR = 57886
const RANGE = 57887
const LIST = 57888
const SUBPARTITION = 57889
const SUBPARTITIONS = 57890
const HASH = 57891

var yyToknames = [...]string{
	"$end",
	"error",
	"$unk",
	"LEX_ERROR",
	"UNION",
	"SELECT",
	"STREAM",
	"VSTREAM",
	"INSERT",
	"UPDATE",
	"DELETE",
	"FROM",
	"WHERE",
	"GROUP",
	"HAVING",
	"ORDER",
	"BY",
	"LIMIT",
	"OFFSET",
	"FOR",
	"ALL",
	"DISTINCT",
	"AS",
	"EXISTS",
	"ASC",
	"DESC",
	"INTO",
	"DUPLICATE",
	"DEFAULT",
	"SET",
	"LOCK",
	"UNLOCK",
	"KEYS",
	"DO",
	"CALL",
	"DISTINCTROW",
	"PARSER",
	"GENERATED",
	"ALWAYS",
	"OUTFILE",
	"S3",
	"DATA",
	"LOAD",
	"LINES",
	"TERMINATED",
	"ESCAPED",
	"ENCLOSED",
	"DUMPFILE",
	"CSV",
	"HEADER",
	"MANIFEST",
	"OVERWRITE",
	"STARTING",
	"OPTIONALLY",
	"VALUES",
	"LAST_INSERT_ID",
	"NEXT",
	"VALUE",
	"SHARE",
	"MODE",
	"SQL_NO_CACHE",
	"SQL_CACHE",
	"SQL_CALC_FOUND_ROWS",
	"JOIN",
	"STRAIGHT_JOIN",
	"LEFT",
	"RIGHT",
	"INNER",
	"OUTER",
	"CROSS",
	"NATURAL",
	"USE",
	"FORCE",
	"ON",
	"USING",
	"INPLACE",
	"COPY",
	"ALGORITHM",
	"NONE",
	"SHARED",
	"EXCLUSIVE",
	"SUBQUERY_AS_EXPR",
	"'('",
	"','",
	"')'",
	"ID",
	"AT_ID",
	"AT_AT_ID",
	"HEX",
	"STRING",
	"NCHAR_STRING",
	"INTEGRAL",
	"FLOAT",
	"DECIMAL",
	"HEXNUM",
	"VALUE_ARG",
	"LIST_ARG",
	"COMMENT",
	"COMMENT_KEYWORD",
	"BIT_LITERAL",
	"COMPRESSION",
	"JSON_PRETTY",
	"JSON_STORAGE_SIZE",
	"JSON_STORAGE_FREE",
	"EXTRACT",
	"NULL",
	"TRUE",
	"FALSE",
	"OFF",
	"DISCARD",
	"IMPORT",
	"ENABLE",
	"DISABLE",
	"TABLESPACE",
	"VIRTUAL",
	"STORED",
	"BOTH",
	"LEADING",
	"TRAILING",
	"EMPTY_FROM_CLAUSE",
	"LOWER_THAN_CHARSET",
	"CHARSET",
	"UNIQUE",
	"KEY",
	"EXPRESSION_PREC_SETTER",
	"OR",
	"'|'",
	"XOR",
	"AND",
	"NOT",
	"'!'",
	"BETWEEN",
	"CASE",
	"WHEN",
	"THEN",
	"ELSE",
	"END",
	"'='",
	"'<'",
	"'>'",
	"LE",
	"GE",
	"NE",
	"NULL_SAFE_EQUAL",
	"IS",
	"LIKE",
	"REGEXP",
	"IN",
	"'&'",
	"SHIFT_LEFT",
	"SHIFT_RIGHT",
	"'+'",
	"'-'",
	"'*'",
	"'/'",
	"DIV",
	"'%'",
	"MOD",
	"'^'",
	"'~'",
	"UNARY",
	"COLLATE",
	"BINARY",
	"UNDERSCORE_ARMSCII8",
	"UNDERSCORE_ASCII",
	"UNDERSCORE_BIG5",
	"UNDERSCORE_BINARY",
	"UNDERSCORE_CP1250",
	"UNDERSCORE_CP1251",
	"UNDERSCORE_CP1256",
	"UNDERSCORE_CP1257",
	"UNDERSCORE_CP850",
	"UNDERSCORE_CP852",
	"UNDERSCORE_CP866",
	"UNDERSCORE_CP932",
	"UNDERSCORE_DEC8",
	"UNDERSCORE_EUCJPMS",
	"UNDERSCORE_EUCKR",
	"UNDERSCORE_GB18030",
	"UNDERSCORE_GB2312",
	"UNDERSCORE_GBK",
	"UNDERSCORE_GEOSTD8",
	"UNDERSCORE_GREEK",
	"UNDERSCORE_HEBREW",
	"UNDERSCORE_HP8",
	"UNDERSCORE_KEYBCS2",
	"UNDERSCORE_KOI8R",
	"UNDERSCORE_KOI8U",
	"UNDERSCORE_LATIN1",
	"UNDERSCORE_LATIN2",
	"UNDERSCORE_LATIN5",
	"UNDERSCORE_LATIN7",
	"UNDERSCORE_MACCE",
	"UNDERSCORE_MACROMAN",
	"UNDERSCORE_SJIS",
	"UNDERSCORE_SWE7",
	"UNDERSCORE_TIS620",
	"UNDERSCORE_UCS2",
	"UNDERSCORE_UJIS",
	"UNDERSCORE_UTF16",
	"UNDERSCORE_UTF16LE",
	"UNDERSCORE_UTF32",
	"UNDERSCORE_UTF8",
	"UNDERSCORE_UTF8MB4",
	"INTERVAL",
	"'.'",
	"JSON_EXTRACT_OP",
	"JSON_UNQUOTE_EXTRACT_OP",
	"CREATE",
	"ALTER",
	"DROP",
	"RENAME",
	"ANALYZE",
	"ADD",
	"FLUSH",
	"CHANGE",
	"MODIFY",
	"DEALLOCATE",
	"REVERT",
	"SCHEMA",
	"TABLE",
	"INDEX",
	"VIEW",
	"TO",
	"IGNORE",
	"IF",
	"PRIMARY",
	"COLUMN",
	"SPATIAL",
	"FULLTEXT",
	"KEY_BLOCK_SIZE",
	"CHECK",
	"INDEXES",
	"ACTION",
	"CASCADE",
	"CONSTRAINT",
	"FOREIGN",
	"NO",
	"REFERENCES",
	"RESTRICT",
	"SHOW",
	"DESCRIBE",
	"EXPLAIN",
	"DATE",
	"ESCAPE",
	"REPAIR",
	"OPTIMIZE",
	"TRUNCATE",
	"COALESCE",
	"EXCHANGE",
	"REBUILD",
	"PARTITIONING",
	"REMOVE",
	"PREPARE",
	"EXECUTE",
	"MAXVALUE",
	"PARTITION",
	"REORGANIZE",
	"LESS",
	"THAN",
	"PROCEDURE",
	"TRIGGER",
	"VINDEX",
	"VINDEXES",
	"DIRECTORY",
	"NAME",
	"UPGRADE",
	"STATUS",
	"VARIABLES",
	"WARNINGS",
	"CASCADED",
	"DEFINER",
	"OPTION",
	"SQL",
	"UNDEFINED",
	"SEQUENCE",
	"MERGE",
	"TEMPORARY",
	"TEMPTABLE",
	"INVOKER",
	"SECURITY",
	"FIRST",
	"AFTER",
	"LAST",
	"VITESS_MIGRATION",
	"CANCEL",
	"RETRY",
	"COMPLETE",
	"CLEANUP",
	"BEGIN",
	"START",
	"TRANSACTION",
	"COMMIT",
	"ROLLBACK",
	"SAVEPOINT",
	"RELEASE",
	"WORK",
	"BIT",
	"TINYINT",
	"SMALLINT",
	"MEDIUMINT",
	"INT",
	"INTEGER",
	"BIGINT",
	"INTNUM",
	"REAL",
	"DOUBLE",
	"FLOAT_TYPE",
	"DECIMAL_TYPE",
	"NUMERIC",
	"TIME",
	"TIMESTAMP",
	"DATETIME",
	"YEAR",
	"CHAR",
	"VARCHAR",
	"BOOL",
	"CHARACTER",
	"VARBINARY",
	"NCHAR",
	"TEXT",
	"TINYTEXT",
	"MEDIUMTEXT",
	"LONGTEXT",
	"BLOB",
	"TINYBLOB",
	"MEDIUMBLOB",
	"LONGBLOB",
	"JSON",
	"ENUM",
	"GEOMETRY",
	"POINT",
	"LINESTRING",
	"POLYGON",
	"GEOMETRYCOLLECTION",
	"MULTIPOINT",
	"MULTILINESTRING",
	"MULTIPOLYGON",
	"ASCII",
	"UNICODE",
	"NULLX",
	"AUTO_INCREMENT",
	"APPROXNUM",
	"SIGNED",
	"UNSIGNED",
	"ZEROFILL",
	"CODE",
	"COLLATION",
	"COLUMNS",
	"DATABASES",
	"ENGINES",
	"EVENT",
	"EXTENDED",
	"FIELDS",
	"FULL",
	"FUNCTION",
	"GTID_EXECUTED",
	"KEYSPACES",
	"OPEN",
	"PLUGINS",
	"PRIVILEGES",
	"PROCESSLIST",
	"SCHEMAS",
	"TABLES",
	"TRIGGERS",
	"USER",
	"VGTID_EXECUTED",
	"VITESS_KEYSPACES",
	"VITESS_METADATA",
	"VITESS_MIGRATIONS",
	"VITESS_REPLICATION_STATUS",
	"VITESS_SHARDS",
	"VITESS_TABLETS",
	"VSCHEMA",
	"NAMES",
	"GLOBAL",
	"SESSION",
	"ISOLATION",
	"LEVEL",
	"READ",
	"WRITE",
	"ONLY",
	"REPEATABLE",
	"COMMITTED",
	"UNCOMMITTED",
	"SERIALIZABLE",
	"CURRENT_TIMESTAMP",
	"DATABASE",
	"CURRENT_DATE",
	"CURRENT_TIME",
	"LOCALTIME",
	"LOCALTIMESTAMP",
	"CURRENT_USER",
	"UTC_DATE",
	"UTC_TIME",
	"UTC_TIMESTAMP",
	"DAY",
	"DAY_HOUR",
	"DAY_MICROSECOND",
	"DAY_MINUTE",
	"DAY_SECOND",
	"HOUR",
	"HOUR_MICROSECOND",
	"HOUR_MINUTE",
	"HOUR_SECOND",
	"MICROSECOND",
	"MINUTE",
	"MINUTE_MICROSECOND",
	"MINUTE_SECOND",
	"MONTH",
	"QUARTER",
	"SECOND",
	"SECOND_MICROSECOND",
	"YEAR_MONTH",
	"WEEK",
	"REPLACE",
	"CONVERT",
	"CAST",
	"SUBSTR",
	"SUBSTRING",
	"GROUP_CONCAT",
	"SEPARATOR",
	"TIMESTAMPADD",
	"TIMESTAMPDIFF",
	"WEIGHT_STRING",
	"LTRIM",
	"RTRIM",
	"TRIM",
	"MATCH",
	"AGAINST",
	"BOOLEAN",
	"LANGUAGE",
	"WITH",
	"QUERY",
	"EXPANSION",
	"WITHOUT",
	"VALIDATION",
	"UNUSED",
	"ARRAY",
	"CUME_DIST",
	"DESCRIPTION",
	"DENSE_RANK",
	"EMPTY",
	"EXCEPT",
	"FIRST_VALUE",
	"GROUPING",
	"GROUPS",
	"JSON_TABLE",
	"LAG",
	"LAST_VALUE",
	"LATERAL",
	"LEAD",
	"MEMBER",
	"NTH_VALUE",
	"NTILE",
	"OF",
	"OVER",
	"PERCENT_RANK",
	"RANK",
	"RECURSIVE",
	"ROW_NUMBER",
	"SYSTEM",
	"WINDOW",
	"ACTIVE",
	"ADMIN",
	"BUCKETS",
	"CLONE",
	"COMPONENT",
	"DEFINITION",
	"ENFORCED",
	"EXCLUDE",
	"FOLLOWING",
	"GEOMCOLLECTION",
	"GET_MASTER_PUBLIC_KEY",
	"HISTOGRAM",
	"HISTORY",
	"INACTIVE",
	"INVISIBLE",
	"LOCKED",
	"MASTER_COMPRESSION_ALGORITHMS",
	"MASTER_PUBLIC_KEY_PATH",
	"MASTER_TLS_CIPHERSUITES",
	"MASTER_ZSTD_COMPRESSION_LEVEL",
	"NESTED",
	"NETWORK_NAMESPACE",
	"NOWAIT",
	"NULLS",
	"OJ",
	"OLD",
	"OPTIONAL",
	"ORDINALITY",
	"ORGANIZATION",
	"OTHERS",
	"PATH",
	"PERSIST",
	"PERSIST_ONLY",
	"PRECEDING",
	"PRIVILEGE_CHECKS_USER",
	"PROCESS",
	"RANDOM",
	"REFERENCE",
	"REQUIRE_ROW_FORMAT",
	"RESOURCE",
	"RESPECT",
	"RESTART",
	"RETAIN",
	"REUSE",
	"ROLE",
	"SECONDARY",
	"SECONDARY_ENGINE",
	"SECONDARY_LOAD",
	"SECONDARY_UNLOAD",
	"SKIP",
	"SRID",
	"THREAD_PRIORITY",
	"TIES",
	"UNBOUNDED",
	"VCPU",
	"VISIBLE",
	"FORMAT",
	"TREE",
	"VITESS",
	"TRADITIONAL",
	"LOCAL",
	"LOW_PRIORITY",
	"NO_WRITE_TO_BINLOG",
	"LOGS",
	"ERROR",
	"GENERAL",
	"HOSTS",
	"OPTIMIZER_COSTS",
	"USER_RESOURCES",
	"SLOW",
	"CHANNEL",
	"RELAY",
	"EXPORT",
	"AVG_ROW_LENGTH",
	"CONNECTION",
	"CHECKSUM",
	"DELAY_KEY_WRITE",
	"ENCRYPTION",
	"ENGINE",
	"INSERT_METHOD",
	"MAX_ROWS",
	"MIN_ROWS",
	"PACK_KEYS",
	"PASSWORD",
	"FIXED",
	"DYNAMIC",
	"COMPRESSED",
	"REDUNDANT",
	"COMPACT",
	"ROW_FORMAT",
	"STATS_AUTO_RECALC",
	"STATS_PERSISTENT",
	"STATS_SAMPLE_PAGES",
	"STORAGE",
	"MEMORY",
	"DISK",
	"PARTITIONS",
	"LINEAR",
	"RANGE",
	"LIST",
	"SUBPARTITION",
	"SUBPARTITIONS",
	"HASH",
	"';'",
}

var yyStatenames = [...]string{}

const yyEofCode = 1
const yyErrCode = 2
const yyInitialStackSize = 16

//line yacctab:1
var yyExca = [...]int{
	-1, 0,
	10, 47,
	11, 47,
	-2, 37,
	-1, 1,
	1, -1,
	-2, 0,
	-1, 47,
	1, 140,
	567, 140,
	-2, 146,
	-1, 48,
	122, 146,
	162, 146,
	318, 146,
	-2, 447,
	-1, 55,
	33, 645,
	222, 645,
	233, 645,
	268, 659,
	269, 659,
	-2, 647,
	-1, 60,
	224, 670,
	-2, 668,
	-1, 114,
	221, 1153,
	-2, 119,
	-1, 116,
	1, 141,
	567, 141,
	-2, 146,
	-1, 126,
	123, 350,
	227, 350,
	-2, 441,
	-1, 145,
	122, 146,
	162, 146,
	318, 146,
	-2, 456,
	-1, 623,
	206, 1174,
	-2, 1170,
	-1, 624,
	206, 1175,
	-2, 1171,
	-1, 698,
	57, 738,
	-2, 753,
	-1, 735,
	138, 1545,
	-2, 112,
	-1, 736,
	138, 1416,
	-2, 113,
	-1, 742,
	138, 1474,
	-2, 1147,
	-1, 888,
	138, 1347,
	-2, 1144,
	-1, 926,
	232, 41,
	237, 41,
	-2, 361,
	-1, 1003,
	1, 495,
	567, 495,
	-2, 146,
	-1, 1211,
	57, 739,
	-2, 758,
	-1, 1212,
	57, 740,
	-2, 759,
	-1, 1264,
	122, 146,
	162, 146,
	318, 146,
	-2, 391,
	-1, 1341,
	123, 350,
	227, 350,
	-2, 441,
	-1, 1350,
	232, 42,
	237, 42,
	-2, 362,
	-1, 1612,
	206, 1179,
	-2, 1173,
	-1, 1696,
	122, 146,
	162, 146,
	318, 146,
	-2, 392,
	-1, 1703,
	23, 165,
	-2, 167,
	-1, 1904,
	84, 39,
	-2, 795,
	-1, 1956,
	75, 94,
	84, 94,
	-2, 815,
	-1, 2128,
	47, 1115,
	-2, 1109,
	-1, 2299,
	84, 39,
	-2, 796,
	-1, 2337,
	5, 53,
	16, 53,
	18, 53,
	85, 53,
	-2, 787,
	-1, 2580,
	90, 535,
	91, 535,
	164, 535,
	165, 535,
	166, 535,
	167, 535,
	168, 535,
	169, 535,
	170, 535,
	171, 535,
	172, 535,
	173, 535,
	174, 535,
	175, 535,
	176, 535,
	177, 535,
	178, 535,
	179, 535,
	180, 535,
	181, 535,
	182, 535,
	183, 535,
	184, 535,
	185, 535,
	186, 535,
	187, 535,
	188, 535,
	189, 535,
	190, 535,
	191, 535,
	192, 535,
	193, 535,
	194, 535,
	195, 535,
	196, 535,
	197, 535,
	198, 535,
	199, 535,
	200, 535,
	201, 535,
	202, 535,
	203, 535,
	204, 535,
	-2, 1476,
}

const yyPrivate = 57344

const yyLast = 37607

var yyAct = [...]int{
	623, 632, 625, 2645, 2644, 2627, 2524, 2621, 1693, 2578,
	2582, 2398, 2251, 1647, 1267, 1067, 3, 2222, 1626, 2486,
	2563, 2142, 2181, 2188, 2139, 572, 96, 1190, 691, 2424,
	2234, 2190, 1756, 1226, 2500, 1892, 2233, 713, 618, 617,
	37, 568, 2308, 626, 2143, 2302, 615, 2429, 2140, 616,
	1666, 182, 594, 2236, 182, 2328, 532, 182, 1950, 2137,
	2129, 1919, 548, 1726, 182, 566, 2294, 2058, 564, 1015,
	1988, 2017, 182, 1731, 1989, 1746, 1990, 891, 740, 36,
	154, 1939, 1682, 714, 1927, 1671, 1213, 182, 1911, 565,
	956, 1670, 1894, 38, 1546, 560, 2074, 1553, 1044, 140,
	1606, 1745, 1651, 693, 1765, 1798, 1505, 1733, 921, 548,
	1982, 1958, 548, 182, 548, 1235, 91, 695, 916, 699,
	577, 95, 1256, 1673, 737, 1193, 1348, 1628, 1565, 1149,
	1523, 1456, 1452, 1355, 898, 1086, 1364, 716, 1743, 927,
	1609, 1438, 1658, 895, 922, 899, 924, 923, 1239, 1461,
	1255, 705, 727, 157, 98, 117, 1340, 123, 1316, 700,
	1722, 118, 1253, 934, 1060, 1321, 1652, 999, 703, 555,
	1156, 97, 2533, 701, 1065, 124, 76, 1152, 2010, 85,
	89, 2628, 2219, 1758, 1619, 1758, 1759, 1760, 2037, 2036,
	1796, 2008, 2066, 1087, 2067, 2654, 702, 77, 8, 7,
	721, 119, 726, 6, 2648, 125, 2655, 707, 1512, 184,
	185, 186, 1623, 1624, 1511, 1510, 1509, 1508, 1507, 1494,
	892, 90, 505, 558, 1424, 559, 961, 2596, 1499, 1890,
	2125, 2641, 1921, 958, 907, 556, 902, 2605, 2618, 2363,
	2482, 2481, 2205, 960, 959, 2640, 972, 973, 692, 976,
	977, 978, 979, 78, 694, 982, 983, 984, 985, 986,
	987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
	119, 734, 913, 1738, 937, 741, 708, 715, 912, 102,
	2655, 2647, 2391, 2573, 1118, 2392, 914, 2631, 78, 78,
	2544, 938, 80, 962, 963, 964, 1087, 1736, 1097, 1836,
	2616, 178, 2442, 2399, 2564, 2491, 1119, 1120, 1121, 1122,
	1123, 1124, 1125, 1127, 1126, 1128, 1129, 969, 1784, 2572,
	104, 105, 2543, 108, 974, 120, 114, 2073, 2284, 179,
	87, 1330, 500, 1891, 119, 78, 2045, 2177, 162, 1967,
	2044, 911, 1966, 1008, 1009, 1968, 2065, 1594, 1051, 1257,
	1053, 1258, 687, 688, 689, 690, 1833, 1625, 698, 1930,
	1687, 906, 1063, 1834, 908, 87, 87, 2178, 2179, 1688,
	1689, 1034, 1039, 1040, 685, 1011, 684, 1002, 1022, 535,
	1972, 2525, 178, 1023, 1931, 1022, 729, 730, 1050, 1052,
	1023, 1093, 1979, 2013, 1085, 159, 1035, 160, 1021, 909,
	1020, 1097, 1028, 2011, 723, 2253, 120, 2305, 142, 535,
	177, 535, 87, 535, 998, 1706, 1705, 2275, 2100, 162,
	1500, 1501, 1502, 2273, 1197, 1498, 546, 550, 544, 1735,
	1586, 1575, 1576, 1577, 1578, 1588, 1579, 1580, 1581, 1593,
	1589, 1582, 1583, 1590, 1591, 1592, 1584, 1585, 1587, 975,
	152, 915, 1444, 1414, 2018, 141, 1766, 2040, 911, 1799,
	903, 1041, 1062, 1810, 1807, 1809, 1808, 905, 904, 2246,
	1804, 1042, 561, 2630, 1439, 1036, 159, 2247, 160, 1048,
	2597, 1029, 1057, 1049, 2254, 1037, 1038, 1342, 1343, 151,
	150, 177, 1043, 1054, 1093, 1004, 2053, 1415, 1815, 1416,
	182, 981, 182, 2255, 717, 182, 1812, 980, 1813, 910,
	1814, 1803, 2384, 2230, 945, 1047, 909, 1801, 163, 911,
	997, 1769, 917, 1055, 943, 1805, 918, 168, 87, 1667,
	918, 954, 953, 548, 548, 548, 2458, 2460, 2459, 600,
	1130, 952, 951, 950, 1130, 949, 1834, 1333, 1200, 948,
	947, 548, 548, 1802, 942, 955, 2194, 1092, 1089, 1090,
	1091, 1096, 1098, 1095, 896, 1094, 896, 2635, 894, 1079,
	2101, 930, 1088, 2614, 2057, 536, 1018, 2184, 1024, 1025,
	1026, 1027, 2204, 896, 1001, 1032, 1453, 146, 1344, 153,
	2492, 1341, 37, 147, 148, 2625, 1653, 1654, 929, 163,
	1354, 1064, 1895, 1897, 728, 536, 1744, 536, 168, 536,
	971, 2054, 1790, 1449, 2532, 2075, 1073, 965, 2212, 936,
	2009, 2039, 2185, 2069, 2229, 1058, 910, 1847, 1328, 1327,
	1326, 1737, 2029, 1450, 1324, 504, 499, 1786, 155, 1133,
	1134, 1135, 1136, 2042, 1131, 1132, 2521, 2187, 1445, 1141,
	1056, 1144, 2052, 2344, 2182, 2051, 2324, 946, 1183, 1963,
	1092, 1089, 1090, 1091, 1096, 1098, 1095, 944, 1094, 2012,
	1926, 2192, 2193, 1000, 1188, 1088, 1882, 1443, 2183, 2306,
	86, 1618, 2542, 116, 1243, 182, 1170, 910, 1013, 548,
	548, 1694, 1129, 1130, 2176, 710, 2077, 2060, 2538, 81,
	1137, 2478, 2059, 2646, 1353, 182, 111, 1061, 1069, 1070,
	2189, 936, 1835, 2380, 1189, 86, 86, 935, 1045, 155,
	1462, 693, 1206, 1204, 548, 2060, 2318, 957, 182, 1201,
	2059, 1800, 1203, 548, 1017, 1010, 1207, 1007, 1446, 548,
	1019, 2093, 695, 1426, 1425, 1427, 1428, 1429, 737, 77,
	1259, 1082, 1080, 1083, 1566, 1896, 1081, 2001, 2087, 2086,
	2085, 2079, 86, 2083, 1566, 2078, 1861, 2076, 1158, 112,
	1102, 1154, 2081, 1155, 1031, 2191, 1189, 1101, 1102, 1205,
	2438, 2080, 2355, 95, 2354, 1033, 1773, 2194, 936, 1363,
	1176, 1177, 1178, 1179, 149, 1362, 2082, 2084, 1352, 936,
	2623, 1783, 1781, 2624, 1100, 2622, 1101, 1102, 1194, 935,
	143, 970, 1440, 144, 1441, 1778, 98, 1442, 1785, 945,
	2549, 619, 2610, 595, 597, 620, 621, 943, 593, 596,
	622, 1219, 1528, 156, 161, 158, 164, 165, 166, 167,
	169, 170, 171, 172, 1778, 1782, 1529, 1530, 1527, 173,
	174, 175, 176, 1191, 1046, 2550, 1463, 598, 599, 2457,
	2461, 2462, 2463, 2514, 1003, 2345, 692, 1016, 936, 1839,
	1840, 1841, 1202, 1225, 1780, 1100, 1244, 1101, 1102, 694,
	936, 1254, 1249, 1250, 2095, 1222, 935, 1518, 1520, 1521,
	2186, 182, 929, 932, 933, 1317, 896, 935, 2515, 741,
	926, 930, 939, 929, 1325, 184, 185, 186, 1433, 1548,
	2281, 1519, 940, 2638, 156, 161, 158, 164, 165, 166,
	167, 169, 170, 171, 172, 548, 2636, 1350, 1659, 1660,
	173, 174, 175, 176, 1220, 1359, 637, 638, 639, 1361,
	2473, 1570, 548, 548, 1431, 548, 2414, 548, 548, 2413,
	548, 548, 548, 548, 548, 548, 1124, 1125, 1127, 1126,
	1128, 1129, 1421, 1360, 2362, 548, 935, 1103, 2361, 182,
	1397, 1432, 929, 932, 933, 1220, 896, 1208, 935, 2339,
	926, 930, 1549, 939, 929, 182, 2220, 2594, 1392, 1393,
	732, 2210, 1986, 940, 1985, 1150, 548, 87, 182, 1741,
	1434, 925, 1346, 2637, 1419, 1331, 1332, 1430, 1857, 1451,
	2588, 1526, 548, 941, 182, 1418, 1100, 2586, 1101, 1102,
	1339, 1100, 1417, 1101, 1102, 1420, 2590, 2591, 1408, 1100,
	182, 1101, 1102, 1402, 2192, 2193, 1399, 182, 1398, 561,
	1373, 2587, 1394, 2611, 1185, 1229, 182, 182, 182, 182,
	182, 182, 182, 182, 182, 548, 548, 548, 2279, 1220,
	1902, 1358, 2518, 1901, 1852, 1400, 1401, 1357, 2517, 1323,
	2516, 1406, 1407, 1851, 1233, 2437, 1336, 1337, 2435, 1366,
	1856, 1367, 2410, 1369, 1371, 1349, 182, 1375, 1377, 1379,
	1381, 1383, 1458, 2612, 1230, 1335, 1356, 1356, 1466, 2359,
	1100, 2351, 1101, 1102, 2287, 1470, 1995, 1472, 1473, 1474,
	1475, 1983, 1410, 1794, 1479, 1100, 1793, 1101, 1102, 1464,
	1465, 1650, 1100, 1236, 1101, 1102, 1632, 1551, 1493, 1550,
	1869, 1547, 1395, 1469, 1100, 1495, 1101, 1102, 2191, 1232,
	1476, 1477, 1478, 1454, 1556, 548, 1100, 1877, 1101, 1102,
	2194, 1850, 1524, 184, 185, 186, 2529, 119, 1459, 913,
	548, 548, 1422, 1409, 1405, 912, 1122, 1123, 1124, 1125,
	1127, 1126, 1128, 1129, 1522, 1404, 1403, 1567, 1231, 1059,
	1468, 1100, 1532, 1101, 1102, 2250, 1610, 1329, 1106, 1107,
	1108, 1109, 1110, 1111, 1112, 1104, 182, 1100, 1072, 1101,
	1102, 548, 184, 185, 186, 1531, 2352, 1533, 1534, 1535,
	1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
	1220, 1220, 1492, 2499, 1631, 182, 1917, 2629, 548, 1489,
	1490, 1491, 2498, 1100, 1525, 1101, 1102, 1220, 182, 2467,
	2286, 548, 1637, 2466, 1638, 2397, 182, 1913, 182, 1612,
	182, 182, 548, 2471, 1100, 548, 1101, 1102, 101, 1610,
	2381, 1100, 94, 1101, 1102, 94, 548, 737, 2171, 100,
	737, 99, 95, 1614, 1615, 2019, 1703, 1834, 1100, 1552,
	1101, 1102, 1100, 1998, 1101, 1102, 1558, 1559, 184, 185,
	186, 95, 1970, 1987, 1100, 100, 1101, 1102, 2601, 1220,
	1643, 1100, 1611, 1101, 1102, 184, 185, 186, 1669, 1754,
	1917, 2570, 1613, 101, 1702, 1616, 1617, 1917, 2557, 1848,
	92, 548, 1612, 1220, 100, 2317, 99, 1747, 1748, 1749,
	178, 93, 1751, 1753, 1100, 94, 1101, 1102, 1220, 707,
	184, 185, 186, 1698, 1752, 1697, 548, 1917, 2553, 2545,
	1220, 1642, 548, 1359, 120, 92, 1359, 1680, 1359, 1917,
	2534, 2560, 94, 1848, 1777, 2319, 93, 162, 2389, 2531,
	1917, 2474, 2389, 1220, 1701, 1664, 1645, 1099, 1767, 1728,
	2537, 1712, 1713, 1714, 1715, 1220, 1917, 2387, 1917, 1662,
	1778, 1220, 1928, 1220, 548, 1734, 1547, 2322, 1220, 2202,
	2201, 1547, 1547, 1685, 2198, 2199, 2198, 2197, 1936, 1220,
	1700, 1848, 1220, 1699, 1684, 1834, 2038, 1936, 741, 87,
	1220, 741, 1460, 1764, 159, 2200, 160, 1120, 1121, 1122,
	1123, 1124, 1125, 1127, 1126, 1128, 1129, 182, 1707, 177,
	1708, 1709, 1710, 1711, 182, 1320, 2023, 2015, 2016, 182,
	182, 1917, 1916, 182, 1779, 182, 1718, 1719, 1720, 1721,
	1729, 1935, 182, 1936, 1740, 1742, 1739, 1928, 1750, 182,
	2113, 1787, 1686, 1724, 1725, 1099, 1220, 1959, 1959, 1772,
	1320, 1319, 1775, 1848, 1776, 1866, 1771, 1865, 1774, 1770,
	1789, 937, 2138, 1729, 1778, 1791, 1792, 182, 548, 1788,
	1265, 1264, 2317, 2364, 1513, 1514, 1515, 1516, 938, 1761,
	1657, 1778, 1224, 1621, 1503, 1936, 1448, 1251, 1356, 1119,
	1120, 1121, 1122, 1123, 1124, 1125, 1127, 1126, 1128, 1129,
	1388, 920, 1221, 1223, 1825, 1826, 919, 2223, 2317, 1828,
	1960, 1960, 697, 1797, 1554, 1555, 2488, 163, 1829, 1962,
	1834, 1227, 1560, 2365, 2366, 2367, 168, 2653, 2464, 2449,
	2379, 2376, 2357, 2290, 2289, 1322, 1524, 1595, 1596, 1597,
	1598, 1599, 1600, 1602, 1727, 2248, 2225, 2221, 2024, 1723,
	1389, 1390, 1391, 1818, 1118, 1717, 1716, 1114, 1436, 1115,
	1351, 1347, 1318, 113, 1991, 1844, 2368, 1992, 1385, 1002,
	2252, 561, 2489, 1116, 1117, 1113, 1119, 1120, 1121, 1122,
	1123, 1124, 1125, 1127, 1126, 1128, 1129, 1738, 1843, 87,
	1845, 1635, 182, 2651, 624, 1941, 1944, 1945, 1946, 1942,
	182, 1943, 1947, 2607, 1888, 2335, 548, 1655, 1656, 1832,
	2583, 1992, 548, 2369, 2370, 1386, 1387, 2332, 1525, 1905,
	2329, 2330, 2217, 548, 2216, 2215, 2138, 2002, 1842, 1941,
	1944, 1945, 1946, 1942, 1692, 1943, 1947, 155, 1819, 2329,
	2330, 1496, 1218, 1214, 2160, 183, 182, 2158, 183, 2161,
	182, 183, 2159, 1932, 1218, 1214, 549, 1215, 183, 2162,
	2334, 1945, 1946, 1860, 2157, 1969, 183, 1612, 2156, 1215,
	2599, 2571, 1858, 1649, 1228, 1641, 37, 2323, 2419, 2118,
	2418, 183, 1639, 1640, 1217, 1952, 1216, 2117, 2130, 2132,
	2021, 2310, 2513, 1730, 1211, 1212, 1217, 2133, 1216, 2309,
	1914, 1875, 2428, 549, 2430, 711, 549, 183, 549, 548,
	2313, 2127, 1447, 712, 182, 1194, 683, 1889, 1879, 1880,
	1611, 182, 2196, 1918, 1977, 1951, 1996, 1899, 2417, 1910,
	967, 966, 2262, 548, 1562, 1991, 2063, 1915, 1071, 92,
	548, 2315, 101, 1925, 1359, 1359, 2014, 1973, 1563, 548,
	93, 92, 2031, 100, 2030, 99, 1957, 120, 94, 1659,
	1660, 2035, 93, 1961, 94, 94, 2633, 2213, 2034, 1822,
	2530, 2484, 182, 182, 182, 182, 182, 1974, 1734, 1964,
	2195, 1980, 1981, 1949, 1971, 1646, 719, 720, 1811, 182,
	182, 2116, 2295, 101, 1838, 99, 1994, 2505, 1984, 2115,
	2504, 2436, 2434, 2433, 100, 182, 99, 2426, 2377, 2314,
	1993, 2312, 2226, 1762, 1334, 101, 718, 100, 1999, 2003,
	2004, 2005, 2425, 1547, 1913, 2303, 100, 1928, 2609, 2608,
	2033, 1339, 156, 161, 158, 164, 165, 166, 167, 169,
	170, 171, 172, 2102, 1867, 1633, 1245, 1237, 173, 174,
	175, 176, 2609, 548, 2519, 693, 2350, 2092, 106, 107,
	709, 103, 2032, 88, 1, 2585, 517, 1622, 2107, 548,
	2025, 2026, 1192, 531, 2581, 1423, 1413, 2400, 2485, 2020,
	1768, 2375, 1732, 2071, 182, 2070, 928, 145, 548, 1695,
	1696, 2566, 110, 2061, 889, 2055, 2062, 548, 109, 931,
	1030, 1763, 2390, 1978, 548, 548, 1704, 182, 182, 182,
	182, 182, 2107, 1271, 1269, 1270, 2072, 2089, 2088, 182,
	1268, 1273, 1272, 1868, 182, 1497, 2141, 182, 545, 182,
	2150, 2141, 182, 182, 182, 2135, 1948, 180, 1260, 1238,
	2144, 1862, 2121, 699, 968, 2170, 507, 2203, 1795, 513,
	1142, 2114, 2106, 1965, 738, 1568, 2108, 731, 1634, 1569,
	1903, 2146, 2307, 1207, 1952, 2126, 2120, 2211, 2128, 2119,
	1920, 2122, 2131, 182, 2124, 2512, 1150, 2427, 2558, 1975,
	1234, 1859, 1564, 700, 1674, 1630, 548, 2172, 1517, 570,
	2173, 1221, 1620, 2152, 2153, 548, 2155, 701, 2151, 2163,
	182, 2154, 569, 2167, 2168, 2112, 95, 567, 2232, 1906,
	182, 1929, 1458, 1105, 2228, 2174, 627, 1893, 1246, 1940,
	1938, 1937, 1820, 2180, 1644, 182, 1681, 2331, 182, 2109,
	2110, 2111, 1236, 2327, 2643, 2207, 2206, 2577, 2263, 1676,
	1672, 2149, 1912, 578, 571, 563, 2347, 2238, 2240, 2041,
	2249, 2239, 2208, 2209, 2043, 1976, 2245, 1084, 1210, 557,
	901, 1561, 2490, 2227, 2476, 1837, 2283, 2231, 1209, 1734,
	1573, 1574, 2218, 1755, 2243, 63, 41, 1601, 552, 2595,
	1075, 725, 32, 31, 548, 182, 30, 29, 28, 23,
	22, 21, 1118, 2257, 183, 20, 183, 2258, 19, 183,
	25, 2260, 2261, 18, 17, 2265, 16, 2264, 1118, 2604,
	2068, 2632, 115, 2271, 1119, 1120, 1121, 1122, 1123, 1124,
	1125, 1127, 1126, 1128, 1129, 50, 47, 549, 549, 549,
	1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1126, 1128,
	1129, 45, 182, 122, 121, 549, 549, 2296, 2297, 48,
	44, 1005, 42, 27, 26, 15, 2304, 14, 13, 2311,
	2353, 12, 11, 10, 9, 182, 5, 4, 2336, 2316,
	35, 34, 33, 1078, 2301, 24, 2, 2007, 1757, 0,
	2333, 0, 0, 182, 0, 0, 182, 182, 182, 0,
	0, 2340, 0, 0, 0, 0, 548, 548, 0, 0,
	2341, 2240, 0, 0, 2239, 2326, 0, 2348, 2349, 2382,
	2383, 2268, 2269, 0, 2270, 0, 0, 2272, 0, 2274,
	0, 2276, 0, 548, 548, 548, 548, 2342, 2343, 0,
	0, 2090, 2091, 0, 0, 1118, 2094, 1846, 0, 2385,
	2096, 2097, 2098, 0, 0, 0, 0, 0, 2396, 0,
	0, 0, 2103, 0, 0, 2394, 2395, 1119, 1120, 1121,
	1122, 1123, 1124, 1125, 1127, 1126, 1128, 1129, 0, 182,
	2358, 0, 2360, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 0, 549, 549, 0, 0, 2422, 0, 0,
	0, 2409, 0, 548, 0, 548, 0, 0, 0, 183,
	0, 0, 0, 2136, 0, 0, 0, 0, 2443, 0,
	0, 2452, 2451, 2141, 0, 2445, 0, 2423, 549, 0,
	2432, 0, 183, 693, 2431, 2447, 2405, 549, 2144, 0,
	2169, 37, 2144, 549, 2441, 608, 2439, 0, 0, 0,
	0, 0, 2406, 0, 0, 0, 0, 0, 0, 0,
	548, 0, 0, 0, 1849, 0, 0, 0, 1853, 0,
	1854, 1855, 2456, 2472, 0, 0, 0, 0, 0, 1863,
	548, 0, 1864, 0, 0, 2468, 0, 0, 0, 0,
	2470, 0, 0, 2469, 0, 2487, 2224, 548, 0, 2479,
	2480, 548, 548, 2475, 0, 2453, 2454, 547, 1870, 1871,
	1872, 1873, 1874, 0, 1876, 0, 0, 0, 1878, 0,
	0, 0, 0, 0, 0, 1883, 1884, 1885, 1886, 1887,
	548, 1644, 0, 2509, 2511, 2506, 2507, 0, 2508, 0,
	0, 0, 1900, 2523, 2520, 548, 0, 0, 0, 0,
	0, 0, 0, 0, 739, 0, 0, 893, 2528, 900,
	693, 2144, 2526, 0, 0, 2522, 0, 0, 0, 548,
	182, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	2285, 2536, 2539, 0, 0, 0, 0, 2291, 0, 0,
	0, 0, 0, 0, 0, 183, 0, 0, 0, 0,
	0, 0, 548, 0, 37, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 548, 548,
	0, 0, 0, 0, 2551, 2141, 548, 2559, 0, 549,
	561, 2561, 0, 2487, 2567, 182, 548, 2565, 0, 0,
	0, 0, 0, 0, 2556, 0, 549, 549, 0, 549,
	37, 549, 549, 2576, 549, 549, 549, 549, 549, 549,
	2592, 2584, 2589, 2598, 0, 0, 0, 0, 0, 549,
	0, 0, 2606, 183, 2603, 548, 0, 0, 0, 0,
	0, 0, 548, 0, 0, 0, 2452, 2620, 2613, 183,
	2615, 2617, 2619, 0, 0, 0, 0, 2626, 0, 0,
	549, 0, 183, 0, 0, 0, 2378, 2634, 0, 0,
	0, 0, 0, 0, 0, 2639, 549, 0, 183, 0,
	0, 0, 2393, 2452, 2642, 0, 0, 2650, 2649, 0,
	2452, 2652, 0, 0, 183, 0, 0, 0, 0, 0,
	0, 183, 0, 0, 0, 0, 0, 0, 0, 0,
	183, 183, 183, 183, 183, 183, 183, 183, 183, 549,
	549, 549, 0, 0, 2407, 0, 2408, 0, 0, 0,
	0, 2411, 2412, 0, 0, 0, 0, 0, 0, 0,
	2099, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	183, 2104, 2105, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2440, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 2448, 0, 0, 2450, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 2455, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2465, 0, 0, 2147, 0, 0, 0, 549,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2165, 2166, 549, 549, 0, 0, 0, 0,
	0, 561, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	183, 0, 0, 0, 0, 549, 0, 0, 0, 0,
	2510, 561, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 549, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 183, 0, 0, 549, 0, 0, 0, 0,
	183, 0, 183, 0, 183, 183, 549, 0, 0, 549,
	0, 0, 561, 0, 0, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 0, 0, 739, 739,
	739, 0, 0, 0, 0, 0, 2267, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1074, 1076, 0, 0,
	2277, 2278, 2280, 2282, 0, 0, 0, 0, 0, 0,
	2288, 0, 0, 0, 0, 2292, 0, 0, 2293, 0,
	0, 0, 178, 0, 2298, 549, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2593, 120, 0, 142, 0,
	549, 0, 0, 0, 0, 0, 549, 2320, 2321, 162,
	0, 2325, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1186, 2337,
	2338, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	152, 0, 0, 0, 0, 141, 0, 0, 549, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 159, 0, 160, 0,
	0, 0, 0, 0, 0, 0, 0, 129, 130, 151,
	150, 177, 0, 0, 1198, 1199, 0, 0, 0, 0,
	0, 183, 0, 0, 0, 2388, 0, 0, 183, 0,
	0, 0, 0, 183, 183, 0, 0, 183, 0, 183,
	0, 0, 0, 0, 0, 0, 183, 0, 0, 1241,
	0, 0, 0, 183, 0, 0, 0, 0, 739, 0,
	0, 0, 0, 0, 1261, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 183, 549, 2415, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 146, 127, 153,
	134, 126, 0, 147, 148, 0, 0, 0, 0, 163,
	0, 0, 0, 0, 0, 0, 0, 0, 168, 135,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 138, 136, 131, 132, 133, 137, 0,
	0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
	0, 0, 0, 0, 139, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2483, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2493,
	2494, 2495, 0, 2496, 2497, 0, 183, 0, 2501, 0,
	0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 549, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 549, 0, 155,
	0, 0, 0, 0, 0, 0, 0, 2527, 0, 0,
	893, 0, 0, 609, 0, 0, 0, 0, 0, 0,
	183, 0, 0, 1186, 183, 0, 0, 1365, 1365, 0,
	1365, 0, 1365, 1365, 0, 1374, 1365, 1365, 1365, 1365,
	1365, 0, 2541, 0, 0, 0, 0, 0, 1186, 1186,
	893, 0, 2546, 0, 0, 0, 0, 0, 2547, 2548,
	0, 0, 0, 0, 181, 0, 0, 503, 0, 0,
	543, 0, 0, 0, 149, 0, 2554, 503, 0, 0,
	0, 1435, 0, 549, 0, 503, 0, 2562, 183, 0,
	143, 0, 0, 144, 0, 183, 0, 1455, 0, 0,
	706, 0, 0, 0, 0, 0, 0, 549, 0, 0,
	0, 0, 0, 0, 549, 0, 724, 0, 724, 0,
	0, 0, 0, 549, 0, 0, 503, 0, 0, 2600,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	739, 739, 739, 0, 0, 0, 183, 183, 183, 183,
	183, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 183, 183, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 156, 161, 158, 164, 165, 166,
	167, 169, 170, 171, 172, 0, 0, 0, 0, 0,
	173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 549, 0, 0,
	1557, 0, 0, 0, 0, 0, 0, 1186, 0, 0,
	0, 0, 0, 549, 0, 1571, 1572, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 739, 0, 183, 0,
	0, 0, 549, 0, 0, 0, 0, 0, 0, 0,
	0, 549, 0, 0, 0, 0, 0, 0, 549, 549,
	0, 183, 183, 183, 183, 183, 1636, 0, 0, 0,
	0, 0, 0, 183, 0, 0, 0, 0, 183, 0,
	0, 183, 0, 183, 0, 0, 183, 183, 183, 0,
	0, 0, 0, 1648, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1241, 0, 0, 739,
	0, 0, 0, 0, 0, 0, 0, 739, 0, 0,
	739, 0, 0, 0, 0, 0, 0, 183, 0, 0,
	0, 893, 0, 0, 0, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 0, 0, 0, 549,
	0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 183, 0, 0, 0, 0, 0,
	0, 184, 185, 186, 0, 0, 0, 0, 0, 183,
	0, 0, 183, 0, 0, 0, 900, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 178, 0, 0, 0, 535, 0, 0,
	0, 893, 0, 0, 1338, 0, 0, 900, 0, 0,
	1195, 0, 0, 0, 0, 0, 0, 120, 0, 142,
	0, 0, 0, 0, 0, 0, 0, 0, 549, 183,
	162, 0, 0, 0, 0, 0, 0, 0, 522, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 893,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 152, 0, 0, 502, 0, 141, 0, 0, 0,
	0, 0, 0, 0, 551, 0, 0, 0, 0, 0,
	0, 0, 686, 503, 521, 503, 183, 159, 503, 160,
	0, 0, 0, 0, 0, 0, 519, 0, 1342, 1343,
	151, 150, 177, 0, 0, 0, 0, 0, 0, 183,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 897, 0, 0, 0, 183, 0, 0,
	183, 183, 183, 0, 0, 0, 516, 0, 0, 0,
	549, 549, 0, 0, 0, 530, 0, 0, 0, 0,
	0, 0, 0, 1831, 0, 0, 0, 0, 0, 0,
	527, 0, 0, 0, 0, 0, 0, 549, 549, 549,
	549, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 536, 0, 0, 0, 0, 146, 1344,
	153, 0, 1341, 0, 147, 148, 0, 0, 0, 0,
	163, 0, 0, 183, 0, 0, 1187, 0, 0, 168,
	0, 0, 0, 506, 0, 508, 523, 0, 538, 0,
	537, 512, 0, 510, 514, 524, 515, 549, 509, 549,
	520, 0, 0, 511, 525, 526, 528, 542, 541, 529,
	0, 518, 539, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 634, 79, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 739, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 706, 0,
	0, 1648, 0, 0, 549, 0, 0, 1907, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1922, 0,
	0, 503, 0, 0, 549, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	155, 549, 0, 0, 0, 549, 549, 0, 0, 0,
	0, 696, 0, 79, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 696, 0, 0, 549, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 549,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1997, 0, 0, 0, 0, 540,
	0, 0, 0, 549, 183, 149, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 533, 1648, 0,
	0, 143, 0, 0, 144, 2022, 0, 0, 0, 0,
	0, 0, 534, 0, 2027, 0, 549, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 549, 549, 0, 0, 0, 0, 0, 0,
	549, 0, 0, 0, 0, 0, 0, 0, 0, 183,
	549, 0, 0, 0, 503, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 549,
	1006, 0, 1012, 0, 0, 1014, 549, 0, 0, 0,
	0, 1187, 0, 0, 0, 156, 161, 158, 164, 165,
	166, 167, 169, 170, 171, 172, 0, 0, 739, 0,
	0, 173, 174, 175, 176, 0, 1187, 1187, 0, 0,
	0, 0, 503, 0, 1365, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1411, 0,
	0, 0, 0, 2123, 0, 0, 0, 0, 0, 0,
	0, 503, 739, 0, 0, 0, 1186, 0, 0, 2148,
	1365, 1186, 0, 0, 0, 0, 0, 1457, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 635, 636, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	503, 0, 0, 0, 0, 0, 0, 0, 0, 1480,
	1481, 503, 503, 503, 503, 503, 503, 503, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 503,
	0, 893, 0, 0, 1186, 0, 0, 0, 0, 0,
	1648, 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, 724, 0, 0, 0, 0, 0, 0, 724,
	724, 0, 0, 0, 0, 1187, 0, 0, 1248, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 724, 1457, 724, 724, 724, 724, 724,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2123,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1411,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 724, 0, 1066, 1066, 1066, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 706, 0,
	0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
	2602, 503, 0, 0, 0, 0, 0, 1457, 0, 503,
	1288, 503, 0, 503, 1683, 0, 0, 0, 0, 0,
	0, 0, 0, 696, 1138, 1139, 1140, 0, 1143, 0,
	1145, 1146, 1147, 1148, 0, 1151, 1153, 1153, 0, 1153,
	1157, 1157, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
	1167, 1168, 1169, 0, 1171, 1172, 1173, 1174, 1175, 0,
	0, 1648, 1648, 1157, 1157, 1157, 1157, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1266, 0, 0, 0, 0, 0, 0, 2401, 2402,
	2403, 2404, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1196, 0, 0, 0, 0, 0, 696, 0, 0, 0,
	696, 0, 0, 1276, 0, 0, 696, 0, 0, 0,
	0, 0, 0, 1186, 0, 0, 0, 0, 2444, 1396,
	2446, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1288, 0, 1437, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	503, 0, 0, 0, 0, 0, 0, 503, 0, 0,
	0, 0, 503, 503, 0, 1648, 503, 0, 1823, 0,
	1467, 0, 0, 0, 1289, 503, 0, 1471, 0, 0,
	0, 0, 503, 0, 0, 739, 0, 0, 1482, 1483,
	1484, 1485, 1486, 1487, 1488, 0, 0, 0, 0, 0,
	0, 0, 2502, 0, 0, 0, 2502, 2502, 0, 0,
	503, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1506, 0, 1302, 1305,
	1306, 1307, 1308, 1309, 1310, 1648, 1311, 1312, 1313, 1314,
	1315, 1290, 1291, 1292, 1293, 1274, 1275, 1303, 0, 1277,
	1648, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286,
	1287, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1276,
	0, 0, 0, 0, 1648, 724, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1186, 0, 2552, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 724, 724, 739, 739, 0, 0, 0, 0, 0,
	0, 2574, 1457, 0, 0, 503, 0, 0, 0, 0,
	0, 2579, 0, 1411, 0, 0, 0, 0, 0, 0,
	1289, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1304, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1661, 0,
	1648, 0, 0, 0, 0, 0, 1665, 2579, 1668, 503,
	0, 1506, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1302, 1305, 1306, 1307, 1308, 1309,
	1310, 0, 1311, 1312, 1313, 1314, 1315, 1290, 1291, 1292,
	1293, 1274, 1275, 1303, 0, 1277, 0, 1278, 1279, 1280,
	1281, 1282, 1283, 1284, 1285, 1286, 1287, 1294, 1295, 1296,
	1297, 1298, 1299, 1300, 1301, 0, 0, 0, 1066, 1066,
	1066, 0, 0, 0, 0, 0, 0, 503, 0, 0,
	0, 0, 0, 0, 2006, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 78, 39, 40,
	80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 84, 0, 0,
	0, 43, 69, 70, 0, 67, 71, 0, 0, 0,
	0, 0, 0, 0, 68, 503, 503, 503, 503, 503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 503, 503, 0, 0, 0, 1304, 0, 0,
	0, 0, 0, 56, 0, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
	0, 0, 724, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 1806, 0, 0, 0, 0, 1816,
	1817, 0, 0, 1821, 0, 724, 0, 0, 0, 0,
	0, 0, 1824, 0, 0, 0, 0, 0, 0, 1827,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 503, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1830, 0, 0,
	0, 0, 0, 1675, 1187, 0, 0, 0, 0, 1187,
	503, 503, 503, 503, 503, 0, 0, 0, 0, 0,
	0, 0, 2164, 0, 0, 0, 0, 503, 0, 0,
	1411, 0, 503, 0, 0, 503, 2175, 1457, 0, 0,
	46, 49, 52, 51, 54, 0, 66, 0, 0, 75,
	72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 55, 83, 82, 0, 503, 64, 65, 53,
	0, 0, 0, 0, 0, 73, 74, 0, 0, 0,
	0, 0, 1187, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 57, 58, 0, 59, 60, 61, 62, 503, 0,
	0, 503, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1956, 0, 0, 0, 0, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 2000, 503, 0, 81, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 86, 0, 0, 0, 503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 503, 0, 0, 503,
	503, 503, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2046, 2047, 2048, 2049, 2050, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1506,
	2056, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2064, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1881, 0, 0, 0, 0, 0,
	0, 0, 1411, 0, 0, 0, 0, 0, 0, 0,
	0, 1898, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1187, 0, 0, 0, 0, 0, 0, 0, 0,
	696, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1933, 1934, 0, 0, 0, 0, 0, 0, 0, 1953,
	0, 1954, 1955, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2214, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	2235, 0, 0, 2028, 0, 0, 0, 0, 0, 0,
	2244, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2256, 0, 0, 2259, 0,
	0, 0, 0, 503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1187, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2300, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1411, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	87, 0, 0, 0, 0, 0, 628, 635, 636, 637,
	638, 639, 629, 631, 0, 0, 0, 630, 0, 0,
	0, 0, 0, 633, 640, 641, 0, 1675, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2145, 0, 79, 0, 0,
	1675, 1675, 1675, 1675, 1675, 2356, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1953, 696, 2241,
	2242, 0, 1675, 2371, 0, 1675, 2372, 2373, 2374, 0,
	0, 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, 0, 87, 0, 0, 0, 0, 0, 628,
	635, 636, 637, 638, 639, 629, 631, 0, 0, 0,
	630, 0, 0, 0, 0, 2237, 633, 640, 641, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 2266, 0, 0,
	0, 0, 2241, 2242, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 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, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1675, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 2346, 0,
	0, 0, 0, 0, 619, 0, 0, 0, 620, 621,
	0, 0, 0, 622, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 2386, 0, 0, 0, 0, 0,
	2540, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 2416, 0,
	2420, 2421, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2145, 0, 79, 0, 2145, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 2477, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 2145, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2555,
	0, 871, 856, 424, 79, 803, 874, 772, 791, 884,
	794, 797, 838, 751, 817, 345, 788, 0, 776, 746,
	783, 747, 774, 805, 244, 771, 858, 821, 873, 300,
	241, 753, 777, 359, 793, 193, 840, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 880, 304, 827, 0, 409, 330, 0, 0, 0,
	807, 862, 815, 852, 802, 839, 761, 826, 875, 789,
	835, 876, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 2568, 0, 2569, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 785, 832, 870, 786, 834, 239, 285, 246, 238,
	428, 881, 861, 750, 814, 869, 0, 0, 209, 872,
	809, 0, 837, 0, 887, 745, 829, 0, 748, 752,
	883, 865, 780, 249, 0, 0, 0, 0, 0, 0,
	0, 806, 816, 849, 800, 0, 0, 0, 0, 0,
	0, 0, 778, 0, 825, 0, 0, 0, 757, 749,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 804, 0, 0, 0, 760, 0, 779, 850, 0,
	743, 268, 754, 331, 231, 0, 854, 864, 801, 462,
	868, 799, 798, 844, 758, 860, 792, 299, 756, 293,
	188, 205, 0, 790, 341, 382, 388, 859, 775, 784,
	229, 782, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 824, 842, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 1068, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 770, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 855,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 847, 886, 354, 387,
	219, 448, 408, 765, 769, 763, 764, 819, 820, 766,
	877, 878, 879, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 851, 759, 0, 767, 768, 0, 857, 866,
	867, 498, 316, 399, 445, 823, 187, 202, 302, 882,
	376, 261, 476, 456, 452, 744, 762, 236, 773, 781,
	0, 787, 795, 796, 808, 810, 811, 812, 813, 327,
	830, 831, 833, 841, 843, 846, 848, 853, 863, 885,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 822, 828, 313, 254, 273, 284, 836, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 818, 845, 309,
	425, 426, 280, 871, 856, 424, 0, 803, 874, 772,
	791, 884, 794, 797, 838, 751, 817, 345, 788, 0,
	776, 746, 783, 747, 774, 805, 244, 771, 858, 821,
	873, 300, 241, 753, 777, 359, 793, 193, 840, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 880, 304, 827, 0, 409, 330, 0,
	0, 0, 807, 862, 815, 852, 802, 839, 761, 826,
	875, 789, 835, 876, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 785, 832, 870, 786, 834, 239, 285,
	246, 238, 428, 881, 861, 750, 814, 869, 0, 0,
	209, 872, 809, 0, 837, 0, 887, 745, 829, 0,
	748, 752, 883, 865, 780, 249, 0, 0, 0, 0,
	0, 0, 0, 806, 816, 849, 800, 0, 0, 0,
	0, 0, 2176, 0, 778, 0, 825, 0, 0, 0,
	757, 749, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 804, 0, 0, 0, 760, 0, 779,
	850, 0, 743, 268, 754, 331, 231, 0, 854, 864,
	801, 462, 868, 799, 798, 844, 758, 860, 792, 299,
	756, 293, 188, 205, 0, 790, 341, 382, 388, 859,
	775, 784, 229, 782, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 824, 842, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 1068, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 770, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 855, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 847, 886,
	354, 387, 219, 448, 408, 765, 769, 763, 764, 819,
	820, 766, 877, 878, 879, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 851, 759, 0, 767, 768, 0,
	857, 866, 867, 498, 316, 399, 445, 823, 187, 202,
	302, 882, 376, 261, 476, 456, 452, 744, 762, 236,
	773, 781, 0, 787, 795, 796, 808, 810, 811, 812,
	813, 327, 830, 831, 833, 841, 843, 846, 848, 853,
	863, 885, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 822, 828, 313, 254, 273, 284, 836,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 818,
	845, 309, 425, 426, 280, 871, 856, 424, 0, 803,
	874, 772, 791, 884, 794, 797, 838, 751, 817, 345,
	788, 0, 776, 746, 783, 747, 774, 805, 244, 771,
	858, 821, 873, 300, 241, 753, 777, 359, 793, 193,
	840, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 880, 304, 827, 0, 409,
	330, 0, 0, 0, 807, 862, 815, 852, 802, 839,
	761, 826, 875, 789, 835, 876, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 785, 832, 870, 786, 834,
	239, 285, 246, 238, 428, 881, 861, 750, 814, 869,
	0, 0, 209, 872, 809, 0, 837, 0, 887, 745,
	829, 0, 748, 752, 883, 865, 780, 249, 0, 0,
	0, 0, 0, 0, 0, 806, 816, 849, 800, 0,
	0, 0, 0, 0, 2134, 0, 778, 0, 825, 0,
	0, 0, 757, 749, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 804, 0, 0, 0, 760,
	0, 779, 850, 0, 743, 268, 754, 331, 231, 0,
	854, 864, 801, 462, 868, 799, 798, 844, 758, 860,
	792, 299, 756, 293, 188, 205, 0, 790, 341, 382,
	388, 859, 775, 784, 229, 782, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 824, 842, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 1068, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	770, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 855, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	847, 886, 354, 387, 219, 448, 408, 765, 769, 763,
	764, 819, 820, 766, 877, 878, 879, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 851, 759, 0, 767,
	768, 0, 857, 866, 867, 498, 316, 399, 445, 823,
	187, 202, 302, 882, 376, 261, 476, 456, 452, 744,
	762, 236, 773, 781, 0, 787, 795, 796, 808, 810,
	811, 812, 813, 327, 830, 831, 833, 841, 843, 846,
	848, 853, 863, 885, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 822, 828, 313, 254, 273,
	284, 836, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 818, 845, 309, 425, 426, 280, 871, 856, 424,
	0, 803, 874, 772, 791, 884, 794, 797, 838, 751,
	817, 345, 788, 0, 776, 746, 783, 747, 774, 805,
	244, 771, 858, 821, 873, 300, 241, 753, 777, 359,
	793, 193, 840, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 880, 304, 827,
	0, 409, 330, 0, 0, 0, 807, 862, 815, 852,
	802, 839, 761, 826, 875, 789, 835, 876, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 785, 832, 870,
	786, 834, 239, 285, 246, 238, 428, 881, 861, 750,
	814, 869, 0, 0, 209, 872, 809, 0, 837, 0,
	887, 745, 829, 0, 748, 752, 883, 865, 780, 249,
	0, 0, 0, 0, 0, 0, 0, 806, 816, 849,
	800, 0, 0, 0, 0, 0, 1663, 0, 778, 0,
	825, 0, 0, 0, 757, 749, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 804, 0, 0,
	0, 760, 0, 779, 850, 0, 743, 268, 754, 331,
	231, 0, 854, 864, 801, 462, 868, 799, 798, 844,
	758, 860, 792, 299, 756, 293, 188, 205, 0, 790,
	341, 382, 388, 859, 775, 784, 229, 782, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 824, 842,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	1068, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 770, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 855, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 847, 886, 354, 387, 219, 448, 408, 765,
	769, 763, 764, 819, 820, 766, 877, 878, 879, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 851, 759,
	0, 767, 768, 0, 857, 866, 867, 498, 316, 399,
	445, 823, 187, 202, 302, 882, 376, 261, 476, 456,
	452, 744, 762, 236, 773, 781, 0, 787, 795, 796,
	808, 810, 811, 812, 813, 327, 830, 831, 833, 841,
	843, 846, 848, 853, 863, 885, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 822, 828, 313,
	254, 273, 284, 836, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 818, 845, 309, 425, 426, 280, 871,
	856, 424, 0, 803, 874, 772, 791, 884, 794, 797,
	838, 751, 817, 345, 788, 0, 776, 746, 783, 747,
	774, 805, 244, 771, 858, 821, 873, 300, 241, 753,
	777, 359, 793, 193, 840, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 880,
	304, 827, 0, 409, 330, 0, 0, 0, 807, 862,
	815, 852, 802, 839, 761, 826, 875, 789, 835, 876,
	287, 226, 192, 342, 410, 259, 0, 87, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 785,
	832, 870, 786, 834, 239, 285, 246, 238, 428, 881,
	861, 750, 814, 869, 0, 0, 209, 872, 809, 0,
	837, 0, 887, 745, 829, 0, 748, 752, 883, 865,
	780, 249, 0, 0, 0, 0, 0, 0, 0, 806,
	816, 849, 800, 0, 0, 0, 0, 0, 0, 0,
	778, 0, 825, 0, 0, 0, 757, 749, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 804,
	0, 0, 0, 760, 0, 779, 850, 0, 743, 268,
	754, 331, 231, 0, 854, 864, 801, 462, 868, 799,
	798, 844, 758, 860, 792, 299, 756, 293, 188, 205,
	0, 790, 341, 382, 388, 859, 775, 784, 229, 782,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	824, 842, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 1068, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 770, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 855, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 847, 886, 354, 387, 219, 448,
	408, 765, 769, 763, 764, 819, 820, 766, 877, 878,
	879, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	851, 759, 0, 767, 768, 0, 857, 866, 867, 498,
	316, 399, 445, 823, 187, 202, 302, 882, 376, 261,
	476, 456, 452, 744, 762, 236, 773, 781, 0, 787,
	795, 796, 808, 810, 811, 812, 813, 327, 830, 831,
	833, 841, 843, 846, 848, 853, 863, 885, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 822,
	828, 313, 254, 273, 284, 836, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 818, 845, 309, 425, 426,
	280, 871, 856, 424, 0, 803, 874, 772, 791, 884,
	794, 797, 838, 751, 817, 345, 788, 0, 776, 746,
	783, 747, 774, 805, 244, 771, 858, 821, 873, 300,
	241, 753, 777, 359, 793, 193, 840, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 880, 304, 827, 0, 409, 330, 0, 0, 0,
	807, 862, 815, 852, 802, 839, 761, 826, 875, 789,
	835, 876, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 785, 832, 870, 786, 834, 239, 285, 246, 238,
	428, 881, 861, 750, 814, 869, 0, 0, 209, 872,
	809, 0, 837, 0, 887, 745, 829, 0, 748, 752,
	883, 865, 780, 249, 0, 0, 0, 0, 0, 0,
	0, 806, 816, 849, 800, 0, 0, 0, 0, 0,
	0, 0, 778, 0, 825, 0, 0, 0, 757, 749,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 804, 0, 0, 0, 760, 0, 779, 850, 0,
	743, 268, 754, 331, 231, 0, 854, 864, 801, 462,
	868, 799, 798, 844, 758, 860, 792, 299, 756, 293,
	188, 205, 0, 790, 341, 382, 388, 859, 775, 784,
	229, 782, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 824, 842, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 1068, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 770, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 855,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 847, 886, 354, 387,
	219, 448, 408, 765, 769, 763, 764, 819, 820, 766,
	877, 878, 879, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 851, 759, 0, 767, 768, 0, 857, 866,
	867, 498, 316, 399, 445, 823, 187, 202, 302, 882,
	376, 261, 476, 456, 452, 744, 762, 236, 773, 781,
	0, 787, 795, 796, 808, 810, 811, 812, 813, 327,
	830, 831, 833, 841, 843, 846, 848, 853, 863, 885,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 822, 828, 313, 254, 273, 284, 836, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 818, 845, 309,
	425, 426, 280, 871, 856, 424, 0, 803, 874, 772,
	791, 884, 794, 797, 838, 751, 817, 345, 788, 0,
	776, 746, 783, 747, 774, 805, 244, 771, 858, 821,
	873, 300, 241, 753, 777, 359, 793, 193, 840, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 880, 304, 827, 0, 409, 330, 0,
	0, 0, 807, 862, 815, 852, 802, 839, 761, 826,
	875, 789, 835, 876, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 785, 832, 870, 786, 834, 239, 285,
	246, 238, 428, 881, 861, 750, 814, 869, 0, 0,
	888, 872, 809, 0, 837, 0, 887, 745, 829, 0,
	748, 752, 883, 865, 780, 249, 0, 0, 0, 0,
	0, 0, 0, 806, 816, 849, 800, 0, 0, 0,
	0, 0, 0, 0, 778, 0, 825, 0, 0, 0,
	757, 749, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 804, 0, 0, 0, 760, 0, 779,
	850, 0, 743, 268, 754, 331, 231, 0, 854, 864,
	801, 462, 868, 799, 798, 844, 758, 860, 792, 299,
	756, 293, 188, 205, 0, 790, 341, 382, 388, 859,
	775, 784, 229, 782, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 824, 842, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 755, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 770, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 855, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 742, 736, 735, 294, 306, 847, 886,
	354, 387, 219, 448, 408, 765, 769, 763, 764, 819,
	820, 766, 877, 878, 879, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 851, 759, 0, 767, 768, 0,
	857, 866, 867, 498, 316, 399, 445, 823, 187, 202,
	302, 882, 376, 261, 476, 456, 452, 744, 762, 236,
	773, 781, 0, 787, 795, 796, 808, 810, 811, 812,
	813, 327, 830, 831, 833, 841, 843, 846, 848, 853,
	863, 885, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 822, 828, 313, 254, 273, 284, 836,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 818,
	845, 309, 425, 426, 280, 871, 856, 424, 0, 803,
	874, 772, 791, 884, 794, 797, 838, 751, 817, 345,
	788, 0, 776, 746, 783, 747, 774, 805, 244, 771,
	858, 821, 873, 300, 241, 753, 777, 359, 793, 193,
	840, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 880, 304, 827, 0, 409,
	330, 0, 0, 0, 807, 862, 815, 852, 802, 839,
	761, 826, 875, 789, 835, 876, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 785, 832, 870, 786, 834,
	239, 285, 246, 238, 428, 881, 861, 750, 814, 869,
	0, 0, 888, 872, 809, 0, 837, 0, 887, 745,
	829, 0, 748, 752, 883, 865, 780, 249, 0, 0,
	0, 0, 0, 0, 0, 806, 816, 849, 800, 0,
	0, 0, 0, 0, 0, 0, 778, 0, 825, 0,
	0, 0, 757, 749, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 804, 0, 0, 0, 760,
	0, 779, 850, 0, 743, 268, 754, 331, 231, 0,
	854, 864, 801, 462, 868, 799, 798, 844, 758, 860,
	792, 299, 756, 293, 188, 205, 0, 790, 341, 382,
	388, 859, 775, 784, 229, 782, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 824, 842, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 1252, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 755, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	770, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 855, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 742, 736, 735, 294, 306,
	847, 886, 354, 387, 219, 448, 408, 765, 769, 763,
	764, 819, 820, 766, 877, 878, 879, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 851, 759, 0, 767,
	768, 0, 857, 866, 867, 498, 316, 399, 445, 823,
	187, 202, 302, 882, 376, 261, 476, 456, 452, 744,
	762, 236, 773, 781, 0, 787, 795, 796, 808, 810,
	811, 812, 813, 327, 830, 831, 833, 841, 843, 846,
	848, 853, 863, 885, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 822, 828, 313, 254, 273,
	284, 836, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 818, 845, 309, 425, 426, 280, 871, 856, 424,
	0, 803, 874, 772, 791, 884, 794, 797, 838, 751,
	817, 345, 788, 0, 776, 746, 783, 747, 774, 805,
	244, 771, 858, 821, 873, 300, 241, 753, 777, 359,
	793, 193, 840, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 880, 304, 827,
	0, 409, 330, 0, 0, 0, 807, 862, 815, 852,
	802, 839, 761, 826, 875, 789, 835, 876, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 785, 832, 870,
	786, 834, 239, 285, 246, 238, 428, 881, 861, 750,
	814, 869, 0, 0, 888, 872, 809, 0, 837, 0,
	887, 745, 829, 0, 748, 752, 883, 865, 780, 249,
	0, 0, 0, 0, 0, 0, 0, 806, 816, 849,
	800, 0, 0, 0, 0, 0, 0, 0, 778, 0,
	825, 0, 0, 0, 757, 749, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 804, 0, 0,
	0, 760, 0, 779, 850, 0, 743, 268, 754, 331,
	231, 0, 854, 864, 801, 462, 868, 799, 798, 844,
	758, 860, 792, 299, 756, 293, 188, 205, 0, 790,
	341, 382, 388, 859, 775, 784, 229, 782, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 824, 842,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 733, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	755, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 770, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 855, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 742, 736, 735,
	294, 306, 847, 886, 354, 387, 219, 448, 408, 765,
	769, 763, 764, 819, 820, 766, 877, 878, 879, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 851, 759,
	0, 767, 768, 0, 857, 866, 867, 498, 316, 399,
	445, 823, 187, 202, 302, 882, 376, 261, 476, 456,
	452, 744, 762, 236, 773, 781, 0, 787, 795, 796,
	808, 810, 811, 812, 813, 327, 830, 831, 833, 841,
	843, 846, 848, 853, 863, 885, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 822, 828, 313,
	254, 273, 284, 836, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 818, 845, 309, 425, 426, 280, 424,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 1607, 0, 579, 0, 0, 0,
	244, 584, 0, 0, 0, 300, 241, 0, 1608, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 591, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 586, 587,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 87, 0, 0, 184, 185,
	186, 628, 635, 636, 637, 638, 639, 629, 631, 0,
	0, 217, 630, 224, 602, 604, 603, 600, 633, 640,
	641, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 562, 576, 0, 590, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 573, 574, 722, 0, 0, 0,
	613, 0, 575, 0, 0, 583, 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, 585, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 612, 0, 0, 462, 0, 0, 610, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 619,
	611, 595, 597, 620, 621, 592, 593, 596, 622, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 614, 582,
	581, 0, 588, 589, 0, 598, 599, 601, 605, 606,
	607, 580, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	579, 0, 0, 0, 244, 584, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 591, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 586, 587, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 87,
	0, 0, 184, 185, 186, 628, 635, 636, 637, 638,
	639, 629, 631, 0, 0, 217, 630, 224, 602, 604,
	603, 600, 633, 640, 641, 0, 239, 285, 246, 238,
	428, 0, 0, 1603, 1604, 1605, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 562, 576, 0, 590,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 573, 574,
	0, 0, 0, 0, 613, 0, 575, 0, 0, 583,
	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, 585, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 612, 0, 0, 462,
	0, 0, 610, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 619, 611, 595, 597, 620, 621, 592,
	593, 596, 622, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 614, 582, 581, 0, 588, 589, 0, 598,
	599, 601, 605, 606, 607, 580, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 579, 0, 0, 0, 244, 584,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 591, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 586, 587, 0, 0,
	0, 0, 0, 0, 1690, 0, 287, 226, 192, 342,
	410, 259, 0, 87, 0, 0, 184, 185, 186, 628,
	635, 636, 637, 638, 639, 629, 631, 0, 0, 217,
	630, 224, 602, 604, 603, 600, 633, 640, 641, 1691,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	562, 576, 0, 590, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 573, 574, 0, 0, 0, 0, 613, 0,
	575, 0, 0, 583, 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, 585, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	612, 0, 0, 462, 0, 0, 610, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 619, 611, 595,
	597, 620, 621, 592, 593, 596, 622, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 614, 582, 581, 0,
	588, 589, 0, 598, 599, 601, 605, 606, 607, 580,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 78, 424, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 0, 579,
	0, 0, 0, 244, 584, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	591, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 586, 587, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 87, 0,
	0, 184, 185, 186, 628, 635, 636, 637, 638, 639,
	629, 631, 0, 0, 217, 630, 224, 602, 604, 603,
	600, 633, 640, 641, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 562, 576, 0, 590, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 573, 574, 0,
	0, 0, 0, 613, 0, 575, 0, 0, 583, 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,
	585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 612, 0, 0, 462, 0,
	0, 610, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 0, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 619, 611, 595, 597, 620, 621, 592, 593,
	596, 622, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 614, 582, 581, 0, 588, 589, 0, 598, 599,
	601, 605, 606, 607, 580, 187, 202, 302, 86, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 579, 0, 0, 0, 244, 584, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 591, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 586, 587, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 87, 0, 0, 184, 185, 186, 628, 635,
	636, 637, 638, 639, 629, 631, 0, 0, 217, 630,
	224, 602, 604, 603, 600, 633, 640, 641, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 0, 0, 0, 0, 0, 0, 562,
	576, 0, 590, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 573, 574, 0, 0, 0, 0, 613, 0, 575,
	0, 0, 583, 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, 585, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 612,
	0, 0, 462, 0, 0, 610, 0, 0, 0, 0,
	299, 0, 293, 188, 205, 0, 0, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 2535, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 619, 611, 595, 597,
	620, 621, 592, 593, 596, 622, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 614, 582, 581, 0, 588,
	589, 0, 598, 599, 601, 605, 606, 607, 580, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	424, 0, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 345, 0, 0, 0, 0, 579, 0, 0,
	0, 244, 584, 0, 0, 0, 300, 241, 0, 0,
	359, 0, 193, 0, 400, 228, 310, 307, 431, 255,
	247, 243, 227, 281, 317, 357, 418, 351, 591, 304,
	0, 0, 409, 330, 0, 0, 0, 0, 0, 586,
	587, 0, 0, 0, 0, 0, 0, 0, 0, 287,
	226, 192, 342, 410, 259, 0, 87, 0, 1220, 184,
	185, 186, 628, 635, 636, 637, 638, 639, 629, 631,
	0, 0, 217, 630, 224, 602, 604, 603, 600, 633,
	640, 641, 0, 239, 285, 246, 238, 428, 0, 0,
	0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
	0, 0, 0, 562, 576, 0, 590, 0, 0, 0,
	249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 573, 574, 0, 0, 0,
	0, 613, 0, 575, 0, 0, 583, 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, 585, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
	331, 231, 0, 612, 0, 0, 462, 0, 0, 610,
	0, 0, 0, 0, 299, 0, 293, 188, 205, 0,
	0, 341, 382, 388, 0, 0, 0, 229, 0, 386,
	355, 446, 213, 257, 379, 360, 384, 367, 260, 0,
	0, 385, 305, 433, 374, 443, 463, 464, 237, 335,
	453, 422, 459, 475, 206, 234, 349, 415, 449, 406,
	328, 429, 430, 292, 405, 266, 191, 303, 469, 204,
	394, 221, 211, 197, 417, 441, 218, 397, 0, 0,
	477, 199, 439, 414, 324, 289, 290, 198, 0, 378,
	242, 264, 232, 344, 436, 437, 230, 478, 208, 458,
	201, 0, 457, 337, 432, 440, 325, 315, 200, 438,
	323, 314, 295, 253, 275, 372, 308, 373, 276, 333,
	332, 334, 194, 450, 0, 195, 0, 411, 451, 479,
	214, 215, 216, 0, 252, 256, 263, 265, 271, 272,
	279, 301, 348, 371, 369, 375, 0, 427, 444, 454,
	461, 467, 468, 470, 471, 472, 473, 474, 336, 278,
	407, 294, 306, 0, 0, 354, 387, 219, 448, 408,
	619, 611, 595, 597, 620, 621, 592, 593, 596, 622,
	480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
	490, 491, 492, 493, 494, 495, 496, 497, 0, 614,
	582, 581, 0, 588, 589, 0, 598, 599, 601, 605,
	606, 607, 580, 187, 202, 302, 0, 376, 261, 476,
	456, 452, 0, 0, 236, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 189, 190, 203,
	212, 222, 235, 250, 258, 269, 274, 277, 282, 283,
	286, 291, 312, 318, 319, 320, 321, 338, 339, 340,
	343, 346, 347, 350, 352, 353, 356, 363, 364, 365,
	366, 368, 370, 377, 381, 389, 390, 391, 392, 393,
	395, 396, 401, 402, 403, 404, 412, 416, 434, 435,
	447, 460, 465, 270, 442, 466, 0, 311, 0, 0,
	313, 254, 273, 284, 0, 455, 413, 207, 383, 262,
	196, 225, 210, 233, 248, 251, 288, 322, 329, 358,
	362, 267, 245, 223, 380, 220, 398, 419, 420, 421,
	423, 326, 240, 361, 424, 0, 309, 425, 426, 280,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 579, 0, 0, 0, 244, 584, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 591, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 586, 587, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	87, 0, 0, 184, 185, 186, 628, 635, 636, 637,
	638, 639, 629, 631, 0, 0, 217, 630, 224, 602,
	604, 603, 600, 633, 640, 641, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 562, 576, 0,
	590, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 573,
	574, 722, 0, 0, 0, 613, 0, 575, 0, 0,
	583, 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, 585, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 612, 0, 0,
	462, 0, 0, 610, 0, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 619, 611, 595, 597, 620, 621,
	592, 593, 596, 622, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 614, 582, 581, 0, 588, 589, 0,
	598, 599, 601, 605, 606, 607, 580, 187, 202, 302,
	0, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 579, 0, 0, 0, 244,
	584, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 591, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 586, 587, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 87, 0, 0, 184, 185, 186,
	628, 635, 636, 637, 638, 639, 629, 631, 0, 0,
	217, 630, 224, 602, 604, 603, 600, 633, 640, 641,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 562, 576, 0, 590, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 573, 574, 0, 0, 0, 0, 613,
	0, 575, 0, 0, 583, 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, 585, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 612, 0, 0, 462, 0, 0, 610, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 619, 611,
	595, 597, 620, 621, 592, 593, 596, 622, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 614, 582, 581,
	0, 588, 589, 0, 598, 599, 601, 605, 606, 607,
	580, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 424, 0, 309, 425, 426, 280, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 0, 579,
	0, 0, 0, 244, 584, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	591, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 586, 587, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 87, 0,
	0, 184, 185, 186, 628, 635, 636, 637, 638, 639,
	629, 631, 0, 0, 217, 630, 224, 602, 604, 603,
	600, 633, 640, 641, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 0, 576, 0, 590, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 573, 574, 0,
	0, 0, 0, 613, 0, 575, 0, 0, 583, 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,
	585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 612, 0, 0, 462, 0,
	0, 610, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 0, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 619, 611, 595, 597, 620, 621, 592, 593,
	596, 622, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 614, 582, 581, 0, 588, 589, 0, 598, 599,
	601, 605, 606, 607, 580, 187, 202, 302, 0, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 0, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 0, 0, 0, 184, 185, 186, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
	224, 296, 298, 297, 0, 0, 0, 0, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 936, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 0,
	0, 935, 462, 0, 0, 0, 0, 0, 932, 933,
	299, 896, 293, 188, 205, 926, 930, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 0, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 498, 316, 399, 445, 0, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	78, 424, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 87, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 86, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 1678, 0, 0, 1677, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 1240, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 1242, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 1100, 0, 1101, 1102, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 1182, 1185, 0, 0, 0, 0, 1181, 1184, 0,
	0, 217, 1180, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 78, 424, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 0, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	87, 0, 1220, 184, 185, 186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 217, 0, 224, 296,
	298, 297, 0, 0, 0, 0, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 0, 0, 0,
	462, 0, 0, 0, 0, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 498, 316, 399, 445, 0, 187, 202, 302,
	86, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 0, 0, 0, 0, 244,
	0, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 0, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 87, 0, 0, 184, 185, 186,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	217, 0, 224, 296, 298, 297, 0, 0, 0, 0,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 498, 316, 399, 445,
	0, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 1678,
	0, 0, 1677, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 424, 0, 309, 425, 426, 280, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 1629, 0,
	0, 0, 0, 244, 0, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	0, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 0, 0,
	0, 184, 185, 186, 0, 1412, 0, 0, 0, 0,
	0, 0, 0, 0, 217, 0, 224, 296, 298, 297,
	0, 0, 0, 0, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 0, 0, 0, 462, 0,
	0, 0, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 1627, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	498, 316, 399, 445, 0, 187, 202, 302, 0, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 0, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 0, 0, 0, 184, 185, 186, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
	224, 296, 298, 297, 0, 0, 0, 0, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 890, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 0,
	0, 0, 462, 0, 0, 0, 0, 0, 0, 0,
	299, 896, 293, 188, 205, 894, 0, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 0, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 498, 316, 399, 445, 0, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	424, 0, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 345, 0, 0, 0, 1629, 0, 0, 0,
	0, 244, 0, 0, 0, 0, 300, 241, 0, 0,
	359, 0, 193, 0, 400, 228, 310, 307, 431, 255,
	247, 243, 227, 281, 317, 357, 418, 351, 0, 304,
	0, 0, 409, 330, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
	226, 192, 342, 410, 259, 0, 0, 0, 0, 184,
	185, 186, 0, 1412, 0, 0, 0, 0, 0, 0,
	0, 0, 217, 0, 224, 296, 298, 297, 0, 0,
	0, 0, 0, 239, 285, 246, 238, 428, 0, 0,
	0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
	331, 231, 0, 0, 0, 0, 462, 0, 0, 0,
	0, 0, 0, 0, 299, 0, 293, 188, 205, 0,
	0, 341, 382, 388, 0, 0, 0, 229, 0, 386,
	355, 446, 213, 257, 379, 360, 384, 367, 260, 0,
	0, 385, 305, 433, 374, 443, 463, 464, 237, 335,
	453, 422, 459, 475, 206, 234, 349, 415, 449, 406,
	328, 429, 430, 292, 405, 266, 191, 303, 469, 204,
	394, 221, 211, 197, 417, 441, 218, 397, 0, 0,
	477, 199, 439, 414, 324, 289, 290, 198, 0, 378,
	242, 264, 232, 344, 436, 437, 230, 478, 208, 458,
	201, 0, 457, 337, 432, 440, 325, 315, 200, 438,
	323, 314, 295, 253, 275, 372, 308, 373, 276, 333,
	332, 334, 194, 450, 0, 195, 0, 411, 451, 479,
	214, 215, 216, 0, 252, 256, 263, 265, 271, 272,
	279, 301, 348, 371, 369, 375, 0, 427, 444, 454,
	461, 467, 468, 470, 471, 472, 473, 474, 336, 278,
	407, 294, 306, 0, 0, 354, 387, 219, 448, 408,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
	490, 491, 492, 493, 494, 495, 496, 497, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 498, 316,
	399, 445, 0, 187, 202, 302, 0, 376, 261, 476,
	456, 452, 0, 0, 236, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 189, 190, 203,
	212, 222, 235, 250, 258, 269, 274, 277, 282, 283,
	286, 291, 312, 318, 319, 320, 321, 338, 339, 340,
	343, 346, 347, 350, 352, 353, 356, 363, 364, 365,
	366, 368, 370, 377, 381, 389, 390, 391, 392, 393,
	395, 396, 401, 402, 403, 404, 412, 416, 434, 435,
	447, 460, 465, 270, 442, 466, 0, 311, 0, 0,
	313, 254, 273, 284, 0, 455, 413, 207, 383, 262,
	196, 225, 210, 233, 248, 251, 288, 322, 329, 358,
	362, 267, 245, 223, 380, 220, 398, 419, 420, 421,
	423, 326, 240, 361, 424, 0, 309, 425, 426, 280,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 0, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	0, 0, 1220, 184, 185, 186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 217, 0, 224, 296,
	298, 297, 0, 0, 0, 0, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 0, 0, 0,
	462, 0, 0, 0, 2503, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 498, 316, 399, 445, 0, 187, 202, 302,
	0, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 0, 0, 0, 0, 244,
	0, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 0, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 0, 0, 0, 184, 185, 186,
	0, 1923, 0, 0, 0, 0, 0, 0, 0, 0,
	217, 0, 224, 296, 298, 297, 0, 0, 0, 0,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1924, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 498, 316, 399, 445,
	0, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 424, 0, 309, 425, 426, 280, 0, 0,
	0, 0, 0, 0, 345, 0, 0, 0, 0, 0,
	0, 0, 0, 244, 0, 0, 0, 0, 300, 241,
	0, 0, 359, 0, 193, 0, 400, 228, 310, 307,
	431, 255, 247, 243, 227, 281, 317, 357, 418, 351,
	0, 304, 0, 0, 409, 330, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 287, 226, 192, 342, 410, 259, 0, 0, 0,
	0, 184, 185, 186, 0, 0, 0, 1908, 0, 0,
	0, 1909, 0, 0, 217, 0, 224, 296, 298, 297,
	0, 0, 0, 0, 0, 239, 285, 246, 238, 428,
	0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 249, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	268, 0, 331, 231, 0, 0, 0, 0, 462, 0,
	0, 0, 0, 0, 0, 0, 299, 0, 293, 188,
	205, 0, 0, 341, 382, 388, 0, 0, 0, 229,
	0, 386, 355, 446, 213, 257, 379, 360, 384, 367,
	260, 0, 0, 385, 305, 433, 374, 443, 463, 464,
	237, 335, 453, 422, 459, 475, 206, 234, 349, 415,
	449, 406, 328, 429, 430, 292, 405, 266, 191, 303,
	469, 204, 394, 221, 211, 197, 417, 441, 218, 397,
	0, 0, 477, 199, 439, 414, 324, 289, 290, 198,
	0, 378, 242, 264, 232, 344, 436, 437, 230, 478,
	208, 458, 201, 0, 457, 337, 432, 440, 325, 315,
	200, 438, 323, 314, 295, 253, 275, 372, 308, 373,
	276, 333, 332, 334, 194, 450, 0, 195, 0, 411,
	451, 479, 214, 215, 216, 0, 252, 256, 263, 265,
	271, 272, 279, 301, 348, 371, 369, 375, 0, 427,
	444, 454, 461, 467, 468, 470, 471, 472, 473, 474,
	336, 278, 407, 294, 306, 0, 0, 354, 387, 219,
	448, 408, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 480, 481, 482, 483, 484, 485, 486, 487,
	488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	498, 316, 399, 445, 0, 187, 202, 302, 0, 376,
	261, 476, 456, 452, 0, 0, 236, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 327, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
	190, 203, 212, 222, 235, 250, 258, 269, 274, 277,
	282, 283, 286, 291, 312, 318, 319, 320, 321, 338,
	339, 340, 343, 346, 347, 350, 352, 353, 356, 363,
	364, 365, 366, 368, 370, 377, 381, 389, 390, 391,
	392, 393, 395, 396, 401, 402, 403, 404, 412, 416,
	434, 435, 447, 460, 465, 270, 442, 466, 0, 311,
	0, 0, 313, 254, 273, 284, 0, 455, 413, 207,
	383, 262, 196, 225, 210, 233, 248, 251, 288, 322,
	329, 358, 362, 267, 245, 223, 380, 220, 398, 419,
	420, 421, 423, 326, 240, 361, 424, 0, 309, 425,
	426, 280, 0, 0, 0, 0, 0, 0, 345, 0,
	0, 0, 0, 0, 0, 0, 0, 244, 1263, 0,
	0, 0, 300, 241, 0, 0, 359, 0, 193, 0,
	400, 228, 310, 307, 431, 255, 247, 243, 227, 281,
	317, 357, 418, 351, 0, 304, 0, 0, 409, 330,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 287, 226, 192, 342, 410,
	259, 0, 0, 0, 0, 184, 185, 186, 0, 1262,
	0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
	224, 296, 298, 297, 0, 0, 0, 0, 0, 239,
	285, 246, 238, 428, 0, 0, 0, 0, 0, 0,
	0, 209, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 249, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 268, 0, 331, 231, 0, 0,
	0, 0, 462, 0, 0, 0, 0, 0, 0, 0,
	299, 0, 293, 188, 205, 0, 0, 341, 382, 388,
	0, 0, 0, 229, 0, 386, 355, 446, 213, 257,
	379, 360, 384, 367, 260, 0, 0, 385, 305, 433,
	374, 443, 463, 464, 237, 335, 453, 422, 459, 475,
	206, 234, 349, 415, 449, 406, 328, 429, 430, 292,
	405, 266, 191, 303, 469, 204, 394, 221, 211, 197,
	417, 441, 218, 397, 0, 0, 477, 199, 439, 414,
	324, 289, 290, 198, 0, 378, 242, 264, 232, 344,
	436, 437, 230, 478, 208, 458, 201, 0, 457, 337,
	432, 440, 325, 315, 200, 438, 323, 314, 295, 253,
	275, 372, 308, 373, 276, 333, 332, 334, 194, 450,
	0, 195, 0, 411, 451, 479, 214, 215, 216, 0,
	252, 256, 263, 265, 271, 272, 279, 301, 348, 371,
	369, 375, 0, 427, 444, 454, 461, 467, 468, 470,
	471, 472, 473, 474, 336, 278, 407, 294, 306, 0,
	0, 354, 387, 219, 448, 408, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 480, 481, 482, 483,
	484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
	494, 495, 496, 497, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 498, 316, 399, 445, 0, 187,
	202, 302, 0, 376, 261, 476, 456, 452, 0, 0,
	236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 189, 190, 203, 212, 222, 235, 250,
	258, 269, 274, 277, 282, 283, 286, 291, 312, 318,
	319, 320, 321, 338, 339, 340, 343, 346, 347, 350,
	352, 353, 356, 363, 364, 365, 366, 368, 370, 377,
	381, 389, 390, 391, 392, 393, 395, 396, 401, 402,
	403, 404, 412, 416, 434, 435, 447, 460, 465, 270,
	442, 466, 0, 311, 0, 0, 313, 254, 273, 284,
	0, 455, 413, 207, 383, 262, 196, 225, 210, 233,
	248, 251, 288, 322, 329, 358, 362, 267, 245, 223,
	380, 220, 398, 419, 420, 421, 423, 326, 240, 361,
	424, 0, 309, 425, 426, 280, 0, 0, 0, 0,
	0, 0, 345, 0, 0, 0, 0, 0, 0, 0,
	0, 244, 0, 0, 0, 0, 300, 241, 0, 0,
	359, 0, 193, 0, 400, 228, 310, 307, 431, 255,
	247, 243, 227, 281, 317, 357, 418, 351, 0, 304,
	0, 0, 409, 330, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 287,
	226, 192, 342, 410, 259, 0, 0, 0, 0, 184,
	185, 186, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 217, 0, 224, 296, 298, 297, 0, 0,
	0, 0, 0, 239, 285, 246, 238, 428, 0, 0,
	0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 268, 0,
	331, 231, 0, 0, 0, 0, 462, 0, 0, 0,
	2575, 0, 0, 0, 299, 0, 293, 188, 205, 0,
	0, 341, 382, 388, 0, 0, 0, 229, 0, 386,
	355, 446, 213, 257, 379, 360, 384, 367, 260, 0,
	0, 385, 305, 433, 374, 443, 463, 464, 237, 335,
	453, 422, 459, 475, 206, 234, 349, 415, 449, 406,
	328, 429, 430, 292, 405, 266, 191, 303, 469, 204,
	394, 221, 211, 197, 417, 441, 218, 397, 0, 0,
	477, 199, 439, 414, 324, 289, 290, 198, 0, 378,
	242, 264, 232, 344, 436, 437, 230, 478, 208, 458,
	201, 0, 457, 337, 432, 440, 325, 315, 200, 438,
	323, 314, 295, 253, 275, 372, 308, 373, 276, 333,
	332, 334, 194, 450, 0, 195, 0, 411, 451, 479,
	214, 215, 216, 0, 252, 256, 263, 265, 271, 272,
	279, 301, 348, 371, 369, 375, 0, 427, 444, 454,
	461, 467, 468, 470, 471, 472, 473, 474, 336, 278,
	407, 294, 306, 0, 0, 354, 387, 219, 448, 408,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
	490, 491, 492, 493, 494, 495, 496, 497, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 498, 316,
	399, 445, 0, 187, 202, 302, 0, 376, 261, 476,
	456, 452, 0, 0, 236, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 327, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 189, 190, 203,
	212, 222, 235, 250, 258, 269, 274, 277, 282, 283,
	286, 291, 312, 318, 319, 320, 321, 338, 339, 340,
	343, 346, 347, 350, 352, 353, 356, 363, 364, 365,
	366, 368, 370, 377, 381, 389, 390, 391, 392, 393,
	395, 396, 401, 402, 403, 404, 412, 416, 434, 435,
	447, 460, 465, 270, 442, 466, 0, 311, 0, 0,
	313, 254, 273, 284, 0, 455, 413, 207, 383, 262,
	196, 225, 210, 233, 248, 251, 288, 322, 329, 358,
	362, 267, 245, 223, 380, 220, 398, 419, 420, 421,
	423, 326, 240, 361, 424, 0, 309, 425, 426, 280,
	0, 0, 0, 0, 0, 0, 345, 0, 0, 0,
	0, 0, 0, 0, 0, 244, 0, 0, 0, 0,
	300, 241, 0, 0, 359, 0, 193, 0, 400, 228,
	310, 307, 431, 255, 247, 243, 227, 281, 317, 357,
	418, 351, 0, 304, 0, 0, 409, 330, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 287, 226, 192, 342, 410, 259, 0,
	0, 0, 0, 184, 185, 186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 217, 0, 224, 296,
	298, 297, 0, 0, 0, 0, 0, 239, 285, 246,
	238, 428, 0, 0, 0, 0, 0, 0, 0, 209,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 249, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 268, 0, 331, 231, 0, 0, 0, 0,
	462, 0, 0, 0, 2503, 0, 0, 0, 299, 0,
	293, 188, 205, 0, 0, 341, 382, 388, 0, 0,
	0, 229, 0, 386, 355, 446, 213, 257, 379, 360,
	384, 367, 260, 0, 0, 385, 305, 433, 374, 443,
	463, 464, 237, 335, 453, 422, 459, 475, 206, 234,
	349, 415, 449, 406, 328, 429, 430, 292, 405, 266,
	191, 303, 469, 204, 394, 221, 211, 197, 417, 441,
	218, 397, 0, 0, 477, 199, 439, 414, 324, 289,
	290, 198, 0, 378, 242, 264, 232, 344, 436, 437,
	230, 478, 208, 458, 201, 0, 457, 337, 432, 440,
	325, 315, 200, 438, 323, 314, 295, 253, 275, 372,
	308, 373, 276, 333, 332, 334, 194, 450, 0, 195,
	0, 411, 451, 479, 214, 215, 216, 0, 252, 256,
	263, 265, 271, 272, 279, 301, 348, 371, 369, 375,
	0, 427, 444, 454, 461, 467, 468, 470, 471, 472,
	473, 474, 336, 278, 407, 294, 306, 0, 0, 354,
	387, 219, 448, 408, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 480, 481, 482, 483, 484, 485,
	486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
	496, 497, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 498, 316, 399, 445, 0, 187, 202, 302,
	0, 376, 261, 476, 456, 452, 0, 0, 236, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 189, 190, 203, 212, 222, 235, 250, 258, 269,
	274, 277, 282, 283, 286, 291, 312, 318, 319, 320,
	321, 338, 339, 340, 343, 346, 347, 350, 352, 353,
	356, 363, 364, 365, 366, 368, 370, 377, 381, 389,
	390, 391, 392, 393, 395, 396, 401, 402, 403, 404,
	412, 416, 434, 435, 447, 460, 465, 270, 442, 466,
	0, 311, 0, 0, 313, 254, 273, 284, 0, 455,
	413, 207, 383, 262, 196, 225, 210, 233, 248, 251,
	288, 322, 329, 358, 362, 267, 245, 223, 380, 220,
	398, 419, 420, 421, 423, 326, 240, 361, 424, 0,
	309, 425, 426, 280, 0, 0, 0, 0, 0, 0,
	345, 0, 0, 0, 0, 0, 0, 0, 0, 244,
	0, 0, 0, 0, 300, 241, 0, 0, 359, 0,
	193, 0, 400, 228, 310, 307, 431, 255, 247, 243,
	227, 281, 317, 357, 418, 351, 0, 304, 0, 0,
	409, 330, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 287, 226, 192,
	342, 410, 259, 0, 0, 0, 0, 184, 185, 186,
	0, 1412, 0, 0, 0, 0, 0, 0, 0, 0,
	217, 0, 224, 296, 298, 297, 0, 0, 0, 0,
	0, 239, 285, 246, 238, 428, 0, 0, 0, 0,
	0, 0, 0, 209, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 249, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 268, 0, 331, 231,
	0, 0, 0, 0, 462, 0, 0, 0, 0, 0,
	0, 0, 299, 0, 293, 188, 205, 0, 0, 341,
	382, 388, 0, 0, 0, 229, 0, 386, 355, 446,
	213, 257, 379, 360, 384, 367, 260, 0, 0, 385,
	305, 433, 374, 443, 463, 464, 237, 335, 453, 422,
	459, 475, 206, 234, 349, 415, 449, 406, 328, 429,
	430, 292, 405, 266, 191, 303, 469, 204, 394, 221,
	211, 197, 417, 441, 218, 397, 0, 0, 477, 199,
	439, 414, 324, 289, 290, 198, 0, 378, 242, 264,
	232, 344, 436, 437, 230, 478, 208, 458, 201, 0,
	457, 337, 432, 440, 325, 315, 200, 438, 323, 314,
	295, 253, 275, 372, 308, 373, 276, 333, 332, 334,
	194, 450, 0, 195, 0, 411, 451, 479, 214, 215,
	216, 0, 252, 256, 263, 265, 271, 272, 279, 301,
	348, 371, 369, 375, 0, 427, 444, 454, 461, 467,
	468, 470, 471, 472, 473, 474, 336, 278, 407, 294,
	306, 0, 0, 354, 387, 219, 448, 408, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 480, 481,
	482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
	492, 493, 494, 495, 496, 497, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 498, 316, 399, 445,
	0, 187, 202, 302, 0, 376, 261, 476, 456, 452,
	0, 0, 236, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 327, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 189, 190, 203, 212, 222,
	235, 250, 258, 269, 274, 277, 282, 283, 286, 291,
	312, 318, 319, 320, 321, 338, 339, 340, 343, 346,
	347, 350, 352, 353, 356, 363, 364, 365, 366, 368,
	370, 377, 381, 389, 390, 391, 392, 393, 395, 396,
	401, 402, 403, 404, 412, 416, 434, 435, 447, 460,
	465, 270, 442, 466, 0, 311, 0, 0, 313, 254,
	273, 284, 0, 455, 413, 207, 383, 262, 196, 225,
	210, 233, 248, 251, 288, 322, 329, 358, 362, 267,
	245, 223, 380, 220, 398, 419, 420, 421, 423, 326,
	240, 361, 0, 424, 309, 425, 426, 280, 1679, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	1242, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 0, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1130, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 1504, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 1384, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 1382, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 1380, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 1378, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 0, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 1376,
	0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 1372, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 1370, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 1368, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 1345, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 0, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 0, 0, 0, 0, 1247, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 338, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 1077, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 185, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 704, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 185, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 554, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	553, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 424, 0, 309, 425, 426, 280, 0, 0, 0,
	0, 0, 0, 345, 0, 0, 0, 0, 0, 0,
	0, 0, 244, 0, 0, 0, 0, 300, 241, 0,
	0, 359, 0, 193, 0, 400, 228, 310, 307, 431,
	255, 247, 243, 227, 281, 317, 357, 418, 351, 0,
	304, 0, 0, 409, 330, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	287, 226, 192, 342, 410, 259, 0, 0, 0, 0,
	184, 185, 186, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 217, 0, 224, 296, 298, 297, 0,
	0, 0, 0, 0, 239, 285, 246, 238, 428, 0,
	0, 0, 0, 0, 0, 0, 209, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 249, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
	0, 331, 231, 0, 0, 501, 0, 462, 0, 0,
	0, 0, 0, 0, 0, 299, 0, 293, 188, 205,
	0, 0, 341, 382, 388, 0, 0, 0, 229, 0,
	386, 355, 446, 213, 257, 379, 360, 384, 367, 260,
	0, 0, 385, 305, 433, 374, 443, 463, 464, 237,
	335, 453, 422, 459, 475, 206, 234, 349, 415, 449,
	406, 328, 429, 430, 292, 405, 266, 191, 303, 469,
	204, 394, 221, 211, 197, 417, 441, 218, 397, 0,
	0, 477, 199, 439, 414, 324, 289, 290, 198, 0,
	378, 242, 264, 232, 344, 436, 437, 230, 478, 208,
	458, 201, 0, 457, 337, 432, 440, 325, 315, 200,
	438, 323, 314, 295, 253, 275, 372, 308, 373, 276,
	333, 332, 334, 194, 450, 0, 195, 0, 411, 451,
	479, 214, 215, 216, 0, 252, 256, 263, 265, 271,
	272, 279, 301, 348, 371, 369, 375, 0, 427, 444,
	454, 461, 467, 468, 470, 471, 472, 473, 474, 336,
	278, 407, 294, 306, 0, 0, 354, 387, 219, 448,
	408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 480, 481, 482, 483, 484, 485, 486, 487, 488,
	489, 490, 491, 492, 493, 494, 495, 496, 497, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 498,
	316, 399, 445, 0, 187, 202, 302, 0, 376, 261,
	476, 456, 452, 0, 0, 236, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 327, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 189, 190,
	203, 212, 222, 235, 250, 258, 269, 274, 277, 282,
	283, 286, 291, 312, 318, 319, 320, 321, 338, 339,
	340, 343, 346, 347, 350, 352, 353, 356, 363, 364,
	365, 366, 368, 370, 377, 381, 389, 390, 391, 392,
	393, 395, 396, 401, 402, 403, 404, 412, 416, 434,
	435, 447, 460, 465, 270, 442, 466, 0, 311, 0,
	0, 313, 254, 273, 284, 0, 455, 413, 207, 383,
	262, 196, 225, 210, 233, 248, 251, 288, 322, 329,
	358, 362, 267, 245, 223, 380, 220, 398, 419, 420,
	421, 423, 326, 240, 361, 424, 0, 309, 425, 426,
	280, 0, 0, 0, 0, 0, 0, 345, 0, 0,
	0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
	0, 300, 241, 0, 0, 359, 0, 193, 0, 400,
	228, 310, 307, 431, 255, 247, 243, 227, 281, 317,
	357, 418, 351, 0, 304, 0, 0, 409, 330, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 287, 226, 192, 342, 410, 259,
	0, 0, 0, 0, 184, 185, 186, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 217, 0, 224,
	296, 298, 297, 0, 0, 0, 0, 0, 239, 285,
	246, 238, 428, 0, 0, 0, 0, 0, 0, 0,
	209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 249, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 268, 0, 331, 231, 0, 0, 0,
	0, 462, 0, 0, 0, 0, 0, 0, 0, 299,
	0, 293, 188, 205, 0, 0, 341, 382, 388, 0,
	0, 0, 229, 0, 386, 355, 446, 213, 257, 379,
	360, 384, 367, 260, 0, 0, 385, 305, 433, 374,
	443, 463, 464, 237, 335, 453, 422, 459, 475, 206,
	234, 349, 415, 449, 406, 328, 429, 430, 292, 405,
	266, 191, 303, 469, 204, 394, 221, 211, 197, 417,
	441, 218, 397, 0, 0, 477, 199, 439, 414, 324,
	289, 290, 198, 0, 378, 242, 264, 232, 344, 436,
	437, 230, 478, 208, 458, 201, 0, 457, 337, 432,
	440, 325, 315, 200, 438, 323, 314, 295, 253, 275,
	372, 308, 373, 276, 333, 332, 334, 194, 450, 0,
	195, 0, 411, 451, 479, 214, 215, 216, 0, 252,
	256, 263, 265, 271, 272, 279, 301, 348, 371, 369,
	375, 0, 427, 444, 454, 461, 467, 468, 470, 471,
	472, 473, 474, 336, 278, 407, 294, 306, 0, 0,
	354, 387, 219, 448, 408, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 480, 481, 482, 483, 484,
	485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
	495, 496, 497, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 498, 316, 399, 445, 0, 187, 202,
	302, 0, 376, 261, 476, 456, 452, 0, 0, 236,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 327, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 189, 190, 203, 212, 222, 235, 250, 258,
	269, 274, 277, 282, 283, 286, 291, 312, 318, 319,
	320, 321, 2580, 339, 340, 343, 346, 347, 350, 352,
	353, 356, 363, 364, 365, 366, 368, 370, 377, 381,
	389, 390, 391, 392, 393, 395, 396, 401, 402, 403,
	404, 412, 416, 434, 435, 447, 460, 465, 270, 442,
	466, 0, 311, 0, 0, 313, 254, 273, 284, 0,
	455, 413, 207, 383, 262, 196, 225, 210, 233, 248,
	251, 288, 322, 329, 358, 362, 267, 245, 223, 380,
	220, 398, 419, 420, 421, 423, 326, 240, 361, 424,
	0, 309, 425, 426, 280, 0, 0, 0, 0, 0,
	0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
	244, 0, 0, 0, 0, 300, 241, 0, 0, 359,
	0, 193, 0, 400, 228, 310, 307, 431, 255, 247,
	243, 227, 281, 317, 357, 418, 351, 0, 304, 0,
	0, 409, 330, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 287, 226,
	192, 342, 410, 259, 0, 0, 0, 0, 184, 185,
	186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 217, 0, 224, 296, 298, 297, 0, 0, 0,
	0, 0, 239, 285, 246, 238, 428, 0, 0, 0,
	0, 0, 0, 0, 209, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 249,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 268, 0, 331,
	231, 0, 0, 0, 0, 462, 0, 0, 0, 0,
	0, 0, 0, 299, 0, 293, 188, 205, 0, 0,
	341, 382, 388, 0, 0, 0, 229, 0, 386, 355,
	446, 213, 257, 379, 360, 384, 367, 260, 0, 0,
	385, 305, 433, 374, 443, 463, 464, 237, 335, 453,
	422, 459, 475, 206, 234, 349, 415, 449, 406, 328,
	429, 430, 292, 405, 266, 191, 303, 469, 204, 394,
	221, 211, 197, 417, 441, 218, 397, 0, 0, 477,
	199, 439, 414, 324, 289, 290, 198, 0, 378, 242,
	264, 232, 344, 436, 437, 230, 478, 208, 458, 201,
	0, 457, 337, 432, 440, 325, 315, 200, 438, 323,
	314, 295, 253, 275, 372, 308, 373, 276, 333, 332,
	334, 194, 450, 0, 195, 0, 411, 451, 479, 214,
	215, 216, 0, 252, 256, 263, 265, 271, 272, 279,
	301, 348, 371, 369, 375, 0, 427, 444, 454, 461,
	467, 468, 470, 471, 472, 473, 474, 336, 278, 407,
	294, 306, 0, 0, 354, 387, 219, 448, 408, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 480,
	481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
	491, 492, 493, 494, 495, 496, 497, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 498, 316, 399,
	445, 0, 187, 202, 302, 0, 376, 261, 476, 456,
	452, 0, 0, 236, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 327, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 189, 190, 203, 212,
	222, 235, 250, 258, 269, 274, 277, 282, 283, 286,
	291, 312, 318, 319, 320, 321, 338, 339, 340, 343,
	346, 347, 350, 352, 353, 356, 363, 364, 365, 366,
	368, 370, 377, 381, 389, 390, 391, 392, 393, 395,
	396, 401, 402, 403, 404, 412, 416, 434, 435, 447,
	460, 465, 270, 442, 466, 0, 311, 0, 0, 313,
	254, 273, 284, 0, 455, 413, 207, 383, 262, 196,
	225, 210, 233, 248, 251, 288, 322, 329, 358, 362,
	267, 245, 223, 380, 220, 398, 419, 420, 421, 423,
	326, 240, 361, 424, 0, 309, 425, 426, 280, 0,
	0, 0, 0, 0, 0, 345, 0, 0, 0, 0,
	0, 0, 0, 0, 244, 0, 0, 0, 0, 300,
	241, 0, 0, 359, 0, 193, 0, 400, 228, 310,
	307, 431, 255, 247, 243, 227, 281, 317, 357, 418,
	351, 0, 304, 0, 0, 409, 330, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 287, 226, 192, 342, 410, 259, 0, 0,
	0, 0, 184, 2299, 186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 217, 0, 224, 296, 298,
	297, 0, 0, 0, 0, 0, 239, 285, 246, 238,
	428, 0, 0, 0, 0, 0, 0, 0, 209, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 249, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 268, 0, 331, 231, 0, 0, 0, 0, 462,
	0, 0, 0, 0, 0, 0, 0, 299, 0, 293,
	188, 205, 0, 0, 341, 382, 388, 0, 0, 0,
	229, 0, 386, 355, 446, 213, 257, 379, 360, 384,
	367, 260, 0, 0, 385, 305, 433, 374, 443, 463,
	464, 237, 335, 453, 422, 459, 475, 206, 234, 349,
	415, 449, 406, 328, 429, 430, 292, 405, 266, 191,
	303, 469, 204, 394, 221, 211, 197, 417, 441, 218,
	397, 0, 0, 477, 199, 439, 414, 324, 289, 290,
	198, 0, 378, 242, 264, 232, 344, 436, 437, 230,
	478, 208, 458, 201, 0, 457, 337, 432, 440, 325,
	315, 200, 438, 323, 314, 295, 253, 275, 372, 308,
	373, 276, 333, 332, 334, 194, 450, 0, 195, 0,
	411, 451, 479, 214, 215, 216, 0, 252, 256, 263,
	265, 271, 272, 279, 301, 348, 371, 369, 375, 0,
	427, 444, 454, 461, 467, 468, 470, 471, 472, 473,
	474, 336, 278, 407, 294, 306, 0, 0, 354, 387,
	219, 448, 408, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 480, 481, 482, 483, 484, 485, 486,
	487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
	497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 498, 316, 399, 445, 0, 187, 202, 302, 0,
	376, 261, 476, 456, 452, 0, 0, 236, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	189, 190, 203, 212, 222, 235, 250, 258, 269, 274,
	277, 282, 283, 286, 291, 312, 318, 319, 320, 321,
	338, 339, 340, 343, 346, 347, 350, 352, 353, 356,
	363, 364, 365, 366, 368, 370, 377, 381, 389, 390,
	391, 392, 393, 395, 396, 401, 402, 403, 404, 412,
	416, 434, 435, 447, 460, 465, 270, 442, 466, 0,
	311, 0, 0, 313, 254, 273, 284, 0, 455, 413,
	207, 383, 262, 196, 225, 210, 233, 248, 251, 288,
	322, 329, 358, 362, 267, 245, 223, 380, 220, 398,
	419, 420, 421, 423, 326, 240, 361, 424, 0, 309,
	425, 426, 280, 0, 0, 0, 0, 0, 0, 345,
	0, 0, 0, 0, 0, 0, 0, 0, 244, 0,
	0, 0, 0, 300, 241, 0, 0, 359, 0, 193,
	0, 400, 228, 310, 307, 431, 255, 247, 243, 227,
	281, 317, 357, 418, 351, 0, 304, 0, 0, 409,
	330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 287, 226, 192, 342,
	410, 259, 0, 0, 0, 0, 184, 1904, 186, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
	0, 224, 296, 298, 297, 0, 0, 0, 0, 0,
	239, 285, 246, 238, 428, 0, 0, 0, 0, 0,
	0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 249, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 268, 0, 331, 231, 0,
	0, 0, 0, 462, 0, 0, 0, 0, 0, 0,
	0, 299, 0, 293, 188, 205, 0, 0, 341, 382,
	388, 0, 0, 0, 229, 0, 386, 355, 446, 213,
	257, 379, 360, 384, 367, 260, 0, 0, 385, 305,
	433, 374, 443, 463, 464, 237, 335, 453, 422, 459,
	475, 206, 234, 349, 415, 449, 406, 328, 429, 430,
	292, 405, 266, 191, 303, 469, 204, 394, 221, 211,
	197, 417, 441, 218, 397, 0, 0, 477, 199, 439,
	414, 324, 289, 290, 198, 0, 378, 242, 264, 232,
	344, 436, 437, 230, 478, 208, 458, 201, 0, 457,
	337, 432, 440, 325, 315, 200, 438, 323, 314, 295,
	253, 275, 372, 308, 373, 276, 333, 332, 334, 194,
	450, 0, 195, 0, 411, 451, 479, 214, 215, 216,
	0, 252, 256, 263, 265, 271, 272, 279, 301, 348,
	371, 369, 375, 0, 427, 444, 454, 461, 467, 468,
	470, 471, 472, 473, 474, 336, 278, 407, 294, 306,
	0, 0, 354, 387, 219, 448, 408, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 480, 481, 482,
	483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
	493, 494, 495, 496, 497, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 498, 316, 399, 445, 0,
	187, 202, 302, 0, 376, 261, 476, 456, 452, 0,
	0, 236, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 327, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 189, 190, 203, 212, 222, 235,
	250, 258, 269, 274, 277, 282, 283, 286, 291, 312,
	318, 319, 320, 321, 338, 339, 340, 343, 346, 347,
	350, 352, 353, 356, 363, 364, 365, 366, 368, 370,
	377, 381, 389, 390, 391, 392, 393, 395, 396, 401,
	402, 403, 404, 412, 416, 434, 435, 447, 460, 465,
	270, 442, 466, 0, 311, 0, 0, 313, 254, 273,
	284, 0, 455, 413, 207, 383, 262, 196, 225, 210,
	233, 248, 251, 288, 322, 329, 358, 362, 267, 245,
	223, 380, 220, 398, 419, 420, 421, 423, 326, 240,
	361, 0, 0, 309, 425, 426, 280,
}

var yyPact = [...]int{
	5051, -1000, -387, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 1761, 1767, -1000, -1000,
	-1000, -1000, 1878, -1000, 623, 1510, -1000, 1758, 2937, -1000,
	35932, 415, -1000, 34824, 414, 3585, 35932, -1000, 136, -1000,
	129, 35932, 132, 34270, -1000, -1000, -301, 15431, 1704, 12,
	10, 35932, -1000, -1000, -1000, -1000, 1840, 1536, -1000, 282,
	-1000, -1000, -1000, -1000, -1000, -1000, 33716, -1000, -1000, -1000,
	1768, 1749, 1880, 547, 1695, -1000, 1807, 1536, -1000, 15431,
	1829, 1795, 14877, -1000, 14877, 379, -1000, -1000, 10992, -1000,
	-1000, 20419, 35932, 35932, 238, -1000, 1758, -1000, -1000, 289,
	-1000, 269, 1452, -1000, 1447, -1000, 744, 756, 297, 410,
	400, 293, 292, 288, 286, 285, 284, 275, 274, 303,
	-1000, 589, 589, -193, -194, 1325, 370, 370, 370, 393,
	1728, 1727, -1000, 587, -1000, 589, 589, 287, 589, 589,
	589, 589, 242, 236, 589, 589, 589, 589, 589, 589,
	589, 589, 589, 589, 589, 589, 589, 589, 589, 299,
	1758, 228, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 35932,
	121, 35932, -1000, 482, 35932, 721, 721, 36, 721, 721,
	721, 721, 134, 552, 7, -1000, 128, 217, 104, 224,
	706, 127, 123, -1000, -1000, 213, 706, 1089, 561, 98,
	-1000, 721, 8744, 8744, 8744, -1000, 1738, -1000, -1000, -1000,
	-1000, -1000, -1000, 1111, -1000, 392, -1000, -1000, -1000, -1000,
	35932, 33162, 283, 615, -1000, -1000, -1000, 30, -1000, -1000,
	1293, 678, 15431, 1050, -1000, 1457, 531, -1000, -1000, -1000,
	-1000, -1000, 437, 15985, 15985, 15985, 15985, -1000, -1000, 1336,
	1336, 1336, 1336, 15985, 1336, 15985, 1336, 1336, 1336, 1336,
	15431, 1336, 1336, 1336, -1000, 1336, 1336, 1336, 1336, 1336,
	1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 480,
	1336, 1336, 1336, 1336, 1336, -1000, -1000, -1000, -1000, 1336,
	1336, 1336, 1336, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 18202, -1000, 13215, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, 35932, -1000, 1336, 139, 35932, 35932,
	294, 1807, 1536, -1000, 1840, 1818, 282, -1000, 1663, 1308,
	1335, 1136, 1536, 1428, 35932, -1000, 1468, -1000, -1000, -1000,
	1645, 1004, 1088, -1000, -1000, -1000, -1000, 1055, 15431, -1000,
	-1000, 1865, -1000, 17648, 478, 778, 1864, 32608, -1000, 379,
	379, 1433, 10430, -29, -1000, -1000, -1000, 612, 23189, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 1738, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1416,
	35932, -1000, -1000, 4686, 1067, -1000, 1509, -1000, 1396, -1000,
	1482, 1521, 413, 1067, 408, 407, 406, -1000, -85, -1000,
	-1000, -1000, -1000, -1000, 589, 589, -1000, 295, 1827, 2937,
	3698, -1000, -1000, -1000, 32054, 1508, 1067, -1000, 1507, -1000,
	674, 477, 495, 495, 1067, -1000, -1000, 35932, 1067, 671,
	665, 35932, 35932, -1000, 31500, -1000, 30946, 30392, 948, 35932,
	29838, 29284, 28730, 28176, 27622, -1000, 1569, -1000, 1501, -1000,
	-1000, -1000, 35932, 35932, 35932, 291, -1000, -1000, 35932, 1067,
	-1000, -1000, 946, 944, 589, 589, 941, 1086, 1085, 1074,
	589, 589, 936, 1073, 24851, 215, 930, 923, 912, 933,
	1072, 195, 915, 879, 908, 35932, 1505, 35932, -1000, 202,
	603, 362, 600, 1758, 1700, 1432, 389, 412, 1067, 360,
	360, 35932, -1000, 9306, -1000, -1000, 1068, 15431, -1000, 708,
	706, 706, -1000, -1000, -1000, -1000, -1000, -1000, 721, 35932,
	708, -1000, -1000, -1000, 706, 721, 35932, 721, 721, 721,
	721, 706, 706, 706, 721, 35932, 35932, 35932, 35932, 35932,
	35932, 35932, 35932, 35932, 8744, 8744, 8744, 561, 721, -308,
	-1000, 1045, -1000, 1597, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 130, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -101, 1430, 27068, -1000, -309, -310, -311,
	-312, -1000, -1000, -1000, -313, -319, -1000, -1000, -1000, 15431,
	15431, 15431, 15431, -1000, 781, 15985, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 914, 700, 15985, 15985, 15985, 15985, 15985,
	15985, 15985, 15985, 15985, 15985, 15985, 15985, 15985, 15985, 15985,
	819, 1039, 1037, 531, 531, 531, 531, -1000, 14877, 15431,
	15431, 531, -1000, 1067, 26514, 14877, 14877, 15431, 1742, 620,
	678, 35932, -1000, 1136, -1000, -1000, -1000, 849, -1000, 35932,
	35932, 33, 15431, 15431, 15431, 15431, 15431, 15431, 12106, 11552,
	9306, 14877, 14877, 14877, 14877, 14877, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 475, 1253, 1300,
	1391, -1000, 1429, -1000, -168, 19865, 15431, 1036, 1863, 1546,
	35932, -1000, -1000, -1000, 1807, -1000, 1807, 1253, 1651, 1648,
	14877, -1000, -1000, 1651, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 1238, -1000, 35932, 1428, 1792, 35932, 1643, 1031,
	257, -1000, 15431, 15431, 1426, -1000, 903, 35932, -1000, -1000,
	25960, -1000, -1000, 8182, -1000, 35932, 272, 35932, -1000, 19311,
	25406, 9868, -29, -1000, 9868, 1388, -1000, -19, -12, 12660,
	529, -1000, -1000, -1000, 1325, 16539, 1229, 529, 71, -1000,
	-1000, -1000, 1482, -1000, 1482, 1482, 1482, 1482, 257, 257,
	257, 257, -1000, -1000, -1000, -1000, -1000, 1503, 1502, -1000,
	1482, 1482, 1482, 1482, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 1496, 1496, 1496, 1491, 1491, 351, -1000, 15431, 198,
	35932, 1764, 907, 202, 380, 1542, 1067, 1067, 1067, 380,
	-1000, 1254, 1219, -1000, -376, 1425, -1000, -1000, 1826, -1000,
	-1000, 664, 713, 705, 675, 35932, 174, 264, -1000, 334,
	-1000, 35932, 1067, 662, 495, 1067, -1000, 1067, -1000, -1000,
	-1000, -1000, -1000, 1067, 1410, -1000, 1427, 760, 688, 731,
	687, 1410, -1000, -1000, -115, 1410, -1000, 1410, -1000, 1410,
	-1000, 1410, -1000, 1410, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 607, 35932, 174, 819, -1000, 388, -1000, -1000,
	819, 819, -1000, -1000, -1000, -1000, 1026, 1023, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -367, 35932, -1000, 185, 593,
	254, 290, 249, 35932, 177, 1797, 231, 233, 35932, 35932,
	360, 1594, 35932, 1775, 35932, -1000, -1000, -1000, -1000, -1000,
	678, 35932, -1000, -1000, 721, 721, -1000, -1000, 35932, 721,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 721, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 35932, 35932, -1000, -1000,
	-1000, -1000, -1000, 133, -24, 279, -1000, -1000, -1000, -1000,
	-1000, 1804, -1000, 678, 649, 641, -1000, -1000, -1000, 763,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 914, 15985, 15985,
	15985, 2138, 382, 1995, 1370, 1277, 1014, 1014, 802, 802,
	533, 533, 533, 533, 533, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 1327, -1000, 1128, 989, 1136, -1000, 1327, 1327,
	996, 14877, -1000, -1000, 630, -1000, 15431, 1136, -1000, -1000,
	1136, 1403, 1401, 1862, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 1107, 1152, 1152, 1152, 1152,
	1152, 15431, 1135, -1000, -1000, -1000, 1136, 14877, 14877, 1399,
	1336, 470, -1000, 1327, 1136, 1136, 1327, 1327, 9306, 1136,
	-1000, 35932, -1000, -295, -1000, -48, 530, 1336, -1000, 24851,
	1136, 1293, -1000, 973, -1000, 37040, -1000, -1000, -1000, -1000,
	-1000, 22635, 1235, 1651, -1000, -1000, 1336, 1367, -1000, -1000,
	257, 29, 22081, -1000, -1000, 678, 678, 15431, -1000, -1000,
	-1000, -1000, -1000, -1000, 464, 1844, 329, 1336, -1000, 1431,
	1561, -1000, -1000, -1000, 1790, 17094, -1000, 1336, 1336, 35932,
	1466, 1465, -1000, 453, -1000, 1388, -29, -41, -1000, -1000,
	-1000, -1000, 678, -1000, 1202, 273, 296, -1000, 332, -1000,
	-1000, -1000, -1000, 1716, 46, -1000, -1000, -1000, 257, 257,
	-1000, -1000, -1000, -1000, -1000, -1000, 1021, 1021, -1000, -1000,
	-1000, -1000, -1000, 902, -1000, -1000, -1000, 900, -1000, -1000,
	1208, 1563, 198, -1000, -1000, 589, 1016, 1719, 35932, -1000,
	-1000, 1198, 185, 35932, 627, 1583, -1000, 1542, 1542, 1542,
	35932, -1000, -1000, -1000, -1000, -369, 54, 320, -1000, -1000,
	-1000, 377, 35932, 1363, -1000, 171, -1000, 1190, 1665, 35932,
	-1000, 1361, 1495, 1067, 1067, -1000, -1000, -1000, 35932, 1336,
	-1000, -1000, -1000, -1000, 411, 1755, 1753, 174, 171, 529,
	1067, -1000, -1000, -1000, -1000, -1000, -370, 1331, 398, 176,
	250, 35932, 35932, 35932, 35932, 35932, 441, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 230, 387, -1000, 35932, 35932,
	490, -1000, -1000, -1000, 706, -1000, -1000, 706, -1000, -1000,
	-1000, -1000, -1000, 1735, 35932, -34, -344, -1000, -340, -1000,
	-1000, -1000, -1000, 2011, 378, 1995, 15985, 15985, 14877, -103,
	452, 452, 819, -1000, -1000, -1000, 15431, 15431, 1279, 604,
	-1000, 15431, 749, -1000, -1000, 15431, 15431, 15431, 1136, 255,
	-1000, -1000, -1000, -1000, -1000, 1861, -1000, 15431, -1000, 1327,
	1327, 14877, 9306, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 530, -1000, 495, 495, 495, 35932, -1000,
	-1000, -1000, -1000, -1000, -1000, 1386, 1809, -1000, 1662, 1654,
	1842, 1844, -1000, 19311, 1651, -1000, -1000, 35932, -290, -1000,
	1697, 1673, -1000, -1000, -1000, -1000, 7620, 1807, 15431, 1582,
	35932, 1336, -1000, 18757, 35932, 35932, 19311, 19311, 19311, 19311,
	19311, -1000, 1634, 1630, -1000, 1613, 1610, 1625, 35932, -1000,
	1324, 1136, 1818, 17094, 282, 15431, 20973, 1193, 19311, -1000,
	-1000, 19311, 35932, 7058, -1000, -1000, -43, -17, -1000, -1000,
	-1000, -1000, 1325, -1000, -1000, 548, 1787, 1713, -1000, -1000,
	-1000, -1000, 1322, -1000, 1320, 1341, 1315, 112, -1000, 1519,
	1734, 589, 589, -1000, 899, -1000, 1067, -1000, -1000, 395,
	-1000, 1773, 35932, 1581, 1580, 1578, -1000, -382, 894, 1494,
	1459, 15431, 1493, 1825, 1304, 35932, -1000, -1000, 35932, -1000,
	-1000, 365, -1000, 198, 35932, -1000, -1000, -1000, 264, 35932,
	-1000, 5900, 171, -1000, -1000, -1000, -1000, -1000, -1000, 35932,
	197, -1000, 1492, 1098, -1000, -1000, 1525, -1000, -1000, -1000,
	-1000, 142, 240, -1000, 35932, 462, 1563, 35932, -1000, -1000,
	-1000, 721, 721, -1000, -1000, 1731, -1000, 1067, 15985, 15985,
	-1000, 531, -1000, 1336, 1136, 1482, 1482, -1000, 1482, 1491,
	-1000, 1482, 120, 1482, 114, 1482, -1000, -1000, 1136, 1136,
	974, 890, -94, -1000, 678, 15431, 1156, 1020, 1152, -1000,
	1481, 1480, 15431, 1152, -1000, -1000, 1136, -1000, -1000, 1802,
	1802, 1802, 1306, 36486, 35932, -1000, -1000, -1000, -1000, 1844,
	1841, 1333, -1000, -1000, 29, 358, -1000, 1676, 1673, -1000,
	1824, 1693, 1822, -1000, -1000, -1000, 678, -1000, 1743, 1418,
	-1000, 588, 1281, -1000, -1000, 14323, 1313, 1652, 450, 1306,
	1454, 1561, 1576, 1573, 1595, -1000, -1000, -1000, -1000, 1626,
	-1000, 1571, -1000, -1000, 1468, -1000, -1000, 1300, 1136, 895,
	272, 19311, 1379, 1379, -1000, 447, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 759, 5777, 1876, -1000, 1011, -1000, 1116,
	-1000, 660, 658, -1000, 35932, 1479, -1000, 257, 1009, 257,
	876, -1000, 872, -1000, -1000, -231, -1000, -1000, 1474, 1567,
	-1000, -1000, 35932, -1000, -1000, 35932, 35932, 35932, 1478, 1821,
	-1000, 15431, 1477, 575, 1175, 35932, 35932, -1000, -1000, 252,
	1336, -1000, 1302, 1288, -1000, -151, -1000, 15431, -1000, -1000,
	-1000, 844, 844, -1000, 1468, -1000, -1000, -1000, 1160, -1000,
	-1000, -130, 35932, 35932, 35932, 35932, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 531, 15985, -1000, -1000, 257,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15431,
	-1000, 15431, -1000, 1807, 992, 678, 15431, 15431, -1000, 857,
	854, 1152, -1000, -1000, 1336, 1694, 1336, 1336, 20973, -1000,
	-1000, 1841, 1837, 1820, 1681, 1684, 1684, 1676, -1000, 1816,
	1815, -1000, 988, 1814, 985, 656, -1000, 35932, 15431, 1336,
	-1000, 247, 35932, 1336, 35932, -1000, 1831, -1000, -1000, 15431,
	1476, -1000, 15431, -1000, -1000, -1000, -1000, -1000, -1000, 4227,
	1844, 1379, -1000, -1000, 540, -1000, 15431, -1000, -1000, -1000,
	434, -1000, -1000, -1000, -1000, -1000, 1475, 15431, -1000, -1000,
	-1000, 1158, 1154, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 1468, -1000, -1000, -1000, -1000, 264, -378, 1168, 35932,
	848, -1000, 1286, 1304, 445, -1000, 15431, 317, -1000, 264,
	-1000, -196, -197, 1152, -1000, -1000, 1778, -1000, -1000, 9306,
	-1000, -1000, 1463, 1527, -1000, 157, -1000, 1152, 1152, 1136,
	-1000, 1152, 1152, 1147, 1138, -1000, 21527, -1000, 1813, 1810,
	24297, 24297, 530, 1837, -1000, 15431, 15431, 1670, 789, -1000,
	-1000, -1000, -1000, 980, 978, -1000, 972, -1000, 1874, -1000,
	678, -1000, 1336, -1000, 440, 1281, -1000, 1807, 678, 35932,
	678, 32, 954, 1831, -1000, 1152, -1000, 1336, 1336, 1336,
	1336, 1336, 1336, 1336, 35932, 1071, -1000, -1000, 1777, 1284,
	48, -1000, 1275, -1000, -1000, -1000, -1000, 13769, -1000, -1000,
	-1000, -1000, -1000, -1000, 282, 1296, -1000, 560, 35932, 35932,
	1136, 251, -144, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	1265, -1000, -1000, -1000, -1000, -1000, 1265, 1265, -1000, -1000,
	678, 1293, -1000, 746, -1000, -1000, -1000, -1000, -1000, 35932,
	1281, 35932, -1000, 1263, 1136, 1336, 1807, -1000, 1233, -1000,
	282, -1000, 1278, 1459, -1000, 1136, -129, 9306, 6496, 1226,
	-1000, -1000, 1641, -113, -152, 23743, -1000, -1000, -1000, -1000,
	-1000, 1241, -1000, -1000, 20973, 35378, -1000, 1566, 911, -129,
	15431, 904, -1000, -1000, -44, -1000, -1000, -1000, -1000, -1000,
	1525, -1000, 1640, -1000, -1000, -1000, -1000, 1214, -1000, 4510,
	-257, 1559, -1000, 1848, -1000, -1000, -1000, 716, 953, -1000,
	-1000, -1000, -1000, 1008, 35932, 341, -1000, -1000, -130, -133,
	-1000, 35378, -253, 529, 4227, -1000, -1000, 1872, 565, 565,
	-1000, -1000, -384, 1142, 200, -1000, -147, -1000, -1000, 1772,
	32, -1000, -1000, -1000, 333, 897, -1000, -1000, 821, -384,
	-1000, -190, -263, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 4227, 175, 175, -1000, 1549, -1000, -1000, 4227, -1000,
	1483, -248, -1000, -322, -1000, -1000,
}

var yyPgo = [...]int{
	0, 2208, 2207, 17, 5, 2206, 39, 79, 176, 16,
	179, 93, 2205, 2203, 2202, 2201, 2200, 2197, 2196, 203,
	199, 198, 2194, 2193, 2192, 2191, 2188, 2187, 2185, 2184,
	2183, 2182, 196, 151, 168, 2181, 2180, 2179, 99, 156,
	74, 76, 175, 2174, 2173, 70, 2171, 2156, 2155, 161,
	155, 683, 2142, 153, 104, 32, 2141, 2139, 2136, 2134,
	2133, 2130, 2128, 2125, 2121, 2120, 2119, 2118, 2117, 2116,
	2113, 2112, 279, 2111, 2110, 20, 2109, 67, 2108, 2107,
	2106, 2105, 118, 2103, 2102, 2101, 2100, 2098, 2096, 135,
	2095, 2094, 2092, 2091, 171, 2090, 2089, 140, 100, 97,
	2088, 2087, 86, 167, 2086, 105, 2085, 2084, 2080, 141,
	2079, 404, 2077, 53, 49, 2076, 89, 65, 46, 43,
	2, 2075, 2074, 52, 68, 2073, 88, 58, 2072, 91,
	85, 2070, 2069, 9, 6, 2067, 4, 2064, 3, 55,
	2063, 2057, 106, 2056, 2052, 2051, 81, 2050, 2049, 3720,
	2048, 82, 123, 92, 66, 2047, 35, 84, 2046, 2043,
	2041, 2039, 2037, 41, 2032, 2019, 2018, 130, 27, 2015,
	21, 38, 44, 120, 2014, 25, 71, 2012, 128, 129,
	2011, 45, 29, 28, 2010, 26, 115, 142, 37, 83,
	116, 2009, 2008, 47, 61, 2007, 2005, 2004, 2002, 2000,
	1998, 60, 1995, 42, 1992, 184, 1991, 13, 1990, 33,
	34, 1988, 50, 136, 59, 24, 1987, 166, 1984, 48,
	162, 122, 150, 1983, 1981, 1980, 152, 232, 1979, 1978,
	69, 164, 132, 138, 1977, 236, 1976, 1974, 78, 1624,
	2365, 15, 148, 1969, 1968, 3293, 131, 127, 18, 1967,
	98, 1966, 1958, 1955, 169, 174, 94, 881, 96, 1953,
	14, 1952, 1951, 1950, 1945, 1944, 1943, 165, 170, 102,
	8, 160, 63, 1936, 1933, 1932, 110, 77, 1931, 147,
	144, 108, 163, 1930, 149, 133, 126, 1929, 90, 1928,
	1924, 1922, 1921, 80, 1920, 1919, 1917, 1916, 145, 134,
	107, 75, 1912, 73, 101, 139, 143, 36, 1911, 30,
	1910, 1909, 157, 19, 1908, 11, 0, 1907, 12, 158,
	234, 146, 1906, 1905, 7, 1904, 10, 1903, 1902, 125,
	1897, 1896, 1895, 23, 31, 22, 1, 1894, 1893, 3973,
	831, 111, 1891, 177,
}

//line sql.y:6383
type yySymType struct {
	union             any
	empty             struct{}
	LengthScaleOption LengthScaleOption
	tableName         TableName
	tableIdent        TableIdent
	str               string
	strs              []string
	vindexParam       VindexParam
	colIdent          ColIdent
	joinCondition     *JoinCondition
	collateAndCharset CollateAndCharset
	columnType        ColumnType
	yys               int
}

func (st *yySymType) JSONTableExprUnion() *JSONTableExpr {
	v, _ := st.union.(*JSONTableExpr)
	return v
}

func (st *yySymType) ReferenceActionUnion() ReferenceAction {
	v, _ := st.union.(ReferenceAction)
	return v
}

func (st *yySymType) aliasedTableNameUnion() *AliasedTableExpr {
	v, _ := st.union.(*AliasedTableExpr)
	return v
}

func (st *yySymType) alterDatabaseUnion() *AlterDatabase {
	v, _ := st.union.(*AlterDatabase)
	return v
}

func (st *yySymType) alterMigrationUnion() *AlterMigration {
	v, _ := st.union.(*AlterMigration)
	return v
}

func (st *yySymType) alterOptionUnion() AlterOption {
	v, _ := st.union.(AlterOption)
	return v
}

func (st *yySymType) alterOptionsUnion() []AlterOption {
	v, _ := st.union.([]AlterOption)
	return v
}

func (st *yySymType) alterTableUnion() *AlterTable {
	v, _ := st.union.(*AlterTable)
	return v
}

func (st *yySymType) boolValUnion() BoolVal {
	v, _ := st.union.(BoolVal)
	return v
}

func (st *yySymType) booleanUnion() bool {
	v, _ := st.union.(bool)
	return v
}

func (st *yySymType) characteristicUnion() Characteristic {
	v, _ := st.union.(Characteristic)
	return v
}

func (st *yySymType) characteristicsUnion() []Characteristic {
	v, _ := st.union.([]Characteristic)
	return v
}

func (st *yySymType) colKeyOptUnion() ColumnKeyOption {
	v, _ := st.union.(ColumnKeyOption)
	return v
}

func (st *yySymType) colNameUnion() *ColName {
	v, _ := st.union.(*ColName)
	return v
}

func (st *yySymType) colTupleUnion() ColTuple {
	v, _ := st.union.(ColTuple)
	return v
}

func (st *yySymType) collateAndCharsetsUnion() []CollateAndCharset {
	v, _ := st.union.([]CollateAndCharset)
	return v
}

func (st *yySymType) columnDefinitionUnion() *ColumnDefinition {
	v, _ := st.union.(*ColumnDefinition)
	return v
}

func (st *yySymType) columnDefinitionsUnion() []*ColumnDefinition {
	v, _ := st.union.([]*ColumnDefinition)
	return v
}

func (st *yySymType) columnStorageUnion() ColumnStorage {
	v, _ := st.union.(ColumnStorage)
	return v
}

func (st *yySymType) columnTypeOptionsUnion() *ColumnTypeOptions {
	v, _ := st.union.(*ColumnTypeOptions)
	return v
}

func (st *yySymType) columnsUnion() Columns {
	v, _ := st.union.(Columns)
	return v
}

func (st *yySymType) comparisonExprOperatorUnion() ComparisonExprOperator {
	v, _ := st.union.(ComparisonExprOperator)
	return v
}

func (st *yySymType) constraintDefinitionUnion() *ConstraintDefinition {
	v, _ := st.union.(*ConstraintDefinition)
	return v
}

func (st *yySymType) constraintInfoUnion() ConstraintInfo {
	v, _ := st.union.(ConstraintInfo)
	return v
}

func (st *yySymType) convertTypeUnion() *ConvertType {
	v, _ := st.union.(*ConvertType)
	return v
}

func (st *yySymType) createDatabaseUnion() *CreateDatabase {
	v, _ := st.union.(*CreateDatabase)
	return v
}

func (st *yySymType) createTableUnion() *CreateTable {
	v, _ := st.union.(*CreateTable)
	return v
}

func (st *yySymType) cteUnion() *CommonTableExpr {
	v, _ := st.union.(*CommonTableExpr)
	return v
}

func (st *yySymType) ctesUnion() []*CommonTableExpr {
	v, _ := st.union.([]*CommonTableExpr)
	return v
}

func (st *yySymType) definerUnion() *Definer {
	v, _ := st.union.(*Definer)
	return v
}

func (st *yySymType) derivedTableUnion() *DerivedTable {
	v, _ := st.union.(*DerivedTable)
	return v
}

func (st *yySymType) explainTypeUnion() ExplainType {
	v, _ := st.union.(ExplainType)
	return v
}

func (st *yySymType) exprUnion() Expr {
	v, _ := st.union.(Expr)
	return v
}

func (st *yySymType) exprsUnion() Exprs {
	v, _ := st.union.(Exprs)
	return v
}

func (st *yySymType) ignoreUnion() Ignore {
	v, _ := st.union.(Ignore)
	return v
}

func (st *yySymType) indexColumnUnion() *IndexColumn {
	v, _ := st.union.(*IndexColumn)
	return v
}

func (st *yySymType) indexColumnsUnion() []*IndexColumn {
	v, _ := st.union.([]*IndexColumn)
	return v
}

func (st *yySymType) indexDefinitionUnion() *IndexDefinition {
	v, _ := st.union.(*IndexDefinition)
	return v
}

func (st *yySymType) indexHintUnion() *IndexHint {
	v, _ := st.union.(*IndexHint)
	return v
}

func (st *yySymType) indexHintForTypeUnion() IndexHintForType {
	v, _ := st.union.(IndexHintForType)
	return v
}

func (st *yySymType) indexHintsUnion() IndexHints {
	v, _ := st.union.(IndexHints)
	return v
}

func (st *yySymType) indexInfoUnion() *IndexInfo {
	v, _ := st.union.(*IndexInfo)
	return v
}

func (st *yySymType) indexOptionUnion() *IndexOption {
	v, _ := st.union.(*IndexOption)
	return v
}

func (st *yySymType) indexOptionsUnion() []*IndexOption {
	v, _ := st.union.([]*IndexOption)
	return v
}

func (st *yySymType) insUnion() *Insert {
	v, _ := st.union.(*Insert)
	return v
}

func (st *yySymType) insertActionUnion() InsertAction {
	v, _ := st.union.(InsertAction)
	return v
}

func (st *yySymType) integerUnion() int {
	v, _ := st.union.(int)
	return v
}

func (st *yySymType) intervalTypeUnion() IntervalTypes {
	v, _ := st.union.(IntervalTypes)
	return v
}

func (st *yySymType) isExprOperatorUnion() IsExprOperator {
	v, _ := st.union.(IsExprOperator)
	return v
}

func (st *yySymType) isolationLevelUnion() IsolationLevel {
	v, _ := st.union.(IsolationLevel)
	return v
}

func (st *yySymType) joinTypeUnion() JoinType {
	v, _ := st.union.(JoinType)
	return v
}

func (st *yySymType) jtColumnDefinitionUnion() *JtColumnDefinition {
	v, _ := st.union.(*JtColumnDefinition)
	return v
}

func (st *yySymType) jtColumnListUnion() []*JtColumnDefinition {
	v, _ := st.union.([]*JtColumnDefinition)
	return v
}

func (st *yySymType) jtOnResponseUnion() *JtOnResponse {
	v, _ := st.union.(*JtOnResponse)
	return v
}

func (st *yySymType) limitUnion() *Limit {
	v, _ := st.union.(*Limit)
	return v
}

func (st *yySymType) literalUnion() *Literal {
	v, _ := st.union.(*Literal)
	return v
}

func (st *yySymType) lockUnion() Lock {
	v, _ := st.union.(Lock)
	return v
}

func (st *yySymType) lockTypeUnion() LockType {
	v, _ := st.union.(LockType)
	return v
}

func (st *yySymType) matchExprOptionUnion() MatchExprOption {
	v, _ := st.union.(MatchExprOption)
	return v
}

func (st *yySymType) optLikeUnion() *OptLike {
	v, _ := st.union.(*OptLike)
	return v
}

func (st *yySymType) optValUnion() Expr {
	v, _ := st.union.(Expr)
	return v
}

func (st *yySymType) orderUnion() *Order {
	v, _ := st.union.(*Order)
	return v
}

func (st *yySymType) orderByUnion() OrderBy {
	v, _ := st.union.(OrderBy)
	return v
}

func (st *yySymType) orderDirectionUnion() OrderDirection {
	v, _ := st.union.(OrderDirection)
	return v
}

func (st *yySymType) partDefUnion() *PartitionDefinition {
	v, _ := st.union.(*PartitionDefinition)
	return v
}

func (st *yySymType) partDefsUnion() []*PartitionDefinition {
	v, _ := st.union.([]*PartitionDefinition)
	return v
}

func (st *yySymType) partSpecUnion() *PartitionSpec {
	v, _ := st.union.(*PartitionSpec)
	return v
}

func (st *yySymType) partSpecsUnion() []*PartitionSpec {
	v, _ := st.union.([]*PartitionSpec)
	return v
}

func (st *yySymType) partitionByTypeUnion() PartitionByType {
	v, _ := st.union.(PartitionByType)
	return v
}

func (st *yySymType) partitionOptionUnion() *PartitionOption {
	v, _ := st.union.(*PartitionOption)
	return v
}

func (st *yySymType) partitionValueRangeUnion() *PartitionValueRange {
	v, _ := st.union.(*PartitionValueRange)
	return v
}

func (st *yySymType) partitionsUnion() Partitions {
	v, _ := st.union.(Partitions)
	return v
}

func (st *yySymType) referenceDefinitionUnion() *ReferenceDefinition {
	v, _ := st.union.(*ReferenceDefinition)
	return v
}

func (st *yySymType) renameTablePairsUnion() []*RenameTablePair {
	v, _ := st.union.([]*RenameTablePair)
	return v
}

func (st *yySymType) revertMigrationUnion() *RevertMigration {
	v, _ := st.union.(*RevertMigration)
	return v
}

func (st *yySymType) scopeUnion() Scope {
	v, _ := st.union.(Scope)
	return v
}

func (st *yySymType) selStmtUnion() SelectStatement {
	v, _ := st.union.(SelectStatement)
	return v
}

func (st *yySymType) selectExprUnion() SelectExpr {
	v, _ := st.union.(SelectExpr)
	return v
}

func (st *yySymType) selectExprsUnion() SelectExprs {
	v, _ := st.union.(SelectExprs)
	return v
}

func (st *yySymType) selectIntoUnion() *SelectInto {
	v, _ := st.union.(*SelectInto)
	return v
}

func (st *yySymType) setExprUnion() *SetExpr {
	v, _ := st.union.(*SetExpr)
	return v
}

func (st *yySymType) setExprsUnion() SetExprs {
	v, _ := st.union.(SetExprs)
	return v
}

func (st *yySymType) showFilterUnion() *ShowFilter {
	v, _ := st.union.(*ShowFilter)
	return v
}

func (st *yySymType) statementUnion() Statement {
	v, _ := st.union.(Statement)
	return v
}

func (st *yySymType) subPartitionUnion() *SubPartition {
	v, _ := st.union.(*SubPartition)
	return v
}

func (st *yySymType) subqueryUnion() *Subquery {
	v, _ := st.union.(*Subquery)
	return v
}

func (st *yySymType) tableAndLockTypeUnion() *TableAndLockType {
	v, _ := st.union.(*TableAndLockType)
	return v
}

func (st *yySymType) tableAndLockTypesUnion() TableAndLockTypes {
	v, _ := st.union.(TableAndLockTypes)
	return v
}

func (st *yySymType) tableExprUnion() TableExpr {
	v, _ := st.union.(TableExpr)
	return v
}

func (st *yySymType) tableExprsUnion() TableExprs {
	v, _ := st.union.(TableExprs)
	return v
}

func (st *yySymType) tableNamesUnion() TableNames {
	v, _ := st.union.(TableNames)
	return v
}

func (st *yySymType) tableOptionUnion() *TableOption {
	v, _ := st.union.(*TableOption)
	return v
}

func (st *yySymType) tableOptionsUnion() TableOptions {
	v, _ := st.union.(TableOptions)
	return v
}

func (st *yySymType) tableSpecUnion() *TableSpec {
	v, _ := st.union.(*TableSpec)
	return v
}

func (st *yySymType) trimTypeUnion() TrimType {
	v, _ := st.union.(TrimType)
	return v
}

func (st *yySymType) updateExprUnion() *UpdateExpr {
	v, _ := st.union.(*UpdateExpr)
	return v
}

func (st *yySymType) updateExprsUnion() UpdateExprs {
	v, _ := st.union.(UpdateExprs)
	return v
}

func (st *yySymType) valTupleUnion() ValTuple {
	v, _ := st.union.(ValTuple)
	return v
}

func (st *yySymType) valuesUnion() Values {
	v, _ := st.union.(Values)
	return v
}

func (st *yySymType) vindexParamsUnion() []VindexParam {
	v, _ := st.union.([]VindexParam)
	return v
}

func (st *yySymType) whenUnion() *When {
	v, _ := st.union.(*When)
	return v
}

func (st *yySymType) whensUnion() []*When {
	v, _ := st.union.([]*When)
	return v
}

func (st *yySymType) withUnion() *With {
	v, _ := st.union.(*With)
	return v
}

var yyR1 = [...]int{
	0, 337, 338, 338, 5, 5, 5, 5, 5, 5,
	5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
	5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
	5, 5, 5, 5, 5, 5, 5, 5, 316, 316,
	316, 319, 319, 30, 67, 32, 32, 31, 31, 34,
	34, 33, 6, 6, 6, 7, 7, 7, 7, 7,
	7, 7, 7, 8, 8, 8, 8, 8, 9, 9,
	9, 9, 11, 11, 11, 11, 11, 17, 18, 10,
	10, 19, 19, 80, 80, 20, 21, 21, 21, 21,
	341, 341, 144, 144, 142, 142, 143, 143, 212, 212,
	22, 23, 23, 222, 222, 221, 221, 221, 223, 223,
	223, 223, 257, 257, 24, 24, 24, 24, 24, 95,
	95, 318, 318, 317, 315, 315, 314, 314, 313, 36,
	37, 46, 46, 46, 46, 47, 48, 320, 320, 289,
	52, 52, 51, 51, 51, 51, 53, 53, 50, 50,
	49, 49, 291, 291, 278, 278, 290, 290, 290, 290,
	290, 290, 290, 277, 277, 106, 106, 191, 191, 191,
	191, 191, 191, 191, 191, 191, 191, 191, 332, 332,
	192, 192, 192, 192, 192, 192, 115, 115, 123, 123,
	123, 123, 113, 113, 114, 112, 112, 112, 118, 118,
	118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
	336, 122, 122, 119, 119, 119, 120, 120, 120, 333,
	333, 333, 333, 260, 260, 260, 260, 263, 263, 261,
	261, 261, 261, 261, 261, 261, 261, 261, 262, 262,
	262, 262, 262, 264, 264, 264, 264, 264, 265, 265,
	265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
	265, 265, 265, 266, 266, 266, 266, 266, 266, 266,
	266, 276, 276, 267, 267, 271, 271, 272, 272, 272,
	273, 273, 273, 274, 274, 269, 269, 269, 269, 269,
	269, 270, 270, 270, 279, 303, 303, 302, 302, 300,
	300, 300, 300, 288, 288, 297, 297, 297, 297, 297,
	287, 287, 283, 283, 283, 284, 284, 285, 285, 282,
	282, 286, 286, 299, 299, 298, 280, 280, 281, 281,
	305, 334, 334, 334, 334, 335, 335, 306, 325, 326,
	324, 324, 324, 324, 324, 77, 77, 77, 234, 234,
	234, 295, 295, 294, 294, 294, 296, 296, 293, 293,
	293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
	293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
	293, 293, 293, 293, 293, 293, 229, 229, 229, 323,
	323, 323, 323, 323, 323, 322, 322, 322, 292, 292,
	292, 321, 321, 54, 54, 176, 176, 43, 43, 43,
	43, 43, 43, 42, 42, 42, 38, 38, 38, 38,
	38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
	38, 38, 38, 38, 38, 38, 38, 38, 38, 44,
	44, 39, 39, 39, 39, 39, 39, 39, 39, 39,
	25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
	25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
	82, 82, 83, 83, 83, 83, 84, 84, 84, 308,
	308, 55, 55, 3, 3, 132, 134, 135, 135, 133,
	133, 133, 133, 133, 133, 57, 57, 56, 56, 137,
	136, 138, 138, 138, 1, 1, 2, 2, 4, 4,
	312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
	312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
	312, 312, 275, 275, 275, 307, 307, 309, 311, 311,
	311, 311, 310, 91, 91, 26, 35, 35, 27, 27,
	27, 27, 28, 28, 58, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
	59, 59, 59, 327, 327, 228, 228, 236, 236, 227,
	227, 250, 250, 250, 230, 230, 230, 231, 231, 331,
	331, 331, 60, 60, 60, 62, 62, 63, 64, 64,
	252, 252, 253, 253, 65, 66, 78, 78, 78, 78,
	78, 78, 81, 81, 81, 13, 13, 13, 13, 74,
	74, 74, 12, 12, 61, 61, 68, 328, 328, 329,
	330, 330, 330, 330, 69, 71, 29, 29, 29, 29,
	29, 29, 101, 101, 89, 89, 89, 89, 89, 89,
	89, 89, 89, 89, 89, 89, 96, 96, 96, 90,
	90, 342, 72, 73, 73, 94, 94, 94, 87, 87,
	87, 93, 93, 93, 14, 14, 15, 211, 211, 16,
	16, 98, 98, 100, 100, 100, 100, 100, 102, 102,
	102, 102, 102, 102, 102, 97, 97, 99, 99, 99,
	99, 243, 243, 243, 242, 242, 126, 126, 128, 127,
	127, 129, 129, 130, 130, 130, 130, 174, 174, 152,
	152, 209, 209, 207, 207, 208, 208, 210, 210, 210,
	210, 213, 213, 131, 131, 131, 131, 139, 139, 140,
	140, 141, 141, 251, 251, 248, 248, 248, 247, 247,
	145, 145, 145, 147, 146, 146, 146, 146, 148, 148,
	150, 150, 149, 149, 151, 156, 156, 155, 155, 153,
	153, 153, 153, 154, 154, 154, 154, 157, 157, 111,
	111, 111, 111, 111, 111, 121, 121, 121, 121, 124,
	124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
	116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
	116, 116, 116, 117, 117, 117, 117, 117, 117, 117,
	117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
	117, 117, 117, 117, 117, 117, 79, 79, 79, 225,
	225, 158, 158, 166, 166, 166, 166, 159, 159, 159,
	159, 159, 159, 159, 167, 167, 167, 173, 168, 168,
	164, 164, 164, 164, 162, 162, 162, 162, 162, 162,
	162, 162, 162, 162, 163, 163, 163, 163, 163, 163,
	163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
	163, 86, 86, 86, 86, 86, 86, 86, 86, 86,
	86, 86, 86, 85, 85, 85, 85, 85, 85, 85,
	85, 85, 343, 343, 268, 268, 268, 165, 165, 165,
	165, 165, 92, 92, 92, 92, 92, 256, 256, 256,
	259, 259, 259, 258, 258, 258, 258, 258, 258, 258,
	258, 258, 258, 258, 258, 258, 258, 258, 179, 179,
	88, 88, 177, 177, 178, 180, 180, 175, 175, 175,
	161, 161, 161, 181, 181, 182, 182, 183, 183, 185,
	184, 184, 186, 187, 187, 187, 188, 188, 189, 189,
	189, 45, 45, 45, 45, 45, 40, 40, 40, 40,
	41, 41, 41, 103, 103, 103, 103, 105, 105, 104,
	104, 75, 75, 76, 76, 76, 109, 109, 110, 110,
	110, 107, 107, 108, 108, 205, 205, 190, 190, 190,
	197, 197, 197, 193, 193, 195, 195, 195, 196, 196,
	196, 194, 202, 202, 204, 204, 203, 203, 199, 199,
	200, 200, 201, 201, 201, 198, 198, 160, 160, 160,
	160, 160, 206, 206, 206, 206, 214, 214, 170, 170,
	172, 172, 171, 125, 215, 215, 219, 216, 216, 220,
	220, 220, 220, 220, 217, 217, 218, 218, 244, 244,
	244, 224, 224, 235, 235, 232, 232, 233, 233, 226,
	226, 237, 237, 237, 70, 169, 169, 304, 304, 301,
	240, 240, 241, 241, 245, 245, 249, 249, 246, 246,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
	238, 238, 238, 238, 238, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
	239, 239, 239, 239, 239, 239, 239, 339, 340, 254,
	255, 255, 255,
}

var yyR2 = [...]int{
	0, 2, 0, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
	1, 0, 1, 2, 3, 2, 3, 0, 1, 3,
	1, 4, 3, 3, 4, 3, 2, 3, 4, 3,
	4, 2, 7, 1, 3, 3, 3, 3, 1, 2,
	1, 1, 3, 2, 3, 3, 2, 5, 7, 9,
	8, 7, 8, 1, 1, 10, 11, 9, 8, 8,
	1, 1, 1, 3, 1, 3, 1, 3, 0, 4,
	3, 5, 4, 1, 3, 3, 2, 2, 2, 2,
	2, 1, 1, 1, 2, 2, 6, 12, 2, 0,
	2, 0, 2, 1, 0, 2, 1, 3, 3, 6,
	4, 7, 8, 8, 8, 6, 3, 1, 1, 5,
	0, 1, 1, 1, 2, 2, 0, 1, 4, 4,
	4, 4, 2, 4, 1, 3, 1, 1, 3, 4,
	3, 3, 3, 5, 10, 0, 2, 0, 2, 3,
	5, 3, 4, 2, 3, 2, 3, 3, 1, 1,
	0, 2, 2, 3, 3, 2, 1, 1, 2, 2,
	2, 2, 1, 1, 1, 1, 2, 2, 1, 1,
	1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
	1, 2, 1, 3, 1, 1, 1, 2, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
	2, 2, 2, 1, 2, 2, 2, 2, 3, 3,
	2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
	1, 5, 5, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 3, 0, 3, 0, 5, 0, 3, 5,
	0, 1, 1, 0, 1, 0, 2, 2, 2, 1,
	1, 0, 2, 2, 5, 0, 1, 1, 2, 1,
	3, 2, 3, 0, 1, 4, 3, 3, 4, 2,
	0, 2, 1, 1, 1, 1, 1, 0, 1, 1,
	1, 0, 1, 1, 3, 3, 3, 1, 3, 1,
	7, 5, 6, 6, 7, 0, 1, 5, 3, 3,
	1, 1, 2, 2, 2, 0, 1, 1, 0, 1,
	2, 0, 1, 1, 3, 2, 1, 2, 3, 3,
	4, 4, 3, 3, 3, 3, 4, 4, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 4, 5, 0, 2, 2, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 0, 1, 0, 1, 0, 2, 0, 1, 5,
	1, 3, 7, 1, 3, 3, 1, 2, 2, 2,
	5, 5, 5, 6, 8, 6, 5, 5, 2, 2,
	2, 2, 3, 3, 3, 4, 1, 3, 5, 1,
	3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
	3, 4, 4, 2, 11, 3, 6, 8, 6, 6,
	6, 13, 8, 6, 10, 5, 5, 5, 5, 5,
	0, 6, 5, 6, 4, 5, 0, 8, 9, 0,
	3, 0, 1, 0, 3, 8, 4, 1, 3, 3,
	6, 7, 7, 8, 4, 0, 1, 0, 1, 3,
	3, 1, 1, 2, 1, 1, 0, 2, 0, 2,
	5, 3, 7, 4, 4, 4, 4, 3, 3, 3,
	7, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 2, 0, 2, 2, 1, 3, 2, 0, 4,
	4, 3, 2, 1, 3, 3, 3, 5, 7, 7,
	6, 5, 3, 2, 3, 3, 3, 7, 3, 3,
	3, 3, 4, 7, 5, 2, 4, 4, 4, 4,
	4, 5, 5, 4, 4, 4, 4, 4, 4, 4,
	4, 4, 4, 4, 2, 4, 2, 4, 5, 4,
	4, 4, 4, 4, 3, 3, 3, 5, 2, 3,
	3, 3, 3, 1, 1, 0, 1, 0, 1, 1,
	1, 0, 2, 2, 0, 2, 2, 0, 2, 0,
	1, 1, 2, 1, 3, 1, 2, 1, 1, 5,
	0, 1, 0, 1, 2, 3, 0, 3, 3, 3,
	3, 1, 1, 1, 1, 1, 1, 1, 1, 0,
	1, 1, 3, 3, 2, 2, 3, 1, 3, 2,
	1, 2, 1, 2, 2, 4, 3, 3, 6, 4,
	7, 6, 1, 3, 2, 2, 2, 2, 1, 1,
	1, 3, 2, 1, 1, 1, 0, 1, 1, 0,
	3, 0, 2, 0, 2, 1, 2, 2, 0, 1,
	1, 0, 1, 1, 5, 5, 4, 0, 2, 4,
	4, 0, 1, 0, 1, 2, 3, 4, 1, 1,
	1, 1, 1, 1, 1, 1, 3, 1, 2, 3,
	5, 0, 1, 2, 1, 1, 0, 1, 2, 1,
	3, 1, 1, 1, 4, 3, 1, 3, 4, 3,
	7, 0, 3, 1, 3, 1, 3, 1, 1, 3,
	3, 1, 3, 4, 4, 4, 3, 2, 4, 0,
	1, 0, 2, 0, 1, 0, 1, 2, 1, 1,
	1, 2, 2, 1, 2, 3, 2, 3, 2, 2,
	2, 1, 1, 3, 3, 0, 1, 1, 2, 6,
	5, 6, 6, 0, 2, 3, 3, 0, 2, 3,
	3, 3, 2, 3, 1, 3, 4, 3, 1, 3,
	4, 5, 6, 3, 4, 5, 6, 3, 4, 1,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 1, 1, 1, 1, 1, 3, 1, 1,
	2, 2, 2, 2, 1, 1, 2, 9, 6, 6,
	6, 2, 2, 3, 3, 3, 1, 1, 1, 0,
	3, 1, 1, 1, 2, 1, 2, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
	4, 5, 5, 6, 4, 4, 8, 6, 8, 6,
	8, 5, 4, 2, 2, 1, 2, 2, 2, 8,
	8, 6, 5, 4, 4, 4, 4, 4, 7, 4,
	6, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 0, 2, 0, 2, 3, 4, 4, 4,
	4, 4, 0, 3, 4, 7, 3, 1, 1, 1,
	0, 5, 5, 2, 3, 1, 2, 2, 1, 2,
	1, 2, 2, 1, 2, 2, 1, 1, 0, 1,
	0, 2, 1, 2, 4, 0, 2, 1, 3, 5,
	1, 2, 2, 0, 3, 0, 2, 0, 1, 3,
	1, 3, 2, 0, 1, 1, 0, 1, 2, 4,
	4, 0, 2, 2, 1, 1, 3, 3, 3, 3,
	3, 3, 3, 0, 3, 3, 3, 0, 3, 1,
	1, 0, 4, 0, 1, 1, 0, 3, 1, 3,
	2, 1, 1, 0, 1, 2, 4, 9, 3, 5,
	0, 3, 3, 0, 1, 0, 2, 2, 0, 2,
	2, 2, 0, 2, 1, 2, 3, 3, 0, 2,
	1, 2, 3, 4, 3, 0, 1, 2, 1, 5,
	4, 4, 1, 3, 3, 5, 0, 5, 1, 3,
	1, 2, 3, 1, 1, 3, 3, 1, 3, 3,
	3, 3, 3, 2, 1, 2, 1, 1, 1, 1,
	1, 1, 1, 0, 1, 0, 2, 0, 3, 0,
	1, 0, 1, 1, 5, 0, 1, 0, 1, 2,
	1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
	1, 1, 1, 1, 1, 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,
	0, 1, 1,
}

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

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

var yyTok1 = [...]int{
	1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 131, 3, 3, 3, 157, 149, 3,
	83, 85, 154, 152, 84, 153, 206, 155, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 567,
	139, 138, 140, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 159, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
	3, 3, 3, 3, 127, 3, 160,
}

var yyTok2 = [...]int{
	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, 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, 128, 129, 130, 132, 133, 134, 135, 136,
	137, 141, 142, 143, 144, 145, 146, 147, 148, 150,
	151, 156, 158, 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, 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,
}

var yyTok3 = [...]int{
	57600, 275, 57601, 276, 57602, 277, 57603, 278, 57604, 279,
	57605, 280, 57606, 281, 57607, 282, 57608, 283, 57609, 284,
	57610, 285, 57611, 286, 57612, 287, 57613, 288, 57614, 289,
	57615, 290, 57616, 291, 57617, 292, 57618, 293, 57619, 294,
	57620, 295, 57621, 296, 57622, 297, 57623, 298, 57624, 299,
	57625, 300, 57626, 301, 57627, 302, 57628, 303, 57629, 304,
	57630, 305, 57631, 306, 57632, 307, 57633, 308, 57634, 309,
	57635, 310, 57636, 311, 57637, 312, 57638, 313, 57639, 314,
	57640, 315, 57641, 316, 57642, 317, 57643, 318, 57644, 319,
	57645, 320, 57646, 321, 57647, 322, 57648, 323, 57649, 324,
	57650, 325, 57651, 326, 57652, 327, 57653, 328, 57654, 329,
	57655, 330, 57656, 331, 57657, 332, 57658, 333, 57659, 334,
	57660, 335, 57661, 336, 57662, 337, 57663, 338, 57664, 339,
	57665, 340, 57666, 341, 57667, 342, 57668, 343, 57669, 344,
	57670, 345, 57671, 346, 57672, 347, 57673, 348, 57674, 349,
	57675, 350, 57676, 351, 57677, 352, 57678, 353, 57679, 354,
	57680, 355, 57681, 356, 57682, 357, 57683, 358, 57684, 359,
	57685, 360, 57686, 361, 57687, 362, 57688, 363, 57689, 364,
	57690, 365, 57691, 366, 57692, 367, 57693, 368, 57694, 369,
	57695, 370, 57696, 371, 57697, 372, 57698, 373, 57699, 374,
	57700, 375, 57701, 376, 57702, 377, 57703, 378, 57704, 379,
	57705, 380, 57706, 381, 57707, 382, 57708, 383, 57709, 384,
	57710, 385, 57711, 386, 57712, 387, 57713, 388, 57714, 389,
	57715, 390, 57716, 391, 57717, 392, 57718, 393, 57719, 394,
	57720, 395, 57721, 396, 57722, 397, 57723, 398, 57724, 399,
	57725, 400, 57726, 401, 57727, 402, 57728, 403, 57729, 404,
	57730, 405, 57731, 406, 57732, 407, 57733, 408, 57734, 409,
	57735, 410, 57736, 411, 57737, 412, 57738, 413, 57739, 414,
	57740, 415, 57741, 416, 57742, 417, 57743, 418, 57744, 419,
	57745, 420, 57746, 421, 57747, 422, 57748, 423, 57749, 424,
	57750, 425, 57751, 426, 57752, 427, 57753, 428, 57754, 429,
	57755, 430, 57756, 431, 57757, 432, 57758, 433, 57759, 434,
	57760, 435, 57761, 436, 57762, 437, 57763, 438, 57764, 439,
	57765, 440, 57766, 441, 57767, 442, 57768, 443, 57769, 444,
	57770, 445, 57771, 446, 57772, 447, 57773, 448, 57774, 449,
	57775, 450, 57776, 451, 57777, 452, 57778, 453, 57779, 454,
	57780, 455, 57781, 456, 57782, 457, 57783, 458, 57784, 459,
	57785, 460, 57786, 461, 57787, 462, 57788, 463, 57789, 464,
	57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469,
	57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474,
	57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479,
	57805, 480, 57806, 481, 57807, 482, 57808, 483, 57809, 484,
	57810, 485, 57811, 486, 57812, 487, 57813, 488, 57814, 489,
	57815, 490, 57816, 491, 57817, 492, 57818, 493, 57819, 494,
	57820, 495, 57821, 496, 57822, 497, 57823, 498, 57824, 499,
	57825, 500, 57826, 501, 57827, 502, 57828, 503, 57829, 504,
	57830, 505, 57831, 506, 57832, 507, 57833, 508, 57834, 509,
	57835, 510, 57836, 511, 57837, 512, 57838, 513, 57839, 514,
	57840, 515, 57841, 516, 57842, 517, 57843, 518, 57844, 519,
	57845, 520, 57846, 521, 57847, 522, 57848, 523, 57849, 524,
	57850, 525, 57851, 526, 57852, 527, 57853, 528, 57854, 529,
	57855, 530, 57856, 531, 57857, 532, 57858, 533, 57859, 534,
	57860, 535, 57861, 536, 57862, 537, 57863, 538, 57864, 539,
	57865, 540, 57866, 541, 57867, 542, 57868, 543, 57869, 544,
	57870, 545, 57871, 546, 57872, 547, 57873, 548, 57874, 549,
	57875, 550, 57876, 551, 57877, 552, 57878, 553, 57879, 554,
	57880, 555, 57881, 556, 57882, 557, 57883, 558, 57884, 559,
	57885, 560, 57886, 561, 57887, 562, 57888, 563, 57889, 564,
	57890, 565, 57891, 566, 0,
}

var yyErrorMessages = [...]struct {
	state int
	token int
	msg   string
}{}

//line yaccpar:1

/*	parser for yacc output	*/

func yyIaddr(v any) __yyunsafe__.Pointer {
	type h struct {
		t __yyunsafe__.Pointer
		p __yyunsafe__.Pointer
	}
	return (*h)(__yyunsafe__.Pointer(&v)).p
}

var (
	yyDebug        = 0
	yyErrorVerbose = false
)

type yyLexer interface {
	Lex(lval *yySymType) int
	Error(s string)
}

type yyParser interface {
	Parse(yyLexer) int
	Lookahead() int
}

type yyParserImpl struct {
	lval  yySymType
	stack [yyInitialStackSize]yySymType
	char  int
}

func (p *yyParserImpl) Lookahead() int {
	return p.char
}

func yyNewParser() yyParser {
	return &yyParserImpl{}
}

const yyFlag = -1000

func yyTokname(c int) string {
	if c >= 1 && c-1 < len(yyToknames) {
		if yyToknames[c-1] != "" {
			return yyToknames[c-1]
		}
	}
	return __yyfmt__.Sprintf("tok-%v", c)
}

func yyStatname(s int) string {
	if s >= 0 && s < len(yyStatenames) {
		if yyStatenames[s] != "" {
			return yyStatenames[s]
		}
	}
	return __yyfmt__.Sprintf("state-%v", s)
}

func yyErrorMessage(state, lookAhead int) string {
	const TOKSTART = 4

	if !yyErrorVerbose {
		return "syntax error"
	}

	for _, e := range yyErrorMessages {
		if e.state == state && e.token == lookAhead {
			return "syntax error: " + e.msg
		}
	}

	res := "syntax error: unexpected " + yyTokname(lookAhead)

	// To match Bison, suggest at most four expected tokens.
	expected := make([]int, 0, 4)

	// Look for shiftable tokens.
	base := yyPact[state]
	for tok := TOKSTART; tok-1 < len(yyToknames); tok++ {
		if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok {
			if len(expected) == cap(expected) {
				return res
			}
			expected = append(expected, tok)
		}
	}

	if yyDef[state] == -2 {
		i := 0
		for yyExca[i] != -1 || yyExca[i+1] != state {
			i += 2
		}

		// Look for tokens that we accept or reduce.
		for i += 2; yyExca[i] >= 0; i += 2 {
			tok := yyExca[i]
			if tok < TOKSTART || yyExca[i+1] == 0 {
				continue
			}
			if len(expected) == cap(expected) {
				return res
			}
			expected = append(expected, tok)
		}

		// If the default action is to accept or reduce, give up.
		if yyExca[i+1] != 0 {
			return res
		}
	}

	for i, tok := range expected {
		if i == 0 {
			res += ", expecting "
		} else {
			res += " or "
		}
		res += yyTokname(tok)
	}
	return res
}

func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
	token = 0
	char = lex.Lex(lval)
	if char <= 0 {
		token = yyTok1[0]
		goto out
	}
	if char < len(yyTok1) {
		token = yyTok1[char]
		goto out
	}
	if char >= yyPrivate {
		if char < yyPrivate+len(yyTok2) {
			token = yyTok2[char-yyPrivate]
			goto out
		}
	}
	for i := 0; i < len(yyTok3); i += 2 {
		token = yyTok3[i+0]
		if token == char {
			token = yyTok3[i+1]
			goto out
		}
	}

out:
	if token == 0 {
		token = yyTok2[1] /* unknown char */
	}
	if yyDebug >= 3 {
		__yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
	}
	return char, token
}

func yyParse(yylex yyLexer) int {
	return yyNewParser().Parse(yylex)
}

func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
	var yyn int
	var yyVAL yySymType
	var yyDollar []yySymType
	_ = yyDollar // silence set and not used
	yyS := yyrcvr.stack[:]

	Nerrs := 0   /* number of errors */
	Errflag := 0 /* error recovery flag */
	yystate := 0
	yyrcvr.char = -1
	yytoken := -1 // yyrcvr.char translated into internal numbering
	defer func() {
		// Make sure we report no lookahead when not parsing.
		yystate = -1
		yyrcvr.char = -1
		yytoken = -1
	}()
	yyp := -1
	goto yystack

ret0:
	return 0

ret1:
	return 1

yystack:
	/* put a state and value onto the stack */
	if yyDebug >= 4 {
		__yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
	}

	yyp++
	if yyp >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyS[yyp] = yyVAL
	yyS[yyp].yys = yystate

yynewstate:
	yyn = yyPact[yystate]
	if yyn <= yyFlag {
		goto yydefault /* simple state */
	}
	if yyrcvr.char < 0 {
		yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
	}
	yyn += yytoken
	if yyn < 0 || yyn >= yyLast {
		goto yydefault
	}
	yyn = yyAct[yyn]
	if yyChk[yyn] == yytoken { /* valid shift */
		yyrcvr.char = -1
		yytoken = -1
		yyVAL = yyrcvr.lval
		yystate = yyn
		if Errflag > 0 {
			Errflag--
		}
		goto yystack
	}

yydefault:
	/* default state action */
	yyn = yyDef[yystate]
	if yyn == -2 {
		if yyrcvr.char < 0 {
			yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
		}

		/* look through exception table */
		xi := 0
		for {
			if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate {
				break
			}
			xi += 2
		}
		for xi += 2; ; xi += 2 {
			yyn = yyExca[xi+0]
			if yyn < 0 || yyn == yytoken {
				break
			}
		}
		yyn = yyExca[xi+1]
		if yyn < 0 {
			goto ret0
		}
	}
	if yyn == 0 {
		/* error ... attempt to resume parsing */
		switch Errflag {
		case 0: /* brand new error */
			yylex.Error(yyErrorMessage(yystate, yytoken))
			Nerrs++
			if yyDebug >= 1 {
				__yyfmt__.Printf("%s", yyStatname(yystate))
				__yyfmt__.Printf(" saw %s\n", yyTokname(yytoken))
			}
			fallthrough

		case 1, 2: /* incompletely recovered error ... try again */
			Errflag = 3

			/* find a state where "error" is a legal shift action */
			for yyp >= 0 {
				yyn = yyPact[yyS[yyp].yys] + yyErrCode
				if yyn >= 0 && yyn < yyLast {
					yystate = yyAct[yyn] /* simulate a shift of "error" */
					if yyChk[yystate] == yyErrCode {
						goto yystack
					}
				}

				/* the current p has no shift on "error", pop stack */
				if yyDebug >= 2 {
					__yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys)
				}
				yyp--
			}
			/* there is no state on the stack with an error shift ... abort */
			goto ret1

		case 3: /* no shift yet; clobber input char */
			if yyDebug >= 2 {
				__yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken))
			}
			if yytoken == yyEofCode {
				goto ret1
			}
			yyrcvr.char = -1
			yytoken = -1
			goto yynewstate /* try again in the same state */
		}
	}

	/* reduction by production yyn */
	if yyDebug >= 2 {
		__yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate))
	}

	yynt := yyn
	yypt := yyp
	_ = yypt // guard against "declared and not used"

	yyp -= yyR2[yyn]
	// yyp is now the index of $0. Perform the default action. Iff the
	// reduced production is ε, $1 is possibly out of range.
	if yyp+1 >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyVAL = yyS[yyp+1]

	/* consult goto table to find next state */
	yyn = yyR1[yyn]
	yyg := yyPgo[yyn]
	yyj := yyg + yyS[yyp].yys + 1

	if yyj >= yyLast {
		yystate = yyAct[yyg]
	} else {
		yystate = yyAct[yyj]
		if yyChk[yystate] != -yyn {
			yystate = yyAct[yyg]
		}
	}
	// dummy call; replaced with literal code
	switch yynt {

	case 1:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:488
		{
			setParseTree(yylex, yyDollar[1].statementUnion())
		}
	case 2:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:493
		{
		}
	case 3:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:494
		{
		}
	case 4:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:498
		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 37:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:534
		{
			setParseTree(yylex, nil)
		}
	case 38:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:540
		{
			yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt)
		}
	case 39:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:544
		{
			yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt)
		}
	case 40:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:548
		{
			yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt)
		}
	case 41:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:553
		{
			yyVAL.colIdent = NewColIdentWithAt("", NoAt)
		}
	case 42:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:557
		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 43:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:563
		{
			yyLOCAL = &OtherAdmin{}
		}
		yyVAL.union = yyLOCAL
	case 44:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:569
		{
			yyLOCAL = &Load{}
		}
		yyVAL.union = yyLOCAL
	case 45:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *With
//line sql.y:575
		{
			yyLOCAL = &With{ctes: yyDollar[2].ctesUnion(), Recursive: false}
		}
		yyVAL.union = yyLOCAL
	case 46:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *With
//line sql.y:579
		{
			yyLOCAL = &With{ctes: yyDollar[3].ctesUnion(), Recursive: true}
		}
		yyVAL.union = yyLOCAL
	case 47:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *With
//line sql.y:584
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 48:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *With
//line sql.y:588
		{
			yyLOCAL = yyDollar[1].withUnion()
		}
		yyVAL.union = yyLOCAL
	case 49:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:594
		{
			yySLICE := (*[]*CommonTableExpr)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].cteUnion())
		}
	case 50:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*CommonTableExpr
//line sql.y:598
		{
			yyLOCAL = []*CommonTableExpr{yyDollar[1].cteUnion()}
		}
		yyVAL.union = yyLOCAL
	case 51:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *CommonTableExpr
//line sql.y:604
		{
			yyLOCAL = &CommonTableExpr{TableID: yyDollar[1].tableIdent, Columns: yyDollar[2].columnsUnion(), Subquery: yyDollar[4].subqueryUnion()}
		}
		yyVAL.union = yyLOCAL
	case 52:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:610
		{
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 53:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:614
		{
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 54:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:618
		{
			setLockInSelect(yyDollar[2].selStmtUnion(), yyDollar[3].lockUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 55:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:641
		{
			yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion())
			yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 56:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:647
		{
			yyDollar[1].selStmtUnion().SetLimit(yyDollar[2].limitUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 57:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:652
		{
			yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion())
			yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 58:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:658
		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
			yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion())
			yyDollar[2].selStmtUnion().SetLimit(yyDollar[4].limitUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 59:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:665
		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
			yyDollar[2].selStmtUnion().SetLimit(yyDollar[3].limitUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 60:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:671
		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
			yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion())
			yyDollar[2].selStmtUnion().SetLimit(yyDollar[4].limitUnion())
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 61:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:678
		{
			yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion())
		}
	case 62:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:682
		{
			yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, nil, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/)
		}
		yyVAL.union = yyLOCAL
	case 63:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:688
		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 64:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:692
		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 65:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:696
		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 66:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:700
		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 67:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:704
		{
			yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 68:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:710
		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 69:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:714
		{
			setLockInSelect(yyDollar[1].selStmtUnion(), yyDollar[2].lockUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 70:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:719
		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 71:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:723
		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 72:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:729
		{
			yyLOCAL = yyDollar[2].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 73:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:733
		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 74:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:738
		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion())
			yyDollar[1].selStmtUnion().SetLock(yyDollar[3].lockUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 75:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:744
		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[3].selectIntoUnion())
			yyDollar[1].selStmtUnion().SetLock(yyDollar[2].lockUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 76:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:750
		{
			yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion())
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 77:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:757
		{
			yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName}
		}
		yyVAL.union = yyLOCAL
	case 78:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:763
		{
			yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 79:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:771
		{
			yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].selectIntoUnion() /*into*/, yyDollar[6].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[7].exprUnion()), GroupBy(yyDollar[8].exprsUnion()), NewWhere(HavingClause, yyDollar[9].exprUnion()))
		}
		yyVAL.union = yyLOCAL
	case 80:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL SelectStatement
//line sql.y:775
		{
			yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, nil, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion()))
		}
		yyVAL.union = yyLOCAL
	case 81:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:783
		{
			// insert_data returns a *Insert pre-filled with Columns & Values
			ins := yyDollar[6].insUnion()
			ins.Action = yyDollar[1].insertActionUnion()
			ins.Comments = yyDollar[2].strs
			ins.Ignore = yyDollar[3].ignoreUnion()
			ins.Table = yyDollar[4].tableName
			ins.Partitions = yyDollar[5].partitionsUnion()
			ins.OnDup = OnDup(yyDollar[7].updateExprsUnion())
			yyLOCAL = ins
		}
		yyVAL.union = yyLOCAL
	case 82:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement
//line sql.y:795
		{
			cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion()))
			vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion()))
			for _, updateList := range yyDollar[7].updateExprsUnion() {
				cols = append(cols, updateList.Name.Name)
				vals = append(vals, updateList.Expr)
			}
			yyLOCAL = &Insert{Action: yyDollar[1].insertActionUnion(), Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitionsUnion(), Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprsUnion())}
		}
		yyVAL.union = yyLOCAL
	case 83:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL InsertAction
//line sql.y:807
		{
			yyLOCAL = InsertAct
		}
		yyVAL.union = yyLOCAL
	case 84:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL InsertAction
//line sql.y:811
		{
			yyLOCAL = ReplaceAct
		}
		yyVAL.union = yyLOCAL
	case 85:
		yyDollar = yyS[yypt-10 : yypt+1]
		var yyLOCAL Statement
//line sql.y:817
		{
			yyLOCAL = &Update{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), TableExprs: yyDollar[5].tableExprsUnion(), Exprs: yyDollar[7].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion()), OrderBy: yyDollar[9].orderByUnion(), Limit: yyDollar[10].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 86:
		yyDollar = yyS[yypt-11 : yypt+1]
		var yyLOCAL Statement
//line sql.y:823
		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[6].tableName, As: yyDollar[7].tableIdent}}, Partitions: yyDollar[8].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion()), OrderBy: yyDollar[10].orderByUnion(), Limit: yyDollar[11].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 87:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL Statement
//line sql.y:827
		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[6].tableNamesUnion(), TableExprs: yyDollar[8].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion())}
		}
		yyVAL.union = yyLOCAL
	case 88:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement
//line sql.y:831
		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())}
		}
		yyVAL.union = yyLOCAL
	case 89:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement
//line sql.y:835
		{
			yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())}
		}
		yyVAL.union = yyLOCAL
	case 90:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:840
		{
		}
	case 91:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:841
		{
		}
	case 92:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableNames
//line sql.y:845
		{
			yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()}
		}
		yyVAL.union = yyLOCAL
	case 93:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:849
		{
			yySLICE := (*TableNames)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName())
		}
	case 94:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableNames
//line sql.y:855
		{
			yyLOCAL = TableNames{yyDollar[1].tableName}
		}
		yyVAL.union = yyLOCAL
	case 95:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:859
		{
			yySLICE := (*TableNames)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableName)
		}
	case 96:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableNames
//line sql.y:865
		{
			yyLOCAL = TableNames{yyDollar[1].tableName}
		}
		yyVAL.union = yyLOCAL
	case 97:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:869
		{
			yySLICE := (*TableNames)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableName)
		}
	case 98:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Partitions
//line sql.y:874
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 99:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Partitions
//line sql.y:878
		{
			yyLOCAL = yyDollar[3].partitionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 100:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:884
		{
			yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 101:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:890
		{
			yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 102:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:894
		{
			yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope}
		}
		yyVAL.union = yyLOCAL
	case 103:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []Characteristic
//line sql.y:900
		{
			yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()}
		}
		yyVAL.union = yyLOCAL
	case 104:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:904
		{
			yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion())
		}
	case 105:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Characteristic
//line sql.y:910
		{
			yyLOCAL = yyDollar[3].isolationLevelUnion()
		}
		yyVAL.union = yyLOCAL
	case 106:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Characteristic
//line sql.y:914
		{
			yyLOCAL = ReadWrite
		}
		yyVAL.union = yyLOCAL
	case 107:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Characteristic
//line sql.y:918
		{
			yyLOCAL = ReadOnly
		}
		yyVAL.union = yyLOCAL
	case 108:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsolationLevel
//line sql.y:924
		{
			yyLOCAL = RepeatableRead
		}
		yyVAL.union = yyLOCAL
	case 109:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsolationLevel
//line sql.y:928
		{
			yyLOCAL = ReadCommitted
		}
		yyVAL.union = yyLOCAL
	case 110:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsolationLevel
//line sql.y:932
		{
			yyLOCAL = ReadUncommitted
		}
		yyVAL.union = yyLOCAL
	case 111:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IsolationLevel
//line sql.y:936
		{
			yyLOCAL = Serializable
		}
		yyVAL.union = yyLOCAL
	case 112:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Scope
//line sql.y:942
		{
			yyLOCAL = SessionScope
		}
		yyVAL.union = yyLOCAL
	case 113:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Scope
//line sql.y:946
		{
			yyLOCAL = GlobalScope
		}
		yyVAL.union = yyLOCAL
	case 114:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:952
		{
			yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion()
			yyDollar[1].createTableUnion().FullyParsed = true
			yyLOCAL = yyDollar[1].createTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 115:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:958
		{
			// Create table [name] like [name]
			yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion()
			yyDollar[1].createTableUnion().FullyParsed = true
			yyLOCAL = yyDollar[1].createTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 116:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:965
		{
			indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition
			indexDef.Columns = yyDollar[3].indexColumnsUnion()
			indexDef.Options = append(indexDef.Options, yyDollar[5].indexOptionsUnion()...)
			yyDollar[1].alterTableUnion().AlterOptions = append(yyDollar[1].alterTableUnion().AlterOptions, yyDollar[6].alterOptionsUnion()...)
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 117:
		yyDollar = yyS[yypt-12 : yypt+1]
		var yyLOCAL Statement
//line sql.y:974
		{
			yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), Comments: Comments(yyDollar[2].strs), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].definerUnion(), Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str}
		}
		yyVAL.union = yyLOCAL
	case 118:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:978
		{
			yyDollar[1].createDatabaseUnion().FullyParsed = true
			yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion()
			yyLOCAL = yyDollar[1].createDatabaseUnion()
		}
		yyVAL.union = yyLOCAL
	case 119:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:985
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 120:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:989
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 121:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:994
		{
			yyVAL.colIdent = NewColIdent("")
		}
	case 122:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:998
		{
			yyVAL.colIdent = yyDollar[2].colIdent
		}
	case 123:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1004
		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 124:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []VindexParam
//line sql.y:1009
		{
			var v []VindexParam
			yyLOCAL = v
		}
		yyVAL.union = yyLOCAL
	case 125:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL []VindexParam
//line sql.y:1014
		{
			yyLOCAL = yyDollar[2].vindexParamsUnion()
		}
		yyVAL.union = yyLOCAL
	case 126:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []VindexParam
//line sql.y:1020
		{
			yyLOCAL = make([]VindexParam, 0, 4)
			yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam)
		}
		yyVAL.union = yyLOCAL
	case 127:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1025
		{
			yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].vindexParam)
		}
	case 128:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1031
		{
			yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str}
		}
	case 129:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *CreateTable
//line sql.y:1037
		{
			yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 130:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *AlterTable
//line sql.y:1044
		{
			yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 131:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *AlterTable
//line sql.y:1051
		{
			yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 132:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *AlterTable
//line sql.y:1056
		{
			yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 133:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *AlterTable
//line sql.y:1061
		{
			yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 134:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *AlterTable
//line sql.y:1066
		{
			yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 135:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *CreateDatabase
//line sql.y:1073
		{
			yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 136:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *AlterDatabase
//line sql.y:1080
		{
			yyLOCAL = &AlterDatabase{}
			setDDL(yylex, yyLOCAL)
		}
		yyVAL.union = yyLOCAL
	case 139:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *TableSpec
//line sql.y:1091
		{
			yyLOCAL = yyDollar[2].tableSpecUnion()
			yyLOCAL.Options = yyDollar[4].tableOptionsUnion()
			yyLOCAL.PartitionOption = yyDollar[5].partitionOptionUnion()
		}
		yyVAL.union = yyLOCAL
	case 140:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []CollateAndCharset
//line sql.y:1098
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 141:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []CollateAndCharset
//line sql.y:1102
		{
			yyLOCAL = yyDollar[1].collateAndCharsetsUnion()
		}
		yyVAL.union = yyLOCAL
	case 142:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []CollateAndCharset
//line sql.y:1108
		{
			yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset}
		}
		yyVAL.union = yyLOCAL
	case 143:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []CollateAndCharset
//line sql.y:1112
		{
			yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset}
		}
		yyVAL.union = yyLOCAL
	case 144:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1116
		{
			yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset)
		}
	case 145:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1120
		{
			yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset)
		}
	case 146:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:1126
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 147:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:1130
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 148:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1136
		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 149:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1140
		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 150:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1146
		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 151:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1150
		{
			yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()}
		}
	case 152:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *OptLike
//line sql.y:1157
		{
			yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName}
		}
		yyVAL.union = yyLOCAL
	case 153:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *OptLike
//line sql.y:1161
		{
			yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName}
		}
		yyVAL.union = yyLOCAL
	case 154:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*ColumnDefinition
//line sql.y:1167
		{
			yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 155:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1171
		{
			yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion())
		}
	case 156:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *TableSpec
//line sql.y:1177
		{
			yyLOCAL = &TableSpec{}
			yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion())
		}
		yyVAL.union = yyLOCAL
	case 157:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *TableSpec
//line sql.y:1182
		{
			yyLOCAL = &TableSpec{}
			yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion())
		}
		yyVAL.union = yyLOCAL
	case 158:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1187
		{
			yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion())
		}
	case 159:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1191
		{
			yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion())
			yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion())
		}
	case 160:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1196
		{
			yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion())
		}
	case 161:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1200
		{
			yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion())
		}
	case 162:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1204
		{
			yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion())
		}
	case 163:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ColumnDefinition
//line sql.y:1215
		{
			yyDollar[2].columnType.Options = yyDollar[4].columnTypeOptionsUnion()
			if yyDollar[2].columnType.Options.Collate == "" {
				yyDollar[2].columnType.Options.Collate = yyDollar[3].str
			}
			yyDollar[2].columnType.Options.Reference = yyDollar[5].referenceDefinitionUnion()
			yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType}
		}
		yyVAL.union = yyLOCAL
	case 164:
		yyDollar = yyS[yypt-10 : yypt+1]
		var yyLOCAL *ColumnDefinition
//line sql.y:1224
		{
			yyDollar[2].columnType.Options = yyDollar[9].columnTypeOptionsUnion()
			yyDollar[2].columnType.Options.As = yyDollar[7].exprUnion()
			yyDollar[2].columnType.Options.Reference = yyDollar[10].referenceDefinitionUnion()
			yyDollar[2].columnType.Options.Collate = yyDollar[3].str
			yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType}
		}
		yyVAL.union = yyLOCAL
	case 165:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1233
		{
			yyVAL.str = ""
		}
	case 166:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1237
		{
			yyVAL.str = ""
		}
	case 167:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1246
		{
			yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil}
		}
		yyVAL.union = yyLOCAL
	case 168:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1250
		{
			val := true
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 169:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1256
		{
			val := false
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 170:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1262
		{
			yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[4].exprUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 171:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1267
		{
			yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 172:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1272
		{
			yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 173:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1277
		{
			yyDollar[1].columnTypeOptionsUnion().Autoincrement = true
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 174:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1282
		{
			yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str)
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 175:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1287
		{
			yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 176:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1292
		{
			yyDollar[1].columnTypeOptionsUnion().Collate = encodeSQLString(yyDollar[3].str)
		}
	case 177:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1296
		{
			yyDollar[1].columnTypeOptionsUnion().Collate = string(yyDollar[3].colIdent.String())
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 178:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnStorage
//line sql.y:1303
		{
			yyLOCAL = VirtualStorage
		}
		yyVAL.union = yyLOCAL
	case 179:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnStorage
//line sql.y:1307
		{
			yyLOCAL = StoredStorage
		}
		yyVAL.union = yyLOCAL
	case 180:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1312
		{
			yyLOCAL = &ColumnTypeOptions{}
		}
		yyVAL.union = yyLOCAL
	case 181:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1316
		{
			yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 182:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1321
		{
			val := true
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 183:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1327
		{
			val := false
			yyDollar[1].columnTypeOptionsUnion().Null = &val
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 184:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1333
		{
			yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str)
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 185:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColumnTypeOptions
//line sql.y:1338
		{
			yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion()
			yyLOCAL = yyDollar[1].columnTypeOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 186:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1345
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 188:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1352
		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 189:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1356
		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 190:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1360
		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 191:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1364
		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 194:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1375
		{
			yyLOCAL = &NullVal{}
		}
		yyVAL.union = yyLOCAL
	case 196:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1382
		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 197:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1386
		{
			yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 198:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1392
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 199:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1396
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 200:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1400
		{
			yyLOCAL = yyDollar[1].boolValUnion()
		}
		yyVAL.union = yyLOCAL
	case 201:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1404
		{
			yyLOCAL = NewHexLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 202:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1408
		{
			yyLOCAL = NewHexNumLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 203:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1412
		{
			yyLOCAL = NewBitLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 204:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1416
		{
			yyLOCAL = NewArgument(yyDollar[1].str[1:])
			bindVariable(yylex, yyDollar[1].str[1:])
		}
		yyVAL.union = yyLOCAL
	case 205:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1421
		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewBitLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 206:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1425
		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexNumLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 207:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1429
		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewHexLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 208:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1433
		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: yyDollar[2].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 209:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1437
		{
			bindVariable(yylex, yyDollar[2].str[1:])
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewArgument(yyDollar[2].str[1:])}
		}
		yyVAL.union = yyLOCAL
	case 210:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1444
		{
			yyVAL.str = Armscii8Str
		}
	case 211:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1448
		{
			yyVAL.str = ASCIIStr
		}
	case 212:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1452
		{
			yyVAL.str = Big5Str
		}
	case 213:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1456
		{
			yyVAL.str = UBinaryStr
		}
	case 214:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1460
		{
			yyVAL.str = Cp1250Str
		}
	case 215:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1464
		{
			yyVAL.str = Cp1251Str
		}
	case 216:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1468
		{
			yyVAL.str = Cp1256Str
		}
	case 217:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1472
		{
			yyVAL.str = Cp1257Str
		}
	case 218:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1476
		{
			yyVAL.str = Cp850Str
		}
	case 219:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1480
		{
			yyVAL.str = Cp852Str
		}
	case 220:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1484
		{
			yyVAL.str = Cp866Str
		}
	case 221:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1488
		{
			yyVAL.str = Cp932Str
		}
	case 222:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1492
		{
			yyVAL.str = Dec8Str
		}
	case 223:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1496
		{
			yyVAL.str = EucjpmsStr
		}
	case 224:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1500
		{
			yyVAL.str = EuckrStr
		}
	case 225:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1504
		{
			yyVAL.str = Gb18030Str
		}
	case 226:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1508
		{
			yyVAL.str = Gb2312Str
		}
	case 227:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1512
		{
			yyVAL.str = GbkStr
		}
	case 228:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1516
		{
			yyVAL.str = Geostd8Str
		}
	case 229:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1520
		{
			yyVAL.str = GreekStr
		}
	case 230:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1524
		{
			yyVAL.str = HebrewStr
		}
	case 231:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1528
		{
			yyVAL.str = Hp8Str
		}
	case 232:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1532
		{
			yyVAL.str = Keybcs2Str
		}
	case 233:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1536
		{
			yyVAL.str = Koi8rStr
		}
	case 234:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1540
		{
			yyVAL.str = Koi8uStr
		}
	case 235:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1544
		{
			yyVAL.str = Latin1Str
		}
	case 236:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1548
		{
			yyVAL.str = Latin2Str
		}
	case 237:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1552
		{
			yyVAL.str = Latin5Str
		}
	case 238:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1556
		{
			yyVAL.str = Latin7Str
		}
	case 239:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1560
		{
			yyVAL.str = MacceStr
		}
	case 240:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1564
		{
			yyVAL.str = MacromanStr
		}
	case 241:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1568
		{
			yyVAL.str = SjisStr
		}
	case 242:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1572
		{
			yyVAL.str = Swe7Str
		}
	case 243:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1576
		{
			yyVAL.str = Tis620Str
		}
	case 244:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1580
		{
			yyVAL.str = Ucs2Str
		}
	case 245:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1584
		{
			yyVAL.str = UjisStr
		}
	case 246:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1588
		{
			yyVAL.str = Utf16Str
		}
	case 247:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1592
		{
			yyVAL.str = Utf16leStr
		}
	case 248:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1596
		{
			yyVAL.str = Utf32Str
		}
	case 249:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1600
		{
			yyVAL.str = Utf8Str
		}
	case 250:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1604
		{
			yyVAL.str = Utf8mb4Str
		}
	case 253:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1614
		{
			yyLOCAL = NewIntLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 254:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1618
		{
			yyLOCAL = NewFloatLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 255:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1622
		{
			yyLOCAL = NewDecimalLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 256:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1629
		{
			yyLOCAL = NewStrLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 257:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1633
		{
			yyLOCAL = &UnaryExpr{Operator: NStringOp, Expr: NewStrLiteral(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 258:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:1637
		{
			yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewStrLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 259:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ColumnKeyOption
//line sql.y:1643
		{
			yyLOCAL = colKeyPrimary
		}
		yyVAL.union = yyLOCAL
	case 260:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnKeyOption
//line sql.y:1647
		{
			yyLOCAL = colKeyUnique
		}
		yyVAL.union = yyLOCAL
	case 261:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ColumnKeyOption
//line sql.y:1651
		{
			yyLOCAL = colKeyUniqueKey
		}
		yyVAL.union = yyLOCAL
	case 262:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColumnKeyOption
//line sql.y:1655
		{
			yyLOCAL = colKey
		}
		yyVAL.union = yyLOCAL
	case 263:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1661
		{
			yyVAL.columnType = yyDollar[1].columnType
			yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion()
			yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion()
		}
	case 267:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1672
		{
			yyVAL.columnType = yyDollar[1].columnType
			yyVAL.columnType.Length = yyDollar[2].literalUnion()
		}
	case 268:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1677
		{
			yyVAL.columnType = yyDollar[1].columnType
		}
	case 269:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1683
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 270:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1687
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 271:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1691
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 272:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1695
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 273:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1699
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 274:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1703
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 275:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1707
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 276:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1711
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 277:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1715
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 278:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1721
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 279:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1727
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 280:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1733
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 281:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1739
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 282:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1745
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
			yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
			yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
		}
	case 283:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1753
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 284:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1757
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 285:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1761
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 286:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1765
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 287:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1769
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 288:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1775
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str}
		}
	case 289:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1779
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str}
		}
	case 290:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1783
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 291:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1787
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
	case 292:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1791
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 293:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1795
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 294:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1799
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 295:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1803
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str}
		}
	case 296:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1807
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 297:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1811
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 298:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1815
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 299:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1819
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 300:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1823
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 301:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1827
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str}
		}
	case 302:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1832
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str}
		}
	case 303:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1838
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 304:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1842
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 305:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1846
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 306:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1850
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 307:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1854
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 308:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1858
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 309:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1862
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 310:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1866
		{
			yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)}
		}
	case 311:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1872
		{
			yyVAL.strs = make([]string, 0, 4)
			yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str))
		}
	case 312:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1877
		{
			yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str))
		}
	case 313:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Literal
//line sql.y:1882
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 314:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Literal
//line sql.y:1886
		{
			yyLOCAL = NewIntLiteral(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 315:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1891
		{
			yyVAL.LengthScaleOption = LengthScaleOption{}
		}
	case 316:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1895
		{
			yyVAL.LengthScaleOption = LengthScaleOption{
				Length: NewIntLiteral(yyDollar[2].str),
				Scale:  NewIntLiteral(yyDollar[4].str),
			}
		}
	case 317:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1903
		{
			yyVAL.LengthScaleOption = LengthScaleOption{}
		}
	case 318:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1907
		{
			yyVAL.LengthScaleOption = LengthScaleOption{
				Length: NewIntLiteral(yyDollar[2].str),
			}
		}
	case 319:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1913
		{
			yyVAL.LengthScaleOption = LengthScaleOption{
				Length: NewIntLiteral(yyDollar[2].str),
				Scale:  NewIntLiteral(yyDollar[4].str),
			}
		}
	case 320:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:1921
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 321:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:1925
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 322:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:1929
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 323:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:1934
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 324:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:1938
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 325:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1943
		{
			yyVAL.str = ""
		}
	case 326:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1947
		{
			yyVAL.str = string(yyDollar[2].colIdent.String())
		}
	case 327:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1951
		{
			yyVAL.str = encodeSQLString(yyDollar[2].str)
		}
	case 328:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1955
		{
			yyVAL.str = string(yyDollar[2].str)
		}
	case 329:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1959
		{
			// ASCII: Shorthand for CHARACTER SET latin1.
			yyVAL.str = "latin1"
		}
	case 330:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1964
		{
			// UNICODE: Shorthand for CHARACTER SET ucs2.
			yyVAL.str = "ucs2"
		}
	case 331:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1970
		{
			yyVAL.str = ""
		}
	case 332:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1974
		{
			yyVAL.str = string(yyDollar[2].colIdent.String())
		}
	case 333:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1978
		{
			yyVAL.str = encodeSQLString(yyDollar[2].str)
		}
	case 334:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *IndexDefinition
//line sql.y:1985
		{
			yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 335:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []*IndexOption
//line sql.y:1990
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 336:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexOption
//line sql.y:1994
		{
			yyLOCAL = yyDollar[1].indexOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 337:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexOption
//line sql.y:2000
		{
			yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 338:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2004
		{
			yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion())
		}
	case 339:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *IndexOption
//line sql.y:2010
		{
			yyLOCAL = yyDollar[1].indexOptionUnion()
		}
		yyVAL.union = yyLOCAL
	case 340:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexOption
//line sql.y:2014
		{
			// should not be string
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 341:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *IndexOption
//line sql.y:2019
		{
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 342:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexOption
//line sql.y:2023
		{
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()}
		}
		yyVAL.union = yyLOCAL
	case 343:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2029
		{
			yyVAL.str = ""
		}
	case 344:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2033
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 345:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *IndexInfo
//line sql.y:2039
		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true}
		}
		yyVAL.union = yyLOCAL
	case 346:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexInfo
//line sql.y:2043
		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false}
		}
		yyVAL.union = yyLOCAL
	case 347:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexInfo
//line sql.y:2047
		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false}
		}
		yyVAL.union = yyLOCAL
	case 348:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *IndexInfo
//line sql.y:2051
		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true}
		}
		yyVAL.union = yyLOCAL
	case 349:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *IndexInfo
//line sql.y:2055
		{
			yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false}
		}
		yyVAL.union = yyLOCAL
	case 350:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2060
		{
			yyVAL.str = ""
		}
	case 351:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2064
		{
			yyVAL.str = yyDollar[2].str
		}
	case 352:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2070
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 353:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2074
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 354:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2078
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 355:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2085
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 356:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2089
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 357:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2094
		{
			yyVAL.str = "key"
		}
	case 358:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2098
		{
			yyVAL.str = yyDollar[1].str
		}
	case 359:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2104
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 360:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2108
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 361:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2113
		{
			yyVAL.str = ""
		}
	case 362:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2117
		{
			yyVAL.str = string(yyDollar[1].colIdent.String())
		}
	case 363:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexColumn
//line sql.y:2123
		{
			yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()}
		}
		yyVAL.union = yyLOCAL
	case 364:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2127
		{
			yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion())
		}
	case 365:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *IndexColumn
//line sql.y:2133
		{
			yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 366:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ConstraintDefinition
//line sql.y:2139
		{
			yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 367:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConstraintDefinition
//line sql.y:2143
		{
			yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 368:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ConstraintDefinition
//line sql.y:2149
		{
			yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 369:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConstraintDefinition
//line sql.y:2153
		{
			yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()}
		}
		yyVAL.union = yyLOCAL
	case 370:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL ConstraintInfo
//line sql.y:2159
		{
			yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 371:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ReferenceDefinition
//line sql.y:2165
		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 372:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *ReferenceDefinition
//line sql.y:2169
		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 373:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *ReferenceDefinition
//line sql.y:2173
		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 374:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *ReferenceDefinition
//line sql.y:2177
		{
			yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 375:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ReferenceDefinition
//line sql.y:2182
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 376:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ReferenceDefinition
//line sql.y:2186
		{
			yyLOCAL = yyDollar[1].referenceDefinitionUnion()
		}
		yyVAL.union = yyLOCAL
	case 377:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL ConstraintInfo
//line sql.y:2192
		{
			yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 378:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2198
		{
			yyLOCAL = yyDollar[3].ReferenceActionUnion()
		}
		yyVAL.union = yyLOCAL
	case 379:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2204
		{
			yyLOCAL = yyDollar[3].ReferenceActionUnion()
		}
		yyVAL.union = yyLOCAL
	case 380:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2210
		{
			yyLOCAL = Restrict
		}
		yyVAL.union = yyLOCAL
	case 381:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2214
		{
			yyLOCAL = Cascade
		}
		yyVAL.union = yyLOCAL
	case 382:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2218
		{
			yyLOCAL = NoAction
		}
		yyVAL.union = yyLOCAL
	case 383:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2222
		{
			yyLOCAL = SetDefault
		}
		yyVAL.union = yyLOCAL
	case 384:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ReferenceAction
//line sql.y:2226
		{
			yyLOCAL = SetNull
		}
		yyVAL.union = yyLOCAL
	case 385:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2231
		{
			yyVAL.str = ""
		}
	case 386:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2235
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 387:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2239
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 388:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:2244
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 389:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:2248
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 390:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:2252
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 391:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL TableOptions
//line sql.y:2257
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 392:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableOptions
//line sql.y:2261
		{
			yyLOCAL = yyDollar[1].tableOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 393:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableOptions
//line sql.y:2267
		{
			yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 394:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2271
		{
			yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion())
		}
	case 395:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2275
		{
			yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion())
		}
	case 396:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableOptions
//line sql.y:2281
		{
			yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 397:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2285
		{
			yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion())
		}
	case 398:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2291
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 399:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2295
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 400:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2299
		{
			yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str}
		}
		yyVAL.union = yyLOCAL
	case 401:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2303
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str}
		}
		yyVAL.union = yyLOCAL
	case 402:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2307
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 403:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2311
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 404:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2315
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 405:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2319
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 406:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2323
		{
			yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 407:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2327
		{
			yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 408:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2331
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 409:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2335
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 410:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2339
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].tableIdent.String()}
		}
		yyVAL.union = yyLOCAL
	case 411:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2343
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 412:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2347
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 413:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2351
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 414:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2355
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 415:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2359
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 416:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2363
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 417:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2367
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 418:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2371
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 419:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2375
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 420:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2379
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 421:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2383
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 422:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2387
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 423:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2391
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 424:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2395
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 425:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *TableOption
//line sql.y:2399
		{
			yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 426:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2404
		{
			yyVAL.str = ""
		}
	case 427:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2408
		{
			yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 428:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2412
		{
			yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 438:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2431
		{
			yyVAL.str = yyDollar[1].colIdent.String()
		}
	case 439:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2435
		{
			yyVAL.str = encodeSQLString(yyDollar[1].str)
		}
	case 440:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2439
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 441:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2444
		{
			yyVAL.str = ""
		}
	case 443:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:2450
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 444:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:2454
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 445:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ColName
//line sql.y:2459
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 446:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ColName
//line sql.y:2463
		{
			yyLOCAL = yyDollar[2].colNameUnion()
		}
		yyVAL.union = yyLOCAL
	case 447:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:2468
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 448:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:2472
		{
			yyLOCAL = yyDollar[1].alterOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 449:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2476
		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()})
		}
	case 450:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:2480
		{
			yyLOCAL = yyDollar[1].alterOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 451:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2484
		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...)
		}
	case 452:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:2488
		{
			yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()})
		}
		yyVAL.union = yyLOCAL
	case 453:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:2494
		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 454:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2498
		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
		}
	case 455:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2502
		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
		}
	case 456:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2508
		{
			yyLOCAL = yyDollar[1].tableOptionsUnion()
		}
		yyVAL.union = yyLOCAL
	case 457:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2512
		{
			yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 458:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2516
		{
			yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 459:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2520
		{
			yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 460:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2524
		{
			yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 461:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2528
		{
			yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 462:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2532
		{
			yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true}
		}
		yyVAL.union = yyLOCAL
	case 463:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2536
		{
			yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 464:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2540
		{
			yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 465:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2544
		{
			yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 466:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2548
		{
			yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 467:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2552
		{
			yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str}
		}
		yyVAL.union = yyLOCAL
	case 468:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2556
		{
			yyLOCAL = &KeyState{Enable: false}
		}
		yyVAL.union = yyLOCAL
	case 469:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2560
		{
			yyLOCAL = &KeyState{Enable: true}
		}
		yyVAL.union = yyLOCAL
	case 470:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2564
		{
			yyLOCAL = &TablespaceOperation{Import: false}
		}
		yyVAL.union = yyLOCAL
	case 471:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2568
		{
			yyLOCAL = &TablespaceOperation{Import: true}
		}
		yyVAL.union = yyLOCAL
	case 472:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2572
		{
			yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 473:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2576
		{
			yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 474:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2580
		{
			yyLOCAL = &DropKey{Type: PrimaryKeyType}
		}
		yyVAL.union = yyLOCAL
	case 475:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2584
		{
			yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 476:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2588
		{
			yyLOCAL = &Force{}
		}
		yyVAL.union = yyLOCAL
	case 477:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2592
		{
			yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName}
		}
		yyVAL.union = yyLOCAL
	case 478:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2596
		{
			yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 479:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:2602
		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 480:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2606
		{
			yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
		}
	case 481:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2612
		{
			yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
		}
		yyVAL.union = yyLOCAL
	case 482:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2616
		{
			yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
		}
		yyVAL.union = yyLOCAL
	case 483:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2620
		{
			yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
		}
		yyVAL.union = yyLOCAL
	case 484:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2624
		{
			yyLOCAL = &LockOption{Type: DefaultType}
		}
		yyVAL.union = yyLOCAL
	case 485:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2628
		{
			yyLOCAL = &LockOption{Type: NoneType}
		}
		yyVAL.union = yyLOCAL
	case 486:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2632
		{
			yyLOCAL = &LockOption{Type: SharedType}
		}
		yyVAL.union = yyLOCAL
	case 487:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2636
		{
			yyLOCAL = &LockOption{Type: ExclusiveType}
		}
		yyVAL.union = yyLOCAL
	case 488:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2640
		{
			yyLOCAL = &Validation{With: true}
		}
		yyVAL.union = yyLOCAL
	case 489:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:2644
		{
			yyLOCAL = &Validation{With: false}
		}
		yyVAL.union = yyLOCAL
	case 490:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2650
		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
			yyDollar[1].alterTableUnion().PartitionOption = yyDollar[3].partitionOptionUnion()
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 491:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2657
		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
			yyDollar[1].alterTableUnion().PartitionSpec = &PartitionSpec{Action: RemoveAction}
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 492:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2664
		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
			yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[4].partSpecUnion()
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 493:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2671
		{
			yyDollar[1].alterTableUnion().FullyParsed = true
			yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion()
			yyLOCAL = yyDollar[1].alterTableUnion()
		}
		yyVAL.union = yyLOCAL
	case 494:
		yyDollar = yyS[yypt-11 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2677
		{
			yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Comments: Comments(yyDollar[2].strs), Algorithm: yyDollar[3].str, Definer: yyDollar[4].definerUnion(), Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str}
		}
		yyVAL.union = yyLOCAL
	case 495:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2681
		{
			yyDollar[1].alterDatabaseUnion().FullyParsed = true
			yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent
			yyDollar[1].alterDatabaseUnion().AlterOptions = yyDollar[3].collateAndCharsetsUnion()
			yyLOCAL = yyDollar[1].alterDatabaseUnion()
		}
		yyVAL.union = yyLOCAL
	case 496:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2688
		{
			yyDollar[1].alterDatabaseUnion().FullyParsed = true
			yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent
			yyDollar[1].alterDatabaseUnion().UpdateDataDirectory = true
			yyLOCAL = yyDollar[1].alterDatabaseUnion()
		}
		yyVAL.union = yyLOCAL
	case 497:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2695
		{
			yyLOCAL = &AlterVschema{
				Action: CreateVindexDDLAction,
				Table:  yyDollar[6].tableName,
				VindexSpec: &VindexSpec{
					Name:   NewColIdent(yyDollar[6].tableName.Name.String()),
					Type:   yyDollar[7].colIdent,
					Params: yyDollar[8].vindexParamsUnion(),
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 498:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2707
		{
			yyLOCAL = &AlterVschema{
				Action: DropVindexDDLAction,
				Table:  yyDollar[6].tableName,
				VindexSpec: &VindexSpec{
					Name: NewColIdent(yyDollar[6].tableName.Name.String()),
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 499:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2717
		{
			yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName}
		}
		yyVAL.union = yyLOCAL
	case 500:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2721
		{
			yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName}
		}
		yyVAL.union = yyLOCAL
	case 501:
		yyDollar = yyS[yypt-13 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2725
		{
			yyLOCAL = &AlterVschema{
				Action: AddColVindexDDLAction,
				Table:  yyDollar[5].tableName,
				VindexSpec: &VindexSpec{
					Name:   yyDollar[8].colIdent,
					Type:   yyDollar[12].colIdent,
					Params: yyDollar[13].vindexParamsUnion(),
				},
				VindexCols: yyDollar[10].columnsUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 502:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2738
		{
			yyLOCAL = &AlterVschema{
				Action: DropColVindexDDLAction,
				Table:  yyDollar[5].tableName,
				VindexSpec: &VindexSpec{
					Name: yyDollar[8].colIdent,
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 503:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2748
		{
			yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName}
		}
		yyVAL.union = yyLOCAL
	case 504:
		yyDollar = yyS[yypt-10 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2752
		{
			yyLOCAL = &AlterVschema{
				Action: AddAutoIncDDLAction,
				Table:  yyDollar[5].tableName,
				AutoIncSpec: &AutoIncSpec{
					Column:   yyDollar[8].colIdent,
					Sequence: yyDollar[10].tableName,
				},
			}
		}
		yyVAL.union = yyLOCAL
	case 505:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2763
		{
			yyLOCAL = &AlterMigration{
				Type: RetryMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 506:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2770
		{
			yyLOCAL = &AlterMigration{
				Type: CleanupMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 507:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2777
		{
			yyLOCAL = &AlterMigration{
				Type: CompleteMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 508:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2784
		{
			yyLOCAL = &AlterMigration{
				Type: CancelMigrationType,
				UUID: string(yyDollar[4].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 509:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:2791
		{
			yyLOCAL = &AlterMigration{
				Type: CancelAllMigrationType,
			}
		}
		yyVAL.union = yyLOCAL
	case 510:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *PartitionOption
//line sql.y:2798
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 511:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *PartitionOption
//line sql.y:2802
		{
			yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion()
			yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion()
			yyDollar[3].partitionOptionUnion().Definitions = yyDollar[6].partDefsUnion()
			yyLOCAL = yyDollar[3].partitionOptionUnion()
		}
		yyVAL.union = yyLOCAL
	case 512:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *PartitionOption
//line sql.y:2811
		{
			yyLOCAL = &PartitionOption{
				IsLinear: yyDollar[1].booleanUnion(),
				Type:     HashType,
				Expr:     yyDollar[4].exprUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 513:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *PartitionOption
//line sql.y:2819
		{
			yyLOCAL = &PartitionOption{
				IsLinear:     yyDollar[1].booleanUnion(),
				Type:         KeyType,
				KeyAlgorithm: yyDollar[3].integerUnion(),
				ColList:      yyDollar[5].columnsUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 514:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionOption
//line sql.y:2828
		{
			yyLOCAL = &PartitionOption{
				Type: yyDollar[1].partitionByTypeUnion(),
				Expr: yyDollar[3].exprUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 515:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *PartitionOption
//line sql.y:2835
		{
			yyLOCAL = &PartitionOption{
				Type:    yyDollar[1].partitionByTypeUnion(),
				ColList: yyDollar[4].columnsUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 516:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *SubPartition
//line sql.y:2843
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 517:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *SubPartition
//line sql.y:2847
		{
			yyLOCAL = &SubPartition{
				IsLinear:      yyDollar[3].booleanUnion(),
				Type:          HashType,
				Expr:          yyDollar[6].exprUnion(),
				SubPartitions: yyDollar[8].integerUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 518:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL *SubPartition
//line sql.y:2856
		{
			yyLOCAL = &SubPartition{
				IsLinear:      yyDollar[3].booleanUnion(),
				Type:          KeyType,
				KeyAlgorithm:  yyDollar[5].integerUnion(),
				ColList:       yyDollar[7].columnsUnion(),
				SubPartitions: yyDollar[9].integerUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 519:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []*PartitionDefinition
//line sql.y:2867
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 520:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL []*PartitionDefinition
//line sql.y:2871
		{
			yyLOCAL = yyDollar[2].partDefsUnion()
		}
		yyVAL.union = yyLOCAL
	case 521:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:2876
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 522:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:2880
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 523:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL int
//line sql.y:2885
		{
			yyLOCAL = 0
		}
		yyVAL.union = yyLOCAL
	case 524:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL int
//line sql.y:2889
		{
			yyLOCAL = convertStringToInt(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 525:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:2895
		{
			yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].tableIdent}
		}
		yyVAL.union = yyLOCAL
	case 526:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL []*JtColumnDefinition
//line sql.y:2901
		{
			yyLOCAL = yyDollar[3].jtColumnListUnion()
		}
		yyVAL.union = yyLOCAL
	case 527:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*JtColumnDefinition
//line sql.y:2907
		{
			yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 528:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2911
		{
			yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion())
		}
	case 529:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *JtColumnDefinition
//line sql.y:2917
		{
			yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].colIdent}}
		}
		yyVAL.union = yyLOCAL
	case 530:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *JtColumnDefinition
//line sql.y:2921
		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 531:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *JtColumnDefinition
//line sql.y:2927
		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 532:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *JtColumnDefinition
//line sql.y:2933
		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 533:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL *JtColumnDefinition
//line sql.y:2939
		{
			yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
			jtPath := &JtPathColDef{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
			yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
		}
		yyVAL.union = yyLOCAL
	case 534:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *JtColumnDefinition
//line sql.y:2945
		{
			jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()}
			yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath}
		}
		yyVAL.union = yyLOCAL
	case 535:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:2951
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 536:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:2955
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 537:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:2959
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 538:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:2963
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 539:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *JtOnResponse
//line sql.y:2969
		{
			yyLOCAL = yyDollar[1].jtOnResponseUnion()
		}
		yyVAL.union = yyLOCAL
	case 540:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *JtOnResponse
//line sql.y:2975
		{
			yyLOCAL = yyDollar[1].jtOnResponseUnion()
		}
		yyVAL.union = yyLOCAL
	case 541:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *JtOnResponse
//line sql.y:2981
		{
			yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType}
		}
		yyVAL.union = yyLOCAL
	case 542:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *JtOnResponse
//line sql.y:2985
		{
			yyLOCAL = &JtOnResponse{ResponseType: NullJSONType}
		}
		yyVAL.union = yyLOCAL
	case 543:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *JtOnResponse
//line sql.y:2989
		{
			yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 544:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL PartitionByType
//line sql.y:2995
		{
			yyLOCAL = RangeType
		}
		yyVAL.union = yyLOCAL
	case 545:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL PartitionByType
//line sql.y:2999
		{
			yyLOCAL = ListType
		}
		yyVAL.union = yyLOCAL
	case 546:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL int
//line sql.y:3004
		{
			yyLOCAL = -1
		}
		yyVAL.union = yyLOCAL
	case 547:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL int
//line sql.y:3008
		{
			yyLOCAL = convertStringToInt(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 548:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL int
//line sql.y:3013
		{
			yyLOCAL = -1
		}
		yyVAL.union = yyLOCAL
	case 549:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL int
//line sql.y:3017
		{
			yyLOCAL = convertStringToInt(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 550:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3023
		{
			yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 551:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3027
		{
			yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 552:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3031
		{
			yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 553:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3035
		{
			yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 554:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3039
		{
			yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 555:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3043
		{
			yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 556:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3047
		{
			yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 557:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3051
		{
			yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 558:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3055
		{
			yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 559:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3059
		{
			yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 560:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3063
		{
			yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 561:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3067
		{
			yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 562:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3071
		{
			yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 563:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3075
		{
			yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 564:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3079
		{
			yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 565:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3083
		{
			yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 566:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3087
		{
			yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 567:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3091
		{
			yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 568:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3095
		{
			yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 569:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3099
		{
			yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 570:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3103
		{
			yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true}
		}
		yyVAL.union = yyLOCAL
	case 571:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *PartitionSpec
//line sql.y:3107
		{
			yyLOCAL = &PartitionSpec{Action: UpgradeAction}
		}
		yyVAL.union = yyLOCAL
	case 572:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:3112
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 573:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:3116
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 574:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:3120
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 575:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*PartitionDefinition
//line sql.y:3127
		{
			yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()}
		}
		yyVAL.union = yyLOCAL
	case 576:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3131
		{
			yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].partDefUnion())
		}
	case 577:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3137
		{
			yyVAL.partDefUnion().ValueRange = yyDollar[2].partitionValueRangeUnion()
		}
	case 578:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *PartitionValueRange
//line sql.y:3142
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 579:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionValueRange
//line sql.y:3146
		{
			yyLOCAL = &PartitionValueRange{
				Type:  LessThanType,
				Range: yyDollar[4].valTupleUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 580:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *PartitionValueRange
//line sql.y:3153
		{
			yyLOCAL = &PartitionValueRange{
				Type:     LessThanType,
				Maxvalue: true,
			}
		}
		yyVAL.union = yyLOCAL
	case 581:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *PartitionValueRange
//line sql.y:3160
		{
			yyLOCAL = &PartitionValueRange{
				Type:  InType,
				Range: yyDollar[3].valTupleUnion(),
			}
		}
		yyVAL.union = yyLOCAL
	case 582:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *PartitionDefinition
//line sql.y:3169
		{
			yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 583:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3175
		{
			yyVAL.str = ""
		}
	case 584:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3179
		{
			yyVAL.str = ""
		}
	case 585:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3185
		{
			yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 586:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL []*RenameTablePair
//line sql.y:3191
		{
			yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 587:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:3195
		{
			yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName})
		}
	case 588:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3201
		{
			yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 589:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3205
		{
			// Change this to an alter statement
			if yyDollar[4].colIdent.Lowered() == "primary" {
				yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: PrimaryKeyType}}, yyDollar[7].alterOptionsUnion()...)}
			} else {
				yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: NormalKeyType, Name: yyDollar[4].colIdent}}, yyDollar[7].alterOptionsUnion()...)}
			}
		}
		yyVAL.union = yyLOCAL
	case 590:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3214
		{
			yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs), IfExists: yyDollar[4].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 591:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3218
		{
			yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 592:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3224
		{
			yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName}
		}
		yyVAL.union = yyLOCAL
	case 593:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3228
		{
			yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName}
		}
		yyVAL.union = yyLOCAL
	case 594:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3233
		{
			yyLOCAL = &OtherRead{}
		}
		yyVAL.union = yyLOCAL
	case 595:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3239
		{
			yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 596:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3243
		{
			yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 597:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3247
		{
			yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 598:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3251
		{
			yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 599:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3255
		{
			yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 600:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3259
		{
			yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 601:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3263
		{
			yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 602:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3267
		{
			yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 603:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3271
		{
			yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 604:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3275
		{
			yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 605:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3279
		{
			yyLOCAL = &Show{&ShowBasic{Command: Privilege}}
		}
		yyVAL.union = yyLOCAL
	case 606:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3283
		{
			yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 607:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3287
		{
			yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 608:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3291
		{
			yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 609:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3295
		{
			yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 610:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3299
		{
			yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 611:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3303
		{
			yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 612:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3307
		{
			yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 613:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3311
		{
			yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}}
		}
		yyVAL.union = yyLOCAL
	case 614:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3315
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 615:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3319
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 616:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3323
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 617:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3327
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 618:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3331
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 619:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3335
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 620:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3339
		{
			yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}}
		}
		yyVAL.union = yyLOCAL
	case 621:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3343
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 622:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3347
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 623:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3351
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 624:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3355
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 625:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3359
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 626:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3363
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 627:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3367
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 628:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3371
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 629:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3375
		{
			yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 630:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3379
		{
			yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 631:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3383
		{
			showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()}
			yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}}
		}
		yyVAL.union = yyLOCAL
	case 632:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3388
		{
			yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 633:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3392
		{
			yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 634:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3396
		{
			showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()}
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope, ShowTablesOpt: showTablesOpt}}
		}
		yyVAL.union = yyLOCAL
	case 635:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3401
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 636:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3405
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 637:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3409
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 638:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3413
		{
			yyLOCAL = &Show{&ShowBasic{Command: Warnings}}
		}
		yyVAL.union = yyLOCAL
	case 639:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3418
		{
			// This should probably be a different type (ShowVitessTopoOpt), but
			// just getting the thing working for now
			showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()}
			yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}}
		}
		yyVAL.union = yyLOCAL
	case 640:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3432
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 641:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3436
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 642:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3440
		{
			yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}}
		}
		yyVAL.union = yyLOCAL
	case 643:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3446
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 644:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3450
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 645:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3456
		{
			yyVAL.str = ""
		}
	case 646:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3460
		{
			yyVAL.str = "extended "
		}
	case 647:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:3466
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 648:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:3470
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 649:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3476
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 650:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3480
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 651:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3486
		{
			yyVAL.tableIdent = NewTableIdent("")
		}
	case 652:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3490
		{
			yyVAL.tableIdent = yyDollar[2].tableIdent
		}
	case 653:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3494
		{
			yyVAL.tableIdent = yyDollar[2].tableIdent
		}
	case 654:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ShowFilter
//line sql.y:3500
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 655:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ShowFilter
//line sql.y:3504
		{
			yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 656:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ShowFilter
//line sql.y:3508
		{
			yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 657:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ShowFilter
//line sql.y:3514
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 658:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ShowFilter
//line sql.y:3518
		{
			yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
		}
		yyVAL.union = yyLOCAL
	case 659:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3524
		{
			yyVAL.empty = struct{}{}
		}
	case 660:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3528
		{
			yyVAL.empty = struct{}{}
		}
	case 661:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3532
		{
			yyVAL.empty = struct{}{}
		}
	case 662:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3538
		{
			yyLOCAL = &Use{DBName: yyDollar[2].tableIdent}
		}
		yyVAL.union = yyLOCAL
	case 663:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3542
		{
			yyLOCAL = &Use{DBName: TableIdent{v: ""}}
		}
		yyVAL.union = yyLOCAL
	case 664:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3546
		{
			yyLOCAL = &Use{DBName: NewTableIdent(yyDollar[2].tableIdent.String() + "@" + string(yyDollar[3].str))}
		}
		yyVAL.union = yyLOCAL
	case 665:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3552
		{
			yyLOCAL = &Begin{}
		}
		yyVAL.union = yyLOCAL
	case 666:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3556
		{
			yyLOCAL = &Begin{}
		}
		yyVAL.union = yyLOCAL
	case 667:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3562
		{
			yyLOCAL = &Commit{}
		}
		yyVAL.union = yyLOCAL
	case 668:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3568
		{
			yyLOCAL = &Rollback{}
		}
		yyVAL.union = yyLOCAL
	case 669:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3572
		{
			yyLOCAL = &SRollback{Name: yyDollar[5].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 670:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3577
		{
			yyVAL.empty = struct{}{}
		}
	case 671:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3579
		{
			yyVAL.empty = struct{}{}
		}
	case 672:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3582
		{
			yyVAL.empty = struct{}{}
		}
	case 673:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3584
		{
			yyVAL.empty = struct{}{}
		}
	case 674:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3589
		{
			yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 675:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3595
		{
			yyLOCAL = &Release{Name: yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 676:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL ExplainType
//line sql.y:3600
		{
			yyLOCAL = EmptyType
		}
		yyVAL.union = yyLOCAL
	case 677:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType
//line sql.y:3604
		{
			yyLOCAL = JSONType
		}
		yyVAL.union = yyLOCAL
	case 678:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType
//line sql.y:3608
		{
			yyLOCAL = TreeType
		}
		yyVAL.union = yyLOCAL
	case 679:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType
//line sql.y:3612
		{
			yyLOCAL = VitessType
		}
		yyVAL.union = yyLOCAL
	case 680:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ExplainType
//line sql.y:3616
		{
			yyLOCAL = TraditionalType
		}
		yyVAL.union = yyLOCAL
	case 681:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ExplainType
//line sql.y:3620
		{
			yyLOCAL = AnalyzeType
		}
		yyVAL.union = yyLOCAL
	case 682:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3626
		{
			yyVAL.str = yyDollar[1].str
		}
	case 683:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3630
		{
			yyVAL.str = yyDollar[1].str
		}
	case 684:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3634
		{
			yyVAL.str = yyDollar[1].str
		}
	case 685:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3640
		{
			yyLOCAL = yyDollar[1].selStmtUnion()
		}
		yyVAL.union = yyLOCAL
	case 686:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3644
		{
			yyLOCAL = yyDollar[1].statementUnion()
		}
		yyVAL.union = yyLOCAL
	case 687:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3648
		{
			yyLOCAL = yyDollar[1].statementUnion()
		}
		yyVAL.union = yyLOCAL
	case 688:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3652
		{
			yyLOCAL = yyDollar[1].statementUnion()
		}
		yyVAL.union = yyLOCAL
	case 689:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3657
		{
			yyVAL.str = ""
		}
	case 690:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3661
		{
			yyVAL.str = yyDollar[1].colIdent.val
		}
	case 691:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3665
		{
			yyVAL.str = encodeSQLString(yyDollar[1].str)
		}
	case 692:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3671
		{
			yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str}
		}
		yyVAL.union = yyLOCAL
	case 693:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3675
		{
			yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()}
		}
		yyVAL.union = yyLOCAL
	case 694:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3681
		{
			yyLOCAL = &OtherAdmin{}
		}
		yyVAL.union = yyLOCAL
	case 695:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3685
		{
			yyLOCAL = &OtherAdmin{}
		}
		yyVAL.union = yyLOCAL
	case 696:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3691
		{
			yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 697:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableAndLockTypes
//line sql.y:3697
		{
			yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 698:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3701
		{
			yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion())
		}
	case 699:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *TableAndLockType
//line sql.y:3707
		{
			yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 700:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL LockType
//line sql.y:3713
		{
			yyLOCAL = Read
		}
		yyVAL.union = yyLOCAL
	case 701:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL LockType
//line sql.y:3717
		{
			yyLOCAL = ReadLocal
		}
		yyVAL.union = yyLOCAL
	case 702:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL LockType
//line sql.y:3721
		{
			yyLOCAL = Write
		}
		yyVAL.union = yyLOCAL
	case 703:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL LockType
//line sql.y:3725
		{
			yyLOCAL = LowPriorityWrite
		}
		yyVAL.union = yyLOCAL
	case 704:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3731
		{
			yyLOCAL = &UnlockTables{}
		}
		yyVAL.union = yyLOCAL
	case 705:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3737
		{
			yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 706:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3743
		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs}
		}
		yyVAL.union = yyLOCAL
	case 707:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3747
		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()}
		}
		yyVAL.union = yyLOCAL
	case 708:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3751
		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true}
		}
		yyVAL.union = yyLOCAL
	case 709:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3755
		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 710:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3759
		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true}
		}
		yyVAL.union = yyLOCAL
	case 711:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3763
		{
			yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true}
		}
		yyVAL.union = yyLOCAL
	case 712:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3769
		{
			yyVAL.strs = []string{yyDollar[1].str}
		}
	case 713:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3773
		{
			yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str)
		}
	case 714:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3779
		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 715:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3783
		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 716:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3787
		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 717:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3791
		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 718:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3795
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 719:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3799
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 720:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3803
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 721:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3807
		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str
		}
	case 722:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3811
		{
			yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
		}
	case 723:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3815
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 724:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3819
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 725:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3823
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 726:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:3828
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 727:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:3832
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 728:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:3836
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 729:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3841
		{
			yyVAL.str = ""
		}
	case 730:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3845
		{
			yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String()
		}
	case 731:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3850
		{
			setAllowComments(yylex, true)
		}
	case 732:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3854
		{
			yyVAL.strs = yyDollar[2].strs
			setAllowComments(yylex, false)
		}
	case 733:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3860
		{
			yyVAL.strs = nil
		}
	case 734:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3864
		{
			yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str)
		}
	case 735:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:3870
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 736:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:3874
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 737:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:3878
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 738:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3883
		{
			yyVAL.str = ""
		}
	case 739:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3887
		{
			yyVAL.str = SQLNoCacheStr
		}
	case 740:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3891
		{
			yyVAL.str = SQLCacheStr
		}
	case 741:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:3896
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 742:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:3900
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 743:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:3904
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 744:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3910
		{
			yyLOCAL = &PrepareStmt{Name: yyDollar[3].colIdent, Comments: yyDollar[2].strs, Statement: yyDollar[5].str}
		}
		yyVAL.union = yyLOCAL
	case 745:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3914
		{
			yyLOCAL = &PrepareStmt{Name: yyDollar[3].colIdent, Comments: yyDollar[2].strs, StatementIdentifier: NewColIdentWithAt(string(yyDollar[5].str), SingleAt)}
		}
		yyVAL.union = yyLOCAL
	case 746:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3920
		{
			yyLOCAL = &ExecuteStmt{Name: yyDollar[3].colIdent, Comments: yyDollar[2].strs, Arguments: yyDollar[4].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 747:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Columns
//line sql.y:3925
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 748:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Columns
//line sql.y:3929
		{
			yyLOCAL = yyDollar[2].columnsUnion()
		}
		yyVAL.union = yyLOCAL
	case 749:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3935
		{
			yyLOCAL = &DeallocateStmt{Type: DeallocateType, Comments: yyDollar[2].strs, Name: yyDollar[4].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 750:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Statement
//line sql.y:3939
		{
			yyLOCAL = &DeallocateStmt{Type: DropType, Comments: yyDollar[2].strs, Name: yyDollar[4].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 751:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL SelectExprs
//line sql.y:3944
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 752:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectExprs
//line sql.y:3948
		{
			yyLOCAL = yyDollar[1].selectExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 753:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3953
		{
			yyVAL.strs = nil
		}
	case 754:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3957
		{
			yyVAL.strs = []string{yyDollar[1].str}
		}
	case 755:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3961
		{ // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce'
			yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str}
		}
	case 756:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3965
		{
			yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str}
		}
	case 757:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:3969
		{
			yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str}
		}
	case 758:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3975
		{
			yyVAL.str = SQLNoCacheStr
		}
	case 759:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3979
		{
			yyVAL.str = SQLCacheStr
		}
	case 760:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3983
		{
			yyVAL.str = DistinctStr
		}
	case 761:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3987
		{
			yyVAL.str = DistinctStr
		}
	case 762:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3991
		{
			yyVAL.str = StraightJoinHint
		}
	case 763:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3995
		{
			yyVAL.str = SQLCalcFoundRowsStr
		}
	case 764:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3999
		{
			yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway
		}
	case 765:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectExprs
//line sql.y:4005
		{
			yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 766:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4009
		{
			yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion())
		}
	case 767:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SelectExpr
//line sql.y:4015
		{
			yyLOCAL = &StarExpr{}
		}
		yyVAL.union = yyLOCAL
	case 768:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL SelectExpr
//line sql.y:4019
		{
			yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 769:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL SelectExpr
//line sql.y:4023
		{
			yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 770:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL SelectExpr
//line sql.y:4027
		{
			yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}}
		}
		yyVAL.union = yyLOCAL
	case 771:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:4032
		{
			yyVAL.colIdent = ColIdent{}
		}
	case 772:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4036
		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 773:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4040
		{
			yyVAL.colIdent = yyDollar[2].colIdent
		}
	case 775:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4047
		{
			yyVAL.colIdent = NewColIdent(string(yyDollar[1].str))
		}
	case 776:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL TableExprs
//line sql.y:4052
		{
			yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}}
		}
		yyVAL.union = yyLOCAL
	case 777:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExprs
//line sql.y:4056
		{
			yyLOCAL = yyDollar[1].tableExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 778:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL TableExprs
//line sql.y:4062
		{
			yyLOCAL = yyDollar[2].tableExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 779:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExprs
//line sql.y:4068
		{
			yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 780:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4072
		{
			yySLICE := (*TableExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion())
		}
	case 783:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4082
		{
			yyLOCAL = yyDollar[1].aliasedTableNameUnion()
		}
		yyVAL.union = yyLOCAL
	case 784:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4086
		{
			yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent, Columns: yyDollar[4].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 785:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4090
		{
			yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 786:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4094
		{
			yyLOCAL = yyDollar[1].tableExprUnion()
		}
		yyVAL.union = yyLOCAL
	case 787:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *DerivedTable
//line sql.y:4100
		{
			yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[2].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 788:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *DerivedTable
//line sql.y:4104
		{
			yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[3].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 789:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *AliasedTableExpr
//line sql.y:4110
		{
			yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 790:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL *AliasedTableExpr
//line sql.y:4114
		{
			yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 791:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Columns
//line sql.y:4119
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 792:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Columns
//line sql.y:4123
		{
			yyLOCAL = yyDollar[2].columnsUnion()
		}
		yyVAL.union = yyLOCAL
	case 793:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns
//line sql.y:4129
		{
			yyLOCAL = Columns{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 794:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4133
		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 795:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns
//line sql.y:4139
		{
			yyLOCAL = Columns{NewColIdentWithAt(string(yyDollar[1].str), SingleAt)}
		}
		yyVAL.union = yyLOCAL
	case 796:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4143
		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, NewColIdentWithAt(string(yyDollar[3].str), SingleAt))
		}
	case 797:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns
//line sql.y:4149
		{
			yyLOCAL = Columns{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 798:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns
//line sql.y:4153
		{
			yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))}
		}
		yyVAL.union = yyLOCAL
	case 799:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4157
		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 800:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4161
		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str)))
		}
	case 801:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Partitions
//line sql.y:4167
		{
			yyLOCAL = Partitions{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 802:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4171
		{
			yySLICE := (*Partitions)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 803:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4184
		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
		}
		yyVAL.union = yyLOCAL
	case 804:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4188
		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
		}
		yyVAL.union = yyLOCAL
	case 805:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4192
		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
		}
		yyVAL.union = yyLOCAL
	case 806:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL TableExpr
//line sql.y:4196
		{
			yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 807:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4202
		{
			yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
		}
	case 808:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:4204
		{
			yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()}
		}
	case 809:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:4208
		{
			yyVAL.joinCondition = &JoinCondition{}
		}
	case 810:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4210
		{
			yyVAL.joinCondition = yyDollar[1].joinCondition
		}
	case 811:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:4214
		{
			yyVAL.joinCondition = &JoinCondition{}
		}
	case 812:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4216
		{
			yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
		}
	case 813:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:4219
		{
			yyVAL.empty = struct{}{}
		}
	case 814:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4221
		{
			yyVAL.empty = struct{}{}
		}
	case 815:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:4224
		{
			yyVAL.tableIdent = NewTableIdent("")
		}
	case 816:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4228
		{
			yyVAL.tableIdent = yyDollar[1].tableIdent
		}
	case 817:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4232
		{
			yyVAL.tableIdent = yyDollar[2].tableIdent
		}
	case 819:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4239
		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str))
		}
	case 820:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4245
		{
			yyLOCAL = NormalJoinType
		}
		yyVAL.union = yyLOCAL
	case 821:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4249
		{
			yyLOCAL = NormalJoinType
		}
		yyVAL.union = yyLOCAL
	case 822:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4253
		{
			yyLOCAL = NormalJoinType
		}
		yyVAL.union = yyLOCAL
	case 823:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4259
		{
			yyLOCAL = StraightJoinType
		}
		yyVAL.union = yyLOCAL
	case 824:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4265
		{
			yyLOCAL = LeftJoinType
		}
		yyVAL.union = yyLOCAL
	case 825:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4269
		{
			yyLOCAL = LeftJoinType
		}
		yyVAL.union = yyLOCAL
	case 826:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4273
		{
			yyLOCAL = RightJoinType
		}
		yyVAL.union = yyLOCAL
	case 827:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4277
		{
			yyLOCAL = RightJoinType
		}
		yyVAL.union = yyLOCAL
	case 828:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4283
		{
			yyLOCAL = NaturalJoinType
		}
		yyVAL.union = yyLOCAL
	case 829:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL JoinType
//line sql.y:4287
		{
			if yyDollar[2].joinTypeUnion() == LeftJoinType {
				yyLOCAL = NaturalLeftJoinType
			} else {
				yyLOCAL = NaturalRightJoinType
			}
		}
		yyVAL.union = yyLOCAL
	case 830:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4297
		{
			yyVAL.tableName = yyDollar[2].tableName
		}
	case 831:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4301
		{
			yyVAL.tableName = yyDollar[1].tableName
		}
	case 832:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4307
		{
			yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
		}
	case 833:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4311
		{
			yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}
		}
	case 834:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4317
		{
			yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
		}
	case 835:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL IndexHints
//line sql.y:4322
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 836:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IndexHints
//line sql.y:4326
		{
			yyLOCAL = yyDollar[1].indexHintsUnion()
		}
		yyVAL.union = yyLOCAL
	case 837:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IndexHints
//line sql.y:4332
		{
			yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()}
		}
		yyVAL.union = yyLOCAL
	case 838:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4336
		{
			yySLICE := (*IndexHints)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion())
		}
	case 839:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *IndexHint
//line sql.y:4342
		{
			yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 840:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *IndexHint
//line sql.y:4346
		{
			yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 841:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *IndexHint
//line sql.y:4350
		{
			yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 842:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL *IndexHint
//line sql.y:4354
		{
			yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 843:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL IndexHintForType
//line sql.y:4359
		{
			yyLOCAL = NoForType
		}
		yyVAL.union = yyLOCAL
	case 844:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IndexHintForType
//line sql.y:4363
		{
			yyLOCAL = JoinForType
		}
		yyVAL.union = yyLOCAL
	case 845:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL IndexHintForType
//line sql.y:4367
		{
			yyLOCAL = OrderByForType
		}
		yyVAL.union = yyLOCAL
	case 846:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL IndexHintForType
//line sql.y:4371
		{
			yyLOCAL = GroupByForType
		}
		yyVAL.union = yyLOCAL
	case 847:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4377
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 848:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4381
		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 849:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4388
		{
			yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 850:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4392
		{
			yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 851:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4396
		{
			yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 852:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4400
		{
			yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 853:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4404
		{
			yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()}
		}
		yyVAL.union = yyLOCAL
	case 854:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4408
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 855:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4415
		{
			yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp}
		}
		yyVAL.union = yyLOCAL
	case 856:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4419
		{
			yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp}
		}
		yyVAL.union = yyLOCAL
	case 857:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4423
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 858:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4427
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 859:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4433
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()}
		}
		yyVAL.union = yyLOCAL
	case 860:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4437
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()}
		}
		yyVAL.union = yyLOCAL
	case 861:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4441
		{
			yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 862:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4445
		{
			yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 863:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4449
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 864:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4453
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 865:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4457
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 866:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4461
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 867:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4465
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 868:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4469
		{
			yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 869:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4473
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 870:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4479
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 871:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4483
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 872:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4487
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 873:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4491
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 874:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4495
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 875:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4499
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 876:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4503
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 877:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4507
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 878:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4511
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 879:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4515
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 880:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4519
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 881:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4523
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 882:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4527
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 883:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4533
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 884:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4537
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 885:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4541
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 886:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4545
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 887:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4549
		{
			yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str}
		}
		yyVAL.union = yyLOCAL
	case 888:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4553
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 889:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4557
		{
			yyLOCAL = yyDollar[1].colNameUnion()
		}
		yyVAL.union = yyLOCAL
	case 890:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4561
		{
			yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals?
		}
		yyVAL.union = yyLOCAL
	case 891:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4565
		{
			yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 892:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4569
		{
			yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 893:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4573
		{
			yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 894:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4577
		{
			yyLOCAL = yyDollar[1].subqueryUnion()
		}
		yyVAL.union = yyLOCAL
	case 895:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4581
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 896:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4585
		{
			yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()}
		}
		yyVAL.union = yyLOCAL
	case 897:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4589
		{
			yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 898:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4593
		{
			yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 899:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4597
		{
			yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 900:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4601
		{
			yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str}
		}
		yyVAL.union = yyLOCAL
	case 901:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4605
		{
			// From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary
			// To convert a string expression to a binary string, these constructs are equivalent:
			//    CAST(expr AS BINARY)
			//    BINARY expr
			yyLOCAL = &ConvertExpr{Expr: yyDollar[2].exprUnion(), Type: &ConvertType{Type: yyDollar[1].str}}
		}
		yyVAL.union = yyLOCAL
	case 902:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4613
		{
			yyLOCAL = &Default{ColName: yyDollar[2].str}
		}
		yyVAL.union = yyLOCAL
	case 903:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4617
		{
			// This rule prevents the usage of INTERVAL
			// as a function. If support is needed for that,
			// we'll need to revisit this. The solution
			// will be non-trivial because of grammar conflicts.
			yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()}
		}
		yyVAL.union = yyLOCAL
	case 904:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4625
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 905:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4629
		{
			yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: NewStrLiteral(yyDollar[3].str)}
		}
		yyVAL.union = yyLOCAL
	case 906:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TrimType
//line sql.y:4635
		{
			yyLOCAL = BothTrimType
		}
		yyVAL.union = yyLOCAL
	case 907:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TrimType
//line sql.y:4639
		{
			yyLOCAL = LeadingTrimType
		}
		yyVAL.union = yyLOCAL
	case 908:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL TrimType
//line sql.y:4643
		{
			yyLOCAL = TrailingTrimType
		}
		yyVAL.union = yyLOCAL
	case 909:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:4649
		{
			yyVAL.str = ""
		}
	case 910:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4653
		{
			yyVAL.str = string(yyDollar[2].colIdent.String())
		}
	case 911:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL BoolVal
//line sql.y:4659
		{
			yyLOCAL = BoolVal(true)
		}
		yyVAL.union = yyLOCAL
	case 912:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL BoolVal
//line sql.y:4663
		{
			yyLOCAL = BoolVal(false)
		}
		yyVAL.union = yyLOCAL
	case 913:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IsExprOperator
//line sql.y:4670
		{
			yyLOCAL = IsTrueOp
		}
		yyVAL.union = yyLOCAL
	case 914:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsExprOperator
//line sql.y:4674
		{
			yyLOCAL = IsNotTrueOp
		}
		yyVAL.union = yyLOCAL
	case 915:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IsExprOperator
//line sql.y:4678
		{
			yyLOCAL = IsFalseOp
		}
		yyVAL.union = yyLOCAL
	case 916:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL IsExprOperator
//line sql.y:4682
		{
			yyLOCAL = IsNotFalseOp
		}
		yyVAL.union = yyLOCAL
	case 917:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4688
		{
			yyLOCAL = EqualOp
		}
		yyVAL.union = yyLOCAL
	case 918:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4692
		{
			yyLOCAL = LessThanOp
		}
		yyVAL.union = yyLOCAL
	case 919:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4696
		{
			yyLOCAL = GreaterThanOp
		}
		yyVAL.union = yyLOCAL
	case 920:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4700
		{
			yyLOCAL = LessEqualOp
		}
		yyVAL.union = yyLOCAL
	case 921:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4704
		{
			yyLOCAL = GreaterEqualOp
		}
		yyVAL.union = yyLOCAL
	case 922:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4708
		{
			yyLOCAL = NotEqualOp
		}
		yyVAL.union = yyLOCAL
	case 923:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ComparisonExprOperator
//line sql.y:4712
		{
			yyLOCAL = NullSafeEqualOp
		}
		yyVAL.union = yyLOCAL
	case 924:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColTuple
//line sql.y:4718
		{
			yyLOCAL = yyDollar[1].valTupleUnion()
		}
		yyVAL.union = yyLOCAL
	case 925:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColTuple
//line sql.y:4722
		{
			yyLOCAL = yyDollar[1].subqueryUnion()
		}
		yyVAL.union = yyLOCAL
	case 926:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ColTuple
//line sql.y:4726
		{
			yyLOCAL = ListArg(yyDollar[1].str[2:])
			bindVariable(yylex, yyDollar[1].str[2:])
		}
		yyVAL.union = yyLOCAL
	case 927:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Subquery
//line sql.y:4733
		{
			yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 928:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Exprs
//line sql.y:4739
		{
			yyLOCAL = Exprs{yyDollar[1].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 929:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4743
		{
			yySLICE := (*Exprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].exprUnion())
		}
	case 930:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4753
		{
			yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 931:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4757
		{
			yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 932:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4761
		{
			yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 933:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4765
		{
			yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 934:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4775
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 935:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4779
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 936:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4783
		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 937:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4787
		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 938:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4791
		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 939:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4795
		{
			yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 940:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4799
		{
			yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()}
		}
		yyVAL.union = yyLOCAL
	case 941:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4803
		{
			yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 942:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4807
		{
			yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()}
		}
		yyVAL.union = yyLOCAL
	case 943:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4811
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 944:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4822
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")}
		}
		yyVAL.union = yyLOCAL
	case 945:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4826
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 946:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4832
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")}
		}
		yyVAL.union = yyLOCAL
	case 947:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4836
		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 948:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4841
		{
			yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 949:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4845
		{
			yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 950:
		yyDollar = yyS[yypt-8 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4849
		{
			yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 951:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4853
		{
			yyLOCAL = &ExtractFuncExpr{IntervalTypes: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 952:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4857
		{
			yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()}
		}
		yyVAL.union = yyLOCAL
	case 953:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4861
		{
			yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 954:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4865
		{
			yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 955:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4869
		{
			yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 956:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4873
		{
			yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, StringArg: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 957:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4877
		{
			yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, StringArg: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 958:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4881
		{
			yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 959:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4885
		{
			yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 960:
		yyDollar = yyS[yypt-6 : yypt+1]
		var yyLOCAL Expr
//line sql.y:4889
		{
			yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 961:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4895
		{
		}
	case 962:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4897
		{
			yyLOCAL = IntervalDayHour
		}
		yyVAL.union = yyLOCAL
	case 963:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4901
		{
			yyLOCAL = IntervalDayMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 964:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4905
		{
			yyLOCAL = IntervalDayMinute
		}
		yyVAL.union = yyLOCAL
	case 965:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4909
		{
			yyLOCAL = IntervalDaySecond
		}
		yyVAL.union = yyLOCAL
	case 966:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4913
		{
			yyLOCAL = IntervalHourMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 967:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4917
		{
			yyLOCAL = IntervalHourMinute
		}
		yyVAL.union = yyLOCAL
	case 968:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4921
		{
			yyLOCAL = IntervalHourSecond
		}
		yyVAL.union = yyLOCAL
	case 969:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4925
		{
			yyLOCAL = IntervalMinuteMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 970:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4929
		{
			yyLOCAL = IntervalMinuteSecond
		}
		yyVAL.union = yyLOCAL
	case 971:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4933
		{
			yyLOCAL = IntervalSecondMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 972:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4937
		{
			yyLOCAL = IntervalYearMonth
		}
		yyVAL.union = yyLOCAL
	case 973:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4943
		{
			yyLOCAL = IntervalDay
		}
		yyVAL.union = yyLOCAL
	case 974:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4947
		{
			yyLOCAL = IntervalWeek
		}
		yyVAL.union = yyLOCAL
	case 975:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4951
		{
			yyLOCAL = IntervalHour
		}
		yyVAL.union = yyLOCAL
	case 976:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4955
		{
			yyLOCAL = IntervalMinute
		}
		yyVAL.union = yyLOCAL
	case 977:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4959
		{
			yyLOCAL = IntervalMonth
		}
		yyVAL.union = yyLOCAL
	case 978:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4963
		{
			yyLOCAL = IntervalQuarter
		}
		yyVAL.union = yyLOCAL
	case 979:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4967
		{
			yyLOCAL = IntervalSecond
		}
		yyVAL.union = yyLOCAL
	case 980:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4971
		{
			yyLOCAL = IntervalMicrosecond
		}
		yyVAL.union = yyLOCAL
	case 981:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL IntervalTypes
//line sql.y:4975
		{
			yyLOCAL = IntervalYear
		}
		yyVAL.union = yyLOCAL
	case 984:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Literal
//line sql.y:4985
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 985:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Literal
//line sql.y:4989
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 986:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Literal
//line sql.y:4993
		{
			yyLOCAL = NewIntLiteral(yyDollar[2].str)
		}
		yyVAL.union = yyLOCAL
	case 987:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5003
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 988:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5007
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 989:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5011
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 990:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5015
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 991:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5019
		{
			yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 992:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL MatchExprOption
//line sql.y:5025
		{
			yyLOCAL = NoOption
		}
		yyVAL.union = yyLOCAL
	case 993:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL MatchExprOption
//line sql.y:5029
		{
			yyLOCAL = BooleanModeOpt
		}
		yyVAL.union = yyLOCAL
	case 994:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL MatchExprOption
//line sql.y:5033
		{
			yyLOCAL = NaturalLanguageModeOpt
		}
		yyVAL.union = yyLOCAL
	case 995:
		yyDollar = yyS[yypt-7 : yypt+1]
		var yyLOCAL MatchExprOption
//line sql.y:5037
		{
			yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt
		}
		yyVAL.union = yyLOCAL
	case 996:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL MatchExprOption
//line sql.y:5041
		{
			yyLOCAL = QueryExpansionOpt
		}
		yyVAL.union = yyLOCAL
	case 997:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5047
		{
			yyVAL.str = string(yyDollar[1].colIdent.String())
		}
	case 998:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5051
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 999:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5055
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1000:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5061
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1001:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5065
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: NewIntLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 1002:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5069
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: NewIntLiteral(yyDollar[4].str)}
		}
		yyVAL.union = yyLOCAL
	case 1003:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5075
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1004:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5079
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str}
		}
		yyVAL.union = yyLOCAL
	case 1005:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5083
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1006:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5087
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1007:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5091
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
			yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length
			yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale
		}
		yyVAL.union = yyLOCAL
	case 1008:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5097
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1009:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5101
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1010:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5105
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1011:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5109
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1012:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5113
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1013:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5117
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1014:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5121
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1015:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5125
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1016:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5129
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1017:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ConvertType
//line sql.y:5133
		{
			yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
		}
		yyVAL.union = yyLOCAL
	case 1018:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5139
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1019:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5143
		{
			yyLOCAL = yyDollar[1].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1020:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5148
		{
			yyVAL.str = string("")
		}
	case 1021:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5152
		{
			yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str)
		}
	case 1022:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*When
//line sql.y:5158
		{
			yyLOCAL = []*When{yyDollar[1].whenUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1023:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5162
		{
			yySLICE := (*[]*When)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[2].whenUnion())
		}
	case 1024:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *When
//line sql.y:5168
		{
			yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1025:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5173
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1026:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5177
		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1027:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *ColName
//line sql.y:5183
		{
			yyLOCAL = &ColName{Name: yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1028:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *ColName
//line sql.y:5187
		{
			yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1029:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *ColName
//line sql.y:5191
		{
			yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1030:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5197
		{
			// TODO(sougou): Deprecate this construct.
			if yyDollar[1].colIdent.Lowered() != "value" {
				yylex.Error("expecting value after next")
				return 1
			}
			yyLOCAL = NewIntLiteral("1")
		}
		yyVAL.union = yyLOCAL
	case 1031:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5206
		{
			yyLOCAL = NewIntLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 1032:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5210
		{
			yyLOCAL = NewArgument(yyDollar[1].str[1:])
			bindVariable(yylex, yyDollar[1].str[1:])
		}
		yyVAL.union = yyLOCAL
	case 1033:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Exprs
//line sql.y:5216
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1034:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Exprs
//line sql.y:5220
		{
			yyLOCAL = yyDollar[3].exprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 1035:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5225
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1036:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5229
		{
			yyLOCAL = yyDollar[2].exprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1037:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL OrderBy
//line sql.y:5234
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1038:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderBy
//line sql.y:5238
		{
			yyLOCAL = yyDollar[1].orderByUnion()
		}
		yyVAL.union = yyLOCAL
	case 1039:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL OrderBy
//line sql.y:5244
		{
			yyLOCAL = yyDollar[3].orderByUnion()
		}
		yyVAL.union = yyLOCAL
	case 1040:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderBy
//line sql.y:5250
		{
			yyLOCAL = OrderBy{yyDollar[1].orderUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1041:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5254
		{
			yySLICE := (*OrderBy)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].orderUnion())
		}
	case 1042:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Order
//line sql.y:5260
		{
			yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1043:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL OrderDirection
//line sql.y:5265
		{
			yyLOCAL = AscOrder
		}
		yyVAL.union = yyLOCAL
	case 1044:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderDirection
//line sql.y:5269
		{
			yyLOCAL = AscOrder
		}
		yyVAL.union = yyLOCAL
	case 1045:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL OrderDirection
//line sql.y:5273
		{
			yyLOCAL = DescOrder
		}
		yyVAL.union = yyLOCAL
	case 1046:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Limit
//line sql.y:5278
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1047:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Limit
//line sql.y:5282
		{
			yyLOCAL = yyDollar[1].limitUnion()
		}
		yyVAL.union = yyLOCAL
	case 1048:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Limit
//line sql.y:5288
		{
			yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1049:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Limit
//line sql.y:5292
		{
			yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1050:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Limit
//line sql.y:5296
		{
			yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1051:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:5301
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1052:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:5305
		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1053:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:5309
		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1054:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:5313
		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1055:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []AlterOption
//line sql.y:5317
		{
			yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1056:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5324
		{
			yyLOCAL = &LockOption{Type: DefaultType}
		}
		yyVAL.union = yyLOCAL
	case 1057:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5328
		{
			yyLOCAL = &LockOption{Type: NoneType}
		}
		yyVAL.union = yyLOCAL
	case 1058:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5332
		{
			yyLOCAL = &LockOption{Type: SharedType}
		}
		yyVAL.union = yyLOCAL
	case 1059:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5336
		{
			yyLOCAL = &LockOption{Type: ExclusiveType}
		}
		yyVAL.union = yyLOCAL
	case 1060:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5342
		{
			yyLOCAL = AlgorithmValue(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 1061:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5346
		{
			yyLOCAL = AlgorithmValue(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 1062:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL AlterOption
//line sql.y:5350
		{
			yyLOCAL = AlgorithmValue(yyDollar[3].str)
		}
		yyVAL.union = yyLOCAL
	case 1063:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5355
		{
			yyVAL.str = ""
		}
	case 1064:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5359
		{
			yyVAL.str = string(yyDollar[3].str)
		}
	case 1065:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5363
		{
			yyVAL.str = string(yyDollar[3].str)
		}
	case 1066:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5367
		{
			yyVAL.str = string(yyDollar[3].str)
		}
	case 1067:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5372
		{
			yyVAL.str = ""
		}
	case 1068:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5376
		{
			yyVAL.str = yyDollar[3].str
		}
	case 1069:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5382
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1070:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5386
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1071:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5391
		{
			yyVAL.str = ""
		}
	case 1072:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:5395
		{
			yyVAL.str = yyDollar[2].str
		}
	case 1073:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5400
		{
			yyVAL.str = "cascaded"
		}
	case 1074:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5404
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1075:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5408
		{
			yyVAL.str = string(yyDollar[1].str)
		}
	case 1076:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL *Definer
//line sql.y:5413
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1077:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Definer
//line sql.y:5417
		{
			yyLOCAL = yyDollar[3].definerUnion()
		}
		yyVAL.union = yyLOCAL
	case 1078:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Definer
//line sql.y:5423
		{
			yyLOCAL = &Definer{
				Name: string(yyDollar[1].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 1079:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *Definer
//line sql.y:5429
		{
			yyLOCAL = &Definer{
				Name: string(yyDollar[1].str),
			}
		}
		yyVAL.union = yyLOCAL
	case 1080:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Definer
//line sql.y:5435
		{
			yyLOCAL = &Definer{
				Name:    yyDollar[1].str,
				Address: yyDollar[2].str,
			}
		}
		yyVAL.union = yyLOCAL
	case 1081:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5444
		{
			yyVAL.str = encodeSQLString(yyDollar[1].str)
		}
	case 1082:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5448
		{
			yyVAL.str = formatIdentifier(yyDollar[1].str)
		}
	case 1083:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5453
		{
			yyVAL.str = ""
		}
	case 1084:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5457
		{
			yyVAL.str = formatAddress(yyDollar[1].str)
		}
	case 1085:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL Lock
//line sql.y:5463
		{
			yyLOCAL = ForUpdateLock
		}
		yyVAL.union = yyLOCAL
	case 1086:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL Lock
//line sql.y:5467
		{
			yyLOCAL = ShareModeLock
		}
		yyVAL.union = yyLOCAL
	case 1087:
		yyDollar = yyS[yypt-9 : yypt+1]
		var yyLOCAL *SelectInto
//line sql.y:5473
		{
			yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str}
		}
		yyVAL.union = yyLOCAL
	case 1088:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SelectInto
//line sql.y:5477
		{
			yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""}
		}
		yyVAL.union = yyLOCAL
	case 1089:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *SelectInto
//line sql.y:5481
		{
			yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""}
		}
		yyVAL.union = yyLOCAL
	case 1090:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5486
		{
			yyVAL.str = ""
		}
	case 1091:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5490
		{
			yyVAL.str = " format csv" + yyDollar[3].str
		}
	case 1092:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5494
		{
			yyVAL.str = " format text" + yyDollar[3].str
		}
	case 1093:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5499
		{
			yyVAL.str = ""
		}
	case 1094:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5503
		{
			yyVAL.str = " header"
		}
	case 1095:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5508
		{
			yyVAL.str = ""
		}
	case 1096:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5512
		{
			yyVAL.str = " manifest on"
		}
	case 1097:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5516
		{
			yyVAL.str = " manifest off"
		}
	case 1098:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5521
		{
			yyVAL.str = ""
		}
	case 1099:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5525
		{
			yyVAL.str = " overwrite on"
		}
	case 1100:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5529
		{
			yyVAL.str = " overwrite off"
		}
	case 1101:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5535
		{
			yyVAL.str = yyDollar[1].str + yyDollar[2].str
		}
	case 1102:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5540
		{
			yyVAL.str = ""
		}
	case 1103:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5544
		{
			yyVAL.str = " lines" + yyDollar[2].str
		}
	case 1104:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5550
		{
			yyVAL.str = yyDollar[1].str
		}
	case 1105:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5554
		{
			yyVAL.str = yyDollar[1].str + yyDollar[2].str
		}
	case 1106:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5560
		{
			yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str)
		}
	case 1107:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5564
		{
			yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
		}
	case 1108:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5569
		{
			yyVAL.str = ""
		}
	case 1109:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5573
		{
			yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str
		}
	case 1110:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5579
		{
			yyVAL.str = yyDollar[1].str
		}
	case 1111:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5583
		{
			yyVAL.str = yyDollar[1].str + yyDollar[2].str
		}
	case 1112:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5589
		{
			yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
		}
	case 1113:
		yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:5593
		{
			yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str)
		}
	case 1114:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5597
		{
			yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str)
		}
	case 1115:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5602
		{
			yyVAL.str = ""
		}
	case 1116:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5606
		{
			yyVAL.str = " optionally"
		}
	case 1117:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *Insert
//line sql.y:5619
		{
			yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1118:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL *Insert
//line sql.y:5623
		{
			yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1119:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL *Insert
//line sql.y:5627
		{
			yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1120:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Insert
//line sql.y:5631
		{
			yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1121:
		yyDollar = yyS[yypt-4 : yypt+1]
		var yyLOCAL *Insert
//line sql.y:5635
		{
			yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1122:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Columns
//line sql.y:5641
		{
			yyLOCAL = Columns{yyDollar[1].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1123:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL Columns
//line sql.y:5645
		{
			yyLOCAL = Columns{yyDollar[3].colIdent}
		}
		yyVAL.union = yyLOCAL
	case 1124:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5649
		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].colIdent)
		}
	case 1125:
		yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:5653
		{
			yySLICE := (*Columns)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[5].colIdent)
		}
	case 1126:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL UpdateExprs
//line sql.y:5658
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1127:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL UpdateExprs
//line sql.y:5662
		{
			yyLOCAL = yyDollar[5].updateExprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 1128:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Values
//line sql.y:5668
		{
			yyLOCAL = Values{yyDollar[1].valTupleUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1129:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5672
		{
			yySLICE := (*Values)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion())
		}
	case 1130:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL ValTuple
//line sql.y:5678
		{
			yyLOCAL = yyDollar[1].valTupleUnion()
		}
		yyVAL.union = yyLOCAL
	case 1131:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL ValTuple
//line sql.y:5682
		{
			yyLOCAL = ValTuple{}
		}
		yyVAL.union = yyLOCAL
	case 1132:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL ValTuple
//line sql.y:5688
		{
			yyLOCAL = ValTuple(yyDollar[2].exprsUnion())
		}
		yyVAL.union = yyLOCAL
	case 1133:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5693
		{
			if len(yyDollar[1].valTupleUnion()) == 1 {
				yyLOCAL = yyDollar[1].valTupleUnion()[0]
			} else {
				yyLOCAL = yyDollar[1].valTupleUnion()
			}
		}
		yyVAL.union = yyLOCAL
	case 1134:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL UpdateExprs
//line sql.y:5703
		{
			yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1135:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5707
		{
			yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion())
		}
	case 1136:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *UpdateExpr
//line sql.y:5713
		{
			yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1137:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL SetExprs
//line sql.y:5719
		{
			yyLOCAL = SetExprs{yyDollar[1].setExprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1138:
		yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:5723
		{
			yySLICE := (*SetExprs)(yyIaddr(yyVAL.union))
			*yySLICE = append(*yySLICE, yyDollar[3].setExprUnion())
		}
	case 1139:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr
//line sql.y:5729
		{
			yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")}
		}
		yyVAL.union = yyLOCAL
	case 1140:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr
//line sql.y:5733
		{
			yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")}
		}
		yyVAL.union = yyLOCAL
	case 1141:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr
//line sql.y:5737
		{
			yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1142:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL *SetExpr
//line sql.y:5741
		{
			yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1143:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *SetExpr
//line sql.y:5745
		{
			yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion()
			yyLOCAL = yyDollar[2].setExprUnion()
		}
		yyVAL.union = yyLOCAL
	case 1145:
		yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:5753
		{
			yyVAL.str = "charset"
		}
	case 1148:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5763
		{
			yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String())
		}
		yyVAL.union = yyLOCAL
	case 1149:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5767
		{
			yyLOCAL = NewStrLiteral(yyDollar[1].str)
		}
		yyVAL.union = yyLOCAL
	case 1150:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Expr
//line sql.y:5771
		{
			yyLOCAL = &Default{}
		}
		yyVAL.union = yyLOCAL
	case 1153:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:5780
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1154:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL bool
//line sql.y:5782
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1155:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:5785
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1156:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL bool
//line sql.y:5787
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1157:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL bool
//line sql.y:5790
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1158:
		yyDollar = yyS[yypt-3 : yypt+1]
		var yyLOCAL bool
//line sql.y:5792
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1159:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Ignore
//line sql.y:5795
		{
			yyLOCAL = false
		}
		yyVAL.union = yyLOCAL
	case 1160:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Ignore
//line sql.y:5797
		{
			yyLOCAL = true
		}
		yyVAL.union = yyLOCAL
	case 1161:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5800
		{
			yyVAL.empty = struct{}{}
		}
	case 1162:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5802
		{
			yyVAL.empty = struct{}{}
		}
	case 1163:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5804
		{
			yyVAL.empty = struct{}{}
		}
	case 1164:
		yyDollar = yyS[yypt-5 : yypt+1]
		var yyLOCAL Statement
//line sql.y:5808
		{
			yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1165:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL Exprs
//line sql.y:5813
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1166:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL Exprs
//line sql.y:5817
		{
			yyLOCAL = yyDollar[1].exprsUnion()
		}
		yyVAL.union = yyLOCAL
	case 1167:
		yyDollar = yyS[yypt-0 : yypt+1]
		var yyLOCAL []*IndexOption
//line sql.y:5822
		{
			yyLOCAL = nil
		}
		yyVAL.union = yyLOCAL
	case 1168:
		yyDollar = yyS[yypt-1 : yypt+1]
		var yyLOCAL []*IndexOption
//line sql.y:5824
		{
			yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
		}
		yyVAL.union = yyLOCAL
	case 1169:
		yyDollar = yyS[yypt-2 : yypt+1]
		var yyLOCAL *IndexOption
//line sql.y:5828
		{
			yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())}
		}
		yyVAL.union = yyLOCAL
	case 1170:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5834
		{
			yyVAL.colIdent = yyDollar[1].colIdent
		}
	case 1171:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5838
		{
			yyVAL.colIdent = NewColIdent(string(yyDollar[1].str))
		}
	case 1173:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5845
		{
			yyVAL.colIdent = NewColIdent(string(yyDollar[1].str))
		}
	case 1174:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5851
		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String()))
		}
	case 1175:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5855
		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str))
		}
	case 1176:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:5861
		{
			yyVAL.tableIdent = NewTableIdent("")
		}
	case 1177:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5865
		{
			yyVAL.tableIdent = yyDollar[1].tableIdent
		}
	case 1179:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:5872
		{
			yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str))
		}
	case 1637:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:6354
		{
			if incNesting(yylex) {
				yylex.Error("max nesting level reached")
				return 1
			}
		}
	case 1638:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:6363
		{
			decNesting(yylex)
		}
	case 1639:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:6368
		{
			skipToEnd(yylex)
		}
	case 1640:
		yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:6373
		{
			skipToEnd(yylex)
		}
	case 1641:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:6377
		{
			skipToEnd(yylex)
		}
	case 1642:
		yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:6381
		{
			skipToEnd(yylex)
		}
	}
	goto yystack /* stack new state and value */
}
