// Code generated by goyacc. DO NOT EDIT.
// GENERATED FILE DO NOT EDIT
// Code generated by goyacc -p sql -o sql.go.tmp sql-gen.y. DO NOT EDIT.

//line sql-gen.y:24
package parser

import (
	"fmt"
	__yyfmt__ "fmt"
	"go/constant"
	"strings"

	"github.com/auxten/postgresql-parser/pkg/sql/lex"
	"github.com/auxten/postgresql-parser/pkg/sql/privilege"
	"github.com/auxten/postgresql-parser/pkg/sql/sem/tree"
	"github.com/auxten/postgresql-parser/pkg/sql/types"
	"github.com/cockroachdb/errors"
)

//line sql-gen.y:24

const MaxUint = ^uint(0)

const MaxInt = int(MaxUint >> 1)

func unimplemented(sqllex sqlLexer, feature string) int {
	sqllex.(*lexer).Unimplemented(feature)
	return 1
}
func purposelyUnimplemented(sqllex sqlLexer, feature string, reason string) int {
	sqllex.(*lexer).PurposelyUnimplemented(feature, reason)
	return 1
}

func setErr(sqllex sqlLexer, err error) int {
	sqllex.(*lexer).setErr(err)
	return 1
}

func unimplementedWithIssue(sqllex sqlLexer, issue int) int {
	sqllex.(*lexer).UnimplementedWithIssue(issue)
	return 1
}

func unimplementedWithIssueDetail(sqllex sqlLexer, issue int, detail string) int {
	sqllex.(*lexer).UnimplementedWithIssueDetail(issue, detail)
	return 1
}

//line sql-gen.y:71

type sqlSymUnion struct {
	val interface{}
}

func (u *sqlSymUnion) numVal() *tree.NumVal {
	return u.val.(*tree.NumVal)
}
func (u *sqlSymUnion) strVal() *tree.StrVal {
	if stmt, ok := u.val.(*tree.StrVal); ok {
		return stmt
	}
	return nil
}
func (u *sqlSymUnion) placeholder() *tree.Placeholder {
	return u.val.(*tree.Placeholder)
}
func (u *sqlSymUnion) auditMode() tree.AuditMode {
	return u.val.(tree.AuditMode)
}
func (u *sqlSymUnion) bool() bool {
	return u.val.(bool)
}
func (u *sqlSymUnion) strPtr() *string {
	return u.val.(*string)
}
func (u *sqlSymUnion) strs() []string {
	return u.val.([]string)
}
func (u *sqlSymUnion) newTableIndexName() *tree.TableIndexName {
	tn := u.val.(tree.TableIndexName)
	return &tn
}
func (u *sqlSymUnion) tableIndexName() tree.TableIndexName {
	return u.val.(tree.TableIndexName)
}
func (u *sqlSymUnion) newTableIndexNames() tree.TableIndexNames {
	return u.val.(tree.TableIndexNames)
}
func (u *sqlSymUnion) shardedIndexDef() *tree.ShardedIndexDef {
	return u.val.(*tree.ShardedIndexDef)
}
func (u *sqlSymUnion) nameList() tree.NameList {
	return u.val.(tree.NameList)
}
func (u *sqlSymUnion) unresolvedName() *tree.UnresolvedName {
	return u.val.(*tree.UnresolvedName)
}
func (u *sqlSymUnion) unresolvedObjectName() *tree.UnresolvedObjectName {
	return u.val.(*tree.UnresolvedObjectName)
}
func (u *sqlSymUnion) functionReference() tree.FunctionReference {
	return u.val.(tree.FunctionReference)
}
func (u *sqlSymUnion) tablePatterns() tree.TablePatterns {
	return u.val.(tree.TablePatterns)
}
func (u *sqlSymUnion) tableNames() tree.TableNames {
	return u.val.(tree.TableNames)
}
func (u *sqlSymUnion) indexFlags() *tree.IndexFlags {
	return u.val.(*tree.IndexFlags)
}
func (u *sqlSymUnion) arraySubscript() *tree.ArraySubscript {
	return u.val.(*tree.ArraySubscript)
}
func (u *sqlSymUnion) arraySubscripts() tree.ArraySubscripts {
	if as, ok := u.val.(tree.ArraySubscripts); ok {
		return as
	}
	return nil
}
func (u *sqlSymUnion) stmt() tree.Statement {
	if stmt, ok := u.val.(tree.Statement); ok {
		return stmt
	}
	return nil
}
func (u *sqlSymUnion) cte() *tree.CTE {
	if cte, ok := u.val.(*tree.CTE); ok {
		return cte
	}
	return nil
}
func (u *sqlSymUnion) ctes() []*tree.CTE {
	return u.val.([]*tree.CTE)
}
func (u *sqlSymUnion) with() *tree.With {
	if with, ok := u.val.(*tree.With); ok {
		return with
	}
	return nil
}
func (u *sqlSymUnion) slct() *tree.Select {
	return u.val.(*tree.Select)
}
func (u *sqlSymUnion) selectStmt() tree.SelectStatement {
	return u.val.(tree.SelectStatement)
}
func (u *sqlSymUnion) colDef() *tree.ColumnTableDef {
	return u.val.(*tree.ColumnTableDef)
}
func (u *sqlSymUnion) constraintDef() tree.ConstraintTableDef {
	return u.val.(tree.ConstraintTableDef)
}
func (u *sqlSymUnion) tblDef() tree.TableDef {
	return u.val.(tree.TableDef)
}
func (u *sqlSymUnion) tblDefs() tree.TableDefs {
	return u.val.(tree.TableDefs)
}
func (u *sqlSymUnion) colQual() tree.NamedColumnQualification {
	return u.val.(tree.NamedColumnQualification)
}
func (u *sqlSymUnion) colQualElem() tree.ColumnQualification {
	return u.val.(tree.ColumnQualification)
}
func (u *sqlSymUnion) colQuals() []tree.NamedColumnQualification {
	return u.val.([]tree.NamedColumnQualification)
}
func (u *sqlSymUnion) storageParam() tree.StorageParam {
	return u.val.(tree.StorageParam)
}
func (u *sqlSymUnion) storageParams() []tree.StorageParam {
	if params, ok := u.val.([]tree.StorageParam); ok {
		return params
	}
	return nil
}
func (u *sqlSymUnion) persistenceType() bool {
	return u.val.(bool)
}
func (u *sqlSymUnion) colType() *types.T {
	if colType, ok := u.val.(*types.T); ok && colType != nil {
		return colType
	}
	return nil
}
func (u *sqlSymUnion) tableRefCols() []tree.ColumnID {
	if refCols, ok := u.val.([]tree.ColumnID); ok {
		return refCols
	}
	return nil
}
func (u *sqlSymUnion) colTypes() []*types.T {
	return u.val.([]*types.T)
}
func (u *sqlSymUnion) int32() int32 {
	return u.val.(int32)
}
func (u *sqlSymUnion) int64() int64 {
	return u.val.(int64)
}
func (u *sqlSymUnion) seqOpt() tree.SequenceOption {
	return u.val.(tree.SequenceOption)
}
func (u *sqlSymUnion) seqOpts() []tree.SequenceOption {
	return u.val.([]tree.SequenceOption)
}
func (u *sqlSymUnion) expr() tree.Expr {
	if expr, ok := u.val.(tree.Expr); ok {
		return expr
	}
	return nil
}
func (u *sqlSymUnion) exprs() tree.Exprs {
	return u.val.(tree.Exprs)
}
func (u *sqlSymUnion) selExpr() tree.SelectExpr {
	return u.val.(tree.SelectExpr)
}
func (u *sqlSymUnion) selExprs() tree.SelectExprs {
	return u.val.(tree.SelectExprs)
}
func (u *sqlSymUnion) retClause() tree.ReturningClause {
	return u.val.(tree.ReturningClause)
}
func (u *sqlSymUnion) aliasClause() tree.AliasClause {
	return u.val.(tree.AliasClause)
}
func (u *sqlSymUnion) asOfClause() tree.AsOfClause {
	return u.val.(tree.AsOfClause)
}
func (u *sqlSymUnion) tblExpr() tree.TableExpr {
	return u.val.(tree.TableExpr)
}
func (u *sqlSymUnion) tblExprs() tree.TableExprs {
	return u.val.(tree.TableExprs)
}
func (u *sqlSymUnion) from() tree.From {
	return u.val.(tree.From)
}
func (u *sqlSymUnion) int32s() []int32 {
	return u.val.([]int32)
}
func (u *sqlSymUnion) joinCond() tree.JoinCond {
	return u.val.(tree.JoinCond)
}
func (u *sqlSymUnion) when() *tree.When {
	return u.val.(*tree.When)
}
func (u *sqlSymUnion) whens() []*tree.When {
	return u.val.([]*tree.When)
}
func (u *sqlSymUnion) lockingClause() tree.LockingClause {
	return u.val.(tree.LockingClause)
}
func (u *sqlSymUnion) lockingItem() *tree.LockingItem {
	return u.val.(*tree.LockingItem)
}
func (u *sqlSymUnion) lockingStrength() tree.LockingStrength {
	return u.val.(tree.LockingStrength)
}
func (u *sqlSymUnion) lockingWaitPolicy() tree.LockingWaitPolicy {
	return u.val.(tree.LockingWaitPolicy)
}
func (u *sqlSymUnion) updateExpr() *tree.UpdateExpr {
	return u.val.(*tree.UpdateExpr)
}
func (u *sqlSymUnion) updateExprs() tree.UpdateExprs {
	return u.val.(tree.UpdateExprs)
}
func (u *sqlSymUnion) limit() *tree.Limit {
	return u.val.(*tree.Limit)
}
func (u *sqlSymUnion) targetList() tree.TargetList {
	return u.val.(tree.TargetList)
}
func (u *sqlSymUnion) targetListPtr() *tree.TargetList {
	return u.val.(*tree.TargetList)
}
func (u *sqlSymUnion) privilegeType() privilege.Kind {
	return u.val.(privilege.Kind)
}
func (u *sqlSymUnion) privilegeList() privilege.List {
	return u.val.(privilege.List)
}
func (u *sqlSymUnion) onConflict() *tree.OnConflict {
	return u.val.(*tree.OnConflict)
}
func (u *sqlSymUnion) orderBy() tree.OrderBy {
	return u.val.(tree.OrderBy)
}
func (u *sqlSymUnion) order() *tree.Order {
	return u.val.(*tree.Order)
}
func (u *sqlSymUnion) orders() []*tree.Order {
	return u.val.([]*tree.Order)
}
func (u *sqlSymUnion) groupBy() tree.GroupBy {
	return u.val.(tree.GroupBy)
}
func (u *sqlSymUnion) windowFrame() *tree.WindowFrame {
	return u.val.(*tree.WindowFrame)
}
func (u *sqlSymUnion) windowFrameBounds() tree.WindowFrameBounds {
	return u.val.(tree.WindowFrameBounds)
}
func (u *sqlSymUnion) windowFrameBound() *tree.WindowFrameBound {
	return u.val.(*tree.WindowFrameBound)
}
func (u *sqlSymUnion) windowFrameExclusion() tree.WindowFrameExclusion {
	return u.val.(tree.WindowFrameExclusion)
}
func (u *sqlSymUnion) distinctOn() tree.DistinctOn {
	return u.val.(tree.DistinctOn)
}
func (u *sqlSymUnion) dir() tree.Direction {
	return u.val.(tree.Direction)
}
func (u *sqlSymUnion) nullsOrder() tree.NullsOrder {
	return u.val.(tree.NullsOrder)
}
func (u *sqlSymUnion) alterTableCmd() tree.AlterTableCmd {
	return u.val.(tree.AlterTableCmd)
}
func (u *sqlSymUnion) alterTableCmds() tree.AlterTableCmds {
	return u.val.(tree.AlterTableCmds)
}
func (u *sqlSymUnion) alterIndexCmd() tree.AlterIndexCmd {
	return u.val.(tree.AlterIndexCmd)
}
func (u *sqlSymUnion) alterIndexCmds() tree.AlterIndexCmds {
	return u.val.(tree.AlterIndexCmds)
}
func (u *sqlSymUnion) isoLevel() tree.IsolationLevel {
	return u.val.(tree.IsolationLevel)
}
func (u *sqlSymUnion) userPriority() tree.UserPriority {
	return u.val.(tree.UserPriority)
}
func (u *sqlSymUnion) readWriteMode() tree.ReadWriteMode {
	return u.val.(tree.ReadWriteMode)
}
func (u *sqlSymUnion) idxElem() tree.IndexElem {
	return u.val.(tree.IndexElem)
}
func (u *sqlSymUnion) idxElems() tree.IndexElemList {
	return u.val.(tree.IndexElemList)
}
func (u *sqlSymUnion) dropBehavior() tree.DropBehavior {
	return u.val.(tree.DropBehavior)
}
func (u *sqlSymUnion) validationBehavior() tree.ValidationBehavior {
	return u.val.(tree.ValidationBehavior)
}
func (u *sqlSymUnion) interleave() *tree.InterleaveDef {
	return u.val.(*tree.InterleaveDef)
}
func (u *sqlSymUnion) partitionBy() *tree.PartitionBy {
	return u.val.(*tree.PartitionBy)
}
func (u *sqlSymUnion) createTableOnCommitSetting() tree.CreateTableOnCommitSetting {
	return u.val.(tree.CreateTableOnCommitSetting)
}
func (u *sqlSymUnion) listPartition() tree.ListPartition {
	return u.val.(tree.ListPartition)
}
func (u *sqlSymUnion) listPartitions() []tree.ListPartition {
	return u.val.([]tree.ListPartition)
}
func (u *sqlSymUnion) rangePartition() tree.RangePartition {
	return u.val.(tree.RangePartition)
}
func (u *sqlSymUnion) rangePartitions() []tree.RangePartition {
	return u.val.([]tree.RangePartition)
}
func (u *sqlSymUnion) setZoneConfig() *tree.SetZoneConfig {
	return u.val.(*tree.SetZoneConfig)
}
func (u *sqlSymUnion) tuples() []*tree.Tuple {
	return u.val.([]*tree.Tuple)
}
func (u *sqlSymUnion) tuple() *tree.Tuple {
	return u.val.(*tree.Tuple)
}
func (u *sqlSymUnion) windowDef() *tree.WindowDef {
	return u.val.(*tree.WindowDef)
}
func (u *sqlSymUnion) window() tree.Window {
	return u.val.(tree.Window)
}
func (u *sqlSymUnion) op() tree.Operator {
	return u.val.(tree.Operator)
}
func (u *sqlSymUnion) cmpOp() tree.ComparisonOperator {
	return u.val.(tree.ComparisonOperator)
}
func (u *sqlSymUnion) intervalTypeMetadata() types.IntervalTypeMetadata {
	return u.val.(types.IntervalTypeMetadata)
}
func (u *sqlSymUnion) kvOption() tree.KVOption {
	return u.val.(tree.KVOption)
}
func (u *sqlSymUnion) kvOptions() []tree.KVOption {
	if colType, ok := u.val.([]tree.KVOption); ok {
		return colType
	}
	return nil
}
func (u *sqlSymUnion) transactionModes() tree.TransactionModes {
	return u.val.(tree.TransactionModes)
}
func (u *sqlSymUnion) compositeKeyMatchMethod() tree.CompositeKeyMatchMethod {
	return u.val.(tree.CompositeKeyMatchMethod)
}
func (u *sqlSymUnion) referenceAction() tree.ReferenceAction {
	return u.val.(tree.ReferenceAction)
}
func (u *sqlSymUnion) referenceActions() tree.ReferenceActions {
	return u.val.(tree.ReferenceActions)
}
func (u *sqlSymUnion) createStatsOptions() *tree.CreateStatsOptions {
	return u.val.(*tree.CreateStatsOptions)
}
func (u *sqlSymUnion) scrubOptions() tree.ScrubOptions {
	return u.val.(tree.ScrubOptions)
}
func (u *sqlSymUnion) scrubOption() tree.ScrubOption {
	return u.val.(tree.ScrubOption)
}
func (u *sqlSymUnion) resolvableFuncRefFromName() tree.ResolvableFunctionReference {
	return tree.ResolvableFunctionReference{FunctionReference: u.unresolvedName()}
}
func (u *sqlSymUnion) rowsFromExpr() *tree.RowsFromExpr {
	return u.val.(*tree.RowsFromExpr)
}
func (u *sqlSymUnion) partitionedBackup() tree.PartitionedBackup {
	return u.val.(tree.PartitionedBackup)
}
func (u *sqlSymUnion) partitionedBackups() []tree.PartitionedBackup {
	return u.val.([]tree.PartitionedBackup)
}
func newNameFromStr(s string) *tree.Name {
	return (*tree.Name)(&s)
}

//line sql-gen.y:629
type sqlSymType struct {
	yys   int
	id    int32
	pos   int32
	str   string
	union sqlSymUnion
}

const IDENT = lex.IDENT
const SCONST = lex.SCONST
const BCONST = lex.BCONST
const BITCONST = lex.BITCONST
const ICONST = lex.ICONST
const FCONST = lex.FCONST
const PLACEHOLDER = lex.PLACEHOLDER
const TYPECAST = lex.TYPECAST
const TYPEANNOTATE = lex.TYPEANNOTATE
const DOT_DOT = lex.DOT_DOT
const LESS_EQUALS = lex.LESS_EQUALS
const GREATER_EQUALS = lex.GREATER_EQUALS
const NOT_EQUALS = lex.NOT_EQUALS
const NOT_REGMATCH = lex.NOT_REGMATCH
const REGIMATCH = lex.REGIMATCH
const NOT_REGIMATCH = lex.NOT_REGIMATCH
const ERROR = lex.ERROR
const ABORT = lex.ABORT
const ACTION = lex.ACTION
const ADD = lex.ADD
const ADMIN = lex.ADMIN
const AGGREGATE = lex.AGGREGATE
const ALL = lex.ALL
const ALTER = lex.ALTER
const ANALYSE = lex.ANALYSE
const ANALYZE = lex.ANALYZE
const AND = lex.AND
const AND_AND = lex.AND_AND
const ANY = lex.ANY
const ANNOTATE_TYPE = lex.ANNOTATE_TYPE
const ARRAY = lex.ARRAY
const AS = lex.AS
const ASC = lex.ASC
const ASYMMETRIC = lex.ASYMMETRIC
const AT = lex.AT
const AUTHORIZATION = lex.AUTHORIZATION
const AUTOMATIC = lex.AUTOMATIC
const BACKUP = lex.BACKUP
const BEGIN = lex.BEGIN
const BETWEEN = lex.BETWEEN
const BIGINT = lex.BIGINT
const BIGSERIAL = lex.BIGSERIAL
const BIT = lex.BIT
const BUCKET_COUNT = lex.BUCKET_COUNT
const BLOB = lex.BLOB
const BOOL = lex.BOOL
const BOOLEAN = lex.BOOLEAN
const BOTH = lex.BOTH
const BUNDLE = lex.BUNDLE
const BY = lex.BY
const BYTEA = lex.BYTEA
const BYTES = lex.BYTES
const CACHE = lex.CACHE
const CANCEL = lex.CANCEL
const CASCADE = lex.CASCADE
const CASE = lex.CASE
const CAST = lex.CAST
const CHANGEFEED = lex.CHANGEFEED
const CHAR = lex.CHAR
const CHARACTER = lex.CHARACTER
const CHARACTERISTICS = lex.CHARACTERISTICS
const CHECK = lex.CHECK
const CLUSTER = lex.CLUSTER
const COALESCE = lex.COALESCE
const COLLATE = lex.COLLATE
const COLLATION = lex.COLLATION
const COLUMN = lex.COLUMN
const COLUMNS = lex.COLUMNS
const COMMENT = lex.COMMENT
const COMMIT = lex.COMMIT
const COMMITTED = lex.COMMITTED
const COMPACT = lex.COMPACT
const COMPLETE = lex.COMPLETE
const CONCAT = lex.CONCAT
const CONCURRENTLY = lex.CONCURRENTLY
const CONFIGURATION = lex.CONFIGURATION
const CONFIGURATIONS = lex.CONFIGURATIONS
const CONFIGURE = lex.CONFIGURE
const CONFLICT = lex.CONFLICT
const CONSTRAINT = lex.CONSTRAINT
const CONSTRAINTS = lex.CONSTRAINTS
const CONTAINS = lex.CONTAINS
const CONVERSION = lex.CONVERSION
const COPY = lex.COPY
const COVERING = lex.COVERING
const CREATE = lex.CREATE
const CREATEROLE = lex.CREATEROLE
const CROSS = lex.CROSS
const CUBE = lex.CUBE
const CURRENT = lex.CURRENT
const CURRENT_CATALOG = lex.CURRENT_CATALOG
const CURRENT_DATE = lex.CURRENT_DATE
const CURRENT_SCHEMA = lex.CURRENT_SCHEMA
const CURRENT_ROLE = lex.CURRENT_ROLE
const CURRENT_TIME = lex.CURRENT_TIME
const CURRENT_TIMESTAMP = lex.CURRENT_TIMESTAMP
const CURRENT_USER = lex.CURRENT_USER
const CYCLE = lex.CYCLE
const DATA = lex.DATA
const DATABASE = lex.DATABASE
const DATABASES = lex.DATABASES
const DATE = lex.DATE
const DAY = lex.DAY
const DEC = lex.DEC
const DECIMAL = lex.DECIMAL
const DEFAULT = lex.DEFAULT
const DEALLOCATE = lex.DEALLOCATE
const DEFERRABLE = lex.DEFERRABLE
const DEFERRED = lex.DEFERRED
const DELETE = lex.DELETE
const DESC = lex.DESC
const DISCARD = lex.DISCARD
const DISTINCT = lex.DISTINCT
const DO = lex.DO
const DOMAIN = lex.DOMAIN
const DOUBLE = lex.DOUBLE
const DROP = lex.DROP
const ELSE = lex.ELSE
const ENCODING = lex.ENCODING
const END = lex.END
const ENUM = lex.ENUM
const ESCAPE = lex.ESCAPE
const EXCEPT = lex.EXCEPT
const EXCLUDE = lex.EXCLUDE
const EXISTS = lex.EXISTS
const EXECUTE = lex.EXECUTE
const EXPERIMENTAL = lex.EXPERIMENTAL
const EXPERIMENTAL_FINGERPRINTS = lex.EXPERIMENTAL_FINGERPRINTS
const EXPERIMENTAL_REPLICA = lex.EXPERIMENTAL_REPLICA
const EXPERIMENTAL_AUDIT = lex.EXPERIMENTAL_AUDIT
const EXPIRATION = lex.EXPIRATION
const EXPLAIN = lex.EXPLAIN
const EXPORT = lex.EXPORT
const EXTENSION = lex.EXTENSION
const EXTRACT = lex.EXTRACT
const EXTRACT_DURATION = lex.EXTRACT_DURATION
const FALSE = lex.FALSE
const FAMILY = lex.FAMILY
const FETCH = lex.FETCH
const FETCHVAL = lex.FETCHVAL
const FETCHTEXT = lex.FETCHTEXT
const FETCHVAL_PATH = lex.FETCHVAL_PATH
const FETCHTEXT_PATH = lex.FETCHTEXT_PATH
const FILES = lex.FILES
const FILTER = lex.FILTER
const FIRST = lex.FIRST
const FLOAT = lex.FLOAT
const FLOAT4 = lex.FLOAT4
const FLOAT8 = lex.FLOAT8
const FLOORDIV = lex.FLOORDIV
const FOLLOWING = lex.FOLLOWING
const FOR = lex.FOR
const FORCE_INDEX = lex.FORCE_INDEX
const FOREIGN = lex.FOREIGN
const FROM = lex.FROM
const FULL = lex.FULL
const FUNCTION = lex.FUNCTION
const GLOBAL = lex.GLOBAL
const GRANT = lex.GRANT
const GRANTS = lex.GRANTS
const GREATEST = lex.GREATEST
const GROUP = lex.GROUP
const GROUPING = lex.GROUPING
const GROUPS = lex.GROUPS
const HAVING = lex.HAVING
const HASH = lex.HASH
const HIGH = lex.HIGH
const HISTOGRAM = lex.HISTOGRAM
const HOUR = lex.HOUR
const IF = lex.IF
const IFERROR = lex.IFERROR
const IFNULL = lex.IFNULL
const IGNORE_FOREIGN_KEYS = lex.IGNORE_FOREIGN_KEYS
const ILIKE = lex.ILIKE
const IMMEDIATE = lex.IMMEDIATE
const IMPORT = lex.IMPORT
const IN = lex.IN
const INCLUDE = lex.INCLUDE
const INCREMENT = lex.INCREMENT
const INCREMENTAL = lex.INCREMENTAL
const INET = lex.INET
const INET_CONTAINED_BY_OR_EQUALS = lex.INET_CONTAINED_BY_OR_EQUALS
const INET_CONTAINS_OR_EQUALS = lex.INET_CONTAINS_OR_EQUALS
const INDEX = lex.INDEX
const INDEXES = lex.INDEXES
const INJECT = lex.INJECT
const INTERLEAVE = lex.INTERLEAVE
const INITIALLY = lex.INITIALLY
const INNER = lex.INNER
const INSERT = lex.INSERT
const INT = lex.INT
const INT2VECTOR = lex.INT2VECTOR
const INT2 = lex.INT2
const INT4 = lex.INT4
const INT8 = lex.INT8
const INT64 = lex.INT64
const INTEGER = lex.INTEGER
const INTERSECT = lex.INTERSECT
const INTERVAL = lex.INTERVAL
const INTO = lex.INTO
const INVERTED = lex.INVERTED
const IS = lex.IS
const ISERROR = lex.ISERROR
const ISNULL = lex.ISNULL
const ISOLATION = lex.ISOLATION
const JOB = lex.JOB
const JOBS = lex.JOBS
const JOIN = lex.JOIN
const JSON = lex.JSON
const JSONB = lex.JSONB
const JSON_SOME_EXISTS = lex.JSON_SOME_EXISTS
const JSON_ALL_EXISTS = lex.JSON_ALL_EXISTS
const KEY = lex.KEY
const KEYS = lex.KEYS
const KV = lex.KV
const LANGUAGE = lex.LANGUAGE
const LAST = lex.LAST
const LATERAL = lex.LATERAL
const LC_CTYPE = lex.LC_CTYPE
const LC_COLLATE = lex.LC_COLLATE
const LEADING = lex.LEADING
const LEASE = lex.LEASE
const LEAST = lex.LEAST
const LEFT = lex.LEFT
const LESS = lex.LESS
const LEVEL = lex.LEVEL
const LIKE = lex.LIKE
const LIMIT = lex.LIMIT
const LIST = lex.LIST
const LOCAL = lex.LOCAL
const LOCALTIME = lex.LOCALTIME
const LOCALTIMESTAMP = lex.LOCALTIMESTAMP
const LOCKED = lex.LOCKED
const LOGIN = lex.LOGIN
const LOOKUP = lex.LOOKUP
const LOW = lex.LOW
const LSHIFT = lex.LSHIFT
const MATCH = lex.MATCH
const MATERIALIZED = lex.MATERIALIZED
const MERGE = lex.MERGE
const MINVALUE = lex.MINVALUE
const MAXVALUE = lex.MAXVALUE
const MINUTE = lex.MINUTE
const MONTH = lex.MONTH
const NAN = lex.NAN
const NAME = lex.NAME
const NAMES = lex.NAMES
const NATURAL = lex.NATURAL
const NEXT = lex.NEXT
const NO = lex.NO
const NOCREATEROLE = lex.NOCREATEROLE
const NOLOGIN = lex.NOLOGIN
const NO_INDEX_JOIN = lex.NO_INDEX_JOIN
const NONE = lex.NONE
const NORMAL = lex.NORMAL
const NOT = lex.NOT
const NOTHING = lex.NOTHING
const NOTNULL = lex.NOTNULL
const NOWAIT = lex.NOWAIT
const NULL = lex.NULL
const NULLIF = lex.NULLIF
const NULLS = lex.NULLS
const NUMERIC = lex.NUMERIC
const OF = lex.OF
const OFF = lex.OFF
const OFFSET = lex.OFFSET
const OID = lex.OID
const OIDS = lex.OIDS
const OIDVECTOR = lex.OIDVECTOR
const ON = lex.ON
const ONLY = lex.ONLY
const OPT = lex.OPT
const OPTION = lex.OPTION
const OPTIONS = lex.OPTIONS
const OR = lex.OR
const ORDER = lex.ORDER
const ORDINALITY = lex.ORDINALITY
const OTHERS = lex.OTHERS
const OUT = lex.OUT
const OUTER = lex.OUTER
const OVER = lex.OVER
const OVERLAPS = lex.OVERLAPS
const OVERLAY = lex.OVERLAY
const OWNED = lex.OWNED
const OPERATOR = lex.OPERATOR
const PARENT = lex.PARENT
const PARTIAL = lex.PARTIAL
const PARTITION = lex.PARTITION
const PARTITIONS = lex.PARTITIONS
const PASSWORD = lex.PASSWORD
const PAUSE = lex.PAUSE
const PHYSICAL = lex.PHYSICAL
const PLACING = lex.PLACING
const PLAN = lex.PLAN
const PLANS = lex.PLANS
const POSITION = lex.POSITION
const PRECEDING = lex.PRECEDING
const PRECISION = lex.PRECISION
const PREPARE = lex.PREPARE
const PRESERVE = lex.PRESERVE
const PRIMARY = lex.PRIMARY
const PRIORITY = lex.PRIORITY
const PROCEDURAL = lex.PROCEDURAL
const PUBLIC = lex.PUBLIC
const PUBLICATION = lex.PUBLICATION
const QUERIES = lex.QUERIES
const QUERY = lex.QUERY
const RANGE = lex.RANGE
const RANGES = lex.RANGES
const READ = lex.READ
const REAL = lex.REAL
const RECURSIVE = lex.RECURSIVE
const REF = lex.REF
const REFERENCES = lex.REFERENCES
const REGCLASS = lex.REGCLASS
const REGPROC = lex.REGPROC
const REGPROCEDURE = lex.REGPROCEDURE
const REGNAMESPACE = lex.REGNAMESPACE
const REGTYPE = lex.REGTYPE
const REINDEX = lex.REINDEX
const REMOVE_PATH = lex.REMOVE_PATH
const RENAME = lex.RENAME
const REPEATABLE = lex.REPEATABLE
const REPLACE = lex.REPLACE
const RELEASE = lex.RELEASE
const RESET = lex.RESET
const RESTORE = lex.RESTORE
const RESTRICT = lex.RESTRICT
const RESUME = lex.RESUME
const RETURNING = lex.RETURNING
const REVOKE = lex.REVOKE
const RIGHT = lex.RIGHT
const ROLE = lex.ROLE
const ROLES = lex.ROLES
const ROLLBACK = lex.ROLLBACK
const ROLLUP = lex.ROLLUP
const ROW = lex.ROW
const ROWS = lex.ROWS
const RSHIFT = lex.RSHIFT
const RULE = lex.RULE
const SAVEPOINT = lex.SAVEPOINT
const SCATTER = lex.SCATTER
const SCHEMA = lex.SCHEMA
const SCHEMAS = lex.SCHEMAS
const SCRUB = lex.SCRUB
const SEARCH = lex.SEARCH
const SECOND = lex.SECOND
const SELECT = lex.SELECT
const SEQUENCE = lex.SEQUENCE
const SEQUENCES = lex.SEQUENCES
const SERIAL = lex.SERIAL
const SERIAL2 = lex.SERIAL2
const SERIAL4 = lex.SERIAL4
const SERIAL8 = lex.SERIAL8
const SERIALIZABLE = lex.SERIALIZABLE
const SERVER = lex.SERVER
const SESSION = lex.SESSION
const SESSIONS = lex.SESSIONS
const SESSION_USER = lex.SESSION_USER
const SET = lex.SET
const SETTING = lex.SETTING
const SETTINGS = lex.SETTINGS
const SHARE = lex.SHARE
const SHOW = lex.SHOW
const SIMILAR = lex.SIMILAR
const SIMPLE = lex.SIMPLE
const SKIP = lex.SKIP
const SMALLINT = lex.SMALLINT
const SMALLSERIAL = lex.SMALLSERIAL
const SNAPSHOT = lex.SNAPSHOT
const SOME = lex.SOME
const SPLIT = lex.SPLIT
const SQL = lex.SQL
const START = lex.START
const STATISTICS = lex.STATISTICS
const STATUS = lex.STATUS
const STDIN = lex.STDIN
const STRICT = lex.STRICT
const STRING = lex.STRING
const STORE = lex.STORE
const STORED = lex.STORED
const STORING = lex.STORING
const SUBSTRING = lex.SUBSTRING
const SYMMETRIC = lex.SYMMETRIC
const SYNTAX = lex.SYNTAX
const SYSTEM = lex.SYSTEM
const SUBSCRIPTION = lex.SUBSCRIPTION
const TABLE = lex.TABLE
const TABLES = lex.TABLES
const TEMP = lex.TEMP
const TEMPLATE = lex.TEMPLATE
const TEMPORARY = lex.TEMPORARY
const TESTING_RELOCATE = lex.TESTING_RELOCATE
const EXPERIMENTAL_RELOCATE = lex.EXPERIMENTAL_RELOCATE
const TEXT = lex.TEXT
const THEN = lex.THEN
const TIES = lex.TIES
const TIME = lex.TIME
const TIMETZ = lex.TIMETZ
const TIMESTAMP = lex.TIMESTAMP
const TIMESTAMPTZ = lex.TIMESTAMPTZ
const TO = lex.TO
const THROTTLING = lex.THROTTLING
const TRAILING = lex.TRAILING
const TRACE = lex.TRACE
const TRANSACTION = lex.TRANSACTION
const TREAT = lex.TREAT
const TRIGGER = lex.TRIGGER
const TRIM = lex.TRIM
const TRUE = lex.TRUE
const TRUNCATE = lex.TRUNCATE
const TRUSTED = lex.TRUSTED
const TYPE = lex.TYPE
const TRACING = lex.TRACING
const UNBOUNDED = lex.UNBOUNDED
const UNCOMMITTED = lex.UNCOMMITTED
const UNION = lex.UNION
const UNIQUE = lex.UNIQUE
const UNKNOWN = lex.UNKNOWN
const UNLOGGED = lex.UNLOGGED
const UNSPLIT = lex.UNSPLIT
const UPDATE = lex.UPDATE
const UPSERT = lex.UPSERT
const UNTIL = lex.UNTIL
const USE = lex.USE
const USER = lex.USER
const USERS = lex.USERS
const USING = lex.USING
const UUID = lex.UUID
const VALID = lex.VALID
const VALIDATE = lex.VALIDATE
const VALUE = lex.VALUE
const VALUES = lex.VALUES
const VARBIT = lex.VARBIT
const VARCHAR = lex.VARCHAR
const VARIADIC = lex.VARIADIC
const VIEW = lex.VIEW
const VARYING = lex.VARYING
const VIRTUAL = lex.VIRTUAL
const WHEN = lex.WHEN
const WHERE = lex.WHERE
const WINDOW = lex.WINDOW
const WITH = lex.WITH
const WITHIN = lex.WITHIN
const WITHOUT = lex.WITHOUT
const WORK = lex.WORK
const WRITE = lex.WRITE
const YEAR = lex.YEAR
const ZONE = lex.ZONE
const NOT_LA = lex.NOT_LA
const WITH_LA = lex.WITH_LA
const AS_LA = lex.AS_LA
const CONTAINED_BY = lex.CONTAINED_BY
const POSTFIXOP = lex.POSTFIXOP
const UMINUS = lex.UMINUS
const HELPTOKEN = lex.HELPTOKEN

var sqlToknames = [...]string{
	"$end",
	"error",
	"$unk",
	"IDENT",
	"SCONST",
	"BCONST",
	"BITCONST",
	"ICONST",
	"FCONST",
	"PLACEHOLDER",
	"TYPECAST",
	"TYPEANNOTATE",
	"DOT_DOT",
	"LESS_EQUALS",
	"GREATER_EQUALS",
	"NOT_EQUALS",
	"NOT_REGMATCH",
	"REGIMATCH",
	"NOT_REGIMATCH",
	"ERROR",
	"ABORT",
	"ACTION",
	"ADD",
	"ADMIN",
	"AGGREGATE",
	"ALL",
	"ALTER",
	"ANALYSE",
	"ANALYZE",
	"AND",
	"AND_AND",
	"ANY",
	"ANNOTATE_TYPE",
	"ARRAY",
	"AS",
	"ASC",
	"ASYMMETRIC",
	"AT",
	"AUTHORIZATION",
	"AUTOMATIC",
	"BACKUP",
	"BEGIN",
	"BETWEEN",
	"BIGINT",
	"BIGSERIAL",
	"BIT",
	"BUCKET_COUNT",
	"BLOB",
	"BOOL",
	"BOOLEAN",
	"BOTH",
	"BUNDLE",
	"BY",
	"BYTEA",
	"BYTES",
	"CACHE",
	"CANCEL",
	"CASCADE",
	"CASE",
	"CAST",
	"CHANGEFEED",
	"CHAR",
	"CHARACTER",
	"CHARACTERISTICS",
	"CHECK",
	"CLUSTER",
	"COALESCE",
	"COLLATE",
	"COLLATION",
	"COLUMN",
	"COLUMNS",
	"COMMENT",
	"COMMIT",
	"COMMITTED",
	"COMPACT",
	"COMPLETE",
	"CONCAT",
	"CONCURRENTLY",
	"CONFIGURATION",
	"CONFIGURATIONS",
	"CONFIGURE",
	"CONFLICT",
	"CONSTRAINT",
	"CONSTRAINTS",
	"CONTAINS",
	"CONVERSION",
	"COPY",
	"COVERING",
	"CREATE",
	"CREATEROLE",
	"CROSS",
	"CUBE",
	"CURRENT",
	"CURRENT_CATALOG",
	"CURRENT_DATE",
	"CURRENT_SCHEMA",
	"CURRENT_ROLE",
	"CURRENT_TIME",
	"CURRENT_TIMESTAMP",
	"CURRENT_USER",
	"CYCLE",
	"DATA",
	"DATABASE",
	"DATABASES",
	"DATE",
	"DAY",
	"DEC",
	"DECIMAL",
	"DEFAULT",
	"DEALLOCATE",
	"DEFERRABLE",
	"DEFERRED",
	"DELETE",
	"DESC",
	"DISCARD",
	"DISTINCT",
	"DO",
	"DOMAIN",
	"DOUBLE",
	"DROP",
	"ELSE",
	"ENCODING",
	"END",
	"ENUM",
	"ESCAPE",
	"EXCEPT",
	"EXCLUDE",
	"EXISTS",
	"EXECUTE",
	"EXPERIMENTAL",
	"EXPERIMENTAL_FINGERPRINTS",
	"EXPERIMENTAL_REPLICA",
	"EXPERIMENTAL_AUDIT",
	"EXPIRATION",
	"EXPLAIN",
	"EXPORT",
	"EXTENSION",
	"EXTRACT",
	"EXTRACT_DURATION",
	"FALSE",
	"FAMILY",
	"FETCH",
	"FETCHVAL",
	"FETCHTEXT",
	"FETCHVAL_PATH",
	"FETCHTEXT_PATH",
	"FILES",
	"FILTER",
	"FIRST",
	"FLOAT",
	"FLOAT4",
	"FLOAT8",
	"FLOORDIV",
	"FOLLOWING",
	"FOR",
	"FORCE_INDEX",
	"FOREIGN",
	"FROM",
	"FULL",
	"FUNCTION",
	"GLOBAL",
	"GRANT",
	"GRANTS",
	"GREATEST",
	"GROUP",
	"GROUPING",
	"GROUPS",
	"HAVING",
	"HASH",
	"HIGH",
	"HISTOGRAM",
	"HOUR",
	"IF",
	"IFERROR",
	"IFNULL",
	"IGNORE_FOREIGN_KEYS",
	"ILIKE",
	"IMMEDIATE",
	"IMPORT",
	"IN",
	"INCLUDE",
	"INCREMENT",
	"INCREMENTAL",
	"INET",
	"INET_CONTAINED_BY_OR_EQUALS",
	"INET_CONTAINS_OR_EQUALS",
	"INDEX",
	"INDEXES",
	"INJECT",
	"INTERLEAVE",
	"INITIALLY",
	"INNER",
	"INSERT",
	"INT",
	"INT2VECTOR",
	"INT2",
	"INT4",
	"INT8",
	"INT64",
	"INTEGER",
	"INTERSECT",
	"INTERVAL",
	"INTO",
	"INVERTED",
	"IS",
	"ISERROR",
	"ISNULL",
	"ISOLATION",
	"JOB",
	"JOBS",
	"JOIN",
	"JSON",
	"JSONB",
	"JSON_SOME_EXISTS",
	"JSON_ALL_EXISTS",
	"KEY",
	"KEYS",
	"KV",
	"LANGUAGE",
	"LAST",
	"LATERAL",
	"LC_CTYPE",
	"LC_COLLATE",
	"LEADING",
	"LEASE",
	"LEAST",
	"LEFT",
	"LESS",
	"LEVEL",
	"LIKE",
	"LIMIT",
	"LIST",
	"LOCAL",
	"LOCALTIME",
	"LOCALTIMESTAMP",
	"LOCKED",
	"LOGIN",
	"LOOKUP",
	"LOW",
	"LSHIFT",
	"MATCH",
	"MATERIALIZED",
	"MERGE",
	"MINVALUE",
	"MAXVALUE",
	"MINUTE",
	"MONTH",
	"NAN",
	"NAME",
	"NAMES",
	"NATURAL",
	"NEXT",
	"NO",
	"NOCREATEROLE",
	"NOLOGIN",
	"NO_INDEX_JOIN",
	"NONE",
	"NORMAL",
	"NOT",
	"NOTHING",
	"NOTNULL",
	"NOWAIT",
	"NULL",
	"NULLIF",
	"NULLS",
	"NUMERIC",
	"OF",
	"OFF",
	"OFFSET",
	"OID",
	"OIDS",
	"OIDVECTOR",
	"ON",
	"ONLY",
	"OPT",
	"OPTION",
	"OPTIONS",
	"OR",
	"ORDER",
	"ORDINALITY",
	"OTHERS",
	"OUT",
	"OUTER",
	"OVER",
	"OVERLAPS",
	"OVERLAY",
	"OWNED",
	"OPERATOR",
	"PARENT",
	"PARTIAL",
	"PARTITION",
	"PARTITIONS",
	"PASSWORD",
	"PAUSE",
	"PHYSICAL",
	"PLACING",
	"PLAN",
	"PLANS",
	"POSITION",
	"PRECEDING",
	"PRECISION",
	"PREPARE",
	"PRESERVE",
	"PRIMARY",
	"PRIORITY",
	"PROCEDURAL",
	"PUBLIC",
	"PUBLICATION",
	"QUERIES",
	"QUERY",
	"RANGE",
	"RANGES",
	"READ",
	"REAL",
	"RECURSIVE",
	"REF",
	"REFERENCES",
	"REGCLASS",
	"REGPROC",
	"REGPROCEDURE",
	"REGNAMESPACE",
	"REGTYPE",
	"REINDEX",
	"REMOVE_PATH",
	"RENAME",
	"REPEATABLE",
	"REPLACE",
	"RELEASE",
	"RESET",
	"RESTORE",
	"RESTRICT",
	"RESUME",
	"RETURNING",
	"REVOKE",
	"RIGHT",
	"ROLE",
	"ROLES",
	"ROLLBACK",
	"ROLLUP",
	"ROW",
	"ROWS",
	"RSHIFT",
	"RULE",
	"SAVEPOINT",
	"SCATTER",
	"SCHEMA",
	"SCHEMAS",
	"SCRUB",
	"SEARCH",
	"SECOND",
	"SELECT",
	"SEQUENCE",
	"SEQUENCES",
	"SERIAL",
	"SERIAL2",
	"SERIAL4",
	"SERIAL8",
	"SERIALIZABLE",
	"SERVER",
	"SESSION",
	"SESSIONS",
	"SESSION_USER",
	"SET",
	"SETTING",
	"SETTINGS",
	"SHARE",
	"SHOW",
	"SIMILAR",
	"SIMPLE",
	"SKIP",
	"SMALLINT",
	"SMALLSERIAL",
	"SNAPSHOT",
	"SOME",
	"SPLIT",
	"SQL",
	"START",
	"STATISTICS",
	"STATUS",
	"STDIN",
	"STRICT",
	"STRING",
	"STORE",
	"STORED",
	"STORING",
	"SUBSTRING",
	"SYMMETRIC",
	"SYNTAX",
	"SYSTEM",
	"SUBSCRIPTION",
	"TABLE",
	"TABLES",
	"TEMP",
	"TEMPLATE",
	"TEMPORARY",
	"TESTING_RELOCATE",
	"EXPERIMENTAL_RELOCATE",
	"TEXT",
	"THEN",
	"TIES",
	"TIME",
	"TIMETZ",
	"TIMESTAMP",
	"TIMESTAMPTZ",
	"TO",
	"THROTTLING",
	"TRAILING",
	"TRACE",
	"TRANSACTION",
	"TREAT",
	"TRIGGER",
	"TRIM",
	"TRUE",
	"TRUNCATE",
	"TRUSTED",
	"TYPE",
	"TRACING",
	"UNBOUNDED",
	"UNCOMMITTED",
	"UNION",
	"UNIQUE",
	"UNKNOWN",
	"UNLOGGED",
	"UNSPLIT",
	"UPDATE",
	"UPSERT",
	"UNTIL",
	"USE",
	"USER",
	"USERS",
	"USING",
	"UUID",
	"VALID",
	"VALIDATE",
	"VALUE",
	"VALUES",
	"VARBIT",
	"VARCHAR",
	"VARIADIC",
	"VIEW",
	"VARYING",
	"VIRTUAL",
	"WHEN",
	"WHERE",
	"WINDOW",
	"WITH",
	"WITHIN",
	"WITHOUT",
	"WORK",
	"WRITE",
	"YEAR",
	"ZONE",
	"NOT_LA",
	"WITH_LA",
	"AS_LA",
	"'<'",
	"'>'",
	"'='",
	"'~'",
	"CONTAINED_BY",
	"'?'",
	"POSTFIXOP",
	"'|'",
	"'#'",
	"'&'",
	"'+'",
	"'-'",
	"'*'",
	"'/'",
	"'%'",
	"'^'",
	"UMINUS",
	"'['",
	"']'",
	"'('",
	"')'",
	"'.'",
	"HELPTOKEN",
	"'@'",
	"','",
	"'{'",
	"'}'",
	"':'",
}

var sqlStatenames = [...]string{}

const sqlEofCode = 1
const sqlErrCode = 2
const sqlInitialStackSize = 16

//line sql-gen.y:10297

//line yacctab:1
var sqlExca = [...]int{
	-1, 0,
	1, 25,
	-2, 1110,
	-1, 1,
	1, -1,
	-2, 0,
	-1, 69,
	187, 937,
	204, 937,
	219, 248,
	306, 248,
	315, 752,
	343, 248,
	352, 752,
	391, 752,
	415, 248,
	440, 752,
	-2, 0,
	-1, 74,
	219, 252,
	-2, 0,
	-1, 75,
	113, 1110,
	193, 1110,
	425, 1110,
	426, 1110,
	-2, 0,
	-1, 87,
	126, 1084,
	142, 1084,
	155, 1084,
	201, 1084,
	231, 1084,
	269, 1084,
	279, 1084,
	420, 1084,
	-2, 1055,
	-1, 119,
	132, 661,
	218, 661,
	309, 641,
	361, 641,
	408, 661,
	-2, 0,
	-1, 120,
	4, 1112,
	21, 1112,
	22, 1112,
	23, 1112,
	24, 1112,
	25, 1112,
	27, 1112,
	33, 1112,
	38, 1112,
	39, 1112,
	40, 1112,
	41, 1112,
	42, 1112,
	43, 1112,
	44, 1112,
	45, 1112,
	46, 1112,
	47, 1112,
	48, 1112,
	49, 1112,
	50, 1112,
	52, 1112,
	53, 1112,
	54, 1112,
	55, 1112,
	56, 1112,
	57, 1112,
	58, 1112,
	61, 1112,
	62, 1112,
	63, 1112,
	64, 1112,
	66, 1112,
	67, 1112,
	71, 1112,
	72, 1112,
	73, 1112,
	74, 1112,
	75, 1112,
	76, 1112,
	79, 1112,
	80, 1112,
	81, 1112,
	82, 1112,
	84, 1112,
	86, 1112,
	87, 1112,
	88, 1112,
	90, 1112,
	92, 1112,
	93, 1112,
	101, 1112,
	102, 1112,
	103, 1112,
	104, 1112,
	105, 1112,
	106, 1112,
	107, 1112,
	108, 1112,
	110, 1112,
	112, 1112,
	113, 1112,
	115, 1112,
	118, 1112,
	119, 1112,
	120, 1112,
	122, 1112,
	124, 1112,
	125, 1112,
	127, 1112,
	128, 1112,
	129, 1112,
	130, 1112,
	131, 1112,
	132, 1112,
	133, 1112,
	134, 1112,
	135, 1112,
	136, 1112,
	137, 1112,
	138, 1112,
	139, 1112,
	141, 1112,
	147, 1112,
	148, 1112,
	149, 1112,
	150, 1112,
	151, 1112,
	152, 1112,
	154, 1112,
	156, 1112,
	160, 1112,
	161, 1112,
	163, 1112,
	164, 1112,
	166, 1112,
	167, 1112,
	169, 1112,
	170, 1112,
	171, 1112,
	172, 1112,
	173, 1112,
	174, 1112,
	175, 1112,
	176, 1112,
	178, 1112,
	179, 1112,
	181, 1112,
	182, 1112,
	183, 1112,
	184, 1112,
	187, 1112,
	188, 1112,
	189, 1112,
	190, 1112,
	193, 1112,
	194, 1112,
	195, 1112,
	196, 1112,
	197, 1112,
	198, 1112,
	199, 1112,
	200, 1112,
	202, 1112,
	204, 1112,
	206, 1112,
	208, 1112,
	209, 1112,
	210, 1112,
	212, 1112,
	213, 1112,
	216, 1112,
	217, 1112,
	218, 1112,
	219, 1112,
	220, 1112,
	222, 1112,
	223, 1112,
	225, 1112,
	226, 1112,
	228, 1112,
	229, 1112,
	232, 1112,
	233, 1112,
	236, 1112,
	237, 1112,
	238, 1112,
	239, 1112,
	241, 1112,
	242, 1112,
	243, 1112,
	244, 1112,
	245, 1112,
	246, 1112,
	247, 1112,
	248, 1112,
	249, 1112,
	250, 1112,
	252, 1112,
	253, 1112,
	254, 1112,
	255, 1112,
	256, 1112,
	258, 1112,
	260, 1112,
	262, 1112,
	264, 1112,
	265, 1112,
	266, 1112,
	267, 1112,
	268, 1112,
	270, 1112,
	271, 1112,
	272, 1112,
	274, 1112,
	275, 1112,
	276, 1112,
	277, 1112,
	280, 1112,
	281, 1112,
	282, 1112,
	284, 1112,
	286, 1112,
	287, 1112,
	288, 1112,
	289, 1112,
	290, 1112,
	291, 1112,
	292, 1112,
	293, 1112,
	294, 1112,
	295, 1112,
	297, 1112,
	298, 1112,
	299, 1112,
	300, 1112,
	301, 1112,
	302, 1112,
	303, 1112,
	305, 1112,
	307, 1112,
	308, 1112,
	309, 1112,
	310, 1112,
	311, 1112,
	312, 1112,
	313, 1112,
	314, 1112,
	315, 1112,
	316, 1112,
	318, 1112,
	319, 1112,
	320, 1112,
	321, 1112,
	322, 1112,
	323, 1112,
	325, 1112,
	326, 1112,
	327, 1112,
	328, 1112,
	329, 1112,
	330, 1112,
	331, 1112,
	332, 1112,
	334, 1112,
	336, 1112,
	337, 1112,
	338, 1112,
	339, 1112,
	340, 1112,
	341, 1112,
	343, 1112,
	344, 1112,
	345, 1112,
	346, 1112,
	347, 1112,
	348, 1112,
	349, 1112,
	350, 1112,
	352, 1112,
	353, 1112,
	354, 1112,
	355, 1112,
	356, 1112,
	357, 1112,
	358, 1112,
	359, 1112,
	360, 1112,
	361, 1112,
	363, 1112,
	364, 1112,
	365, 1112,
	366, 1112,
	367, 1112,
	369, 1112,
	370, 1112,
	371, 1112,
	372, 1112,
	373, 1112,
	375, 1112,
	376, 1112,
	377, 1112,
	378, 1112,
	379, 1112,
	380, 1112,
	381, 1112,
	382, 1112,
	383, 1112,
	384, 1112,
	385, 1112,
	386, 1112,
	388, 1112,
	389, 1112,
	390, 1112,
	392, 1112,
	393, 1112,
	394, 1112,
	395, 1112,
	396, 1112,
	397, 1112,
	398, 1112,
	400, 1112,
	401, 1112,
	402, 1112,
	403, 1112,
	404, 1112,
	406, 1112,
	408, 1112,
	409, 1112,
	410, 1112,
	411, 1112,
	412, 1112,
	414, 1112,
	415, 1112,
	416, 1112,
	418, 1112,
	419, 1112,
	422, 1112,
	423, 1112,
	424, 1112,
	425, 1112,
	426, 1112,
	427, 1112,
	428, 1112,
	430, 1112,
	432, 1112,
	433, 1112,
	434, 1112,
	435, 1112,
	436, 1112,
	437, 1112,
	438, 1112,
	440, 1112,
	441, 1112,
	442, 1112,
	447, 1112,
	448, 1112,
	449, 1112,
	450, 1112,
	451, 1112,
	452, 1112,
	-2, 0,
	-1, 121,
	1, 989,
	208, 989,
	305, 989,
	313, 989,
	455, 989,
	478, 989,
	-2, 0,
	-1, 123,
	1, 989,
	478, 989,
	-2, 0,
	-1, 124,
	1, 989,
	478, 989,
	-2, 0,
	-1, 125,
	1, 989,
	405, 989,
	478, 989,
	-2, 0,
	-1, 150,
	126, 1083,
	142, 1083,
	155, 1083,
	201, 1083,
	231, 1083,
	269, 1083,
	279, 1083,
	420, 1083,
	-2, 1058,
	-1, 183,
	4, 1119,
	5, 1119,
	6, 1119,
	7, 1119,
	8, 1119,
	9, 1119,
	10, 1119,
	21, 1119,
	22, 1119,
	23, 1119,
	24, 1119,
	25, 1119,
	27, 1119,
	33, 1119,
	34, 1119,
	38, 1119,
	39, 1119,
	40, 1119,
	41, 1119,
	42, 1119,
	43, 1119,
	44, 1119,
	45, 1119,
	46, 1119,
	47, 1119,
	48, 1119,
	49, 1119,
	50, 1119,
	52, 1119,
	53, 1119,
	54, 1119,
	55, 1119,
	56, 1119,
	57, 1119,
	58, 1119,
	59, 1119,
	60, 1119,
	61, 1119,
	62, 1119,
	63, 1119,
	64, 1119,
	66, 1119,
	67, 1119,
	69, 1119,
	71, 1119,
	72, 1119,
	73, 1119,
	74, 1119,
	75, 1119,
	76, 1119,
	79, 1119,
	80, 1119,
	81, 1119,
	82, 1119,
	84, 1119,
	86, 1119,
	87, 1119,
	88, 1119,
	90, 1119,
	91, 1119,
	92, 1119,
	93, 1119,
	94, 1119,
	95, 1119,
	96, 1119,
	97, 1119,
	98, 1119,
	99, 1119,
	100, 1119,
	101, 1119,
	102, 1119,
	103, 1119,
	104, 1119,
	105, 1119,
	106, 1119,
	107, 1119,
	108, 1119,
	109, 1119,
	110, 1119,
	112, 1119,
	113, 1119,
	115, 1119,
	118, 1119,
	119, 1119,
	120, 1119,
	122, 1119,
	124, 1119,
	125, 1119,
	127, 1119,
	128, 1119,
	129, 1119,
	130, 1119,
	131, 1119,
	132, 1119,
	133, 1119,
	134, 1119,
	135, 1119,
	136, 1119,
	137, 1119,
	138, 1119,
	139, 1119,
	140, 1119,
	141, 1119,
	147, 1119,
	148, 1119,
	149, 1119,
	150, 1119,
	151, 1119,
	152, 1119,
	154, 1119,
	156, 1119,
	159, 1119,
	160, 1119,
	161, 1119,
	163, 1119,
	164, 1119,
	166, 1119,
	167, 1119,
	169, 1119,
	170, 1119,
	171, 1119,
	172, 1119,
	173, 1119,
	174, 1119,
	175, 1119,
	176, 1119,
	177, 1119,
	178, 1119,
	179, 1119,
	181, 1119,
	182, 1119,
	183, 1119,
	184, 1119,
	187, 1119,
	188, 1119,
	189, 1119,
	190, 1119,
	192, 1119,
	193, 1119,
	194, 1119,
	195, 1119,
	196, 1119,
	197, 1119,
	198, 1119,
	199, 1119,
	200, 1119,
	202, 1119,
	204, 1119,
	205, 1119,
	206, 1119,
	207, 1119,
	208, 1119,
	209, 1119,
	210, 1119,
	211, 1119,
	212, 1119,
	213, 1119,
	216, 1119,
	217, 1119,
	218, 1119,
	219, 1119,
	220, 1119,
	222, 1119,
	223, 1119,
	225, 1119,
	226, 1119,
	227, 1119,
	228, 1119,
	229, 1119,
	230, 1119,
	232, 1119,
	233, 1119,
	234, 1119,
	235, 1119,
	236, 1119,
	237, 1119,
	238, 1119,
	239, 1119,
	241, 1119,
	242, 1119,
	243, 1119,
	244, 1119,
	245, 1119,
	246, 1119,
	247, 1119,
	248, 1119,
	249, 1119,
	250, 1119,
	251, 1119,
	252, 1119,
	253, 1119,
	254, 1119,
	255, 1119,
	256, 1119,
	257, 1119,
	258, 1119,
	259, 1119,
	260, 1119,
	261, 1119,
	262, 1119,
	263, 1119,
	264, 1119,
	265, 1119,
	266, 1119,
	267, 1119,
	268, 1119,
	270, 1119,
	271, 1119,
	272, 1119,
	275, 1119,
	276, 1119,
	277, 1119,
	280, 1119,
	281, 1119,
	282, 1119,
	283, 1119,
	284, 1119,
	285, 1119,
	286, 1119,
	287, 1119,
	288, 1119,
	289, 1119,
	290, 1119,
	291, 1119,
	292, 1119,
	293, 1119,
	294, 1119,
	295, 1119,
	297, 1119,
	298, 1119,
	299, 1119,
	300, 1119,
	301, 1119,
	302, 1119,
	303, 1119,
	305, 1119,
	307, 1119,
	308, 1119,
	309, 1119,
	310, 1119,
	311, 1119,
	312, 1119,
	313, 1119,
	314, 1119,
	315, 1119,
	316, 1119,
	318, 1119,
	319, 1119,
	320, 1119,
	321, 1119,
	322, 1119,
	323, 1119,
	325, 1119,
	326, 1119,
	327, 1119,
	328, 1119,
	329, 1119,
	330, 1119,
	331, 1119,
	332, 1119,
	334, 1119,
	335, 1119,
	336, 1119,
	337, 1119,
	338, 1119,
	339, 1119,
	340, 1119,
	341, 1119,
	343, 1119,
	344, 1119,
	345, 1119,
	346, 1119,
	347, 1119,
	348, 1119,
	349, 1119,
	350, 1119,
	352, 1119,
	353, 1119,
	354, 1119,
	355, 1119,
	356, 1119,
	357, 1119,
	358, 1119,
	359, 1119,
	360, 1119,
	361, 1119,
	362, 1119,
	363, 1119,
	364, 1119,
	365, 1119,
	366, 1119,
	367, 1119,
	368, 1119,
	369, 1119,
	370, 1119,
	371, 1119,
	372, 1119,
	373, 1119,
	375, 1119,
	376, 1119,
	377, 1119,
	378, 1119,
	379, 1119,
	380, 1119,
	381, 1119,
	382, 1119,
	383, 1119,
	384, 1119,
	385, 1119,
	386, 1119,
	388, 1119,
	389, 1119,
	390, 1119,
	392, 1119,
	393, 1119,
	394, 1119,
	395, 1119,
	396, 1119,
	397, 1119,
	398, 1119,
	400, 1119,
	401, 1119,
	402, 1119,
	403, 1119,
	404, 1119,
	406, 1119,
	408, 1119,
	409, 1119,
	410, 1119,
	411, 1119,
	412, 1119,
	413, 1119,
	414, 1119,
	415, 1119,
	416, 1119,
	418, 1119,
	419, 1119,
	421, 1119,
	422, 1119,
	423, 1119,
	424, 1119,
	425, 1119,
	426, 1119,
	427, 1119,
	428, 1119,
	429, 1119,
	430, 1119,
	432, 1119,
	433, 1119,
	434, 1119,
	435, 1119,
	436, 1119,
	437, 1119,
	438, 1119,
	440, 1119,
	441, 1119,
	442, 1119,
	447, 1119,
	448, 1119,
	449, 1119,
	450, 1119,
	451, 1119,
	452, 1119,
	453, 1119,
	459, 1119,
	466, 1119,
	467, 1119,
	468, 1119,
	475, 1119,
	479, 1119,
	-2, 0,
	-1, 572,
	158, 1822,
	405, 1822,
	458, 1822,
	477, 1822,
	-2, 0,
	-1, 573,
	158, 1903,
	405, 1903,
	458, 1903,
	477, 1903,
	-2, 0,
	-1, 574,
	158, 1811,
	405, 1811,
	458, 1811,
	477, 1811,
	-2, 0,
	-1, 576,
	158, 2001,
	405, 2001,
	458, 2001,
	477, 2001,
	-2, 0,
	-1, 578,
	158, 2031,
	405, 2031,
	458, 2031,
	477, 2031,
	-2, 0,
	-1, 585,
	158, 1915,
	405, 1915,
	458, 1915,
	477, 1915,
	-2, 502,
	-1, 610,
	477, 1767,
	480, 1767,
	-2, 714,
	-1, 611,
	477, 1769,
	480, 1769,
	-2, 715,
	-1, 612,
	477, 1768,
	480, 1768,
	-2, 716,
	-1, 613,
	480, 1705,
	-2, 717,
	-1, 655,
	440, 917,
	-2, 753,
	-1, 694,
	4, 935,
	21, 935,
	22, 935,
	23, 935,
	24, 935,
	25, 935,
	27, 935,
	33, 935,
	38, 935,
	39, 935,
	40, 935,
	41, 935,
	42, 935,
	43, 935,
	44, 935,
	45, 935,
	46, 935,
	47, 935,
	48, 935,
	49, 935,
	50, 935,
	52, 935,
	53, 935,
	54, 935,
	55, 935,
	56, 935,
	57, 935,
	58, 935,
	61, 935,
	62, 935,
	63, 935,
	64, 935,
	66, 935,
	67, 935,
	71, 935,
	72, 935,
	73, 935,
	74, 935,
	75, 935,
	76, 935,
	79, 935,
	80, 935,
	81, 935,
	82, 935,
	84, 935,
	86, 935,
	87, 935,
	88, 935,
	90, 935,
	92, 935,
	93, 935,
	101, 935,
	102, 935,
	103, 935,
	104, 935,
	105, 935,
	106, 935,
	107, 935,
	108, 935,
	110, 935,
	112, 935,
	113, 935,
	115, 935,
	118, 935,
	119, 935,
	120, 935,
	122, 935,
	124, 935,
	125, 935,
	127, 935,
	128, 935,
	129, 935,
	130, 935,
	131, 935,
	132, 935,
	133, 935,
	134, 935,
	135, 935,
	136, 935,
	137, 935,
	138, 935,
	139, 935,
	141, 935,
	147, 935,
	148, 935,
	149, 935,
	150, 935,
	151, 935,
	152, 935,
	154, 935,
	156, 935,
	160, 935,
	161, 935,
	163, 935,
	164, 935,
	166, 935,
	167, 935,
	169, 935,
	170, 935,
	171, 935,
	172, 935,
	173, 935,
	174, 935,
	175, 935,
	176, 935,
	178, 935,
	179, 935,
	181, 935,
	182, 935,
	183, 935,
	184, 935,
	187, 935,
	188, 935,
	189, 935,
	190, 935,
	193, 935,
	194, 935,
	195, 935,
	196, 935,
	197, 935,
	198, 935,
	199, 935,
	200, 935,
	202, 935,
	204, 935,
	206, 935,
	208, 935,
	209, 935,
	210, 935,
	212, 935,
	213, 935,
	216, 935,
	217, 935,
	218, 935,
	219, 935,
	220, 935,
	222, 935,
	223, 935,
	225, 935,
	226, 935,
	228, 935,
	229, 935,
	232, 935,
	233, 935,
	236, 935,
	237, 935,
	238, 935,
	239, 935,
	241, 935,
	242, 935,
	243, 935,
	244, 935,
	245, 935,
	246, 935,
	247, 935,
	248, 935,
	249, 935,
	250, 935,
	252, 935,
	253, 935,
	254, 935,
	255, 935,
	256, 935,
	258, 935,
	260, 935,
	262, 935,
	264, 935,
	265, 935,
	266, 935,
	267, 935,
	268, 935,
	270, 935,
	271, 935,
	272, 935,
	275, 935,
	276, 935,
	277, 935,
	280, 935,
	281, 935,
	282, 935,
	284, 935,
	286, 935,
	287, 935,
	288, 935,
	289, 935,
	290, 935,
	291, 935,
	292, 935,
	293, 935,
	294, 935,
	295, 935,
	297, 935,
	298, 935,
	299, 935,
	300, 935,
	301, 935,
	302, 935,
	303, 935,
	305, 935,
	307, 935,
	308, 935,
	309, 935,
	310, 935,
	311, 935,
	312, 935,
	313, 935,
	314, 935,
	315, 935,
	316, 935,
	318, 935,
	319, 935,
	320, 935,
	321, 935,
	322, 935,
	323, 935,
	325, 935,
	326, 935,
	327, 935,
	328, 935,
	329, 935,
	330, 935,
	331, 935,
	332, 935,
	334, 935,
	336, 935,
	337, 935,
	338, 935,
	339, 935,
	340, 935,
	341, 935,
	343, 935,
	344, 935,
	345, 935,
	346, 935,
	347, 935,
	348, 935,
	349, 935,
	350, 935,
	352, 935,
	353, 935,
	354, 935,
	355, 935,
	356, 935,
	357, 935,
	358, 935,
	359, 935,
	360, 935,
	361, 935,
	363, 935,
	364, 935,
	365, 935,
	366, 935,
	367, 935,
	369, 935,
	370, 935,
	371, 935,
	372, 935,
	373, 935,
	375, 935,
	376, 935,
	377, 935,
	378, 935,
	379, 935,
	380, 935,
	381, 935,
	382, 935,
	383, 935,
	384, 935,
	385, 935,
	386, 935,
	388, 935,
	389, 935,
	390, 935,
	392, 935,
	393, 935,
	394, 935,
	395, 935,
	396, 935,
	397, 935,
	398, 935,
	400, 935,
	401, 935,
	402, 935,
	403, 935,
	404, 935,
	406, 935,
	408, 935,
	409, 935,
	410, 935,
	411, 935,
	412, 935,
	414, 935,
	415, 935,
	416, 935,
	418, 935,
	419, 935,
	422, 935,
	423, 935,
	424, 935,
	425, 935,
	426, 935,
	427, 935,
	428, 935,
	430, 935,
	432, 935,
	433, 935,
	434, 935,
	435, 935,
	436, 935,
	437, 935,
	438, 935,
	440, 935,
	441, 935,
	442, 935,
	447, 935,
	448, 935,
	449, 935,
	450, 935,
	451, 935,
	452, 935,
	-2, 0,
	-1, 758,
	309, 642,
	361, 642,
	-2, 0,
	-1, 759,
	309, 641,
	361, 641,
	-2, 589,
	-1, 763,
	1, 671,
	474, 671,
	476, 671,
	478, 671,
	-2, 0,
	-1, 764,
	1, 713,
	155, 713,
	474, 713,
	476, 713,
	478, 713,
	-2, 0,
	-1, 772,
	1, 645,
	474, 645,
	476, 645,
	478, 645,
	-2, 0,
	-1, 775,
	1, 671,
	474, 671,
	476, 671,
	478, 671,
	-2, 0,
	-1, 776,
	1, 673,
	474, 673,
	476, 673,
	478, 673,
	-2, 0,
	-1, 777,
	1, 676,
	474, 676,
	476, 676,
	478, 676,
	-2, 0,
	-1, 782,
	1, 692,
	474, 692,
	476, 692,
	478, 692,
	-2, 0,
	-1, 783,
	1, 694,
	474, 694,
	476, 694,
	478, 694,
	-2, 0,
	-1, 826,
	142, 1121,
	155, 1121,
	231, 1121,
	269, 1121,
	-2, 1062,
	-1, 839,
	142, 1120,
	155, 1120,
	231, 1120,
	269, 1120,
	-2, 1059,
	-1, 863,
	477, 1766,
	-2, 510,
	-1, 891,
	475, 1758,
	-2, 1749,
	-1, 897,
	5, 1261,
	-2, 1800,
	-1, 898,
	5, 1262,
	-2, 1806,
	-1, 899,
	5, 1263,
	-2, 1805,
	-1, 900,
	5, 1264,
	-2, 2028,
	-1, 901,
	5, 1265,
	-2, 1917,
	-1, 902,
	5, 1266,
	-2, 1993,
	-1, 903,
	5, 1267,
	-2, 1995,
	-1, 904,
	5, 1268,
	-2, 2008,
	-1, 905,
	5, 1269,
	-2, 1996,
	-1, 906,
	5, 1270,
	-2, 1997,
	-1, 907,
	5, 1271,
	-2, 1799,
	-1, 908,
	5, 1272,
	-2, 2045,
	-1, 909,
	5, 1273,
	-2, 1877,
	-1, 910,
	5, 1274,
	-2, 1929,
	-1, 911,
	5, 1275,
	-2, 1931,
	-1, 912,
	5, 1276,
	-2, 1881,
	-1, 913,
	5, 1277,
	475, 1776,
	-2, 1767,
	-1, 919,
	475, 1777,
	-2, 1768,
	-1, 921,
	5, 1281,
	-2, 2078,
	-1, 922,
	5, 1282,
	-2, 2079,
	-1, 923,
	5, 1283,
	-2, 1880,
	-1, 924,
	5, 1284,
	-2, 2091,
	-1, 925,
	5, 1285,
	-2, 1882,
	-1, 926,
	5, 1286,
	-2, 1883,
	-1, 927,
	5, 1287,
	-2, 1884,
	-1, 928,
	5, 1288,
	-2, 2060,
	-1, 929,
	5, 1289,
	-2, 2089,
	-1, 930,
	5, 1290,
	-2, 1859,
	-1, 931,
	5, 1291,
	-2, 1860,
	-1, 932,
	5, 1305,
	-2, 2072,
	-1, 934,
	5, 1280,
	-2, 2068,
	-1, 935,
	5, 1280,
	-2, 2067,
	-1, 936,
	5, 1280,
	-2, 2084,
	-1, 937,
	5, 1297,
	-2, 2062,
	-1, 938,
	5, 1298,
	-2, 1801,
	-1, 939,
	5, 1308,
	-2, 2061,
	-1, 940,
	5, 1310,
	-2, 2100,
	-1, 942,
	5, 1321,
	-2, 1833,
	-1, 943,
	5, 1332,
	-2, 2093,
	-1, 944,
	5, 1324,
	-2, 2094,
	-1, 945,
	5, 1332,
	-2, 2095,
	-1, 946,
	5, 1328,
	-2, 2096,
	-1, 947,
	5, 1249,
	-2, 1890,
	-1, 948,
	5, 1250,
	-2, 1891,
	-1, 949,
	477, 1764,
	-2, 1748,
	-1, 950,
	475, 2121,
	-2, 1765,
	-1, 972,
	5, 1316,
	-2, 2019,
	-1, 990,
	5, 1315,
	-2, 2101,
	-1, 1000,
	5, 1317,
	441, 1317,
	-2, 2063,
	-1, 1001,
	5, 1318,
	441, 1318,
	-2, 2064,
	-1, 1038,
	475, 1776,
	-2, 1767,
	-1, 1066,
	158, 2031,
	405, 2031,
	458, 2031,
	477, 2031,
	-2, 0,
	-1, 1069,
	1, 488,
	478, 488,
	-2, 997,
	-1, 1194,
	325, 1745,
	468, 1745,
	-2, 1743,
	-1, 1206,
	479, 1745,
	-2, 1746,
	-1, 1207,
	1, 914,
	474, 914,
	476, 914,
	478, 914,
	-2, 1108,
	-1, 1255,
	315, 752,
	440, 752,
	-2, 247,
	-1, 1278,
	1, 914,
	474, 914,
	476, 914,
	478, 914,
	-2, 1108,
	-1, 1284,
	4, 935,
	21, 935,
	22, 935,
	23, 935,
	24, 935,
	25, 935,
	27, 935,
	33, 935,
	38, 935,
	39, 935,
	40, 935,
	41, 935,
	42, 935,
	43, 935,
	44, 935,
	45, 935,
	46, 935,
	47, 935,
	48, 935,
	49, 935,
	50, 935,
	52, 935,
	53, 935,
	54, 935,
	55, 935,
	56, 935,
	57, 935,
	58, 935,
	61, 935,
	62, 935,
	63, 935,
	64, 935,
	66, 935,
	67, 935,
	71, 935,
	72, 935,
	73, 935,
	74, 935,
	75, 935,
	76, 935,
	79, 935,
	80, 935,
	81, 935,
	82, 935,
	84, 935,
	86, 935,
	87, 935,
	88, 935,
	90, 935,
	92, 935,
	93, 935,
	101, 935,
	102, 935,
	103, 935,
	104, 935,
	105, 935,
	106, 935,
	107, 935,
	108, 935,
	110, 935,
	112, 935,
	113, 935,
	115, 935,
	118, 935,
	119, 935,
	120, 935,
	122, 935,
	124, 935,
	125, 935,
	127, 935,
	128, 935,
	129, 935,
	130, 935,
	131, 935,
	132, 935,
	133, 935,
	134, 935,
	135, 935,
	136, 935,
	137, 935,
	138, 935,
	139, 935,
	147, 935,
	148, 935,
	149, 935,
	150, 935,
	151, 935,
	152, 935,
	154, 935,
	156, 935,
	160, 935,
	161, 935,
	163, 935,
	164, 935,
	166, 935,
	167, 935,
	169, 935,
	170, 935,
	171, 935,
	172, 935,
	173, 935,
	174, 935,
	175, 935,
	176, 935,
	178, 935,
	179, 935,
	181, 935,
	182, 935,
	183, 935,
	184, 935,
	188, 935,
	189, 935,
	190, 935,
	193, 935,
	194, 935,
	195, 935,
	196, 935,
	197, 935,
	198, 935,
	199, 935,
	200, 935,
	202, 935,
	204, 935,
	206, 935,
	208, 935,
	209, 935,
	210, 935,
	212, 935,
	213, 935,
	216, 935,
	217, 935,
	218, 935,
	219, 935,
	220, 935,
	222, 935,
	223, 935,
	225, 935,
	226, 935,
	228, 935,
	229, 935,
	232, 935,
	233, 935,
	236, 935,
	237, 935,
	238, 935,
	239, 935,
	241, 935,
	242, 935,
	243, 935,
	244, 935,
	245, 935,
	246, 935,
	247, 935,
	248, 935,
	249, 935,
	250, 935,
	252, 935,
	253, 935,
	254, 935,
	255, 935,
	256, 935,
	258, 935,
	262, 935,
	264, 935,
	265, 935,
	266, 935,
	267, 935,
	268, 935,
	270, 935,
	271, 935,
	272, 935,
	273, 935,
	275, 935,
	276, 935,
	277, 935,
	280, 935,
	281, 935,
	282, 935,
	284, 935,
	286, 935,
	287, 935,
	288, 935,
	289, 935,
	290, 935,
	291, 935,
	292, 935,
	293, 935,
	294, 935,
	295, 935,
	297, 935,
	298, 935,
	299, 935,
	300, 935,
	301, 935,
	302, 935,
	303, 935,
	305, 935,
	307, 935,
	308, 935,
	309, 935,
	310, 935,
	311, 935,
	312, 935,
	313, 935,
	314, 935,
	315, 935,
	316, 935,
	318, 935,
	319, 935,
	320, 935,
	321, 935,
	322, 935,
	323, 935,
	325, 935,
	326, 935,
	327, 935,
	328, 935,
	329, 935,
	330, 935,
	331, 935,
	332, 935,
	334, 935,
	336, 935,
	337, 935,
	338, 935,
	339, 935,
	340, 935,
	341, 935,
	343, 935,
	344, 935,
	345, 935,
	346, 935,
	347, 935,
	348, 935,
	349, 935,
	350, 935,
	352, 935,
	353, 935,
	354, 935,
	355, 935,
	356, 935,
	357, 935,
	358, 935,
	359, 935,
	360, 935,
	361, 935,
	363, 935,
	364, 935,
	365, 935,
	366, 935,
	367, 935,
	369, 935,
	370, 935,
	371, 935,
	372, 935,
	373, 935,
	375, 935,
	376, 935,
	377, 935,
	378, 935,
	379, 935,
	380, 935,
	381, 935,
	382, 935,
	383, 935,
	384, 935,
	385, 935,
	386, 935,
	388, 935,
	389, 935,
	390, 935,
	392, 935,
	393, 935,
	394, 935,
	395, 935,
	396, 935,
	397, 935,
	398, 935,
	400, 935,
	401, 935,
	402, 935,
	403, 935,
	404, 935,
	406, 935,
	408, 935,
	409, 935,
	410, 935,
	411, 935,
	412, 935,
	414, 935,
	415, 935,
	416, 935,
	418, 935,
	419, 935,
	422, 935,
	423, 935,
	424, 935,
	425, 935,
	426, 935,
	427, 935,
	428, 935,
	430, 935,
	432, 935,
	433, 935,
	434, 935,
	435, 935,
	436, 935,
	437, 935,
	438, 935,
	440, 935,
	441, 935,
	442, 935,
	447, 935,
	448, 935,
	449, 935,
	450, 935,
	451, 935,
	452, 935,
	-2, 0,
	-1, 1346,
	1, 363,
	474, 363,
	476, 363,
	478, 363,
	-2, 1082,
	-1, 1349,
	4, 2099,
	11, 2099,
	12, 2099,
	14, 2099,
	15, 2099,
	16, 2099,
	17, 2099,
	18, 2099,
	19, 2099,
	21, 2099,
	22, 2099,
	23, 2099,
	24, 2099,
	25, 2099,
	27, 2099,
	30, 2099,
	31, 2099,
	33, 2099,
	35, 2099,
	38, 2099,
	39, 2099,
	40, 2099,
	41, 2099,
	42, 2099,
	43, 2099,
	44, 2099,
	45, 2099,
	46, 2099,
	47, 2099,
	48, 2099,
	49, 2099,
	50, 2099,
	52, 2099,
	53, 2099,
	54, 2099,
	55, 2099,
	56, 2099,
	57, 2099,
	58, 2099,
	61, 2099,
	62, 2099,
	63, 2099,
	64, 2099,
	66, 2099,
	67, 2099,
	68, 2099,
	71, 2099,
	72, 2099,
	73, 2099,
	74, 2099,
	75, 2099,
	76, 2099,
	77, 2099,
	79, 2099,
	80, 2099,
	81, 2099,
	82, 2099,
	84, 2099,
	85, 2099,
	86, 2099,
	87, 2099,
	88, 2099,
	90, 2099,
	91, 2099,
	92, 2099,
	93, 2099,
	101, 2099,
	102, 2099,
	103, 2099,
	104, 2099,
	105, 2099,
	106, 2099,
	107, 2099,
	108, 2099,
	110, 2099,
	112, 2099,
	113, 2099,
	115, 2099,
	118, 2099,
	119, 2099,
	120, 2099,
	122, 2099,
	124, 2099,
	125, 2099,
	127, 2099,
	128, 2099,
	129, 2099,
	130, 2099,
	131, 2099,
	132, 2099,
	133, 2099,
	134, 2099,
	135, 2099,
	136, 2099,
	137, 2099,
	138, 2099,
	139, 2099,
	143, 2099,
	144, 2099,
	145, 2099,
	146, 2099,
	147, 2099,
	148, 2099,
	149, 2099,
	150, 2099,
	151, 2099,
	152, 2099,
	153, 2099,
	154, 2099,
	156, 2099,
	159, 2099,
	160, 2099,
	161, 2099,
	163, 2099,
	164, 2099,
	166, 2099,
	167, 2099,
	169, 2099,
	170, 2099,
	171, 2099,
	172, 2099,
	173, 2099,
	174, 2099,
	175, 2099,
	176, 2099,
	177, 2099,
	178, 2099,
	179, 2099,
	180, 2099,
	181, 2099,
	182, 2099,
	183, 2099,
	184, 2099,
	185, 2099,
	186, 2099,
	188, 2099,
	189, 2099,
	190, 2099,
	192, 2099,
	193, 2099,
	194, 2099,
	195, 2099,
	196, 2099,
	197, 2099,
	198, 2099,
	199, 2099,
	200, 2099,
	202, 2099,
	204, 2099,
	205, 2099,
	206, 2099,
	207, 2099,
	208, 2099,
	209, 2099,
	210, 2099,
	211, 2099,
	212, 2099,
	213, 2099,
	214, 2099,
	215, 2099,
	216, 2099,
	217, 2099,
	218, 2099,
	219, 2099,
	220, 2099,
	222, 2099,
	223, 2099,
	225, 2099,
	226, 2099,
	227, 2099,
	228, 2099,
	229, 2099,
	230, 2099,
	232, 2099,
	233, 2099,
	236, 2099,
	237, 2099,
	238, 2099,
	239, 2099,
	240, 2099,
	241, 2099,
	242, 2099,
	243, 2099,
	244, 2099,
	245, 2099,
	246, 2099,
	247, 2099,
	248, 2099,
	249, 2099,
	250, 2099,
	251, 2099,
	252, 2099,
	253, 2099,
	254, 2099,
	255, 2099,
	256, 2099,
	258, 2099,
	261, 2099,
	262, 2099,
	264, 2099,
	265, 2099,
	266, 2099,
	267, 2099,
	268, 2099,
	270, 2099,
	271, 2099,
	272, 2099,
	275, 2099,
	276, 2099,
	277, 2099,
	278, 2099,
	280, 2099,
	281, 2099,
	282, 2099,
	284, 2099,
	286, 2099,
	287, 2099,
	288, 2099,
	289, 2099,
	290, 2099,
	291, 2099,
	292, 2099,
	293, 2099,
	294, 2099,
	295, 2099,
	297, 2099,
	298, 2099,
	299, 2099,
	300, 2099,
	301, 2099,
	302, 2099,
	303, 2099,
	305, 2099,
	307, 2099,
	308, 2099,
	309, 2099,
	310, 2099,
	311, 2099,
	312, 2099,
	313, 2099,
	314, 2099,
	315, 2099,
	316, 2099,
	318, 2099,
	319, 2099,
	320, 2099,
	321, 2099,
	322, 2099,
	323, 2099,
	324, 2099,
	325, 2099,
	326, 2099,
	327, 2099,
	328, 2099,
	329, 2099,
	330, 2099,
	331, 2099,
	332, 2099,
	334, 2099,
	335, 2099,
	336, 2099,
	337, 2099,
	338, 2099,
	339, 2099,
	340, 2099,
	341, 2099,
	342, 2099,
	343, 2099,
	344, 2099,
	345, 2099,
	346, 2099,
	347, 2099,
	348, 2099,
	349, 2099,
	350, 2099,
	352, 2099,
	353, 2099,
	354, 2099,
	355, 2099,
	356, 2099,
	357, 2099,
	358, 2099,
	359, 2099,
	360, 2099,
	361, 2099,
	363, 2099,
	364, 2099,
	365, 2099,
	366, 2099,
	367, 2099,
	368, 2099,
	369, 2099,
	370, 2099,
	371, 2099,
	372, 2099,
	373, 2099,
	375, 2099,
	376, 2099,
	377, 2099,
	378, 2099,
	379, 2099,
	380, 2099,
	381, 2099,
	382, 2099,
	383, 2099,
	384, 2099,
	385, 2099,
	386, 2099,
	388, 2099,
	389, 2099,
	390, 2099,
	392, 2099,
	393, 2099,
	394, 2099,
	395, 2099,
	396, 2099,
	397, 2099,
	398, 2099,
	400, 2099,
	401, 2099,
	402, 2099,
	403, 2099,
	404, 2099,
	406, 2099,
	408, 2099,
	409, 2099,
	410, 2099,
	411, 2099,
	412, 2099,
	414, 2099,
	415, 2099,
	416, 2099,
	418, 2099,
	419, 2099,
	422, 2099,
	423, 2099,
	424, 2099,
	425, 2099,
	426, 2099,
	427, 2099,
	428, 2099,
	430, 2099,
	432, 2099,
	433, 2099,
	434, 2099,
	435, 2099,
	436, 2099,
	437, 2099,
	438, 2099,
	440, 2099,
	441, 2099,
	442, 2099,
	447, 2099,
	448, 2099,
	449, 2099,
	450, 2099,
	451, 2099,
	452, 2099,
	453, 2099,
	454, 2099,
	456, 2099,
	457, 2099,
	458, 2099,
	459, 2099,
	460, 2099,
	461, 2099,
	463, 2099,
	464, 2099,
	465, 2099,
	466, 2099,
	467, 2099,
	468, 2099,
	469, 2099,
	470, 2099,
	471, 2099,
	473, 2099,
	476, 2099,
	477, 2099,
	479, 2099,
	480, 2099,
	-2, 0,
	-1, 1354,
	158, 2001,
	405, 2001,
	458, 2001,
	477, 2001,
	-2, 0,
	-1, 1386,
	309, 642,
	361, 642,
	-2, 0,
	-1, 1410,
	1, 637,
	474, 637,
	476, 637,
	478, 637,
	-2, 0,
	-1, 1411,
	1, 662,
	474, 662,
	476, 662,
	478, 662,
	-2, 0,
	-1, 1412,
	1, 644,
	474, 644,
	476, 644,
	478, 644,
	-2, 0,
	-1, 1414,
	1, 648,
	474, 648,
	476, 648,
	478, 648,
	-2, 0,
	-1, 1441,
	1, 2052,
	474, 2052,
	476, 2052,
	477, 2052,
	478, 2052,
	-2, 690,
	-1, 1442,
	1, 1998,
	474, 1998,
	476, 1998,
	477, 1998,
	478, 1998,
	-2, 691,
	-1, 1457,
	1, 992,
	478, 992,
	-2, 997,
	-1, 1460,
	142, 1120,
	155, 1120,
	231, 1120,
	269, 1120,
	-2, 1063,
	-1, 1554,
	126, 1084,
	142, 1084,
	155, 1084,
	201, 1084,
	231, 1084,
	269, 1084,
	279, 1084,
	420, 1084,
	-2, 1491,
	-1, 1611,
	476, 1639,
	-2, 0,
	-1, 1645,
	126, 1084,
	142, 1084,
	155, 1084,
	201, 1084,
	231, 1084,
	269, 1084,
	279, 1084,
	420, 1084,
	-2, 1199,
	-1, 1704,
	475, 1320,
	-2, 1308,
	-1, 1748,
	1, 490,
	478, 490,
	-2, 997,
	-1, 1950,
	1, 639,
	474, 639,
	476, 639,
	478, 639,
	-2, 0,
	-1, 1951,
	1, 664,
	474, 664,
	476, 664,
	478, 664,
	-2, 0,
	-1, 2023,
	340, 1145,
	341, 1145,
	-2, 1353,
	-1, 2054,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1371,
	-1, 2055,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1372,
	-1, 2056,
	85, 0,
	214, 0,
	215, 0,
	460, 0,
	461, 0,
	-2, 1373,
	-1, 2057,
	85, 0,
	214, 0,
	215, 0,
	460, 0,
	461, 0,
	-2, 1374,
	-1, 2058,
	85, 0,
	214, 0,
	215, 0,
	460, 0,
	461, 0,
	-2, 1375,
	-1, 2059,
	85, 0,
	214, 0,
	215, 0,
	460, 0,
	461, 0,
	-2, 1376,
	-1, 2060,
	85, 0,
	214, 0,
	215, 0,
	460, 0,
	461, 0,
	-2, 1377,
	-1, 2061,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1378,
	-1, 2073,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1390,
	-1, 2074,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1391,
	-1, 2075,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1392,
	-1, 2078,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1397,
	-1, 2084,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1401,
	-1, 2086,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1409,
	-1, 2087,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1410,
	-1, 2088,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1411,
	-1, 2089,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1412,
	-1, 2191,
	5, 1277,
	158, 1650,
	475, 1776,
	-2, 1767,
	-1, 2192,
	158, 1651,
	-2, 2056,
	-1, 2193,
	158, 1652,
	-2, 1914,
	-1, 2194,
	158, 1653,
	-2, 1834,
	-1, 2195,
	158, 1654,
	-2, 1870,
	-1, 2196,
	158, 1655,
	-2, 1912,
	-1, 2197,
	158, 1656,
	-2, 1992,
	-1, 2198,
	158, 1657,
	-2, 1474,
	-1, 2267,
	1, 1200,
	2, 1200,
	91, 1200,
	126, 1200,
	142, 1200,
	155, 1200,
	159, 1200,
	165, 1200,
	168, 1200,
	192, 1200,
	201, 1200,
	211, 1200,
	227, 1200,
	231, 1200,
	251, 1200,
	269, 1200,
	273, 1200,
	279, 1200,
	333, 1200,
	335, 1200,
	420, 1200,
	431, 1200,
	444, 1200,
	445, 1200,
	446, 1200,
	455, 1200,
	474, 1200,
	476, 1200,
	478, 1200,
	480, 1200,
	-2, 1199,
	-1, 2280,
	475, 1750,
	-2, 1762,
	-1, 2300,
	475, 1319,
	-2, 1309,
	-1, 2402,
	1, 914,
	474, 914,
	476, 914,
	478, 914,
	-2, 1108,
	-1, 2556,
	274, 1148,
	-2, 2090,
	-1, 2557,
	274, 1149,
	-2, 1981,
	-1, 2561,
	340, 1716,
	341, 1716,
	-2, 1472,
	-1, 2562,
	340, 1720,
	341, 1720,
	-2, 1473,
	-1, 2563,
	340, 1717,
	341, 1717,
	-2, 1472,
	-1, 2564,
	340, 1721,
	341, 1721,
	-2, 1473,
	-1, 2577,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1399,
	-1, 2578,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1403,
	-1, 2584,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1405,
	-1, 2773,
	208, 997,
	305, 997,
	313, 997,
	455, 997,
	-2, 487,
	-1, 2872,
	1, 914,
	474, 914,
	476, 914,
	478, 914,
	-2, 1108,
	-1, 2962,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1407,
	-1, 2969,
	205, 0,
	207, 0,
	261, 0,
	-2, 1426,
	-1, 3033,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1455,
	-1, 3034,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1456,
	-1, 3035,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1457,
	-1, 3039,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1461,
	-1, 3040,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1462,
	-1, 3041,
	14, 0,
	15, 0,
	16, 0,
	456, 0,
	457, 0,
	458, 0,
	-2, 1463,
	-1, 3085,
	475, 1751,
	-2, 1763,
	-1, 3178,
	477, 2204,
	-2, 1041,
	-1, 3229,
	205, 0,
	207, 0,
	261, 0,
	-2, 1427,
	-1, 3232,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1430,
	-1, 3233,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1432,
	-1, 3398,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1431,
	-1, 3399,
	17, 0,
	18, 0,
	19, 0,
	43, 0,
	177, 0,
	180, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 1433,
	-1, 3409,
	205, 0,
	-2, 1464,
	-1, 3525,
	205, 0,
	-2, 1465,
	-1, 3659,
	43, 0,
	177, 0,
	230, 0,
	368, 0,
	453, 0,
	459, 0,
	-2, 2059,
}

const sqlPrivate = 57344

const sqlLast = 85520

var sqlAct = [...]int{
	919, 3546, 3792, 3334, 3441, 3438, 3658, 3561, 3669, 3758,
	2704, 3212, 3468, 3635, 3625, 2858, 3622, 3106, 2223, 3606,
	3671, 3670, 3712, 1226, 2456, 3529, 3427, 3657, 3475, 3001,
	3363, 2705, 3358, 1039, 2041, 3387, 849, 3170, 1210, 3484,
	215, 864, 215, 215, 2332, 215, 215, 215, 215, 215,
	3347, 2887, 215, 1679, 3291, 2854, 2790, 840, 1341, 1469,
	3368, 612, 2101, 2880, 3151, 583, 2954, 2489, 3107, 1840,
	1098, 2882, 3413, 2431, 2445, 2419, 2428, 215, 2570, 1651,
	2391, 612, 2491, 891, 1031, 2727, 2499, 1799, 2747, 2710,
	2690, 1903, 2488, 1191, 2719, 2442, 1680, 1394, 3211, 3264,
	2480, 2708, 1836, 2482, 2440, 2457, 1835, 1620, 2334, 1582,
	3056, 2038, 2259, 1839, 1808, 2689, 2260, 3530, 2605, 207,
	2114, 1562, 704, 2034, 848, 143, 4, 1271, 1912, 2554,
	1199, 86, 3469, 2498, 2393, 2403, 941, 1824, 2429, 1196,
	1786, 1924, 1831, 2262, 915, 1784, 1640, 1082, 1914, 2241,
	1457, 2753, 1621, 2134, 2143, 2220, 2098, 1774, 1325, 2022,
	2005, 2856, 2003, 1347, 1869, 1362, 2450, 613, 1335, 1022,
	614, 875, 2492, 1212, 1276, 551, 1025, 1071, 215, 215,
	2137, 2249, 1004, 2324, 2231, 537, 1577, 1545, 2145, 559,
	2115, 209, 208, 2368, 1630, 2187, 1470, 2004, 150, 1471,
	143, 567, 698, 1868, 608, 1345, 1361, 2006, 577, 1637,
	1021, 1299, 151, 680, 1223, 2257, 1889, 655, 2027, 1798,
	2369, 554, 562, 38, 876, 37, 1027, 35, 1476, 26,
	24, 1002, 22, 753, 770, 1456, 1281, 3070, 2601, 3071,
	1905, 1905, 1905, 3810, 3796, 3795, 3774, 2240, 2240, 2240,
	3305, 3772, 617, 620, 3768, 3305, 2706, 3695, 1845, 3693,
	3691, 3696, 3688, 2240, 2240, 844, 3689, 3685, 2897, 1037,
	839, 3686, 617, 620, 3680, 1019, 844, 2240, 1845, 3655,
	1244, 1484, 1485, 1845, 845, 715, 1008, 2771, 1009, 3654,
	2662, 2663, 2896, 1845, 3653, 3650, 3649, 33, 1917, 1917,
	1917, 1515, 3644, 3642, 2233, 3620, 3305, 3305, 1487, 3305,
	3600, 3594, 3593, 3588, 2295, 2240, 2240, 3305, 3601, 3587,
	3581, 1005, 1005, 3305, 1845, 3527, 3508, 3505, 1238, 2295,
	1845, 3305, 1079, 3477, 1484, 1485, 918, 3478, 1486, 3458,
	3457, 3511, 827, 1845, 1845, 1344, 3449, 1506, 3448, 3419,
	1845, 1056, 3305, 1845, 1515, 1503, 826, 3060, 3400, 3385,
	3376, 1487, 2295, 1917, 2911, 3332, 3323, 1051, 3304, 2240,
	2240, 1413, 3305, 3231, 3186, 3180, 3149, 2295, 2927, 2927,
	3150, 1484, 1485, 834, 3080, 3078, 3063, 1079, 3081, 3079,
	2240, 1486, 2985, 2981, 2926, 3225, 1845, 2240, 2927, 2918,
	2703, 1515, 2701, 2919, 2240, 2700, 2240, 2654, 1487, 2240,
	1006, 2240, 1932, 1509, 1510, 1511, 1512, 2633, 2616, 2614,
	2478, 2634, 2240, 1492, 1920, 2615, 2477, 2405, 2291, 2308,
	1920, 1917, 2668, 2240, 3060, 2294, 2289, 2282, 1486, 2295,
	2240, 1845, 1052, 2239, 1919, 1484, 1485, 2240, 1920, 2232,
	1917, 1243, 3324, 1845, 2919, 1514, 1516, 2382, 2323, 2387,
	1803, 1754, 1845, 1904, 2911, 1515, 2240, 2425, 2569, 1844,
	2321, 1616, 1487, 1222, 3135, 2957, 1492, 2604, 2935, 1638,
	1834, 2898, 2276, 2275, 1501, 1502, 1396, 2274, 2273, 183,
	2272, 183, 1010, 1007, 833, 832, 831, 830, 829, 1237,
	2899, 3280, 1486, 825, 1553, 824, 823, 822, 1514, 1516,
	1507, 821, 820, 1906, 1906, 1906, 819, 2534, 699, 2678,
	818, 817, 1034, 1492, 816, 815, 814, 813, 812, 185,
	751, 185, 750, 749, 748, 747, 746, 745, 744, 743,
	742, 741, 215, 59, 702, 701, 740, 739, 738, 737,
	736, 735, 734, 733, 732, 1514, 1516, 60, 731, 730,
	729, 728, 727, 1507, 726, 725, 1484, 1485, 724, 713,
	215, 712, 671, 64, 184, 632, 184, 215, 631, 623,
	622, 621, 594, 589, 177, 183, 588, 1492, 2453, 587,
	2896, 571, 178, 1487, 1513, 205, 204, 215, 1101, 215,
	215, 215, 1101, 215, 1215, 69, 203, 3243, 1215, 1052,
	1507, 202, 1508, 152, 201, 152, 215, 215, 1081, 1514,
	1516, 2679, 1086, 1486, 3074, 185, 2232, 200, 199, 183,
	198, 75, 197, 196, 195, 194, 74, 2662, 2663, 193,
	215, 192, 191, 190, 189, 188, 85, 187, 1075, 186,
	2928, 75, 82, 215, 2750, 215, 2627, 1215, 215, 215,
	3514, 215, 2470, 1904, 1998, 1508, 1553, 2610, 2409, 185,
	184, 215, 2283, 1052, 1507, 1585, 1641, 183, 215, 2266,
	177, 1584, 2662, 2663, 1585, 1782, 2178, 2164, 178, 2162,
	1584, 1664, 215, 215, 215, 76, 215, 1215, 1483, 3512,
	1571, 1215, 1588, 1228, 215, 1215, 215, 215, 1492, 152,
	1232, 1583, 1508, 3676, 184, 1215, 1088, 185, 1041, 1194,
	183, 215, 1206, 3656, 177, 3568, 3520, 3377, 3437, 1069,
	1504, 1500, 178, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 2673, 2671, 2672, 2664, 2665, 2666, 2667, 2669,
	2670, 1202, 3284, 152, 2437, 3372, 3263, 3262, 1215, 3250,
	185, 1564, 184, 847, 1927, 3249, 1094, 3248, 1188, 1193,
	3247, 3242, 177, 1218, 3239, 3238, 1508, 1282, 1282, 2668,
	178, 3148, 215, 1225, 3094, 1064, 1224, 1495, 1496, 1488,
	1489, 1490, 1491, 1493, 1494, 3155, 215, 3093, 3092, 2922,
	1286, 152, 1569, 3084, 3053, 184, 3052, 617, 620, 3051,
	77, 2977, 1415, 1099, 2973, 177, 2745, 1200, 2697, 2140,
	2688, 2661, 2658, 178, 2668, 2657, 143, 143, 1350, 1352,
	183, 2655, 845, 1926, 2640, 1338, 1488, 1489, 1490, 1491,
	1493, 1494, 2639, 1366, 152, 149, 80, 183, 81, 2638,
	2635, 1329, 1332, 2632, 2626, 1484, 1485, 2609, 3133, 2602,
	2479, 1484, 1485, 119, 2267, 2127, 2678, 183, 1075, 1483,
	185, 1075, 1564, 1423, 1348, 1515, 59, 1880, 1850, 703,
	1018, 1302, 1487, 119, 1461, 2141, 1848, 185, 1487, 1482,
	60, 2662, 2663, 3805, 1565, 1283, 1563, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 64, 185, 3767, 3422,
	3766, 2678, 1486, 3705, 3703, 184, 2662, 2663, 1486, 3694,
	1040, 3003, 3560, 3557, 1231, 177, 1236, 3554, 1242, 3553,
	120, 3552, 184, 178, 3545, 3539, 3509, 3504, 69, 3503,
	2104, 2438, 177, 3491, 153, 1460, 3488, 3454, 2355, 1207,
	178, 3433, 184, 1219, 2452, 3411, 3395, 3371, 3394, 2142,
	2139, 1552, 177, 3382, 3381, 1455, 3351, 3279, 2679, 74,
	178, 152, 3261, 3201, 3198, 3124, 3123, 3110, 3109, 85,
	3066, 2968, 1549, 2929, 75, 82, 2912, 2874, 1371, 2838,
	2817, 700, 2793, 2792, 1387, 2766, 2765, 1492, 2702, 3154,
	2631, 2630, 1278, 1492, 215, 2625, 2593, 2110, 1360, 2418,
	1589, 1586, 1578, 2679, 1575, 845, 1365, 2302, 2301, 2278,
	2271, 1488, 1489, 1490, 1491, 1493, 1494, 2238, 76, 1514,
	1516, 215, 2160, 2668, 1663, 1619, 1627, 1458, 1466, 1618,
	1615, 215, 1101, 215, 215, 215, 215, 827, 1465, 1614,
	1356, 612, 215, 215, 1613, 1587, 612, 215, 2668, 183,
	1219, 826, 215, 2144, 1666, 1612, 1674, 1611, 1215, 1462,
	1414, 1479, 1480, 1610, 183, 1676, 1609, 2662, 2663, 1608,
	1743, 1607, 1746, 1605, 1507, 1604, 1603, 2793, 1602, 1101,
	2671, 2672, 2664, 2665, 2666, 2667, 2669, 2670, 1601, 185,
	1600, 3283, 1599, 1378, 1598, 2436, 1751, 1597, 1037, 3515,
	1037, 1596, 183, 1595, 185, 1594, 1648, 1593, 1592, 1780,
	1624, 1625, 1579, 1580, 2293, 1591, 1566, 1745, 1671, 1550,
	1484, 1485, 1548, 3531, 2742, 1543, 1075, 2664, 2665, 2666,
	2667, 2669, 2670, 77, 184, 1063, 3354, 1005, 3513, 1054,
	1928, 1047, 185, 143, 177, 3281, 3235, 1487, 845, 184,
	2177, 2163, 178, 2161, 2138, 1206, 3090, 3077, 3069, 177,
	2613, 2297, 2269, 3089, 1649, 2662, 2663, 178, 149, 80,
	1565, 81, 1668, 152, 2763, 1546, 1508, 1486, 2304, 1670,
	1773, 1706, 3326, 1773, 1672, 1659, 1773, 184, 152, 2820,
	183, 3436, 3764, 1646, 3757, 3555, 2883, 177, 1803, 1085,
	1083, 3480, 703, 3479, 3375, 178, 119, 1748, 3325, 2668,
	3072, 1215, 1215, 215, 2914, 1600, 1682, 1792, 2913, 1101,
	3158, 3485, 1639, 1600, 1079, 1617, 152, 1076, 1453, 1079,
	185, 2373, 617, 620, 1749, 1070, 1641, 617, 620, 1760,
	1386, 1643, 1658, 2637, 1657, 1675, 1656, 1667, 1654, 1653,
	1742, 1652, 1084, 120, 1585, 2636, 2575, 215, 3122, 2357,
	1584, 215, 1570, 1080, 1677, 1573, 215, 153, 2140, 1841,
	1079, 2860, 810, 2859, 1821, 184, 1424, 1823, 3414, 1395,
	1828, 1925, 3476, 3681, 215, 177, 215, 3668, 215, 1776,
	1396, 1771, 215, 178, 1783, 1766, 2678, 1837, 3138, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 215, 1881, 1490, 1491,
	1493, 1494, 811, 3126, 152, 917, 1655, 2933, 3793, 2706,
	1807, 3005, 2135, 2300, 1077, 1832, 215, 1606, 2619, 3677,
	1581, 2852, 1078, 1877, 2141, 3690, 2664, 2665, 2666, 2667,
	2669, 2670, 1215, 1017, 1215, 215, 1215, 1259, 3687, 215,
	2892, 1034, 3101, 1034, 1215, 1375, 3547, 1215, 215, 1873,
	215, 215, 3359, 2666, 2667, 2669, 2670, 3618, 3536, 2796,
	1215, 1215, 1215, 3117, 215, 1878, 2845, 1842, 2486, 1886,
	1225, 215, 2449, 1224, 3729, 1876, 3728, 3678, 2949, 3580,
	612, 215, 3315, 215, 2775, 215, 1257, 215, 2679, 215,
	2013, 667, 1247, 2309, 617, 620, 1984, 793, 2142, 2139,
	1982, 1908, 1827, 215, 1910, 1761, 215, 3802, 215, 808,
	1915, 3467, 3460, 3140, 806, 2327, 3137, 1843, 3136, 215,
	1421, 2327, 1422, 804, 1846, 1894, 843, 2011, 2325, 1946,
	1076, 1076, 1787, 1883, 2325, 1206, 1788, 1085, 802, 799,
	215, 2013, 2764, 3098, 215, 3097, 2624, 2623, 2777, 2622,
	1860, 2156, 1800, 1859, 2621, 1931, 2579, 2389, 1258, 2381,
	2380, 1930, 2360, 845, 1079, 845, 2290, 1101, 2085, 1085,
	1459, 668, 1221, 3752, 2155, 1809, 2336, 2043, 2011, 1292,
	1368, 1291, 1796, 2446, 1302, 1888, 1891, 2009, 1891, 1936,
	1084, 1033, 1896, 1897, 1892, 2819, 1813, 853, 1373, 1313,
	1942, 842, 2144, 1801, 1802, 1348, 1420, 1348, 2281, 2002,
	2015, 2672, 2664, 2665, 2666, 2667, 2669, 2670, 1858, 3393,
	1765, 1764, 1084, 2394, 1773, 1775, 1997, 1077, 1077, 1789,
	2934, 1797, 2590, 796, 1803, 1078, 1078, 1921, 3104, 1922,
	2012, 1810, 1791, 1064, 3579, 3753, 1996, 1219, 2116, 2117,
	1933, 1935, 1101, 2348, 1940, 1787, 2588, 1266, 2359, 1788,
	2316, 2039, 2040, 1464, 2116, 2132, 2100, 592, 2339, 1992,
	1494, 617, 620, 2537, 1290, 1659, 1289, 1995, 1253, 844,
	2100, 1369, 1432, 2108, 1964, 2552, 1436, 1954, 3311, 2106,
	2298, 2012, 1957, 3113, 3647, 2347, 1893, 215, 1793, 2010,
	2567, 1706, 1706, 2138, 2186, 1949, 2190, 2190, 2204, 1062,
	2116, 2377, 2026, 2224, 2226, 2670, 1388, 2940, 2230, 1101,
	1044, 215, 1814, 3443, 2994, 1768, 2939, 2144, 2370, 2371,
	215, 2370, 2371, 3755, 2370, 2371, 1682, 1682, 3327, 2001,
	2135, 1999, 215, 2531, 1787, 1101, 2014, 2007, 1788, 2000,
	2010, 591, 1789, 1042, 1277, 827, 2991, 2540, 827, 827,
	845, 1994, 2279, 3741, 2585, 1791, 874, 2131, 1452, 2030,
	2396, 845, 2031, 2032, 3740, 845, 1958, 1079, 1079, 2586,
	3776, 1923, 2042, 2591, 1815, 1816, 3728, 2395, 2397, 1219,
	2096, 1275, 1934, 1811, 1950, 1037, 1419, 1384, 722, 2254,
	1794, 2246, 2288, 670, 669, 1943, 1944, 1945, 2566, 3717,
	1396, 1037, 2112, 1396, 2094, 2338, 3445, 1648, 1770, 3217,
	841, 1793, 2889, 3392, 3216, 215, 2400, 1812, 2144, 2774,
	2992, 2559, 2560, 1215, 2813, 1255, 2129, 1045, 3309, 2890,
	1005, 1789, 2268, 1794, 1794, 2831, 1951, 2153, 2825, 1769,
	3125, 665, 2154, 664, 1791, 2157, 2326, 2158, 2159, 845,
	2245, 2539, 2358, 1101, 2253, 3788, 2258, 2147, 215, 2264,
	2265, 1751, 1820, 1991, 1374, 1805, 215, 2841, 1830, 2228,
	3754, 2536, 2215, 143, 2199, 2292, 3548, 215, 1312, 2236,
	2237, 624, 1433, 2776, 697, 859, 2251, 2252, 1829, 2889,
	215, 3674, 1983, 1075, 1646, 1277, 1981, 2247, 1905, 1576,
	1793, 1794, 2761, 3389, 215, 1101, 800, 1817, 1410, 1215,
	549, 800, 2090, 1794, 1587, 215, 215, 2312, 1825, 2587,
	800, 3213, 2337, 2091, 2144, 2328, 3114, 2092, 2589, 1803,
	2314, 2097, 2206, 1790, 544, 801, 800, 3405, 215, 1801,
	1802, 215, 1035, 593, 1372, 590, 788, 2780, 215, 2807,
	2280, 2538, 2327, 3310, 215, 1993, 2401, 1252, 2303, 1370,
	1411, 2422, 2315, 2307, 215, 2342, 215, 1826, 838, 215,
	1956, 3343, 1818, 3737, 3302, 215, 2363, 2313, 215, 1434,
	215, 3630, 215, 2378, 1579, 1580, 3761, 215, 1215, 1215,
	2306, 1215, 2362, 3559, 2806, 788, 215, 215, 3716, 215,
	215, 2310, 1794, 1215, 3299, 2809, 2581, 3388, 2460, 1194,
	3444, 215, 797, 2126, 1542, 1463, 1706, 838, 2629, 3598,
	2099, 2107, 3675, 1206, 2250, 2082, 2406, 215, 215, 215,
	2331, 1043, 215, 2811, 215, 2350, 1785, 215, 1034, 215,
	1953, 215, 2341, 2344, 2500, 789, 2361, 2474, 3300, 1431,
	949, 1682, 2390, 1435, 1034, 2521, 1790, 2522, 1948, 2379,
	3777, 1061, 215, 215, 215, 215, 215, 215, 2322, 215,
	2263, 1629, 1777, 1778, 2469, 723, 3698, 2093, 2372, 2374,
	2375, 2376, 1225, 3699, 2810, 2407, 2095, 844, 625, 626,
	211, 3353, 539, 540, 789, 555, 539, 555, 565, 570,
	215, 3673, 586, 3207, 2416, 2426, 617, 620, 215, 2462,
	3086, 211, 1057, 3218, 143, 3390, 2475, 2504, 3562, 2485,
	2507, 2951, 2508, 2516, 2444, 2550, 2472, 708, 3789, 2455,
	3672, 211, 1398, 2523, 3344, 2525, 2466, 2527, 2467, 1633,
	2468, 3727, 3725, 2502, 3715, 1790, 2505, 2506, 1206, 1383,
	1385, 3576, 3153, 2535, 2476, 2511, 2512, 2513, 3490, 2080,
	2487, 3168, 2083, 3596, 1348, 2876, 2354, 2518, 2503, 1867,
	1626, 1906, 1636, 1822, 1629, 1055, 2524, 2519, 2526, 1050,
	2528, 3759, 1206, 536, 1206, 1474, 2343, 1473, 628, 627,
	3214, 1631, 790, 3597, 1473, 2386, 3042, 215, 3295, 2029,
	1468, 1804, 3296, 1762, 3259, 2545, 545, 1634, 2955, 2607,
	2608, 2542, 2079, 2544, 2611, 3782, 2582, 2411, 1633, 2413,
	2612, 2754, 2558, 3451, 3450, 3431, 3535, 3169, 539, 539,
	3100, 1632, 2549, 2548, 2877, 2871, 211, 3563, 2547, 629,
	630, 790, 1633, 3298, 2788, 2603, 2026, 2784, 2553, 2430,
	2729, 1636, 2420, 2721, 2402, 1887, 3301, 2451, 2568, 3760,
	2451, 546, 3314, 1542, 1879, 1872, 3697, 1854, 2019, 3313,
	2248, 1759, 2990, 3607, 2952, 1636, 1472, 2242, 1473, 1988,
	2364, 3171, 1755, 1472, 3364, 2417, 1634, 3219, 836, 1315,
	788, 3762, 3474, 3472, 1631, 3432, 3068, 2799, 2795, 1941,
	2794, 547, 2573, 548, 791, 1101, 845, 2551, 2718, 2580,
	1634, 2699, 838, 2717, 1474, 1635, 2287, 2713, 2714, 1412,
	719, 1474, 2286, 2285, 215, 2284, 2424, 2715, 2730, 215,
	1298, 3541, 215, 2473, 1632, 215, 215, 1101, 711, 3043,
	1757, 215, 1296, 792, 842, 2529, 2244, 3044, 1219, 721,
	2081, 2243, 837, 791, 1101, 3260, 1284, 2618, 3220, 1758,
	3297, 215, 3439, 3335, 2923, 1885, 2735, 1472, 2404, 3781,
	2728, 2020, 3734, 1285, 3470, 3615, 215, 3429, 3604, 3265,
	3610, 3736, 3057, 2151, 2759, 3692, 3556, 1037, 3564, 789,
	2732, 1450, 792, 3410, 1635, 215, 215, 215, 1448, 2770,
	3542, 215, 1037, 1399, 215, 2725, 1428, 2749, 2723, 3430,
	3258, 2720, 215, 215, 2772, 215, 215, 215, 1635, 3312,
	1033, 2744, 1033, 2365, 2366, 1426, 2692, 1409, 2778, 215,
	215, 215, 1037, 2748, 1407, 2691, 2724, 2967, 215, 2781,
	2782, 2733, 3440, 2694, 2695, 2696, 3611, 2736, 2737, 1075,
	1405, 215, 215, 2931, 2848, 2707, 2797, 2741, 2656, 2801,
	1101, 1403, 2762, 2592, 2421, 2388, 3543, 2722, 2785, 2798,
	2731, 1215, 2803, 2804, 2356, 2734, 1401, 1393, 2305, 2755,
	1101, 1665, 1391, 1294, 2739, 215, 2740, 1662, 215, 215,
	1451, 1363, 215, 2751, 2948, 1215, 215, 2947, 215, 2789,
	1468, 2533, 1706, 2532, 2824, 1980, 1215, 2756, 2757, 2758,
	2510, 2008, 1990, 1961, 1744, 215, 1590, 1367, 215, 1270,
	2712, 1671, 2150, 215, 3667, 215, 1792, 717, 718, 2885,
	2773, 1297, 215, 2857, 2779, 2870, 790, 1682, 3603, 1706,
	2839, 215, 215, 1295, 2832, 709, 710, 1449, 3331, 1206,
	720, 3322, 2738, 1792, 1447, 3362, 1215, 1215, 3288, 3167,
	2767, 2768, 1427, 2769, 215, 215, 2812, 2500, 215, 2752,
	1876, 3163, 3120, 3118, 1682, 2818, 2500, 2894, 2822, 2846,
	3099, 1425, 2827, 1408, 2869, 1832, 2861, 2830, 2471, 2447,
	1406, 2833, 1048, 1832, 2435, 2834, 2427, 2842, 2840, 2414,
	1918, 1916, 2987, 1037, 1911, 215, 1404, 1101, 215, 215,
	1101, 215, 2849, 1909, 2362, 2847, 1907, 1402, 1898, 2878,
	1058, 2886, 1851, 1849, 1838, 2868, 1833, 586, 2902, 2903,
	2904, 3713, 1400, 1392, 2907, 2865, 1819, 2828, 1390, 1293,
	1034, 2829, 1806, 1795, 215, 2881, 835, 211, 791, 211,
	211, 1197, 798, 211, 845, 1034, 2891, 2884, 1979, 3497,
	1206, 1206, 2571, 2925, 1673, 2900, 211, 1227, 2893, 2921,
	2906, 1477, 143, 143, 2908, 2909, 3729, 1014, 3638, 3384,
	2945, 1101, 3379, 3378, 2501, 1034, 1781, 792, 1249, 2905,
	1251, 2910, 2936, 2327, 2937, 2752, 2938, 2327, 1101, 3499,
	215, 1015, 2346, 1269, 3179, 1274, 2325, 1337, 211, 211,
	2345, 1197, 1803, 1445, 1446, 1952, 2930, 2970, 1884, 2814,
	2815, 211, 1336, 2816, 1978, 1977, 603, 3637, 1311, 1959,
	1206, 3316, 1484, 1485, 2979, 2980, 3550, 2942, 1484, 1485,
	2572, 3522, 211, 211, 211, 1389, 1197, 2943, 3266, 2367,
	2349, 2835, 2836, 2950, 586, 2837, 211, 211, 1481, 2946,
	3730, 1478, 3723, 2953, 1752, 1487, 2383, 2351, 2385, 1556,
	2353, 708, 3602, 1561, 3572, 3569, 803, 805, 807, 550,
	2384, 1035, 2352, 1035, 3162, 3152, 3083, 3054, 2454, 1486,
	2229, 1016, 2975, 1747, 1337, 1486, 656, 1678, 1337, 3756,
	1706, 696, 2760, 3780, 2662, 2663, 1553, 2986, 1484, 1485,
	215, 215, 3571, 2039, 3012, 3008, 2843, 3002, 3240, 3009,
	3006, 1101, 1200, 2319, 2320, 1099, 561, 2146, 3011, 2039,
	3022, 1377, 211, 2317, 2318, 1682, 3088, 1376, 3073, 2319,
	2866, 2317, 215, 2152, 3021, 3019, 211, 2993, 2995, 2996,
	3046, 2872, 1430, 1706, 1706, 1429, 1034, 3236, 3087, 2998,
	3050, 1551, 3799, 3769, 3742, 3095, 3532, 3464, 3423, 1706,
	1706, 1037, 1037, 3421, 3350, 3282, 3047, 3064, 3065, 3204,
	3197, 3185, 3165, 3147, 2997, 3146, 3145, 3116, 1682, 1682,
	215, 3111, 3059, 3007, 3061, 3062, 2983, 143, 2901, 3055,
	1706, 2916, 2917, 2875, 1682, 1682, 3127, 2873, 2515, 2514,
	2464, 2439, 2415, 2999, 2111, 1976, 1215, 1975, 1974, 1215,
	1973, 1901, 1900, 3076, 1899, 1882, 3075, 3139, 1862, 1861,
	1857, 1856, 215, 1855, 1853, 1682, 1852, 1444, 1443, 1324,
	215, 1323, 1322, 1321, 1320, 1319, 1318, 215, 1317, 1316,
	1314, 1309, 1308, 1215, 1307, 3131, 1306, 1305, 1265, 1264,
	1263, 1262, 1261, 3119, 1260, 3121, 1254, 215, 1248, 3103,
	1246, 1245, 1092, 1091, 1090, 1089, 3181, 3143, 1060, 3132,
	3134, 1059, 215, 215, 1215, 1215, 1215, 989, 215, 215,
	215, 3173, 896, 215, 215, 1753, 809, 215, 215, 795,
	1215, 3442, 3159, 1438, 73, 215, 1101, 1256, 643, 68,
	3176, 2460, 3115, 3175, 3160, 2362, 651, 3617, 2805, 2392,
	1960, 1397, 1962, 3172, 2789, 3091, 2743, 1033, 1101, 2270,
	3595, 3244, 2628, 3161, 3528, 3404, 3085, 2149, 1572, 70,
	884, 971, 2500, 1033, 3342, 3341, 3289, 3102, 2490, 3164,
	3339, 1037, 3338, 852, 539, 1104, 1763, 3174, 3205, 1876,
	890, 3144, 2023, 3234, 1706, 1779, 1772, 3177, 3187, 3183,
	2299, 2189, 3182, 1686, 215, 211, 893, 211, 1683, 1685,
	895, 211, 3196, 3189, 3203, 3188, 894, 1684, 1574, 3200,
	892, 1227, 3230, 1197, 211, 1681, 211, 3199, 2423, 1682,
	2458, 211, 1227, 555, 1301, 3221, 211, 1227, 3222, 3210,
	3194, 3195, 586, 774, 1767, 3215, 2105, 2133, 2617, 3202,
	1567, 865, 886, 2130, 1034, 1034, 1053, 2726, 3193, 2888,
	3082, 3370, 2018, 659, 2659, 2136, 1046, 215, 2212, 2205,
	2201, 2448, 1454, 1101, 1544, 1101, 2459, 1087, 868, 2103,
	1558, 2597, 2028, 2895, 2746, 2296, 3634, 2033, 1866, 1013,
	3271, 1012, 1011, 3624, 3621, 2855, 1756, 2311, 215, 215,
	215, 1536, 2862, 880, 1205, 1706, 2711, 2924, 1267, 3549,
	3257, 215, 1535, 2399, 2398, 3538, 1074, 1073, 1072, 215,
	2787, 215, 3787, 3112, 215, 215, 215, 3307, 2207, 1628,
	182, 2565, 1475, 1467, 3308, 179, 1101, 215, 215, 181,
	1682, 1101, 3285, 3286, 1037, 180, 3346, 3319, 3320, 3129,
	3267, 215, 1037, 3274, 17, 215, 3273, 90, 3272, 3277,
	3270, 3268, 3269, 3317, 215, 1037, 2748, 3287, 1101, 215,
	3278, 36, 16, 1215, 118, 117, 116, 3318, 115, 114,
	113, 112, 107, 111, 110, 109, 108, 3306, 106, 105,
	104, 3141, 103, 102, 101, 3336, 100, 99, 98, 97,
	96, 95, 215, 211, 94, 93, 92, 91, 582, 579,
	3329, 3366, 50, 49, 1101, 89, 3380, 88, 15, 34,
	13, 3333, 54, 55, 12, 3383, 29, 30, 79, 3206,
	78, 3330, 3352, 3337, 1034, 3369, 28, 3357, 3355, 3374,
	14, 27, 25, 3365, 1101, 10, 8, 211, 3360, 3367,
	7, 211, 31, 1650, 11, 148, 211, 1876, 147, 3190,
	3191, 3192, 146, 72, 145, 144, 71, 23, 9, 140,
	3483, 3157, 67, 142, 211, 141, 211, 139, 211, 138,
	137, 1101, 539, 851, 3391, 3416, 65, 136, 135, 215,
	3276, 215, 66, 1101, 215, 3401, 1902, 134, 21, 5,
	53, 3396, 215, 6, 3386, 2932, 83, 84, 32, 63,
	62, 61, 20, 52, 19, 3412, 211, 172, 1035, 171,
	170, 169, 164, 163, 168, 215, 166, 3426, 165, 167,
	162, 174, 173, 176, 1035, 586, 160, 156, 155, 708,
	159, 3417, 3418, 161, 215, 158, 157, 3425, 211, 154,
	1197, 211, 215, 175, 58, 3420, 3424, 133, 2109, 132,
	215, 131, 3463, 1101, 586, 130, 1215, 129, 3482, 128,
	3473, 211, 215, 3447, 3446, 1556, 127, 57, 18, 2,
	211, 211, 1, 211, 0, 211, 0, 211, 0, 211,
	3461, 3487, 0, 215, 215, 3498, 2857, 1034, 1706, 3506,
	3507, 3471, 0, 1985, 3494, 1034, 1986, 3481, 1987, 3455,
	3456, 0, 3453, 3518, 3519, 215, 3465, 0, 1034, 211,
	3496, 0, 0, 3486, 0, 0, 2211, 0, 0, 1099,
	215, 3495, 0, 1682, 3369, 3500, 3493, 0, 3501, 0,
	570, 0, 0, 3492, 586, 3544, 0, 0, 0, 0,
	3345, 0, 1706, 0, 0, 0, 3534, 0, 0, 3402,
	3356, 0, 3521, 0, 0, 3526, 0, 0, 0, 0,
	0, 0, 3551, 0, 0, 0, 0, 0, 3373, 215,
	3533, 0, 0, 0, 3558, 0, 0, 1682, 0, 0,
	0, 215, 0, 0, 1215, 0, 3402, 0, 0, 0,
	215, 0, 0, 0, 1215, 1215, 3573, 3586, 2042, 3575,
	1215, 0, 0, 1206, 215, 0, 215, 0, 0, 3502,
	0, 3566, 3567, 3570, 0, 0, 0, 3510, 0, 3565,
	0, 0, 3577, 3578, 0, 0, 2555, 3591, 0, 3592,
	215, 3599, 3517, 0, 0, 0, 215, 3590, 1706, 215,
	3614, 1101, 3583, 3486, 0, 0, 3582, 3612, 0, 1033,
	215, 215, 3584, 3585, 3623, 3626, 3632, 0, 3589, 3613,
	0, 0, 3639, 3627, 1033, 0, 3631, 215, 0, 0,
	0, 0, 0, 1682, 0, 3619, 0, 0, 0, 3652,
	0, 3651, 3628, 0, 0, 0, 0, 539, 0, 0,
	0, 0, 215, 0, 1033, 3636, 0, 3643, 0, 3646,
	0, 0, 211, 3648, 0, 0, 2207, 2207, 3679, 0,
	0, 539, 3684, 0, 0, 3663, 3664, 3665, 211, 0,
	539, 3302, 3666, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 211, 0, 3702, 0, 0, 595, 215, 3704,
	3682, 0, 3700, 0, 0, 3709, 0, 3710, 0, 0,
	0, 3299, 0, 0, 3292, 0, 3714, 0, 215, 3701,
	0, 0, 3706, 0, 0, 0, 0, 0, 0, 3290,
	0, 0, 0, 0, 0, 3294, 3720, 3721, 3732, 0,
	0, 3724, 2460, 3726, 3722, 215, 0, 215, 3623, 0,
	0, 3626, 3731, 3733, 3735, 3300, 0, 3745, 3747, 3744,
	3739, 851, 0, 0, 3751, 851, 3743, 3749, 3738, 0,
	0, 3746, 3750, 3748, 0, 555, 2207, 2207, 2207, 0,
	0, 0, 0, 0, 0, 0, 0, 3293, 0, 3763,
	3765, 3636, 0, 0, 0, 0, 0, 0, 600, 3771,
	0, 3770, 0, 59, 0, 1229, 0, 1233, 0, 1239,
	3773, 0, 0, 3778, 3775, 0, 2042, 60, 2335, 0,
	0, 3784, 0, 0, 3791, 1033, 211, 0, 0, 3794,
	0, 0, 0, 64, 3790, 3785, 3786, 211, 0, 0,
	0, 3707, 3708, 3797, 0, 3711, 3798, 0, 3800, 0,
	211, 0, 3803, 0, 0, 0, 0, 3807, 3801, 3809,
	605, 0, 0, 3804, 211, 69, 3806, 0, 0, 0,
	0, 2662, 2663, 3811, 3808, 211, 2408, 0, 0, 0,
	0, 0, 602, 0, 2211, 0, 0, 0, 0, 1359,
	0, 0, 0, 0, 0, 0, 74, 1364, 1227, 0,
	0, 211, 0, 0, 0, 3295, 85, 0, 211, 3296,
	0, 75, 82, 0, 2443, 0, 0, 3640, 0, 0,
	3641, 0, 0, 0, 2335, 0, 539, 0, 0, 2463,
	0, 0, 0, 0, 0, 211, 0, 2677, 211, 0,
	211, 0, 211, 0, 0, 0, 0, 1197, 0, 0,
	3298, 0, 0, 1416, 0, 76, 2483, 708, 0, 2335,
	2335, 0, 0, 3301, 2211, 2211, 0, 0, 0, 0,
	1035, 211, 0, 0, 2662, 2663, 0, 2680, 2681, 2682,
	0, 0, 0, 0, 0, 1035, 597, 211, 1197, 211,
	0, 0, 1227, 3227, 1227, 0, 0, 1197, 0, 1197,
	0, 1197, 0, 0, 0, 0, 601, 0, 0, 0,
	0, 2594, 2595, 2668, 0, 1035, 0, 0, 0, 0,
	0, 0, 211, 211, 211, 211, 1197, 211, 0, 211,
	0, 604, 0, 0, 1537, 1538, 1539, 1540, 1541, 0,
	2677, 0, 0, 0, 0, 0, 0, 599, 0, 0,
	0, 0, 2662, 2663, 0, 2680, 2681, 2682, 0, 0,
	211, 0, 0, 1555, 0, 0, 0, 3297, 211, 1568,
	77, 0, 0, 0, 2211, 2211, 2211, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 596, 0, 0, 0,
	0, 0, 0, 1033, 1033, 0, 0, 0, 0, 0,
	2678, 0, 0, 0, 0, 149, 80, 0, 81, 0,
	0, 0, 0, 0, 0, 0, 2668, 0, 2677, 0,
	0, 2685, 2686, 2687, 606, 0, 0, 183, 0, 0,
	0, 0, 0, 0, 0, 598, 0, 0, 0, 703,
	0, 0, 0, 119, 0, 0, 0, 0, 2207, 2207,
	0, 0, 0, 0, 0, 2662, 2663, 1227, 2680, 2681,
	2682, 0, 0, 0, 0, 0, 0, 185, 2683, 0,
	0, 0, 0, 0, 3226, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1035, 0, 0, 0,
	120, 1622, 1622, 1622, 2668, 0, 0, 0, 0, 0,
	0, 0, 2679, 2678, 153, 0, 0, 0, 0, 0,
	0, 0, 184, 0, 0, 0, 0, 0, 0, 0,
	0, 2677, 177, 0, 0, 0, 0, 0, 0, 0,
	178, 0, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
	2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
	2207, 152, 2207, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 851, 0, 211, 0, 0, 0, 0, 0,
	0, 0, 0, 1033, 0, 0, 0, 0, 0, 211,
	0, 2678, 0, 0, 539, 0, 0, 0, 0, 539,
	0, 0, 539, 0, 0, 539, 539, 2668, 0, 0,
	0, 539, 0, 0, 0, 2679, 0, 0, 0, 211,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1227, 0, 2673, 2671, 2672, 2664, 2665, 2666, 2667,
	2669, 2670, 0, 0, 0, 0, 1227, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2683,
	0, 0, 0, 0, 0, 2335, 2335, 211, 0, 0,
	0, 2335, 0, 0, 2791, 0, 0, 0, 0, 0,
	0, 0, 2335, 2791, 0, 2335, 2791, 2791, 0, 0,
	0, 0, 0, 2679, 2678, 0, 0, 0, 0, 211,
	211, 211, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 211, 1197, 0, 0, 0, 0, 0, 0, 2674,
	2675, 2676, 0, 0, 0, 0, 2673, 2671, 2672, 2664,
	2665, 2666, 2667, 2669, 2670, 0, 1033, 0, 0, 0,
	0, 0, 0, 0, 1033, 2851, 2211, 2211, 2853, 2335,
	0, 0, 211, 0, 1035, 1035, 211, 1033, 1274, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2443, 0, 0, 1197, 0,
	211, 0, 0, 2335, 0, 539, 2679, 0, 0, 0,
	0, 0, 2335, 2963, 2964, 0, 0, 2674, 2675, 2676,
	0, 211, 211, 0, 2673, 2671, 2672, 2664, 2665, 2666,
	2667, 2669, 2670, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 211, 2443, 0, 0, 2443, 0,
	2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211,
	2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 2211, 0,
	2211, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 2941, 0, 0, 1197, 211,
	0, 211, 0, 0, 0, 0, 0, 3023, 3024, 3025,
	3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035,
	3036, 3037, 3038, 3039, 3040, 3041, 0, 3045, 0, 0,
	2674, 2675, 2676, 0, 211, 0, 0, 2673, 2671, 2672,
	2664, 2665, 2666, 2667, 2669, 2670, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1035, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2017, 0, 2021, 0, 0, 0, 0, 0,
	3004, 2035, 0, 0, 0, 0, 0, 0, 2044, 2045,
	2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055,
	2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065,
	2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075,
	2076, 2077, 2078, 0, 2084, 0, 2086, 2087, 2088, 2089,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 2113, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1555,
	0, 0, 0, 2128, 0, 0, 0, 0, 211, 211,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	539, 539, 0, 2166, 2169, 2172, 2175, 0, 2179, 2180,
	2181, 2182, 2183, 2184, 2185, 0, 0, 0, 0, 2203,
	0, 2214, 2216, 2221, 0, 0, 0, 1035, 0, 0,
	0, 0, 1227, 0, 0, 1035, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1035, 0,
	0, 0, 0, 0, 0, 0, 2207, 0, 0, 59,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
	586, 0, 0, 0, 0, 0, 0, 0, 0, 64,
	0, 0, 0, 0, 0, 0, 0, 0, 2207, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 69, 211, 0, 0, 950, 0, 0, 0, 0,
	211, 0, 0, 0, 0, 0, 0, 211, 0, 0,
	0, 2662, 2663, 0, 2680, 2681, 2682, 0, 0, 0,
	0, 0, 74, 0, 0, 0, 0, 2335, 211, 0,
	2972, 0, 85, 0, 0, 212, 0, 75, 82, 0,
	0, 0, 2483, 2483, 0, 0, 0, 0, 708, 708,
	2335, 0, 0, 2443, 2443, 0, 212, 708, 2335, 0,
	0, 0, 0, 0, 0, 211, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 212, 2677, 2207, 0,
	126, 76, 0, 0, 0, 0, 59, 0, 0, 0,
	0, 0, 0, 0, 2662, 2663, 0, 2680, 2681, 2682,
	60, 121, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2971, 0, 0, 64, 2662, 2663, 0,
	2680, 2681, 2682, 0, 0, 0, 0, 0, 2410, 0,
	2412, 40, 123, 0, 3245, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 39, 0, 69, 0,
	0, 0, 0, 2668, 0, 0, 0, 0, 0, 0,
	2677, 0, 0, 0, 0, 0, 0, 0, 0, 42,
	0, 0, 0, 0, 43, 0, 0, 0, 0, 74,
	0, 0, 124, 2677, 0, 0, 0, 0, 41, 85,
	0, 211, 0, 0, 75, 82, 77, 1227, 0, 211,
	0, 0, 0, 0, 0, 2683, 0, 0, 0, 0,
	0, 0, 211, 0, 0, 0, 0, 0, 0, 0,
	0, 44, 0, 0, 2211, 0, 0, 0, 2335, 2335,
	2335, 149, 80, 0, 81, 0, 2668, 0, 76, 0,
	2678, 1227, 0, 0, 0, 0, 0, 0, 0, 2335,
	0, 2791, 0, 183, 1227, 1227, 211, 0, 2530, 2668,
	0, 0, 0, 0, 0, 703, 2211, 211, 211, 119,
	0, 3409, 1029, 0, 0, 0, 0, 0, 0, 0,
	0, 2335, 0, 0, 0, 3348, 2684, 0, 2683, 0,
	0, 0, 0, 185, 211, 0, 0, 0, 0, 211,
	0, 0, 0, 0, 1537, 1538, 0, 0, 0, 1484,
	1485, 2683, 206, 3434, 0, 0, 120, 0, 0, 0,
	0, 0, 0, 2678, 0, 0, 0, 0, 0, 1515,
	153, 0, 1227, 0, 0, 0, 1487, 0, 184, 0,
	0, 0, 2679, 0, 0, 0, 2678, 0, 177, 0,
	0, 0, 0, 77, 0, 0, 178, 0, 0, 2577,
	2578, 45, 0, 0, 0, 2584, 1486, 0, 0, 0,
	0, 0, 0, 0, 0, 1506, 2211, 1353, 0, 0,
	0, 0, 56, 0, 2598, 2599, 0, 48, 149, 80,
	2128, 81, 0, 46, 0, 0, 0, 125, 0, 2606,
	0, 0, 0, 47, 0, 0, 0, 0, 0, 0,
	183, 0, 0, 0, 0, 2620, 0, 0, 0, 2335,
	0, 2791, 51, 3525, 3428, 2679, 119, 0, 0, 0,
	0, 0, 211, 0, 0, 0, 122, 0, 0, 0,
	2641, 1509, 1510, 1511, 1512, 2211, 2211, 0, 2679, 0,
	185, 1492, 0, 0, 0, 586, 2674, 2675, 2676, 0,
	0, 0, 0, 2673, 2671, 2672, 2664, 2665, 2666, 2667,
	2669, 2670, 0, 120, 3428, 0, 0, 0, 0, 0,
	0, 0, 2335, 1514, 1516, 0, 0, 153, 0, 0,
	3489, 0, 0, 0, 0, 184, 0, 2221, 2221, 2221,
	0, 0, 1227, 0, 0, 177, 0, 0, 0, 0,
	0, 0, 1622, 178, 0, 0, 0, 0, 0, 0,
	2716, 0, 0, 211, 211, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 152, 0, 0, 3, 1507, 2674,
	2675, 2676, 0, 0, 0, 3004, 2673, 2671, 2672, 2664,
	2665, 2666, 2667, 2669, 2670, 0, 0, 0, 0, 0,
	3428, 0, 2674, 2675, 2676, 0, 0, 0, 0, 2673,
	2671, 2672, 2664, 2665, 2666, 2667, 2669, 2670, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 851, 0, 0,
	0, 0, 212, 1106, 212, 212, 0, 1106, 212, 1106,
	0, 851, 0, 1106, 0, 0, 0, 0, 0, 3348,
	0, 212, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 211, 1513, 0, 0, 0, 0, 0, 2808, 0,
	2791, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1508, 0, 0, 0, 1227, 0, 1227, 0, 0, 0,
	0, 59, 1106, 212, 212, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 60, 212, 0, 2662, 2663,
	3608, 2680, 2681, 2682, 0, 0, 1227, 0, 0, 211,
	0, 64, 0, 0, 0, 0, 0, 212, 212, 212,
	211, 2335, 1106, 0, 0, 0, 1106, 0, 0, 0,
	1106, 212, 212, 0, 0, 0, 0, 211, 0, 0,
	1106, 0, 0, 69, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 3004, 0, 2677, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 74, 0, 0, 0, 0, 0,
	0, 0, 0, 1106, 85, 0, 0, 0, 0, 75,
	82, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494,
	0, 0, 0, 1484, 1485, 0, 0, 212, 2335, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 212, 0, 1515, 0, 0, 0, 0, 3428, 0,
	1487, 0, 0, 76, 0, 1533, 0, 0, 0, 0,
	2668, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1227, 0, 2335, 0, 0,
	1486, 0, 0, 0, 0, 0, 0, 0, 0, 1506,
	0, 0, 0, 916, 0, 0, 0, 1503, 0, 2035,
	0, 0, 0, 0, 0, 2958, 2959, 0, 0, 2962,
	0, 0, 2683, 2965, 0, 0, 0, 0, 0, 1096,
	0, 0, 2969, 0, 0, 1204, 0, 0, 0, 0,
	0, 2976, 0, 210, 2716, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 2678, 0, 2988,
	0, 0, 0, 0, 618, 1509, 1510, 1511, 1512, 0,
	0, 0, 0, 0, 0, 1492, 0, 0, 77, 0,
	0, 0, 0, 0, 618, 0, 0, 0, 3013, 3014,
	0, 3015, 3016, 3017, 0, 0, 3018, 0, 0, 1524,
	3020, 0, 1534, 1303, 0, 0, 0, 1514, 1516, 0,
	0, 0, 0, 149, 80, 0, 81, 0, 0, 0,
	0, 1484, 1485, 0, 1328, 1328, 1328, 0, 0, 0,
	0, 3048, 3049, 0, 0, 183, 1501, 1502, 1357, 1358,
	0, 1515, 0, 0, 0, 0, 3058, 703, 1487, 0,
	0, 119, 1522, 0, 0, 0, 213, 0, 0, 2679,
	0, 3067, 1507, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 185, 0, 0, 1486, 0,
	0, 0, 0, 0, 0, 0, 212, 1506, 0, 1036,
	0, 0, 0, 0, 0, 1503, 0, 1106, 120, 212,
	212, 212, 0, 0, 0, 0, 212, 0, 0, 0,
	0, 212, 153, 0, 1437, 0, 0, 3096, 0, 0,
	184, 0, 0, 1106, 0, 0, 0, 0, 0, 0,
	177, 0, 3105, 3108, 0, 2966, 0, 0, 178, 0,
	0, 0, 0, 0, 1106, 0, 1513, 0, 0, 0,
	0, 0, 0, 1509, 1510, 1511, 1512, 0, 3128, 1351,
	0, 0, 0, 1492, 1508, 0, 216, 0, 0, 0,
	0, 0, 0, 2674, 2675, 2676, 0, 0, 0, 0,
	2673, 2671, 2672, 2664, 2665, 2666, 2667, 2669, 2670, 0,
	1525, 0, 0, 0, 0, 1514, 1516, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	863, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 611, 0, 1622,
	0, 0, 0, 0, 0, 0, 0, 0, 3184, 0,
	0, 0, 0, 0, 0, 0, 0, 611, 0, 0,
	1507, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1523, 1106, 1106, 212, 0,
	0, 1526, 1504, 1500, 1106, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 0, 0, 0, 0, 0, 0,
	3223, 3224, 0, 0, 0, 0, 3228, 3229, 0, 0,
	0, 3232, 3233, 0, 0, 0, 0, 0, 3237, 0,
	0, 0, 212, 0, 0, 0, 212, 0, 0, 3241,
	0, 212, 0, 0, 1513, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 3246, 0, 0, 0, 212,
	0, 212, 1508, 212, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1660, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1669, 0, 1204, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 212, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1106, 0, 1106,
	0, 1106, 0, 0, 0, 0, 0, 0, 0, 1106,
	0, 0, 1106, 212, 0, 0, 212, 0, 0, 0,
	0, 0, 0, 0, 0, 1106, 1106, 1106, 0, 0,
	0, 0, 0, 0, 0, 0, 212, 0, 0, 3108,
	0, 0, 0, 0, 0, 212, 212, 0, 212, 0,
	212, 0, 212, 0, 212, 0, 0, 0, 0, 0,
	1504, 1500, 0, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 212, 0, 0, 0, 0, 0,
	210, 0, 210, 210, 0, 0, 210, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 618,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 3108, 0,
	0, 0, 1106, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 210, 210, 0, 0, 3397, 3398, 3399, 0, 0,
	0, 0, 0, 0, 210, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 3407, 3408, 0, 0, 210, 210, 210, 0, 1864,
	0, 0, 0, 1871, 0, 3415, 0, 0, 0, 210,
	210, 0, 1484, 1485, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1303, 1106, 1890, 0,
	1890, 0, 1515, 0, 0, 0, 0, 0, 863, 1487,
	0, 0, 863, 0, 0, 3108, 0, 0, 0, 0,
	0, 0, 0, 3452, 1186, 0, 0, 0, 1186, 0,
	0, 0, 3459, 0, 0, 851, 0, 0, 1204, 1486,
	0, 3466, 0, 0, 0, 0, 0, 0, 1506, 0,
	0, 0, 0, 0, 0, 210, 1503, 0, 0, 0,
	885, 87, 0, 0, 1106, 0, 0, 0, 0, 210,
	1871, 0, 0, 1938, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 212, 0, 0,
	1106, 3108, 3108, 1955, 0, 0, 2961, 0, 0, 0,
	0, 0, 0, 1965, 0, 1967, 0, 1969, 0, 1971,
	0, 1972, 0, 0, 1509, 1510, 1511, 1512, 0, 0,
	0, 0, 0, 0, 1492, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1102, 0, 87, 0, 1102, 0,
	1216, 1989, 0, 3537, 1216, 0, 3540, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1514, 1516, 0, 0,
	0, 0, 0, 0, 3108, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1106, 0,
	0, 0, 0, 0, 0, 1501, 1502, 0, 0, 0,
	0, 0, 0, 1216, 0, 0, 0, 0, 3108, 0,
	0, 3108, 0, 0, 828, 0, 0, 0, 1106, 0,
	0, 1507, 0, 846, 0, 0, 0, 0, 0, 0,
	0, 212, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 212, 1216, 0, 0, 0, 1216, 0, 0,
	0, 1216, 0, 0, 0, 212, 1023, 0, 0, 0,
	0, 1216, 0, 0, 0, 0, 0, 0, 0, 212,
	1106, 0, 0, 0, 1106, 851, 0, 0, 0, 0,
	212, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1216, 1513, 212, 0, 1644, 0,
	1036, 0, 0, 212, 210, 0, 3662, 3662, 3662, 0,
	0, 0, 0, 1508, 0, 0, 0, 210, 1644, 210,
	0, 0, 0, 0, 618, 0, 0, 0, 3683, 618,
	212, 0, 0, 212, 0, 212, 0, 212, 0, 0,
	0, 0, 0, 1106, 1106, 0, 1106, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1106, 0,
	0, 0, 0, 0, 2277, 0, 212, 0, 0, 3662,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 212, 0, 212, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 3108, 0, 3108, 0, 212, 212, 212,
	212, 0, 212, 0, 212, 0, 920, 0, 0, 0,
	0, 1504, 1500, 0, 1497, 1495, 1496, 1488, 1489, 1490,
	1491, 1493, 1494, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 212, 0, 0, 0, 0,
	0, 0, 0, 212, 0, 0, 3662, 3779, 1186, 0,
	0, 0, 0, 0, 3783, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 618, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 863,
	0, 0, 0, 0, 0, 1186, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1204, 0, 0, 0,
	210, 0, 0, 0, 210, 0, 0, 0, 0, 210,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 210, 0, 210,
	0, 210, 0, 1871, 0, 0, 0, 0, 1102, 0,
	2434, 0, 0, 0, 0, 0, 0, 611, 0, 0,
	0, 0, 611, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1216, 0, 0, 2465, 0, 210,
	1328, 0, 1328, 0, 1328, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1102, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 210, 0, 2509, 210, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1186, 0, 0, 0, 2517,
	1106, 2520, 0, 0, 210, 0, 0, 0, 0, 0,
	0, 0, 0, 618, 210, 0, 210, 0, 210, 0,
	210, 0, 210, 0, 0, 0, 0, 87, 0, 87,
	0, 87, 1106, 0, 2541, 1204, 2543, 1204, 0, 2546,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1106,
	0, 0, 210, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1328, 0, 0, 0, 0, 0, 0, 0,
	2574, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 212, 0, 0, 0, 0, 1216, 1216, 0,
	0, 846, 87, 87, 0, 1102, 0, 0, 0, 0,
	0, 87, 0, 0, 0, 0, 0, 0, 0, 87,
	0, 0, 0, 0, 212, 212, 212, 0, 0, 0,
	0, 0, 0, 212, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 212, 0, 0, 0,
	0, 0, 0, 0, 0, 1106, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1106, 0, 0, 0,
	0, 0, 0, 87, 0, 1106, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 212, 0, 0,
	1106, 212, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1106, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1484, 1485, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1216, 0,
	1216, 0, 1216, 0, 0, 1515, 212, 212, 0, 0,
	1216, 0, 1487, 1216, 0, 1036, 0, 0, 0, 828,
	0, 1106, 1106, 1186, 0, 0, 1216, 1216, 1216, 212,
	0, 1036, 0, 0, 0, 0, 0, 1547, 0, 0,
	0, 0, 1486, 0, 0, 210, 611, 0, 0, 0,
	0, 1506, 0, 0, 1554, 0, 0, 0, 1560, 1503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1106, 0, 212, 1106, 212, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 2960,
	0, 0, 0, 0, 0, 0, 0, 0, 1186, 212,
	0, 0, 0, 0, 0, 0, 0, 1509, 1510, 1511,
	1512, 0, 0, 0, 0, 0, 0, 1492, 0, 0,
	0, 0, 0, 1102, 1103, 0, 0, 0, 1103, 2783,
	1217, 0, 690, 0, 1217, 0, 1106, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1514,
	1516, 0, 0, 1106, 0, 672, 0, 0, 0, 0,
	0, 2821, 2823, 2434, 0, 1186, 0, 0, 0, 210,
	0, 0, 0, 0, 0, 0, 0, 0, 1501, 1502,
	210, 0, 0, 1217, 0, 1642, 0, 1645, 0, 87,
	673, 1186, 0, 210, 0, 0, 0, 0, 0, 674,
	0, 0, 0, 0, 1507, 0, 0, 210, 1102, 0,
	0, 0, 0, 0, 0, 0, 675, 0, 618, 0,
	0, 0, 0, 1217, 2863, 0, 0, 1217, 2867, 0,
	0, 1217, 0, 695, 0, 0, 0, 0, 0, 0,
	0, 1217, 0, 0, 210, 0, 0, 0, 676, 0,
	0, 210, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
	0, 0, 0, 1204, 1204, 1102, 1106, 0, 210, 0,
	0, 210, 0, 210, 1217, 210, 0, 678, 1513, 0,
	679, 0, 0, 0, 0, 605, 2920, 0, 0, 0,
	0, 1102, 0, 0, 0, 0, 1508, 0, 0, 1186,
	0, 0, 0, 0, 210, 0, 0, 694, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	210, 0, 210, 0, 0, 0, 0, 0, 0, 0,
	0, 2944, 0, 1204, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1186, 0, 0, 0, 210, 210, 210, 210, 0,
	210, 1106, 210, 0, 1106, 0, 2956, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 212, 0, 1216,
	0, 0, 0, 0, 0, 212, 0, 0, 0, 0,
	0, 0, 212, 210, 0, 0, 0, 0, 1106, 0,
	0, 210, 0, 0, 0, 0, 0, 0, 681, 1102,
	0, 0, 0, 0, 1504, 1500, 0, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 697, 0, 682, 1106,
	1106, 1106, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1106, 0, 0, 0, 0,
	212, 1106, 0, 0, 0, 0, 604, 0, 0, 0,
	0, 1102, 0, 683, 0, 1216, 684, 0, 0, 0,
	0, 0, 692, 1106, 0, 0, 0, 0, 0, 685,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 846, 0, 846, 0, 0, 0, 0, 0,
	686, 693, 0, 0, 0, 0, 0, 0, 687, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 689, 0, 0, 0, 0, 688, 0, 0, 0,
	0, 0, 0, 0, 1216, 1216, 0, 1216, 0, 606,
	0, 0, 0, 0, 0, 0, 0, 0, 1103, 1216,
	691, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1217, 0, 0, 0, 1106, 0,
	1106, 0, 0, 0, 0, 0, 0, 1036, 0, 0,
	0, 0, 0, 0, 0, 1103, 0, 0, 0, 0,
	0, 0, 1036, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 828, 0, 0,
	828, 828, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 212, 1644, 0, 0, 0, 1484, 1485, 0, 0,
	0, 1106, 212, 212, 3156, 0, 1106, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1515, 0, 0, 3166,
	0, 0, 0, 1487, 0, 0, 0, 0, 0, 212,
	0, 0, 0, 1106, 212, 2102, 0, 0, 1106, 0,
	210, 0, 0, 0, 0, 0, 0, 0, 0, 846,
	0, 0, 0, 1486, 0, 0, 0, 0, 0, 0,
	1554, 0, 1506, 0, 1554, 0, 0, 0, 0, 0,
	1503, 0, 210, 210, 210, 0, 0, 3208, 0, 1106,
	0, 1644, 0, 0, 0, 0, 0, 1217, 1217, 0,
	0, 0, 0, 0, 210, 1103, 0, 0, 0, 0,
	0, 1186, 0, 0, 0, 0, 0, 0, 0, 1106,
	2583, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1509, 1510,
	1511, 1512, 1023, 1186, 0, 210, 0, 0, 1492, 210,
	0, 0, 0, 0, 0, 0, 1106, 0, 1645, 0,
	1186, 0, 0, 0, 0, 0, 0, 0, 1106, 0,
	0, 0, 0, 1036, 0, 0, 0, 212, 0, 0,
	1514, 1516, 0, 0, 863, 0, 0, 0, 0, 87,
	0, 0, 0, 0, 210, 210, 0, 0, 863, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 0, 210, 0, 0,
	0, 1102, 0, 0, 0, 0, 0, 0, 1217, 0,
	1217, 0, 1217, 0, 0, 1507, 0, 0, 1106, 0,
	1217, 1106, 0, 1217, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1102, 0, 0, 1217, 1217, 1217, 0,
	0, 0, 210, 0, 210, 0, 1186, 0, 212, 212,
	1102, 0, 0, 0, 0, 0, 0, 0, 3321, 0,
	0, 0, 0, 0, 0, 0, 1186, 0, 0, 2434,
	0, 0, 0, 0, 0, 0, 0, 210, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
	0, 0, 0, 0, 0, 0, 2434, 0, 0, 1513,
	0, 3361, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1508, 87, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	87, 0, 87, 1103, 0, 0, 212, 0, 0, 1106,
	0, 0, 0, 0, 0, 0, 1102, 0, 0, 1106,
	1106, 0, 0, 0, 0, 1106, 0, 1216, 0, 0,
	0, 0, 0, 0, 0, 0, 1102, 0, 0, 0,
	87, 0, 0, 87, 0, 0, 0, 0, 0, 0,
	0, 1216, 0, 1186, 0, 0, 1186, 0, 0, 0,
	0, 0, 1216, 0, 212, 0, 1106, 0, 0, 0,
	87, 0, 0, 0, 0, 212, 0, 0, 0, 0,
	0, 1036, 1036, 0, 0, 0, 0, 0, 1103, 0,
	0, 0, 212, 0, 3435, 1504, 1500, 0, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0, 0,
	0, 0, 1216, 1216, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1186, 87, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1186, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1103, 0, 0, 0, 0,
	0, 0, 0, 1102, 0, 0, 1102, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1103, 0, 0, 0, 3516, 1204, 0, 0, 0,
	0, 1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1520, 1515, 0, 0, 0, 0, 0, 0, 1487, 0,
	0, 0, 0, 1533, 0, 210, 0, 0, 0, 0,
	0, 0, 0, 210, 2102, 0, 0, 1102, 0, 0,
	210, 0, 0, 0, 0, 0, 0, 0, 1486, 0,
	0, 0, 0, 0, 1102, 1554, 0, 1506, 0, 0,
	0, 1036, 0, 0, 0, 1503, 0, 1186, 0, 1217,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 3574, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 210, 1103,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1509, 1510, 1511, 1512, 0, 0, 0,
	0, 0, 0, 1492, 0, 0, 0, 0, 0, 0,
	0, 3616, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1103, 3633, 0, 0, 1217, 0, 1524, 0, 0,
	1534, 0, 0, 0, 0, 1514, 1516, 0, 0, 3645,
	0, 0, 0, 0, 0, 0, 0, 1102, 752, 0,
	788, 0, 0, 0, 1023, 1530, 0, 1531, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 0, 0, 1023,
	0, 0, 759, 0, 0, 0, 0, 0, 0, 0,
	1522, 0, 0, 0, 0, 0, 771, 757, 0, 0,
	1507, 0, 0, 0, 1036, 0, 0, 0, 0, 0,
	0, 0, 1036, 0, 1217, 1217, 0, 1217, 0, 0,
	0, 1532, 758, 0, 0, 1644, 0, 761, 0, 1217,
	0, 794, 1186, 0, 0, 0, 0, 0, 1521, 768,
	769, 0, 0, 0, 0, 781, 0, 0, 0, 0,
	0, 0, 1216, 0, 1186, 1216, 0, 0, 0, 789,
	763, 0, 0, 0, 0, 0, 0, 0, 0, 210,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	210, 210, 87, 87, 1513, 0, 87, 787, 0, 1216,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1508, 0, 0, 0, 0, 210, 0, 0,
	0, 0, 210, 0, 87, 87, 0, 0, 87, 764,
	1216, 1216, 1216, 0, 0, 0, 0, 756, 1525, 0,
	0, 0, 0, 0, 0, 0, 1216, 0, 0, 0,
	0, 0, 1102, 765, 766, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1102, 773, 772, 0, 0, 1186,
	0, 1186, 0, 767, 0, 0, 0, 0, 0, 0,
	1023, 0, 0, 846, 0, 0, 0, 0, 0, 793,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 790, 0, 87, 87,
	0, 0, 0, 1523, 0, 0, 1498, 1499, 1505, 1526,
	1504, 1500, 0, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 1186, 0, 0, 0, 3253, 1186, 0, 0,
	3252, 0, 0, 0, 0, 210, 0, 0, 762, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 760, 1186, 0, 0, 785, 786, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1102,
	0, 1102, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 783, 0, 0, 0, 0, 0, 0,
	779, 0, 0, 776, 0, 0, 0, 0, 0, 777,
	1186, 0, 0, 0, 0, 0, 754, 0, 791, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1103, 0, 0, 755, 0, 210, 210, 0, 0,
	1186, 0, 1102, 0, 778, 0, 0, 1102, 775, 0,
	0, 0, 0, 0, 0, 0, 0, 792, 0, 0,
	0, 0, 0, 1103, 0, 780, 0, 0, 0, 0,
	0, 0, 0, 0, 1102, 0, 0, 1186, 0, 1216,
	1103, 0, 0, 0, 0, 0, 782, 0, 0, 1186,
	0, 0, 0, 0, 0, 0, 1484, 1485, 0, 1517,
	1518, 1519, 1527, 1528, 1529, 0, 0, 0, 784, 0,
	0, 0, 0, 0, 0, 1520, 1515, 0, 0, 0,
	1102, 0, 863, 1487, 0, 0, 0, 0, 1533, 0,
	0, 0, 0, 87, 210, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1023, 1023,
	1102, 0, 0, 1486, 0, 0, 0, 0, 0, 1186,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1103, 1102, 0, 0,
	0, 0, 210, 0, 0, 0, 0, 1217, 0, 1102,
	0, 0, 0, 210, 0, 0, 1103, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	210, 1217, 0, 0, 0, 0, 0, 0, 1509, 1510,
	1511, 1512, 1217, 0, 0, 0, 0, 0, 1492, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1524, 0, 0, 1534, 0, 0, 0, 1102,
	1514, 1516, 1216, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1217, 1217, 0, 0, 0, 0, 0, 0,
	1530, 0, 1531, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1522, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1507, 0, 0, 1023, 0,
	0, 0, 0, 1103, 0, 0, 1103, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1532, 1186, 0, 0,
	0, 0, 863, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 87, 1521, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1216, 0, 0, 0, 0, 0, 0, 1103, 0, 1513,
	1216, 1216, 0, 0, 0, 0, 1216, 0, 0, 0,
	0, 0, 0, 0, 1103, 0, 0, 1508, 0, 0,
	0, 0, 0, 0, 0, 1484, 1485, 0, 1517, 1518,
	1519, 1527, 1528, 1529, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1525, 1520, 1515, 0, 1102, 0, 0,
	0, 0, 1487, 0, 0, 0, 0, 1533, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1023, 1486, 0, 0, 0, 0, 0, 0, 1023,
	0, 1506, 0, 0, 0, 0, 0, 0, 0, 1503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1523, 0,
	0, 1498, 1499, 1505, 1526, 1504, 1500, 1103, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0, 0,
	0, 2650, 0, 0, 0, 2651, 0, 1509, 1510, 1511,
	1512, 0, 0, 0, 0, 0, 0, 1492, 0, 0,
	0, 0, 0, 87, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 87, 0, 0, 0, 0, 0, 0,
	0, 1524, 0, 0, 1534, 0, 0, 0, 0, 1514,
	1516, 87, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1484, 1485, 0, 1530,
	0, 1531, 0, 0, 0, 0, 0, 0, 1501, 1502,
	0, 0, 1217, 0, 0, 1217, 1515, 0, 0, 0,
	0, 0, 0, 1487, 1522, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1507, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1217,
	0, 0, 0, 1486, 0, 1532, 0, 0, 0, 0,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 1521, 0, 0, 0, 0, 0, 0, 0,
	1217, 1217, 1217, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1217, 0, 0, 0,
	0, 0, 1103, 0, 0, 0, 0, 0, 0, 0,
	2576, 0, 0, 0, 0, 0, 0, 0, 1513, 0,
	0, 0, 0, 0, 1103, 0, 0, 0, 1509, 1510,
	1511, 1512, 0, 0, 0, 0, 1508, 0, 1492, 0,
	0, 0, 0, 0, 0, 0, 0, 1484, 1485, 0,
	1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0,
	0, 0, 1525, 0, 0, 0, 1520, 1515, 0, 0,
	1514, 1516, 0, 0, 1487, 0, 2102, 0, 0, 1533,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 1486, 0, 0, 0, 0, 0,
	0, 0, 0, 1506, 0, 0, 0, 0, 0, 0,
	0, 1503, 0, 0, 0, 1507, 0, 0, 0, 1484,
	1485, 0, 0, 0, 0, 0, 0, 0, 0, 1103,
	0, 1103, 0, 0, 0, 0, 0, 1523, 0, 1515,
	1498, 1499, 1505, 1526, 1504, 1500, 1487, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 0, 0, 0, 0,
	2124, 0, 0, 0, 2125, 0, 0, 0, 0, 1509,
	1510, 1511, 1512, 0, 0, 0, 1486, 0, 0, 1492,
	0, 0, 0, 0, 0, 1506, 0, 0, 0, 0,
	0, 0, 1103, 1503, 0, 0, 0, 1103, 0, 1513,
	0, 0, 0, 1524, 0, 0, 1534, 0, 0, 0,
	0, 1514, 1516, 0, 0, 0, 0, 1508, 0, 0,
	0, 0, 0, 0, 1103, 0, 0, 0, 0, 1217,
	0, 1530, 0, 1531, 0, 0, 0, 0, 0, 0,
	1501, 1502, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1509, 1510, 1511, 1512, 0, 1522, 0, 0, 0,
	87, 1492, 0, 87, 0, 0, 1507, 0, 0, 0,
	1103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1532, 0, 0,
	0, 0, 0, 1514, 1516, 0, 0, 0, 0, 0,
	1103, 0, 0, 0, 1521, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1501, 1502, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1504, 1500, 1103, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 1507, 1103,
	1513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1508, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1525, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1103,
	0, 0, 1217, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1513, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1508, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1523,
	0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 0, 1497,
	1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0,
	0, 0, 0, 0, 0, 0, 3251, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1217, 1217, 0, 0, 0, 0, 1217, 0, 1504, 1500,
	0, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494,
	1100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 1107, 225, 1108, 1109, 1110, 1103, 1111, 490,
	1112, 1113, 1114, 1115, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 1116, 235, 236,
	237, 238, 239, 240, 241, 1117, 1118, 242, 495, 496,
	497, 1119, 243, 498, 1120, 1105, 1121, 244, 245, 246,
	247, 248, 249, 0, 1122, 251, 252, 253, 250, 1123,
	254, 0, 255, 256, 257, 1124, 258, 973, 259, 260,
	1125, 1126, 1128, 1127, 1129, 1130, 1131, 261, 262, 263,
	264, 265, 266, 499, 500, 1132, 267, 1133, 269, 268,
	1134, 270, 1135, 1136, 271, 272, 273, 1137, 274, 1138,
	275, 276, 1139, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 1140, 217, 1141, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 1142, 294, 1143, 1144, 974, 295, 296, 1145, 297,
	505, 1146, 506, 298, 1147, 299, 300, 301, 302, 507,
	508, 509, 358, 976, 303, 304, 1148, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 1149, 975, 311,
	510, 313, 312, 314, 315, 316, 511, 1150, 512, 1151,
	318, 977, 513, 978, 319, 320, 321, 979, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 1152, 330, 329,
	1153, 331, 514, 980, 332, 333, 981, 1154, 334, 335,
	1155, 1156, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 982, 350, 351,
	354, 355, 353, 983, 352, 1157, 219, 984, 356, 1158,
	515, 357, 516, 359, 360, 1159, 361, 362, 363, 1160,
	1161, 365, 366, 367, 1162, 1163, 368, 369, 517, 985,
	370, 986, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 1164, 379, 380, 519, 381, 520, 382, 383,
	1165, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 1166, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 1167,
	408, 987, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 1168, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 1169, 435,
	415, 416, 436, 437, 988, 438, 439, 523, 440, 441,
	1170, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 1171, 453, 454, 452, 1172, 455, 456,
	457, 458, 459, 282, 460, 1173, 461, 525, 526, 527,
	528, 1174, 468, 1175, 462, 463, 529, 464, 530, 1176,
	465, 466, 467, 0, 469, 470, 1177, 1178, 471, 472,
	473, 475, 476, 474, 478, 1179, 479, 1180, 477, 480,
	481, 482, 531, 532, 533, 1181, 484, 483, 534, 1182,
	1183, 1184, 1185, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1100, 0, 0, 0, 0, 0, 0, 0, 2255,
	0, 0, 0, 0, 0, 0, 0, 2256, 220, 221,
	222, 223, 224, 1107, 225, 1108, 1109, 1110, 0, 1111,
	490, 1112, 1113, 1114, 1115, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 1116, 235,
	236, 237, 238, 239, 240, 241, 1117, 1118, 242, 495,
	496, 497, 1119, 243, 498, 1120, 1105, 1121, 244, 245,
	246, 247, 248, 249, 0, 1122, 251, 252, 253, 250,
	1123, 254, 0, 255, 256, 257, 1124, 258, 973, 259,
	260, 1125, 1126, 1128, 1127, 1129, 1130, 1131, 261, 262,
	263, 264, 265, 266, 499, 500, 1132, 267, 1133, 269,
	268, 1134, 270, 1135, 1136, 271, 272, 273, 1137, 274,
	1138, 275, 276, 1139, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 1140, 217, 1141,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 1142, 294, 1143, 1144, 974, 295, 296, 1145,
	297, 505, 1146, 506, 298, 1147, 299, 300, 301, 302,
	507, 508, 509, 358, 976, 303, 304, 1148, 305, 306,
	307, 309, 0, 0, 218, 308, 310, 317, 1149, 975,
	311, 510, 313, 312, 314, 315, 316, 511, 1150, 512,
	1151, 318, 977, 513, 978, 319, 320, 321, 979, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 1152, 330,
	329, 1153, 331, 514, 980, 332, 333, 981, 1154, 334,
	335, 1155, 1156, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 1157, 219, 984, 356,
	1158, 515, 357, 516, 359, 360, 1159, 361, 362, 363,
	1160, 1161, 365, 366, 367, 1162, 1163, 368, 369, 517,
	985, 370, 986, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 1164, 379, 380, 519, 381, 520, 382,
	383, 1165, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 1166, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	1167, 408, 987, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 1168, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 1169,
	435, 415, 416, 436, 437, 988, 438, 439, 523, 440,
	441, 1170, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 1171, 453, 454, 452, 1172, 455,
	456, 457, 458, 459, 282, 460, 1173, 461, 525, 526,
	527, 528, 1174, 468, 1175, 462, 463, 529, 464, 530,
	1176, 465, 466, 467, 0, 469, 470, 1177, 1178, 471,
	472, 473, 475, 476, 474, 478, 1179, 479, 1180, 477,
	480, 481, 482, 531, 532, 533, 1181, 484, 483, 534,
	1182, 1183, 1184, 1185, 485, 486, 535, 487, 488, 489,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1100, 0, 0, 0, 0, 2982, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 2984, 220, 221, 222,
	223, 224, 1107, 225, 1108, 1109, 1110, 0, 1111, 490,
	1112, 1113, 1114, 1115, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 1116, 235, 236,
	237, 238, 239, 240, 241, 1117, 1118, 242, 495, 496,
	497, 1119, 243, 498, 1120, 1105, 1121, 244, 245, 246,
	247, 248, 249, 0, 1122, 251, 252, 253, 250, 1123,
	254, 0, 255, 256, 257, 1124, 258, 973, 259, 260,
	1125, 1126, 1128, 1127, 1129, 1130, 1131, 261, 262, 263,
	264, 265, 266, 499, 500, 1132, 267, 1133, 269, 268,
	1134, 270, 1135, 1136, 271, 272, 273, 1137, 274, 1138,
	275, 276, 1139, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 1140, 217, 1141, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 1142, 294, 1143, 1144, 974, 295, 296, 1145, 297,
	505, 1146, 506, 298, 1147, 299, 300, 301, 302, 507,
	508, 509, 358, 976, 303, 304, 1148, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 1149, 975, 311,
	510, 313, 312, 314, 315, 316, 511, 1150, 512, 1151,
	318, 977, 513, 978, 319, 320, 321, 979, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 1152, 330, 329,
	1153, 331, 514, 980, 332, 333, 981, 1154, 334, 335,
	1155, 1156, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 982, 350, 351,
	354, 355, 353, 983, 352, 1157, 219, 984, 356, 1158,
	515, 357, 516, 359, 360, 1159, 361, 362, 363, 1160,
	1161, 365, 366, 367, 1162, 1163, 368, 369, 517, 985,
	370, 986, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 1164, 379, 380, 519, 381, 520, 382, 383,
	1165, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 1166, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 1167,
	408, 987, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 1168, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 1169, 435,
	415, 416, 436, 437, 988, 438, 439, 523, 440, 441,
	1170, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 1171, 453, 454, 452, 1172, 455, 456,
	457, 458, 459, 282, 460, 1173, 461, 525, 526, 527,
	528, 1174, 468, 1175, 462, 463, 529, 464, 530, 1176,
	465, 466, 467, 0, 469, 470, 1177, 1178, 471, 472,
	473, 475, 476, 474, 478, 1179, 479, 1180, 477, 480,
	481, 482, 531, 532, 533, 1181, 484, 483, 534, 1182,
	1183, 1184, 1185, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 0, 1100, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 3275,
	220, 221, 222, 223, 224, 1107, 225, 1108, 1109, 1110,
	0, 1111, 490, 1112, 1113, 1114, 1115, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	1116, 235, 236, 237, 238, 239, 240, 241, 1117, 1118,
	242, 495, 496, 497, 1119, 243, 498, 1120, 1105, 1121,
	244, 245, 246, 247, 248, 249, 0, 1122, 251, 252,
	253, 250, 1123, 254, 0, 255, 256, 257, 1124, 258,
	973, 259, 260, 1125, 1126, 1128, 1127, 1129, 1130, 1131,
	261, 262, 263, 264, 265, 266, 499, 500, 1132, 267,
	1133, 269, 268, 1134, 270, 1135, 1136, 271, 272, 273,
	1137, 274, 1138, 275, 276, 1139, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 1140,
	217, 1141, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 1142, 294, 1143, 1144, 974, 295,
	296, 1145, 297, 505, 1146, 506, 298, 1147, 299, 300,
	301, 302, 507, 508, 509, 358, 976, 303, 304, 1148,
	305, 306, 307, 309, 0, 0, 218, 308, 310, 317,
	1149, 975, 311, 510, 313, 312, 314, 315, 316, 511,
	1150, 512, 1151, 318, 977, 513, 978, 319, 320, 321,
	979, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	1152, 330, 329, 1153, 331, 514, 980, 332, 333, 981,
	1154, 334, 335, 1155, 1156, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 1157, 219,
	984, 356, 1158, 515, 357, 516, 359, 360, 1159, 361,
	362, 363, 1160, 1161, 365, 366, 367, 1162, 1163, 368,
	369, 517, 985, 370, 986, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 1164, 379, 380, 519, 381,
	520, 382, 383, 1165, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 1166, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 1167, 408, 987, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	1168, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 1169, 435, 415, 416, 436, 437, 988, 438, 439,
	523, 440, 441, 1170, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 1171, 453, 454, 452,
	1172, 455, 456, 457, 458, 459, 282, 460, 1173, 461,
	525, 526, 527, 528, 1174, 468, 1175, 462, 463, 529,
	464, 530, 1176, 465, 466, 467, 0, 469, 470, 1177,
	1178, 471, 472, 473, 475, 476, 474, 478, 1179, 479,
	1180, 477, 480, 481, 482, 531, 532, 533, 1181, 484,
	483, 534, 1182, 1183, 1184, 1185, 485, 486, 535, 487,
	488, 489, 1100, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 3403, 0, 220,
	221, 222, 223, 224, 1107, 225, 1108, 1109, 1110, 0,
	1111, 490, 1112, 1113, 1114, 1115, 226, 228, 227, 229,
	230, 491, 492, 231, 493, 234, 232, 233, 494, 1116,
	235, 236, 237, 238, 239, 240, 241, 1117, 1118, 242,
	495, 496, 497, 1119, 243, 498, 1120, 1105, 1121, 244,
	245, 246, 247, 248, 249, 0, 1122, 251, 252, 253,
	250, 1123, 254, 0, 255, 256, 257, 1124, 258, 973,
	259, 260, 1125, 1126, 1128, 1127, 1129, 1130, 1131, 261,
	262, 263, 264, 265, 266, 499, 500, 1132, 267, 1133,
	269, 268, 1134, 270, 1135, 1136, 271, 272, 273, 1137,
	274, 1138, 275, 276, 1139, 277, 501, 278, 279, 281,
	283, 280, 284, 285, 286, 287, 502, 503, 1140, 217,
	1141, 0, 0, 0, 0, 288, 289, 290, 504, 291,
	292, 0, 293, 1142, 294, 1143, 1144, 974, 295, 296,
	1145, 297, 505, 1146, 506, 298, 1147, 299, 300, 301,
	302, 507, 508, 509, 358, 976, 303, 304, 1148, 305,
	306, 307, 309, 0, 0, 218, 308, 310, 317, 1149,
	975, 311, 510, 313, 312, 314, 315, 316, 511, 1150,
	512, 1151, 318, 977, 513, 978, 319, 320, 321, 979,
	322, 323, 0, 0, 324, 325, 326, 327, 328, 1152,
	330, 329, 1153, 331, 514, 980, 332, 333, 981, 1154,
	334, 335, 1155, 1156, 336, 337, 338, 339, 0, 340,
	341, 343, 345, 342, 344, 346, 348, 349, 347, 982,
	350, 351, 354, 355, 353, 983, 352, 1157, 219, 984,
	356, 1158, 515, 357, 516, 359, 360, 1159, 361, 362,
	363, 1160, 1161, 365, 366, 367, 1162, 1163, 368, 369,
	517, 985, 370, 986, 518, 371, 364, 372, 373, 374,
	375, 376, 377, 378, 1164, 379, 380, 519, 381, 520,
	382, 383, 1165, 384, 0, 385, 386, 387, 388, 389,
	390, 391, 521, 392, 393, 1166, 394, 395, 396, 397,
	398, 399, 0, 401, 402, 403, 400, 404, 405, 406,
	407, 1167, 408, 987, 409, 410, 411, 412, 522, 413,
	0, 414, 418, 419, 420, 421, 422, 423, 424, 1168,
	430, 431, 425, 427, 428, 429, 426, 432, 433, 434,
	1169, 435, 415, 416, 436, 437, 988, 438, 439, 523,
	440, 441, 1170, 442, 443, 444, 445, 417, 446, 450,
	451, 447, 448, 449, 524, 1171, 453, 454, 452, 1172,
	455, 456, 457, 458, 459, 282, 460, 1173, 461, 525,
	526, 527, 528, 1174, 468, 1175, 462, 463, 529, 464,
	530, 1176, 465, 466, 467, 0, 469, 470, 1177, 1178,
	471, 472, 473, 475, 476, 474, 478, 1179, 479, 1180,
	477, 480, 481, 482, 531, 532, 533, 1181, 484, 483,
	534, 1182, 1183, 1184, 1185, 485, 486, 535, 487, 488,
	489, 1100, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 3328, 0, 220, 221,
	222, 223, 224, 1107, 225, 1108, 1109, 1110, 0, 1111,
	490, 1112, 1113, 1114, 1115, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 1116, 235,
	236, 237, 238, 239, 240, 241, 1117, 1118, 242, 495,
	496, 497, 1119, 243, 498, 1120, 1105, 1121, 244, 245,
	246, 247, 248, 249, 0, 1122, 251, 252, 253, 250,
	1123, 254, 0, 255, 256, 257, 1124, 258, 973, 259,
	260, 1125, 1126, 1128, 1127, 1129, 1130, 1131, 261, 262,
	263, 264, 265, 266, 499, 500, 1132, 267, 1133, 269,
	268, 1134, 270, 1135, 1136, 271, 272, 273, 1137, 274,
	1138, 275, 276, 1139, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 1140, 217, 1141,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 1142, 294, 1143, 1144, 974, 295, 296, 1145,
	297, 505, 1146, 506, 298, 1147, 299, 300, 301, 302,
	507, 508, 509, 358, 976, 303, 304, 1148, 305, 306,
	307, 309, 0, 0, 218, 308, 310, 317, 1149, 975,
	311, 510, 313, 312, 314, 315, 316, 511, 1150, 512,
	1151, 318, 977, 513, 978, 319, 320, 321, 979, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 1152, 330,
	329, 1153, 331, 514, 980, 332, 333, 981, 1154, 334,
	335, 1155, 1156, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 1157, 219, 984, 356,
	1158, 515, 357, 516, 359, 360, 1159, 361, 362, 363,
	1160, 1161, 365, 366, 367, 1162, 1163, 368, 369, 517,
	985, 370, 986, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 1164, 379, 380, 519, 381, 520, 382,
	383, 1165, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 1166, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	1167, 408, 987, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 1168, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 1169,
	435, 415, 416, 436, 437, 988, 438, 439, 523, 440,
	441, 1170, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 1171, 453, 454, 452, 1172, 455,
	456, 457, 458, 459, 282, 460, 1173, 461, 525, 526,
	527, 528, 1174, 468, 1175, 462, 463, 529, 464, 530,
	1176, 465, 466, 467, 0, 469, 470, 1177, 1178, 471,
	472, 473, 475, 476, 474, 478, 1179, 479, 1180, 477,
	480, 481, 482, 531, 532, 533, 1181, 484, 483, 534,
	1182, 1183, 1184, 1185, 485, 486, 535, 487, 488, 489,
	1100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 3209, 0, 220, 221, 222,
	223, 224, 1107, 225, 1108, 1109, 1110, 0, 1111, 490,
	1112, 1113, 1114, 1115, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 1116, 235, 236,
	237, 238, 239, 240, 241, 1117, 1118, 242, 495, 496,
	497, 1119, 243, 498, 1120, 1105, 1121, 244, 245, 246,
	247, 248, 249, 0, 1122, 251, 252, 253, 250, 1123,
	254, 0, 255, 256, 257, 1124, 258, 973, 259, 260,
	1125, 1126, 1128, 1127, 1129, 1130, 1131, 261, 262, 263,
	264, 265, 266, 499, 500, 1132, 267, 1133, 269, 268,
	1134, 270, 1135, 1136, 271, 272, 273, 1137, 274, 1138,
	275, 276, 1139, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 1140, 217, 1141, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 1142, 294, 1143, 1144, 974, 295, 296, 1145, 297,
	505, 1146, 506, 298, 1147, 299, 300, 301, 302, 507,
	508, 509, 358, 976, 303, 304, 1148, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 1149, 975, 311,
	510, 313, 312, 314, 315, 316, 511, 1150, 512, 1151,
	318, 977, 513, 978, 319, 320, 321, 979, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 1152, 330, 329,
	1153, 331, 514, 980, 332, 333, 981, 1154, 334, 335,
	1155, 1156, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 982, 350, 351,
	354, 355, 353, 983, 352, 1157, 219, 984, 356, 1158,
	515, 357, 516, 359, 360, 1159, 361, 362, 363, 1160,
	1161, 365, 366, 367, 1162, 1163, 368, 369, 517, 985,
	370, 986, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 1164, 379, 380, 519, 381, 520, 382, 383,
	1165, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 1166, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 1167,
	408, 987, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 1168, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 1169, 435,
	415, 416, 436, 437, 988, 438, 439, 523, 440, 441,
	1170, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 1171, 453, 454, 452, 1172, 455, 456,
	457, 458, 459, 282, 460, 1173, 461, 525, 526, 527,
	528, 1174, 468, 1175, 462, 463, 529, 464, 530, 1176,
	465, 466, 467, 0, 469, 470, 1177, 1178, 471, 472,
	473, 475, 476, 474, 478, 1179, 479, 1180, 477, 480,
	481, 482, 531, 532, 533, 1181, 484, 483, 534, 1182,
	1183, 1184, 1185, 485, 486, 535, 487, 488, 489, 1100,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 3000, 0, 220, 221, 222, 223,
	224, 1107, 225, 1108, 1109, 1110, 0, 1111, 490, 1112,
	1113, 1114, 1115, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 1116, 235, 236, 237,
	238, 239, 240, 241, 1117, 1118, 242, 495, 496, 497,
	1119, 243, 498, 1120, 1105, 1121, 244, 245, 246, 247,
	248, 249, 0, 1122, 251, 252, 253, 250, 1123, 254,
	0, 255, 256, 257, 1124, 258, 973, 259, 260, 1125,
	1126, 1128, 1127, 1129, 1130, 1131, 261, 262, 263, 264,
	265, 266, 499, 500, 1132, 267, 1133, 269, 268, 1134,
	270, 1135, 1136, 271, 272, 273, 1137, 274, 1138, 275,
	276, 1139, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 1140, 217, 1141, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	1142, 294, 1143, 1144, 974, 295, 296, 1145, 297, 505,
	1146, 506, 298, 1147, 299, 300, 301, 302, 507, 508,
	509, 358, 976, 303, 304, 1148, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 1149, 975, 311, 510,
	313, 312, 314, 315, 316, 511, 1150, 512, 1151, 318,
	977, 513, 978, 319, 320, 321, 979, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 1152, 330, 329, 1153,
	331, 514, 980, 332, 333, 981, 1154, 334, 335, 1155,
	1156, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 1157, 219, 984, 356, 1158, 515,
	357, 516, 359, 360, 1159, 361, 362, 363, 1160, 1161,
	365, 366, 367, 1162, 1163, 368, 369, 517, 985, 370,
	986, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 1164, 379, 380, 519, 381, 520, 382, 383, 1165,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 1166, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 1167, 408,
	987, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 1168, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 1169, 435, 415,
	416, 436, 437, 988, 438, 439, 523, 440, 441, 1170,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 1171, 453, 454, 452, 1172, 455, 456, 457,
	458, 459, 282, 460, 1173, 461, 525, 526, 527, 528,
	1174, 468, 1175, 462, 463, 529, 464, 530, 1176, 465,
	466, 467, 0, 469, 470, 1177, 1178, 471, 472, 473,
	475, 476, 474, 478, 1179, 479, 1180, 477, 480, 481,
	482, 531, 532, 533, 1181, 484, 483, 534, 1182, 1183,
	1184, 1185, 485, 486, 535, 487, 488, 489, 1100, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 2850, 0, 220, 221, 222, 223, 224,
	1107, 225, 1108, 1109, 1110, 0, 1111, 490, 1112, 1113,
	1114, 1115, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 1116, 235, 236, 237, 238,
	239, 240, 241, 1117, 1118, 242, 495, 496, 497, 1119,
	243, 498, 1120, 1105, 1121, 244, 245, 246, 247, 248,
	249, 0, 1122, 251, 252, 253, 250, 1123, 254, 0,
	255, 256, 257, 1124, 258, 973, 259, 260, 1125, 1126,
	1128, 1127, 1129, 1130, 1131, 261, 262, 263, 264, 265,
	266, 499, 500, 1132, 267, 1133, 269, 268, 1134, 270,
	1135, 1136, 271, 272, 273, 1137, 274, 1138, 275, 276,
	1139, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 1140, 217, 1141, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 1142,
	294, 1143, 1144, 974, 295, 296, 1145, 297, 505, 1146,
	506, 298, 1147, 299, 300, 301, 302, 507, 508, 509,
	358, 976, 303, 304, 1148, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 1149, 975, 311, 510, 313,
	312, 314, 315, 316, 511, 1150, 512, 1151, 318, 977,
	513, 978, 319, 320, 321, 979, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 1152, 330, 329, 1153, 331,
	514, 980, 332, 333, 981, 1154, 334, 335, 1155, 1156,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 982, 350, 351, 354, 355,
	353, 983, 352, 1157, 219, 984, 356, 1158, 515, 357,
	516, 359, 360, 1159, 361, 362, 363, 1160, 1161, 365,
	366, 367, 1162, 1163, 368, 369, 517, 985, 370, 986,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	1164, 379, 380, 519, 381, 520, 382, 383, 1165, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 1166, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 1167, 408, 987,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 1168, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 1169, 435, 415, 416,
	436, 437, 988, 438, 439, 523, 440, 441, 1170, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 1171, 453, 454, 452, 1172, 455, 456, 457, 458,
	459, 282, 460, 1173, 461, 525, 526, 527, 528, 1174,
	468, 1175, 462, 463, 529, 464, 530, 1176, 465, 466,
	467, 0, 469, 470, 1177, 1178, 471, 472, 473, 475,
	476, 474, 478, 1179, 479, 1180, 477, 480, 481, 482,
	531, 532, 533, 1181, 484, 483, 534, 1182, 1183, 1184,
	1185, 485, 486, 535, 487, 488, 489, 1100, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2148, 0, 220, 221, 222, 223, 224, 1107,
	225, 1108, 1109, 1110, 0, 1111, 490, 1112, 1113, 1114,
	1115, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 1116, 235, 236, 237, 238, 239,
	240, 241, 1117, 1118, 242, 495, 496, 497, 1119, 243,
	498, 1120, 1105, 1121, 244, 245, 246, 247, 248, 249,
	0, 1122, 251, 252, 253, 250, 1123, 254, 0, 255,
	256, 257, 1124, 258, 973, 259, 260, 1125, 1126, 1128,
	1127, 1129, 1130, 1131, 261, 262, 263, 264, 265, 266,
	499, 500, 1132, 267, 1133, 269, 268, 1134, 270, 1135,
	1136, 271, 272, 273, 1137, 274, 1138, 275, 276, 1139,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 1140, 217, 1141, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 1142, 294,
	1143, 1144, 974, 295, 296, 1145, 297, 505, 1146, 506,
	298, 1147, 299, 300, 301, 302, 507, 508, 509, 358,
	976, 303, 304, 1148, 305, 306, 307, 309, 0, 0,
	218, 308, 310, 317, 1149, 975, 311, 510, 313, 312,
	314, 315, 316, 511, 1150, 512, 1151, 318, 977, 513,
	978, 319, 320, 321, 979, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 1152, 330, 329, 1153, 331, 514,
	980, 332, 333, 981, 1154, 334, 335, 1155, 1156, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 1157, 219, 984, 356, 1158, 515, 357, 516,
	359, 360, 1159, 361, 362, 363, 1160, 1161, 365, 366,
	367, 1162, 1163, 368, 369, 517, 985, 370, 986, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 1164,
	379, 380, 519, 381, 520, 382, 383, 1165, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	1166, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 1167, 408, 987, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 1168, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 1169, 435, 415, 416, 436,
	437, 988, 438, 439, 523, 440, 441, 1170, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	1171, 453, 454, 452, 1172, 455, 456, 457, 458, 459,
	282, 460, 1173, 461, 525, 526, 527, 528, 1174, 468,
	1175, 462, 463, 529, 464, 530, 1176, 465, 466, 467,
	0, 469, 470, 1177, 1178, 471, 472, 473, 475, 476,
	474, 478, 1179, 479, 1180, 477, 480, 481, 482, 531,
	532, 533, 1181, 484, 483, 534, 1182, 1183, 1184, 1185,
	485, 486, 535, 487, 488, 489, 1198, 0, 1100, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1847, 0, 0, 0, 220, 221, 222, 223, 224,
	1107, 225, 1108, 1109, 1110, 0, 1111, 490, 1112, 1113,
	1114, 1115, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 1116, 235, 236, 237, 238,
	239, 240, 241, 1117, 1118, 242, 495, 496, 497, 1119,
	243, 498, 1120, 1105, 1121, 244, 245, 246, 247, 248,
	249, 0, 1122, 251, 252, 253, 250, 1123, 254, 0,
	255, 256, 257, 1124, 258, 973, 259, 260, 1125, 1126,
	1128, 1127, 1129, 1130, 1131, 261, 262, 263, 264, 265,
	266, 499, 500, 1132, 267, 1133, 269, 268, 1134, 270,
	1135, 1136, 271, 272, 273, 1137, 274, 1138, 275, 276,
	1139, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 1140, 217, 1141, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 1142,
	294, 1143, 1144, 974, 295, 296, 1145, 297, 505, 1146,
	506, 298, 1147, 299, 300, 301, 302, 507, 508, 509,
	358, 976, 303, 304, 1148, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 1149, 975, 311, 510, 313,
	312, 314, 315, 316, 511, 1150, 512, 1151, 318, 977,
	513, 978, 319, 320, 321, 979, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 1152, 330, 329, 1153, 331,
	514, 980, 332, 333, 981, 1154, 334, 335, 1155, 1156,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 982, 350, 351, 354, 355,
	353, 983, 352, 1157, 219, 984, 356, 1158, 515, 357,
	516, 359, 360, 1159, 361, 362, 363, 1160, 1161, 365,
	366, 367, 1162, 1163, 368, 369, 517, 985, 370, 986,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	1164, 379, 380, 519, 381, 520, 382, 383, 1165, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 1166, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 1167, 408, 987,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 1168, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 1169, 435, 415, 416,
	436, 437, 988, 438, 439, 523, 440, 441, 1170, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 1171, 453, 454, 452, 1172, 455, 456, 457, 458,
	459, 282, 460, 1173, 461, 525, 526, 527, 528, 1174,
	468, 1175, 462, 463, 529, 464, 530, 1176, 465, 466,
	467, 0, 469, 470, 1177, 1178, 471, 472, 473, 475,
	476, 474, 478, 1179, 479, 1180, 477, 480, 481, 482,
	531, 532, 533, 1181, 484, 483, 534, 1182, 1183, 1184,
	1185, 485, 486, 535, 487, 488, 489, 1097, 0, 1100,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 1107, 225, 1108, 1109, 1110, 0, 1111, 490, 1112,
	1113, 1114, 1115, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 1116, 235, 236, 237,
	238, 239, 240, 241, 1117, 1118, 242, 495, 496, 497,
	1119, 243, 498, 1120, 1105, 1121, 244, 245, 246, 247,
	248, 249, 0, 1122, 251, 252, 253, 250, 1123, 254,
	0, 255, 256, 257, 1124, 258, 973, 259, 260, 1125,
	1126, 1128, 1127, 1129, 1130, 1131, 261, 262, 263, 264,
	265, 266, 499, 500, 1132, 267, 1133, 269, 268, 1134,
	270, 1135, 1136, 271, 272, 273, 1137, 274, 1138, 275,
	276, 1139, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 1140, 217, 1141, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	1142, 294, 1143, 1144, 974, 295, 296, 1145, 297, 505,
	1146, 506, 298, 1147, 299, 300, 301, 302, 507, 508,
	509, 358, 976, 303, 304, 1148, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 1149, 975, 311, 510,
	313, 312, 314, 315, 316, 511, 1150, 512, 1151, 318,
	977, 513, 978, 319, 320, 321, 979, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 1152, 330, 329, 1153,
	331, 514, 980, 332, 333, 981, 1154, 334, 335, 1155,
	1156, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 1157, 219, 984, 356, 1158, 515,
	357, 516, 359, 360, 1159, 361, 362, 363, 1160, 1161,
	365, 366, 367, 1162, 1163, 368, 369, 517, 985, 370,
	986, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 1164, 379, 380, 519, 381, 520, 382, 383, 1165,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 1166, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 1167, 408,
	987, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 1168, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 1169, 435, 415,
	416, 436, 437, 988, 438, 439, 523, 440, 441, 1170,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 1171, 453, 454, 452, 1172, 455, 456, 457,
	458, 459, 282, 460, 1173, 461, 525, 526, 527, 528,
	1174, 468, 1175, 462, 463, 529, 464, 530, 1176, 465,
	466, 467, 0, 469, 470, 1177, 1178, 471, 472, 473,
	475, 476, 474, 478, 1179, 479, 1180, 477, 480, 481,
	482, 531, 532, 533, 1181, 484, 483, 534, 1182, 1183,
	1184, 1185, 485, 486, 535, 487, 488, 489, 1100, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	1107, 225, 1108, 1109, 1110, 0, 1111, 490, 1112, 1113,
	1114, 1115, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 1116, 235, 236, 237, 238,
	239, 240, 241, 1117, 1118, 242, 495, 496, 497, 1119,
	243, 498, 1120, 1105, 1121, 244, 245, 246, 247, 248,
	249, 0, 1122, 251, 252, 253, 250, 1123, 254, 0,
	255, 256, 257, 1124, 258, 973, 259, 260, 1125, 1126,
	1128, 1127, 1129, 1130, 1131, 261, 262, 263, 264, 265,
	266, 499, 500, 1132, 267, 1133, 269, 268, 1134, 270,
	1135, 1136, 271, 272, 273, 1137, 274, 1138, 275, 276,
	1139, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 1140, 217, 1141, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 1142,
	294, 1143, 1144, 974, 295, 296, 1145, 297, 505, 1146,
	506, 298, 1147, 299, 300, 301, 302, 507, 508, 509,
	358, 976, 303, 304, 1148, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 1149, 975, 311, 510, 313,
	312, 314, 315, 316, 511, 1150, 512, 1151, 318, 977,
	513, 978, 319, 320, 321, 979, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 1152, 330, 329, 1153, 331,
	514, 980, 332, 333, 981, 1154, 334, 335, 1155, 1156,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 982, 350, 351, 354, 355,
	353, 983, 352, 1157, 219, 984, 356, 1158, 515, 357,
	516, 359, 360, 1159, 361, 362, 363, 1160, 1161, 365,
	366, 367, 1162, 1163, 368, 369, 517, 985, 370, 986,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	1164, 379, 380, 519, 381, 520, 382, 383, 1165, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 1166, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 1167, 408, 987,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 1168, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 1169, 435, 415, 416,
	436, 437, 988, 438, 439, 523, 440, 441, 1170, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 1171, 453, 454, 452, 1172, 455, 456, 457, 458,
	459, 282, 460, 1173, 461, 525, 526, 527, 528, 1174,
	468, 1175, 462, 463, 529, 464, 530, 1176, 465, 466,
	467, 0, 469, 470, 1177, 1178, 471, 472, 473, 475,
	476, 474, 478, 1179, 479, 1180, 477, 480, 481, 482,
	531, 532, 533, 1181, 484, 483, 534, 1182, 1183, 1184,
	1185, 485, 486, 535, 487, 488, 489, 2123, 0, 913,
	871, 872, 873, 869, 870, 882, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 2120, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 2121, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 2119, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 2122, 0, 0, 0, 0, 0, 0,
	883, 2118, 0, 847, 881, 913, 871, 872, 873, 869,
	870, 882, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 183, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 185, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 1349, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 177, 485, 486,
	535, 487, 488, 489, 858, 178, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 913,
	871, 872, 873, 869, 870, 882, 1559, 1557, 0, 0,
	881, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 183, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 185, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 1349, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 177, 485, 486, 535, 487, 488, 489, 858, 178,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 913, 871, 872, 873, 869, 870, 882,
	1559, 2596, 0, 0, 881, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	183, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	185, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 1349, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 177, 485, 486, 535, 487,
	488, 489, 858, 178, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 913, 871, 872,
	873, 869, 870, 882, 1559, 1557, 0, 0, 881, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 928, 907, 939,
	234, 897, 938, 937, 2217, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 2222, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 2218, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 984, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	2219, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 469, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 858, 0, 0, 0,
	0, 0, 856, 0, 0, 0, 0, 0, 0, 854,
	855, 0, 0, 0, 0, 0, 0, 0, 883, 0,
	0, 2176, 881, 913, 871, 872, 873, 869, 870, 882,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 0, 0, 0,
	0, 0, 0, 0, 883, 2174, 0, 2173, 881, 913,
	871, 872, 873, 869, 870, 882, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 0, 0, 0, 0, 0, 0, 0,
	883, 2171, 0, 2170, 881, 913, 871, 872, 873, 869,
	870, 882, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 858, 0, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 0,
	0, 0, 0, 0, 0, 0, 883, 2168, 0, 2167,
	881, 913, 871, 872, 873, 869, 870, 882, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	965, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 854, 855, 0, 0, 0, 0, 0,
	0, 0, 883, 2165, 0, 1418, 881, 913, 871, 872,
	873, 869, 870, 882, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 928, 907, 939,
	234, 897, 938, 937, 0, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 984, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	0, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 469, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 1417, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 858, 0, 0, 0,
	0, 0, 856, 0, 0, 0, 0, 0, 0, 854,
	855, 0, 0, 0, 0, 0, 0, 0, 883, 0,
	0, 850, 881, 913, 871, 872, 873, 869, 870, 882,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 862, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 913, 871, 872,
	873, 869, 870, 882, 883, 0, 0, 0, 881, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 928, 907, 939,
	234, 897, 938, 937, 0, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	3629, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 984, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 862, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	0, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 469, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 858, 0, 0, 0,
	0, 0, 856, 0, 0, 0, 0, 0, 0, 854,
	855, 913, 871, 872, 873, 869, 870, 882, 883, 0,
	0, 0, 881, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 3462, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	965, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	862, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 854, 855, 913, 871, 872, 873, 869,
	870, 882, 883, 0, 0, 0, 881, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 3178, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 858, 0, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 1623,
	0, 0, 0, 0, 0, 0, 883, 0, 0, 0,
	881, 913, 871, 872, 873, 869, 870, 882, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	965, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 2978, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 854, 855, 913, 871, 872, 873, 869,
	870, 882, 883, 0, 0, 0, 881, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 2037, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 2036, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 858, 0, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 913,
	871, 872, 873, 869, 870, 882, 883, 0, 0, 0,
	881, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 862, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 913, 871, 872, 873, 869, 870, 882,
	883, 0, 0, 0, 881, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 1623, 0, 0,
	0, 0, 0, 0, 883, 0, 0, 0, 881, 913,
	871, 872, 873, 869, 870, 882, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 2222, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 913, 871, 872, 873, 869, 870, 882,
	883, 0, 0, 0, 881, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 0, 0, 0,
	0, 0, 0, 0, 883, 1557, 0, 2227, 881, 913,
	871, 872, 873, 869, 870, 882, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 0, 0, 0, 0, 0, 0, 0,
	883, 0, 0, 2225, 881, 913, 871, 872, 873, 869,
	870, 882, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 858, 0, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 0,
	0, 0, 0, 0, 0, 0, 883, 0, 0, 2213,
	881, 913, 871, 872, 873, 869, 870, 882, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	965, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 854, 855, 0, 0, 0, 0, 0,
	0, 0, 883, 0, 0, 2202, 881, 913, 871, 872,
	873, 869, 870, 882, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 928, 907, 939,
	234, 897, 938, 937, 0, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 984, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	0, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 469, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 858, 0, 0, 0,
	0, 0, 856, 0, 0, 0, 0, 0, 0, 854,
	855, 0, 0, 0, 0, 0, 0, 0, 883, 0,
	0, 2200, 881, 2191, 2198, 872, 873, 869, 870, 882,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 2194, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 2195, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 2196, 2193, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 2197,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	2192, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 0, 0, 0,
	0, 0, 0, 0, 883, 0, 0, 2188, 881, 2191,
	2198, 872, 873, 869, 870, 882, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 2194, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 2195, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 2196, 2193, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 2197, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 2192, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 913, 871, 872, 873, 869, 870, 882,
	883, 0, 0, 0, 881, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 0, 0, 0,
	0, 0, 1565, 0, 883, 0, 0, 0, 881, 913,
	871, 872, 873, 869, 870, 882, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 2016, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 0, 0, 0, 0, 0, 0, 0,
	883, 0, 0, 1241, 881, 913, 871, 872, 873, 869,
	870, 882, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 1240, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 858, 0, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 0,
	0, 0, 0, 0, 0, 0, 883, 0, 0, 1235,
	881, 913, 871, 872, 873, 869, 870, 882, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	1234, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 854, 855, 0, 0, 0, 0, 0,
	0, 0, 883, 0, 0, 1230, 881, 913, 871, 872,
	873, 869, 870, 882, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 928, 907, 939,
	234, 897, 938, 937, 0, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 984, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	0, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 469, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 858, 0, 0, 0,
	0, 0, 856, 0, 0, 0, 0, 0, 0, 854,
	855, 913, 871, 872, 873, 869, 870, 882, 883, 0,
	0, 0, 881, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	965, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 854, 855, 913, 871, 872, 873, 869,
	870, 882, 883, 0, 0, 0, 881, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 3661, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	860, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	857, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 3660,
	470, 0, 861, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 858, 0, 0, 0, 0, 0,
	856, 0, 0, 0, 0, 0, 0, 854, 855, 913,
	871, 872, 873, 869, 870, 882, 883, 0, 0, 0,
	881, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 3659, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 3661, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 860, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 857, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 867, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 3660, 470, 0, 861, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 858, 0,
	0, 0, 0, 0, 856, 0, 0, 0, 0, 0,
	0, 854, 855, 913, 871, 872, 873, 2563, 2564, 882,
	883, 0, 0, 0, 881, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 964, 887, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 928, 907, 939, 234, 897, 938, 937,
	0, 235, 236, 899, 898, 239, 240, 241, 889, 963,
	242, 1000, 1001, 497, 0, 243, 970, 0, 951, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 954, 952, 953, 960, 956, 955, 959,
	261, 262, 263, 264, 942, 266, 935, 934, 860, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 933, 273,
	0, 274, 0, 275, 276, 0, 277, 866, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 991, 992, 878,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 932,
	930, 931, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 998, 0, 888, 298, 0, 299, 300,
	301, 302, 965, 966, 969, 358, 976, 303, 304, 0,
	305, 306, 307, 909, 0, 0, 218, 308, 310, 317,
	0, 975, 311, 921, 912, 923, 925, 926, 927, 922,
	0, 914, 0, 318, 977, 967, 978, 319, 320, 321,
	979, 947, 948, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 999, 980, 332, 333, 981,
	0, 334, 335, 958, 957, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 901, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 857, 219,
	984, 356, 879, 968, 357, 936, 359, 360, 0, 910,
	362, 911, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 993, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 994, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 929, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 867,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 902, 903, 905, 906, 426, 432, 433,
	434, 961, 435, 415, 416, 436, 437, 988, 438, 439,
	924, 904, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 972, 447, 448, 449, 995, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 900, 0, 461,
	943, 944, 945, 946, 0, 468, 0, 462, 463, 996,
	464, 997, 877, 465, 466, 467, 0, 469, 470, 0,
	861, 471, 472, 473, 475, 476, 474, 478, 962, 479,
	0, 908, 480, 481, 482, 531, 940, 990, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 858, 0, 0, 0, 0, 0, 856, 0,
	0, 0, 0, 0, 0, 854, 855, 913, 871, 872,
	873, 2561, 2562, 882, 883, 0, 0, 0, 881, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 928, 907, 939,
	234, 897, 938, 937, 0, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 984, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	0, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 469, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 858, 0, 0, 0,
	0, 0, 856, 0, 0, 0, 0, 0, 0, 854,
	855, 913, 871, 872, 873, 869, 870, 882, 883, 0,
	0, 0, 881, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	964, 887, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 928, 907, 939, 234, 897, 938, 937, 0, 235,
	236, 899, 898, 239, 240, 241, 889, 963, 242, 1000,
	1001, 497, 0, 243, 970, 0, 951, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 954, 952, 953, 960, 956, 955, 959, 261, 262,
	263, 264, 942, 266, 935, 934, 860, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 933, 273, 0, 274,
	0, 275, 276, 0, 277, 866, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 991, 992, 878, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 932, 930, 931,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 998, 0, 888, 298, 0, 299, 300, 301, 302,
	965, 966, 969, 358, 976, 303, 304, 0, 305, 306,
	307, 909, 0, 0, 218, 308, 310, 317, 0, 975,
	311, 921, 912, 923, 925, 926, 927, 922, 0, 914,
	0, 318, 977, 967, 978, 319, 320, 321, 979, 947,
	948, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 999, 980, 332, 333, 981, 0, 334,
	335, 958, 957, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 901, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 857, 219, 984, 356,
	879, 968, 357, 936, 359, 360, 0, 910, 362, 911,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 993, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 994, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 929, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 867, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 902, 903, 905, 906, 426, 432, 433, 434, 961,
	435, 415, 416, 436, 437, 988, 438, 439, 924, 904,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 972,
	447, 448, 449, 995, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 900, 0, 461, 943, 944,
	945, 946, 0, 468, 0, 462, 463, 996, 464, 997,
	877, 465, 466, 467, 0, 469, 470, 0, 861, 471,
	472, 473, 475, 476, 474, 478, 962, 479, 0, 908,
	480, 481, 482, 531, 940, 990, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	858, 0, 0, 0, 0, 0, 856, 0, 0, 0,
	0, 0, 0, 2024, 2025, 913, 871, 872, 873, 869,
	870, 882, 883, 0, 0, 0, 881, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 887, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 928, 907, 939, 234, 897,
	938, 937, 0, 235, 236, 899, 898, 239, 240, 241,
	889, 963, 242, 1000, 1001, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 942, 266, 935, 934,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	933, 273, 0, 274, 0, 275, 276, 0, 277, 866,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 878, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 932, 930, 931, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 888, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 909, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 921, 912, 923, 925, 926,
	927, 922, 0, 914, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 947, 948, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	901, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	0, 219, 984, 356, 879, 968, 357, 936, 359, 360,
	0, 910, 362, 911, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 929, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 867, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 902, 903, 905, 906, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 924, 904, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 972, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 900,
	0, 461, 943, 944, 945, 946, 0, 468, 0, 462,
	463, 996, 464, 997, 877, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 908, 480, 481, 482, 531, 940, 990,
	0, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	2210, 0, 0, 0, 0, 0, 0, 2208, 2209, 913,
	871, 872, 873, 869, 870, 882, 883, 0, 0, 0,
	881, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 887,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 928,
	907, 939, 234, 897, 938, 937, 0, 235, 236, 899,
	898, 239, 240, 241, 889, 963, 242, 1000, 1001, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	942, 266, 935, 934, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 933, 273, 0, 274, 0, 275,
	276, 0, 277, 866, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 878, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 932, 930, 931, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 888, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 909,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 921,
	912, 923, 925, 926, 927, 922, 0, 914, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 947, 948, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 901, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 0, 219, 984, 356, 879, 968,
	357, 936, 359, 360, 0, 910, 362, 911, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 929,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 2556, 2557, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 902,
	903, 905, 906, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 924, 904, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 972, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 900, 0, 461, 943, 944, 945, 946,
	0, 468, 0, 462, 463, 996, 464, 997, 877, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 908, 480, 481,
	482, 531, 940, 990, 0, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 913, 871,
	872, 873, 869, 870, 882, 0, 0, 0, 0, 0,
	0, 1777, 1778, 0, 0, 220, 221, 222, 223, 224,
	883, 225, 0, 0, 881, 0, 0, 964, 887, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 928, 907,
	939, 234, 897, 938, 937, 0, 235, 236, 899, 898,
	239, 240, 241, 0, 963, 242, 1000, 1001, 497, 0,
	243, 970, 0, 951, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 973, 259, 260, 954, 952,
	953, 960, 956, 955, 959, 261, 262, 263, 264, 942,
	266, 935, 934, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 933, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 991, 992, 878, 217, 0, 0, 0, 0,
	0, 288, 289, 290, 932, 930, 931, 0, 293, 0,
	294, 0, 0, 974, 295, 296, 0, 297, 998, 0,
	888, 298, 0, 299, 300, 301, 302, 965, 966, 969,
	358, 976, 303, 304, 0, 305, 306, 307, 909, 0,
	0, 218, 308, 310, 317, 0, 975, 311, 921, 912,
	923, 925, 926, 927, 922, 0, 914, 0, 318, 977,
	967, 978, 319, 320, 321, 979, 947, 948, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	999, 980, 332, 333, 981, 0, 334, 335, 958, 957,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 901, 347, 982, 350, 351, 354, 355,
	353, 983, 352, 0, 219, 984, 356, 879, 968, 357,
	936, 359, 360, 0, 910, 362, 911, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 985, 370, 986,
	993, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 994, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 929, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 987,
	409, 410, 411, 412, 867, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 902, 903,
	905, 906, 426, 432, 433, 434, 961, 435, 415, 416,
	436, 437, 988, 438, 439, 924, 904, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 972, 447, 448, 449,
	995, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 900, 0, 461, 943, 944, 945, 946, 0,
	468, 0, 462, 463, 996, 464, 997, 877, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 962, 479, 0, 908, 480, 481, 482,
	531, 940, 990, 0, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 913, 871, 872,
	873, 869, 870, 882, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 883,
	225, 0, 0, 881, 0, 0, 964, 887, 0, 0,
	0, 226, 228, 227, 229, 230, 0, 928, 907, 939,
	234, 897, 938, 937, 0, 235, 236, 899, 898, 239,
	240, 241, 889, 963, 242, 1000, 1001, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 3661, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 942, 266,
	935, 934, 860, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 933, 273, 0, 274, 0, 275, 276, 0,
	277, 866, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 878, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 932, 930, 931, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 888,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	0, 303, 304, 0, 305, 306, 307, 909, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 921, 912, 923,
	925, 926, 927, 922, 0, 914, 0, 318, 0, 967,
	0, 319, 320, 321, 979, 947, 948, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 999,
	980, 332, 333, 0, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 901, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 857, 219, 0, 356, 879, 968, 357, 936,
	359, 360, 0, 910, 362, 911, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 929, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 867, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 902, 903, 905,
	906, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 0, 438, 439, 924, 904, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 972, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 900, 0, 461, 943, 944, 945, 946, 0, 468,
	0, 462, 463, 996, 464, 997, 877, 465, 466, 467,
	0, 3660, 470, 0, 861, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 908, 480, 481, 482, 531,
	940, 990, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 0, 847, 0, 1038, 0, 0, 854,
	855, 0, 0, 0, 0, 0, 0, 0, 883, 0,
	0, 0, 881, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 964, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 963, 242, 495, 496, 497, 0, 243, 970,
	0, 951, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 973, 259, 260, 954, 952, 953, 960,
	956, 955, 959, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	991, 992, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 974, 295, 296, 0, 297, 998, 0, 506, 298,
	0, 299, 300, 301, 302, 965, 966, 969, 358, 976,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 218,
	308, 310, 317, 0, 975, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 977, 967, 978,
	319, 320, 321, 979, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 1024, 330, 329, 0, 331, 999, 980,
	332, 333, 981, 0, 334, 335, 958, 957, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 982, 350, 351, 354, 355, 353, 983,
	352, 0, 219, 984, 356, 0, 968, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 1030, 365, 366, 367,
	0, 0, 368, 369, 517, 985, 370, 986, 993, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 994, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 987, 409, 410,
	411, 412, 522, 1032, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 183, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 961, 435, 415, 416, 436, 437,
	988, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 995, 0,
	453, 454, 452, 185, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 996, 464, 997, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 962, 479, 0, 477, 480, 481, 482, 1349, 532,
	533, 0, 484, 483, 534, 1038, 0, 0, 177, 485,
	486, 535, 487, 488, 489, 0, 178, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 1028, 0, 1647, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 963, 242, 495, 496, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 506, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 1024, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	0, 219, 984, 356, 0, 968, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 1030, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 522, 1032, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 183, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 995, 0, 453,
	454, 452, 185, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 996, 464, 997, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 477, 480, 481, 482, 1349, 532, 533,
	0, 484, 483, 534, 2709, 0, 1038, 177, 485, 486,
	535, 487, 488, 489, 0, 178, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 1028, 964, 1647, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 963, 242, 495, 496, 497, 0, 243, 970,
	0, 951, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 973, 259, 260, 954, 952, 953, 960,
	956, 955, 959, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	991, 992, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 974, 295, 296, 0, 297, 998, 0, 506, 298,
	0, 299, 300, 301, 302, 965, 966, 969, 358, 976,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 218,
	308, 310, 317, 0, 975, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 977, 967, 978,
	319, 320, 321, 979, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 1024, 330, 329, 0, 331, 999, 980,
	332, 333, 981, 0, 334, 335, 958, 957, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 982, 350, 351, 354, 355, 353, 983,
	352, 0, 219, 984, 356, 0, 968, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 1030, 365, 366, 367,
	0, 0, 368, 369, 517, 985, 370, 986, 993, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 994, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 987, 409, 410,
	411, 412, 522, 1032, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 961, 435, 415, 416, 436, 437,
	988, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 995, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 996, 464, 997, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 962, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 1020, 0, 1038, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 1028, 964, 1026, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 963, 242, 495, 496, 497, 0, 243,
	970, 0, 951, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 954, 952, 953,
	960, 956, 955, 959, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 991, 992, 0, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 998, 0, 506,
	298, 0, 299, 300, 301, 302, 965, 966, 969, 358,
	976, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	218, 308, 310, 317, 0, 975, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 977, 967,
	978, 319, 320, 321, 979, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 1024, 330, 329, 0, 331, 999,
	980, 332, 333, 981, 0, 334, 335, 958, 957, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 0, 219, 984, 356, 0, 968, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 1030, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 993,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 994, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 522, 1032, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 961, 435, 415, 416, 436,
	437, 988, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 995,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 996, 464, 997, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 962, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 1038, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 964, 1028, 0, 1026, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 963, 242, 495, 496, 497, 0, 243, 970,
	0, 951, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 973, 259, 260, 954, 952, 953, 960,
	956, 955, 959, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	991, 992, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 974, 295, 296, 0, 297, 998, 0, 506, 298,
	0, 299, 300, 301, 302, 965, 966, 969, 358, 976,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 218,
	308, 310, 317, 0, 975, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 977, 967, 978,
	319, 320, 321, 979, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 1024, 330, 329, 0, 331, 999, 980,
	332, 333, 981, 0, 334, 335, 958, 957, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 982, 350, 351, 354, 355, 353, 983,
	352, 0, 219, 984, 356, 0, 968, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 1030, 365, 366, 367,
	0, 0, 368, 369, 517, 985, 370, 986, 993, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 994, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 987, 409, 410,
	411, 412, 522, 1032, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 961, 435, 415, 416, 436, 437,
	988, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 995, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 996, 464, 997, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 962, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 1038, 0, 0, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 964, 1028, 0, 1026, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 963, 242, 495, 496, 497, 0, 243, 970, 0,
	951, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 973, 259, 260, 954, 952, 953, 960, 956,
	955, 959, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 991,
	992, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	974, 295, 296, 0, 297, 998, 0, 506, 298, 0,
	299, 300, 301, 302, 965, 966, 969, 358, 976, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 975, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 977, 967, 978, 319,
	320, 321, 979, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 999, 980, 332,
	333, 981, 0, 334, 335, 958, 957, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 982, 350, 351, 354, 355, 353, 983, 352,
	0, 219, 984, 356, 0, 968, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 985, 370, 986, 993, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	994, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 987, 409, 410, 411,
	412, 522, 1032, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 961, 435, 415, 416, 436, 437, 988,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 995, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 996, 464, 997, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	962, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 847, 0, 1214, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 1548, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 1105, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 973, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 974, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 976,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 975, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 977, 513, 978,
	319, 320, 321, 979, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 980,
	332, 333, 981, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 982, 350, 351, 354, 355, 353, 983,
	352, 0, 0, 984, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 985, 370, 986, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 987, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 183, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	988, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 185, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 1349, 532,
	533, 0, 484, 483, 534, 1346, 0, 1214, 177, 485,
	486, 535, 487, 488, 489, 0, 178, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 152, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 1105, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	976, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 975, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 977, 513,
	978, 319, 320, 321, 979, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	980, 332, 333, 981, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 0, 0, 984, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 183, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 988, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 185, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 1349,
	532, 533, 0, 484, 483, 534, 0, 0, 0, 177,
	485, 486, 535, 487, 488, 489, 0, 178, 0, 0,
	0, 0, 1214, 1213, 0, 0, 0, 0, 1211, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 152, 220,
	221, 222, 223, 224, 0, 225, 0, 0, 0, 0,
	0, 490, 0, 0, 0, 0, 226, 228, 227, 229,
	230, 491, 492, 231, 493, 234, 232, 233, 494, 0,
	235, 236, 237, 238, 239, 240, 241, 0, 0, 242,
	495, 496, 497, 0, 243, 498, 0, 1105, 0, 244,
	245, 246, 247, 248, 249, 0, 0, 251, 252, 253,
	250, 0, 254, 0, 255, 256, 257, 0, 258, 973,
	259, 260, 0, 0, 0, 0, 0, 0, 0, 261,
	262, 263, 264, 265, 266, 499, 500, 0, 267, 0,
	269, 268, 0, 270, 0, 0, 271, 272, 273, 0,
	274, 0, 275, 276, 0, 277, 501, 278, 279, 281,
	283, 280, 284, 285, 286, 287, 502, 503, 0, 217,
	0, 0, 0, 0, 0, 288, 289, 290, 504, 291,
	292, 0, 293, 0, 294, 0, 0, 974, 295, 296,
	0, 297, 505, 0, 506, 298, 0, 299, 300, 301,
	302, 507, 508, 509, 358, 976, 303, 304, 0, 305,
	306, 307, 309, 0, 0, 0, 308, 310, 317, 0,
	975, 311, 510, 313, 312, 314, 315, 316, 511, 0,
	512, 0, 318, 977, 513, 978, 319, 320, 321, 979,
	322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
	330, 329, 0, 331, 514, 980, 332, 333, 981, 0,
	334, 335, 0, 0, 336, 337, 338, 339, 0, 340,
	341, 343, 345, 342, 344, 346, 348, 349, 347, 982,
	350, 351, 354, 355, 353, 983, 352, 0, 0, 984,
	356, 0, 515, 357, 516, 359, 360, 0, 361, 362,
	363, 0, 0, 365, 366, 367, 0, 0, 368, 369,
	517, 985, 370, 986, 518, 371, 364, 372, 373, 374,
	375, 376, 377, 378, 0, 379, 380, 519, 381, 520,
	382, 383, 0, 384, 0, 385, 386, 387, 388, 389,
	390, 391, 521, 392, 393, 0, 394, 395, 396, 397,
	398, 399, 0, 401, 402, 403, 400, 404, 405, 406,
	407, 0, 408, 987, 409, 410, 411, 412, 522, 413,
	0, 414, 418, 419, 420, 421, 422, 423, 424, 0,
	430, 431, 425, 427, 428, 429, 426, 432, 433, 434,
	0, 435, 415, 416, 436, 437, 988, 438, 439, 523,
	440, 441, 0, 442, 443, 444, 445, 417, 446, 450,
	451, 447, 448, 449, 524, 0, 453, 454, 452, 0,
	455, 456, 457, 458, 459, 282, 460, 0, 461, 525,
	526, 527, 528, 0, 468, 0, 462, 463, 529, 464,
	530, 0, 465, 466, 467, 0, 469, 470, 0, 0,
	471, 472, 473, 475, 476, 474, 478, 0, 479, 0,
	477, 480, 481, 482, 531, 532, 533, 0, 484, 483,
	534, 0, 0, 0, 0, 485, 486, 535, 487, 488,
	489, 1214, 1213, 0, 0, 0, 0, 1211, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 2915, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 497, 0, 243, 498, 0, 1105, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	263, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	507, 508, 509, 358, 976, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 0, 308, 310, 317, 0, 975,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	0, 318, 977, 513, 978, 319, 320, 321, 979, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 980, 332, 333, 981, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 0, 0, 984, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 0,
	435, 415, 416, 436, 437, 988, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 525, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 0, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	1214, 1213, 0, 0, 0, 0, 1211, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 1220, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 1105, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 973, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 217, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 974, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 976, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 0, 308, 310, 317, 0, 975, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 977, 513, 978, 319, 320, 321, 979, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 980, 332, 333, 981, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 982, 350, 351,
	354, 355, 353, 983, 352, 0, 0, 984, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 985,
	370, 986, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 987, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 988, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 0, 484, 483, 534, 1038,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 964, 0,
	0, 1355, 0, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 0, 235, 236, 237,
	238, 239, 240, 241, 0, 963, 242, 495, 496, 497,
	0, 243, 970, 0, 951, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 973, 259, 260, 954,
	952, 953, 960, 956, 955, 959, 261, 262, 263, 264,
	265, 266, 499, 500, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 272, 273, 0, 274, 0, 275,
	276, 0, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 991, 992, 0, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	0, 294, 0, 0, 974, 295, 296, 0, 297, 998,
	0, 506, 298, 0, 299, 300, 301, 302, 965, 966,
	969, 358, 976, 303, 304, 0, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 0, 975, 311, 510,
	313, 312, 314, 315, 316, 511, 0, 512, 0, 318,
	977, 967, 978, 319, 320, 321, 979, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 999, 980, 332, 333, 981, 0, 334, 335, 958,
	957, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 982, 350, 351, 354,
	355, 353, 983, 352, 0, 219, 984, 356, 0, 968,
	357, 516, 359, 360, 0, 361, 362, 363, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 985, 370,
	986, 993, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 994, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	987, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 961, 435, 415,
	416, 436, 437, 988, 438, 439, 523, 440, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 995, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 460, 0, 461, 525, 526, 527, 528,
	0, 468, 0, 462, 463, 996, 464, 997, 0, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 962, 479, 0, 477, 480, 481,
	482, 531, 532, 533, 0, 484, 483, 534, 847, 0,
	214, 0, 485, 486, 535, 487, 488, 489, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 0, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 0, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 0, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 183, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 185, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 1349, 532, 533, 0, 484, 483, 534, 214,
	0, 0, 177, 485, 486, 535, 487, 488, 489, 0,
	178, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 490, 0,
	0, 152, 0, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 0, 235, 236, 237,
	238, 239, 240, 241, 0, 0, 242, 495, 496, 497,
	0, 243, 498, 0, 0, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 0, 259, 260, 0,
	0, 0, 0, 0, 0, 0, 261, 262, 263, 264,
	265, 266, 499, 500, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 272, 273, 0, 274, 0, 275,
	276, 0, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 0, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	0, 294, 0, 0, 0, 295, 296, 0, 297, 505,
	0, 506, 298, 0, 299, 300, 301, 302, 507, 508,
	509, 358, 0, 303, 304, 0, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 0, 0, 311, 510,
	313, 312, 314, 315, 316, 511, 0, 512, 0, 318,
	0, 513, 0, 319, 320, 321, 0, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 514, 0, 332, 333, 0, 0, 334, 335, 0,
	0, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 0, 350, 351, 354,
	355, 353, 0, 352, 0, 219, 0, 356, 0, 515,
	357, 516, 359, 360, 0, 361, 362, 363, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 0, 370,
	0, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 519, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	0, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 0, 435, 415,
	416, 436, 437, 0, 438, 439, 523, 440, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 460, 0, 461, 525, 526, 527, 528,
	0, 468, 0, 462, 463, 529, 464, 530, 0, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 0, 479, 0, 477, 480, 481,
	482, 531, 532, 533, 0, 484, 483, 534, 1300, 0,
	214, 0, 485, 486, 535, 487, 488, 489, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	1661, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 217, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 219, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 0, 484, 483, 534, 214,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 490, 1304,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 0, 235, 236, 237,
	238, 239, 240, 241, 0, 0, 242, 495, 496, 497,
	0, 243, 498, 0, 0, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 0, 259, 260, 0,
	0, 0, 0, 0, 0, 0, 261, 262, 263, 264,
	265, 266, 499, 500, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 272, 273, 0, 274, 0, 275,
	276, 0, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 0, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	0, 294, 0, 0, 0, 295, 296, 0, 297, 505,
	0, 506, 298, 0, 299, 300, 301, 302, 507, 508,
	509, 358, 0, 303, 304, 0, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 0, 0, 311, 510,
	313, 312, 314, 315, 316, 511, 0, 512, 0, 318,
	0, 513, 0, 319, 320, 321, 0, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 514, 0, 332, 333, 0, 0, 334, 335, 0,
	0, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 0, 350, 351, 354,
	355, 353, 0, 352, 0, 219, 0, 356, 0, 515,
	357, 516, 359, 360, 0, 361, 362, 363, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 0, 370,
	0, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 519, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	0, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 0, 435, 415,
	416, 436, 437, 0, 438, 439, 523, 440, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 460, 0, 461, 525, 526, 527, 528,
	0, 468, 0, 462, 463, 529, 464, 530, 0, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 0, 479, 0, 477, 480, 481,
	482, 531, 532, 533, 0, 484, 483, 534, 214, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 2864, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 217, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 219, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 0, 484, 483, 534, 214, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 1304, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 0, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 0, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 214, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 2461, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 0, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 214, 0, 0, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 3003, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 0, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 0, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 0, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 716, 0, 610, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 1929, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 616, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	714, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 218,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 219, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 615, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 0, 609, 0, 610, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	619, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 616, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 217, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 219, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 615, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 607,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 0, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 1214, 1213, 0,
	0, 0, 0, 1211, 0, 0, 0, 0, 0, 0,
	0, 0, 619, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 1105, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	976, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 975, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 977, 513,
	978, 319, 320, 321, 979, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	980, 332, 333, 981, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 0, 0, 984, 356, 3142, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 988, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 1214, 1213, 0, 0,
	0, 0, 1211, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 1105, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 973, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 974, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 976,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 975, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 977, 513, 978,
	319, 320, 321, 979, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 980,
	332, 333, 981, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 982, 350, 351, 354, 355, 353, 983,
	352, 0, 0, 984, 356, 2844, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 985, 370, 986, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 987, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	988, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 610, 484, 483, 534, 0, 0, 0, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 497, 0, 243, 498, 0, 0, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 0, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	616, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 0, 0, 0, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	507, 508, 509, 358, 0, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 218, 308, 310, 317, 0, 0,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	0, 318, 0, 513, 0, 319, 320, 321, 0, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 0, 332, 333, 0, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 0, 350,
	351, 354, 355, 353, 0, 352, 0, 219, 0, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	0, 370, 0, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 0, 1963, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 0,
	435, 415, 416, 436, 437, 0, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 615, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 525, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 0, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 0, 484, 483, 534,
	610, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 619, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 616,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 217, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 219, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 615, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 0, 484, 483, 534, 0,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 1382,
	0, 1214, 1213, 0, 0, 0, 0, 1211, 0, 0,
	0, 0, 0, 0, 619, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 497, 0, 243, 498, 0, 1105, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	263, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 217, 0,
	0, 0, 0, 0, 1381, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	507, 508, 509, 358, 976, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 0, 308, 310, 317, 0, 975,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	0, 318, 977, 513, 978, 319, 320, 321, 979, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 980, 332, 333, 981, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 0, 0, 984, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 1380,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 1379, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 0,
	435, 415, 416, 436, 437, 988, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 525, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 0, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 0, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	1343, 0, 1214, 1213, 0, 0, 0, 0, 1211, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 220,
	221, 222, 223, 224, 0, 225, 0, 0, 0, 0,
	0, 490, 0, 0, 0, 0, 226, 228, 227, 229,
	230, 491, 492, 231, 493, 234, 232, 233, 494, 0,
	235, 236, 237, 238, 239, 240, 241, 0, 0, 242,
	495, 496, 497, 0, 243, 498, 0, 1105, 0, 244,
	245, 246, 247, 248, 249, 0, 0, 251, 252, 253,
	250, 0, 254, 0, 255, 256, 257, 0, 258, 973,
	259, 260, 0, 0, 0, 0, 0, 0, 0, 261,
	262, 263, 264, 265, 266, 499, 500, 0, 267, 0,
	269, 268, 0, 270, 0, 0, 271, 272, 273, 0,
	274, 0, 275, 276, 0, 277, 501, 278, 279, 281,
	283, 280, 284, 285, 286, 287, 502, 503, 0, 217,
	0, 0, 0, 0, 0, 288, 289, 290, 504, 291,
	292, 0, 293, 0, 294, 0, 0, 974, 295, 296,
	0, 297, 505, 0, 506, 298, 0, 299, 300, 301,
	302, 1342, 508, 509, 358, 976, 303, 304, 0, 305,
	306, 307, 309, 0, 0, 0, 308, 310, 317, 0,
	975, 311, 510, 313, 312, 314, 315, 316, 511, 0,
	512, 0, 318, 977, 513, 978, 319, 320, 321, 979,
	322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
	330, 329, 0, 331, 514, 980, 332, 333, 981, 0,
	334, 335, 0, 0, 336, 337, 338, 339, 0, 340,
	341, 343, 345, 342, 344, 346, 348, 349, 347, 982,
	350, 351, 354, 355, 353, 983, 352, 0, 0, 984,
	356, 0, 515, 357, 516, 359, 360, 0, 361, 362,
	363, 0, 0, 365, 366, 367, 0, 0, 368, 369,
	517, 985, 370, 986, 518, 371, 364, 372, 373, 374,
	375, 376, 377, 378, 0, 379, 380, 519, 381, 520,
	382, 383, 0, 384, 0, 385, 386, 387, 388, 389,
	390, 391, 521, 392, 393, 0, 394, 395, 396, 397,
	398, 399, 0, 401, 402, 403, 400, 404, 405, 406,
	407, 0, 408, 987, 409, 410, 411, 412, 522, 413,
	0, 414, 418, 419, 420, 421, 422, 423, 424, 0,
	430, 431, 425, 427, 428, 429, 426, 432, 433, 434,
	0, 435, 415, 416, 436, 437, 988, 438, 439, 523,
	440, 441, 0, 442, 443, 444, 445, 417, 446, 450,
	451, 447, 448, 449, 524, 0, 453, 454, 452, 0,
	455, 456, 457, 458, 459, 282, 460, 0, 461, 525,
	526, 527, 528, 0, 468, 0, 462, 463, 529, 464,
	530, 0, 465, 466, 467, 0, 469, 470, 0, 0,
	471, 472, 473, 475, 476, 474, 478, 0, 479, 0,
	477, 480, 481, 482, 531, 532, 533, 0, 484, 483,
	534, 0, 0, 0, 0, 485, 486, 535, 487, 488,
	489, 1280, 0, 1214, 1213, 0, 0, 0, 0, 1211,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 1105, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 1279, 508, 509, 358, 976, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 975, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 977, 513, 978, 319, 320, 321,
	979, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 980, 332, 333, 981,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 0, 0,
	984, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 988, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 0, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 1209, 0, 1214, 1213, 0, 0, 0, 0,
	1211, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 220, 221, 222, 223, 224, 0, 225, 0, 0,
	0, 0, 0, 490, 0, 0, 0, 0, 226, 228,
	227, 229, 230, 491, 492, 231, 493, 234, 232, 233,
	494, 0, 235, 236, 237, 238, 239, 240, 241, 0,
	0, 242, 495, 496, 497, 0, 243, 498, 0, 1105,
	0, 244, 245, 246, 247, 248, 249, 0, 0, 251,
	252, 253, 250, 0, 254, 0, 255, 256, 257, 0,
	258, 973, 259, 260, 0, 0, 0, 0, 0, 0,
	0, 261, 262, 263, 264, 265, 266, 499, 500, 0,
	267, 0, 269, 268, 0, 270, 0, 0, 271, 272,
	273, 0, 274, 0, 275, 276, 0, 277, 501, 278,
	279, 281, 283, 280, 284, 285, 286, 287, 502, 503,
	0, 217, 0, 0, 0, 0, 0, 288, 289, 290,
	504, 291, 292, 0, 293, 0, 294, 0, 0, 974,
	295, 296, 0, 297, 505, 0, 506, 298, 0, 299,
	300, 301, 302, 1208, 508, 509, 358, 976, 303, 304,
	0, 305, 306, 307, 309, 0, 0, 0, 308, 310,
	317, 0, 975, 311, 510, 313, 312, 314, 315, 316,
	511, 0, 512, 0, 318, 977, 513, 978, 319, 320,
	321, 979, 322, 323, 0, 0, 324, 325, 326, 327,
	328, 0, 330, 329, 0, 331, 514, 980, 332, 333,
	981, 0, 334, 335, 0, 0, 336, 337, 338, 339,
	0, 340, 341, 343, 345, 342, 344, 346, 348, 349,
	347, 982, 350, 351, 354, 355, 353, 983, 352, 0,
	0, 984, 356, 0, 515, 357, 516, 359, 360, 0,
	361, 362, 363, 0, 0, 365, 366, 367, 0, 0,
	368, 369, 517, 985, 370, 986, 518, 371, 364, 372,
	373, 374, 375, 376, 377, 378, 0, 379, 380, 519,
	381, 520, 382, 383, 0, 384, 0, 385, 386, 387,
	388, 389, 390, 391, 521, 392, 393, 0, 394, 395,
	396, 397, 398, 399, 0, 401, 402, 403, 400, 404,
	405, 406, 407, 0, 408, 987, 409, 410, 411, 412,
	522, 413, 0, 414, 418, 419, 420, 421, 422, 423,
	424, 0, 430, 431, 425, 427, 428, 429, 426, 432,
	433, 434, 0, 435, 415, 416, 436, 437, 988, 438,
	439, 523, 440, 441, 0, 442, 443, 444, 445, 417,
	446, 450, 451, 447, 448, 449, 524, 0, 453, 454,
	452, 0, 455, 456, 457, 458, 459, 282, 460, 0,
	461, 525, 526, 527, 528, 0, 468, 0, 462, 463,
	529, 464, 530, 0, 465, 466, 467, 0, 469, 470,
	0, 0, 471, 472, 473, 475, 476, 474, 478, 0,
	479, 0, 477, 480, 481, 482, 531, 532, 533, 0,
	484, 483, 534, 0, 0, 0, 0, 485, 486, 535,
	487, 488, 489, 1214, 1213, 0, 0, 0, 0, 1211,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 1105, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	973, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 974, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 507, 508, 509, 358, 976, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 975, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 977, 513, 978, 319, 320, 321,
	979, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 980, 332, 333, 981,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	982, 350, 351, 354, 355, 353, 983, 352, 0, 0,
	984, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 985, 370, 986, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 987, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 988, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 217, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 219, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 0, 484, 483, 534, 1214, 1213, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 619, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 1105, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 973, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 1750, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 974, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	976, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 975, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 977, 513,
	978, 319, 320, 321, 979, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	980, 332, 333, 981, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 982, 350, 351, 354, 355, 353,
	983, 352, 0, 0, 984, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 985, 370, 986, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 987, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 988, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 1214, 1213, 0, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 1105, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 973, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 974, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 976,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 975, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 977, 513, 978,
	319, 320, 321, 979, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 980,
	332, 333, 981, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 982, 350, 351, 354, 355, 353, 983,
	352, 0, 0, 984, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 985, 370, 986, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 987, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	988, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 1214, 484, 483, 534, 0, 0, 0, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 497, 0, 243, 498, 0, 1105, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 973, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	263, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 217, 0,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 0, 0, 974, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	507, 508, 509, 358, 976, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 0, 308, 310, 317, 0, 975,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	0, 318, 977, 513, 978, 319, 320, 321, 979, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 980, 332, 333, 981, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 982, 350,
	351, 354, 355, 353, 983, 352, 0, 0, 984, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	985, 370, 986, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 987, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 0,
	435, 415, 416, 436, 437, 988, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 525, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 0, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 214, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 2336, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 2333, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 2340,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 2497, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 2339,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 2494,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 2496, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 2493, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 2338, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 2495, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 214, 484, 483, 534, 0, 0, 0, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 497, 2336, 243, 498, 0, 0, 2330, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	2333, 254, 0, 255, 256, 257, 0, 258, 0, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	263, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 2340, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 0, 0,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 2339, 0, 0, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	2329, 508, 509, 358, 0, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 0, 308, 310, 317, 0, 0,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	0, 318, 0, 513, 0, 319, 320, 321, 0, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 0, 332, 333, 0, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 0, 350,
	351, 354, 355, 353, 0, 352, 0, 0, 0, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	0, 370, 0, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 2338, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 0, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 0,
	435, 415, 416, 436, 437, 0, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 525, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 2337, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 0, 484, 483, 534,
	1439, 0, 214, 0, 485, 486, 535, 487, 488, 489,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 220,
	221, 222, 223, 224, 0, 225, 0, 0, 0, 0,
	0, 490, 0, 0, 0, 0, 226, 228, 227, 229,
	230, 491, 492, 231, 493, 234, 232, 233, 494, 0,
	235, 236, 237, 238, 239, 240, 241, 0, 0, 242,
	495, 496, 497, 0, 243, 498, 0, 0, 0, 244,
	245, 246, 247, 248, 249, 0, 0, 251, 252, 253,
	250, 0, 254, 0, 255, 256, 257, 0, 258, 0,
	259, 260, 0, 0, 0, 0, 0, 0, 0, 261,
	262, 263, 264, 265, 266, 499, 500, 0, 267, 0,
	269, 268, 0, 270, 0, 0, 271, 272, 273, 0,
	274, 0, 275, 276, 0, 277, 501, 278, 279, 281,
	283, 280, 284, 285, 286, 287, 502, 503, 0, 217,
	0, 0, 0, 0, 0, 288, 289, 290, 504, 291,
	292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
	0, 297, 505, 0, 506, 298, 0, 299, 300, 301,
	302, 507, 508, 509, 358, 0, 303, 304, 0, 305,
	306, 307, 309, 0, 0, 218, 308, 310, 317, 0,
	0, 311, 510, 313, 312, 314, 315, 316, 511, 0,
	512, 0, 318, 0, 513, 0, 319, 320, 321, 0,
	322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
	330, 329, 0, 331, 514, 0, 332, 333, 0, 0,
	334, 335, 0, 0, 336, 337, 338, 339, 0, 340,
	341, 343, 345, 342, 344, 346, 348, 349, 347, 0,
	350, 351, 354, 355, 353, 0, 352, 0, 219, 0,
	356, 0, 515, 357, 516, 359, 360, 0, 361, 362,
	363, 0, 0, 365, 366, 367, 0, 0, 368, 369,
	517, 0, 370, 0, 518, 371, 364, 372, 373, 374,
	375, 376, 377, 378, 0, 379, 380, 519, 381, 520,
	382, 383, 0, 384, 0, 385, 386, 387, 388, 389,
	390, 391, 521, 392, 393, 0, 394, 395, 396, 397,
	398, 399, 0, 401, 402, 403, 400, 404, 405, 406,
	407, 0, 408, 0, 409, 410, 411, 412, 522, 413,
	0, 414, 418, 419, 420, 421, 422, 423, 424, 0,
	1442, 431, 425, 427, 428, 429, 426, 432, 433, 434,
	0, 435, 415, 416, 436, 437, 0, 438, 439, 523,
	440, 441, 0, 442, 443, 444, 445, 417, 446, 450,
	451, 447, 448, 449, 524, 0, 453, 454, 452, 1440,
	455, 456, 457, 458, 459, 282, 460, 0, 461, 525,
	526, 527, 528, 0, 468, 0, 462, 463, 529, 464,
	530, 0, 465, 466, 467, 0, 469, 470, 0, 0,
	471, 472, 473, 475, 476, 474, 478, 0, 479, 0,
	477, 480, 481, 482, 531, 532, 533, 0, 1441, 483,
	534, 1190, 0, 214, 0, 485, 486, 535, 487, 488,
	489, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	217, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 1192, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 218, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 219,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 1030, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 0, 484,
	483, 534, 1187, 0, 214, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 220, 221, 222, 223, 224, 0, 225, 0, 0,
	0, 0, 0, 490, 0, 0, 0, 0, 226, 228,
	227, 229, 230, 491, 492, 231, 493, 234, 232, 233,
	494, 0, 235, 236, 237, 238, 239, 240, 241, 0,
	0, 242, 495, 496, 497, 0, 243, 498, 0, 0,
	0, 244, 245, 246, 247, 248, 249, 0, 0, 251,
	252, 253, 250, 0, 254, 0, 255, 256, 257, 0,
	258, 0, 259, 260, 0, 0, 0, 0, 0, 0,
	0, 261, 262, 263, 264, 265, 266, 499, 500, 0,
	267, 0, 269, 268, 0, 270, 0, 0, 271, 272,
	273, 0, 274, 0, 275, 276, 0, 277, 501, 278,
	279, 281, 283, 280, 284, 285, 286, 287, 502, 503,
	0, 217, 0, 0, 0, 0, 0, 288, 289, 290,
	504, 291, 292, 0, 293, 0, 294, 0, 0, 0,
	295, 296, 0, 297, 505, 0, 506, 298, 0, 299,
	300, 301, 302, 1189, 508, 509, 358, 0, 303, 304,
	0, 305, 306, 307, 309, 0, 0, 218, 308, 310,
	317, 0, 0, 311, 510, 313, 312, 314, 315, 316,
	511, 0, 512, 0, 318, 0, 513, 0, 319, 320,
	321, 0, 322, 323, 0, 0, 324, 325, 326, 327,
	328, 0, 330, 329, 0, 331, 514, 0, 332, 333,
	0, 0, 334, 335, 0, 0, 336, 337, 338, 339,
	0, 340, 341, 343, 345, 342, 344, 346, 348, 349,
	347, 0, 350, 351, 354, 355, 353, 0, 352, 0,
	219, 0, 356, 0, 515, 357, 516, 359, 360, 0,
	361, 362, 363, 0, 1030, 365, 366, 367, 0, 0,
	368, 369, 517, 0, 370, 0, 518, 371, 364, 372,
	373, 374, 375, 376, 377, 378, 0, 379, 380, 519,
	381, 520, 382, 383, 0, 384, 0, 385, 386, 387,
	388, 389, 390, 391, 521, 392, 393, 0, 394, 395,
	396, 397, 398, 399, 0, 401, 402, 403, 400, 404,
	405, 406, 407, 0, 408, 0, 409, 410, 411, 412,
	522, 413, 0, 414, 418, 419, 420, 421, 422, 423,
	424, 0, 430, 431, 425, 427, 428, 429, 426, 432,
	433, 434, 0, 435, 415, 416, 436, 437, 0, 438,
	439, 523, 440, 441, 0, 442, 443, 444, 445, 417,
	446, 450, 451, 447, 448, 449, 524, 0, 453, 454,
	452, 0, 455, 456, 457, 458, 459, 282, 460, 0,
	461, 525, 526, 527, 528, 0, 468, 0, 462, 463,
	529, 464, 530, 0, 465, 466, 467, 0, 469, 470,
	0, 0, 471, 472, 473, 475, 476, 474, 478, 0,
	479, 0, 477, 480, 481, 482, 531, 532, 533, 0,
	484, 483, 534, 1093, 0, 214, 0, 485, 486, 535,
	487, 488, 489, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 1095, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 219, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 1030, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 564, 0, 214, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 563, 224, 553, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 556, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 0, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 557, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 558, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 552, 0, 214, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 553,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 556, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 0, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 557, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 0, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 558, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 214, 484, 483, 534, 0, 0, 0, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 220,
	221, 222, 223, 224, 0, 225, 0, 0, 0, 0,
	0, 490, 0, 0, 0, 0, 226, 228, 227, 229,
	230, 491, 492, 231, 493, 234, 232, 233, 494, 0,
	235, 236, 237, 238, 239, 240, 241, 0, 0, 242,
	495, 496, 497, 0, 243, 498, 0, 0, 0, 244,
	245, 246, 247, 248, 249, 0, 0, 251, 252, 253,
	250, 0, 254, 0, 255, 256, 257, 0, 258, 0,
	259, 260, 0, 0, 0, 0, 0, 0, 0, 261,
	262, 263, 264, 265, 266, 499, 500, 0, 267, 0,
	269, 268, 0, 270, 0, 0, 271, 272, 273, 0,
	274, 0, 275, 276, 0, 277, 501, 278, 279, 281,
	283, 280, 284, 285, 286, 287, 502, 503, 0, 217,
	0, 0, 0, 0, 0, 288, 289, 290, 504, 291,
	292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
	0, 297, 505, 0, 506, 298, 0, 299, 300, 301,
	302, 507, 508, 509, 358, 0, 303, 304, 0, 305,
	306, 307, 309, 0, 0, 218, 308, 310, 317, 0,
	0, 311, 510, 313, 312, 314, 315, 316, 511, 0,
	512, 0, 318, 0, 513, 0, 319, 320, 321, 0,
	322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
	330, 329, 0, 331, 514, 0, 332, 333, 0, 0,
	334, 335, 0, 0, 336, 337, 338, 339, 0, 340,
	341, 343, 345, 342, 344, 346, 348, 349, 347, 0,
	350, 351, 354, 355, 353, 2826, 352, 0, 219, 0,
	356, 0, 515, 357, 516, 359, 360, 0, 361, 362,
	363, 0, 0, 365, 366, 367, 0, 0, 368, 369,
	517, 0, 370, 0, 518, 371, 364, 372, 373, 374,
	375, 376, 377, 378, 0, 379, 380, 519, 381, 520,
	382, 383, 0, 384, 0, 385, 386, 387, 388, 389,
	390, 391, 521, 392, 393, 0, 394, 395, 396, 397,
	398, 399, 0, 401, 402, 403, 400, 404, 405, 406,
	407, 0, 408, 0, 409, 410, 411, 412, 522, 413,
	0, 414, 418, 419, 420, 421, 422, 423, 424, 0,
	430, 431, 425, 427, 428, 429, 426, 432, 433, 434,
	0, 435, 415, 416, 436, 437, 0, 438, 439, 523,
	440, 441, 0, 442, 443, 444, 445, 417, 446, 450,
	451, 447, 448, 449, 524, 0, 453, 454, 452, 0,
	455, 456, 457, 458, 459, 282, 460, 0, 461, 525,
	526, 527, 528, 0, 468, 0, 462, 463, 529, 464,
	530, 0, 465, 466, 467, 0, 469, 470, 0, 0,
	471, 472, 473, 475, 476, 474, 478, 0, 479, 0,
	477, 480, 481, 482, 531, 532, 533, 214, 484, 483,
	534, 0, 0, 0, 0, 485, 486, 535, 487, 488,
	489, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	218, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 219, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 1030, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 2433, 0, 214, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 217, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 2432, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 219, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 0, 484, 483, 534, 1939, 0, 214,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 490, 0,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 0, 235, 236, 237,
	238, 239, 240, 241, 0, 0, 242, 495, 496, 497,
	0, 243, 498, 0, 0, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 0, 259, 260, 0,
	0, 0, 0, 0, 0, 0, 261, 262, 263, 264,
	265, 266, 499, 500, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 272, 273, 0, 274, 0, 275,
	276, 0, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 0, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	0, 294, 0, 0, 0, 295, 296, 0, 297, 505,
	0, 506, 298, 0, 299, 300, 301, 302, 507, 508,
	509, 358, 0, 303, 304, 0, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 0, 0, 311, 510,
	313, 312, 314, 315, 316, 511, 0, 512, 0, 318,
	0, 513, 0, 319, 320, 321, 0, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 514, 0, 332, 333, 0, 0, 334, 335, 0,
	0, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 0, 350, 351, 354,
	355, 353, 0, 352, 0, 219, 0, 356, 0, 515,
	357, 516, 359, 360, 0, 361, 362, 363, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 0, 370,
	0, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 519, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	0, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 0, 435, 415,
	416, 436, 437, 0, 438, 439, 523, 440, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 460, 0, 461, 525, 526, 527, 528,
	0, 468, 0, 462, 463, 529, 464, 530, 0, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 0, 479, 0, 477, 480, 481,
	482, 531, 532, 533, 214, 484, 483, 534, 0, 0,
	0, 0, 485, 486, 535, 487, 488, 489, 0, 0,
	0, 220, 221, 222, 223, 224, 0, 225, 0, 0,
	0, 0, 0, 490, 0, 0, 0, 0, 226, 228,
	227, 229, 230, 491, 492, 231, 493, 234, 232, 233,
	494, 0, 235, 236, 237, 238, 239, 240, 241, 0,
	0, 242, 495, 496, 497, 0, 243, 498, 0, 0,
	0, 244, 245, 246, 247, 248, 249, 0, 0, 251,
	252, 253, 250, 0, 254, 0, 255, 256, 257, 0,
	258, 0, 259, 260, 0, 0, 0, 0, 0, 0,
	0, 261, 262, 263, 264, 265, 266, 499, 500, 0,
	267, 0, 269, 268, 0, 270, 0, 0, 271, 272,
	273, 0, 274, 0, 275, 276, 0, 277, 501, 278,
	279, 281, 283, 280, 284, 285, 286, 287, 502, 503,
	0, 217, 0, 0, 0, 0, 0, 288, 289, 290,
	504, 291, 292, 0, 293, 0, 294, 0, 0, 0,
	295, 296, 0, 297, 505, 0, 506, 298, 0, 299,
	300, 301, 302, 507, 508, 509, 358, 0, 303, 304,
	0, 305, 306, 307, 309, 0, 0, 218, 308, 310,
	317, 0, 0, 311, 510, 313, 312, 314, 315, 316,
	511, 0, 512, 0, 318, 0, 513, 0, 319, 320,
	321, 0, 322, 323, 0, 0, 324, 325, 326, 327,
	328, 0, 330, 329, 0, 331, 514, 0, 332, 333,
	0, 0, 334, 335, 0, 0, 336, 337, 338, 339,
	0, 340, 341, 343, 345, 342, 344, 346, 348, 349,
	347, 0, 350, 351, 354, 355, 353, 0, 352, 0,
	219, 0, 356, 0, 515, 357, 516, 359, 360, 0,
	361, 362, 363, 0, 0, 365, 366, 367, 0, 0,
	368, 369, 517, 0, 370, 0, 518, 371, 364, 372,
	373, 374, 375, 376, 377, 378, 0, 379, 380, 519,
	381, 520, 382, 383, 0, 384, 0, 385, 386, 387,
	388, 389, 390, 391, 521, 392, 393, 0, 394, 395,
	396, 397, 398, 399, 0, 401, 402, 403, 400, 404,
	405, 406, 407, 0, 408, 0, 409, 410, 411, 412,
	522, 413, 0, 414, 418, 419, 420, 421, 422, 423,
	424, 0, 430, 431, 425, 427, 428, 429, 426, 432,
	433, 434, 0, 435, 415, 416, 436, 437, 0, 438,
	439, 523, 440, 441, 0, 442, 443, 444, 445, 417,
	446, 450, 451, 447, 448, 449, 524, 0, 453, 454,
	452, 1870, 455, 456, 457, 458, 459, 282, 460, 0,
	461, 525, 526, 527, 528, 0, 468, 0, 462, 463,
	529, 464, 530, 0, 465, 466, 467, 0, 469, 470,
	0, 0, 471, 472, 473, 475, 476, 474, 478, 0,
	479, 0, 477, 480, 481, 482, 531, 532, 533, 0,
	484, 483, 534, 1875, 0, 214, 0, 485, 486, 535,
	487, 488, 489, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 1874, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 219, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 1863, 0, 214, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 217, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 1865, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 218,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 219, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 1334, 0, 214, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 217, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 1333, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	218, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 219, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 1331, 0, 214, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 217, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 1330, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 218, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 219, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 0, 484, 483, 534, 1327, 0, 214,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 220, 221, 222, 223,
	224, 0, 225, 0, 0, 0, 0, 0, 490, 0,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 0, 235, 236, 237,
	238, 239, 240, 241, 0, 0, 242, 495, 496, 497,
	0, 243, 498, 0, 0, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 0, 259, 260, 0,
	0, 0, 0, 0, 0, 0, 261, 262, 263, 264,
	265, 266, 499, 500, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 272, 273, 0, 274, 0, 275,
	276, 0, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 0, 217, 0, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	0, 294, 0, 0, 0, 295, 296, 0, 297, 505,
	0, 506, 298, 0, 299, 300, 301, 302, 1326, 508,
	509, 358, 0, 303, 304, 0, 305, 306, 307, 309,
	0, 0, 218, 308, 310, 317, 0, 0, 311, 510,
	313, 312, 314, 315, 316, 511, 0, 512, 0, 318,
	0, 513, 0, 319, 320, 321, 0, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 514, 0, 332, 333, 0, 0, 334, 335, 0,
	0, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 0, 350, 351, 354,
	355, 353, 0, 352, 0, 219, 0, 356, 0, 515,
	357, 516, 359, 360, 0, 361, 362, 363, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 0, 370,
	0, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 519, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	0, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 0, 435, 415,
	416, 436, 437, 0, 438, 439, 523, 440, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 460, 0, 461, 525, 526, 527, 528,
	0, 468, 0, 462, 463, 529, 464, 530, 0, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 0, 479, 0, 477, 480, 481,
	482, 531, 532, 533, 0, 484, 483, 534, 1201, 0,
	214, 0, 485, 486, 535, 487, 488, 489, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 217, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 1203,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 219, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 214, 484, 483, 534, 0,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 219, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	214, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 556, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 0, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 557, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 0, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 0, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 558, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 214, 484, 483, 534, 0,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 1970, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 219, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	214, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 1968,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 217, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 219, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 214, 484, 483, 534, 0,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 1966, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 217, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 218, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 219, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	214, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 217, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 1913,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 218, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 219, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 0, 484, 483, 534, 707,
	0, 214, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 228, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 497, 0, 243, 498, 0, 0, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 0, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	263, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 0, 0,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 0, 0, 0, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	507, 508, 509, 358, 0, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 0, 308, 310, 317, 0, 0,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	706, 318, 0, 513, 0, 319, 320, 321, 0, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 0, 332, 333, 0, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 347, 0, 350,
	351, 354, 355, 353, 0, 352, 0, 0, 0, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	0, 370, 0, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 0, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 420, 421, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 433, 434, 0,
	435, 415, 416, 436, 437, 0, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 705, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 525, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 0, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 214, 484, 483, 534,
	0, 0, 0, 0, 485, 486, 535, 487, 488, 489,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 2497, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 3340, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 543, 0, 214, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 542,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 0, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 0, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 541, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 214, 3349, 0, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 0, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 214, 2484, 0, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 0, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 0, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 0, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	214, 484, 483, 534, 0, 0, 0, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 3130, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 0, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 0, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 0, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 214, 484, 483, 534, 0,
	0, 0, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 2261, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 0, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 0, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 0, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 214, 2484, 0, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 220, 221, 222, 223, 224, 0, 225, 0, 0,
	0, 0, 0, 490, 0, 0, 0, 0, 226, 228,
	227, 229, 230, 491, 492, 231, 493, 234, 232, 233,
	494, 0, 235, 236, 237, 238, 239, 240, 241, 0,
	0, 242, 495, 496, 497, 0, 243, 498, 0, 0,
	0, 244, 245, 246, 247, 248, 249, 0, 0, 251,
	252, 253, 250, 0, 254, 0, 255, 256, 257, 0,
	258, 0, 259, 260, 0, 0, 0, 0, 0, 0,
	0, 261, 262, 263, 264, 265, 266, 499, 500, 0,
	267, 0, 269, 268, 0, 270, 0, 0, 271, 272,
	273, 0, 274, 0, 275, 276, 0, 277, 501, 278,
	279, 281, 283, 280, 284, 285, 286, 287, 502, 503,
	0, 0, 0, 0, 0, 0, 0, 288, 289, 290,
	504, 291, 292, 0, 293, 0, 294, 0, 0, 0,
	295, 296, 0, 297, 505, 0, 506, 298, 0, 299,
	300, 301, 302, 507, 508, 509, 358, 0, 303, 304,
	0, 305, 306, 307, 309, 0, 0, 0, 308, 310,
	317, 0, 0, 311, 510, 313, 312, 314, 315, 316,
	511, 0, 512, 0, 318, 0, 513, 0, 319, 320,
	321, 0, 322, 323, 0, 0, 324, 325, 326, 327,
	328, 0, 330, 329, 0, 331, 514, 0, 332, 333,
	0, 0, 334, 335, 0, 0, 336, 337, 338, 339,
	0, 340, 341, 343, 345, 342, 344, 346, 348, 349,
	347, 0, 350, 351, 354, 355, 353, 0, 352, 0,
	0, 0, 356, 0, 515, 357, 516, 359, 360, 0,
	361, 362, 363, 0, 0, 365, 366, 2481, 0, 0,
	368, 369, 517, 0, 370, 0, 518, 371, 364, 372,
	373, 374, 375, 376, 377, 378, 0, 379, 380, 519,
	381, 520, 382, 383, 0, 384, 0, 385, 386, 387,
	388, 389, 390, 391, 521, 392, 393, 0, 394, 395,
	396, 397, 398, 399, 0, 401, 402, 403, 400, 404,
	405, 406, 407, 0, 408, 0, 409, 410, 411, 412,
	522, 413, 0, 414, 418, 419, 420, 421, 422, 423,
	424, 0, 430, 431, 425, 427, 428, 429, 426, 432,
	433, 434, 0, 435, 415, 416, 436, 437, 0, 438,
	439, 523, 440, 441, 0, 442, 443, 444, 445, 417,
	446, 450, 451, 447, 448, 449, 524, 0, 453, 454,
	452, 0, 455, 456, 457, 458, 459, 282, 460, 0,
	461, 525, 526, 527, 528, 0, 468, 0, 462, 463,
	529, 464, 530, 0, 465, 466, 467, 0, 469, 470,
	0, 0, 471, 472, 473, 475, 476, 474, 478, 0,
	479, 0, 477, 480, 481, 482, 531, 532, 533, 214,
	484, 483, 534, 0, 0, 0, 0, 485, 486, 535,
	487, 488, 489, 0, 0, 0, 220, 221, 222, 223,
	224, 1947, 225, 0, 0, 0, 0, 0, 490, 0,
	0, 0, 0, 226, 228, 227, 229, 230, 491, 492,
	231, 493, 234, 232, 233, 494, 0, 235, 236, 237,
	238, 239, 240, 241, 0, 0, 242, 495, 496, 497,
	0, 243, 498, 0, 0, 0, 244, 245, 246, 247,
	248, 249, 0, 0, 251, 252, 253, 250, 0, 254,
	0, 255, 256, 257, 0, 258, 0, 259, 260, 0,
	0, 0, 0, 0, 0, 0, 261, 262, 263, 264,
	265, 266, 499, 500, 0, 267, 0, 269, 268, 0,
	270, 0, 0, 271, 272, 273, 0, 274, 0, 275,
	276, 0, 277, 501, 278, 279, 281, 283, 280, 284,
	285, 286, 287, 502, 503, 0, 0, 0, 0, 0,
	0, 0, 288, 289, 290, 504, 291, 292, 0, 293,
	0, 294, 0, 0, 0, 295, 296, 0, 297, 505,
	0, 506, 298, 0, 299, 300, 301, 302, 507, 508,
	509, 358, 0, 303, 304, 0, 305, 306, 307, 309,
	0, 0, 0, 308, 310, 317, 0, 0, 311, 510,
	313, 312, 314, 315, 316, 511, 0, 512, 0, 318,
	0, 513, 0, 319, 320, 321, 0, 322, 323, 0,
	0, 324, 325, 326, 327, 328, 0, 330, 329, 0,
	331, 514, 0, 332, 333, 0, 0, 334, 335, 0,
	0, 336, 337, 338, 339, 0, 340, 341, 343, 345,
	342, 344, 346, 348, 349, 347, 0, 350, 351, 354,
	355, 353, 0, 352, 0, 0, 0, 356, 0, 515,
	357, 516, 359, 360, 0, 361, 362, 363, 0, 0,
	365, 366, 367, 0, 0, 368, 369, 517, 0, 370,
	0, 518, 371, 364, 372, 373, 374, 375, 376, 377,
	378, 0, 379, 380, 519, 381, 520, 382, 383, 0,
	384, 0, 385, 386, 387, 388, 389, 390, 391, 521,
	392, 393, 0, 394, 395, 396, 397, 398, 399, 0,
	401, 402, 403, 400, 404, 405, 406, 407, 0, 408,
	0, 409, 410, 411, 412, 522, 413, 0, 414, 418,
	419, 420, 421, 422, 423, 424, 0, 430, 431, 425,
	427, 428, 429, 426, 432, 433, 434, 0, 435, 415,
	416, 436, 437, 0, 438, 439, 523, 440, 441, 0,
	442, 443, 444, 445, 417, 446, 450, 451, 447, 448,
	449, 524, 0, 453, 454, 452, 0, 455, 456, 457,
	458, 459, 282, 460, 0, 461, 525, 526, 527, 528,
	0, 468, 0, 462, 463, 529, 464, 530, 0, 465,
	466, 467, 0, 469, 470, 0, 0, 471, 472, 473,
	475, 476, 474, 478, 0, 479, 0, 477, 480, 481,
	482, 531, 532, 533, 0, 484, 483, 534, 1937, 0,
	214, 0, 485, 486, 535, 487, 488, 489, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 220, 221, 222,
	223, 224, 0, 225, 0, 0, 0, 0, 0, 490,
	0, 0, 0, 0, 226, 228, 227, 229, 230, 491,
	492, 231, 493, 234, 232, 233, 494, 0, 235, 236,
	237, 238, 239, 240, 241, 0, 0, 242, 495, 496,
	497, 0, 243, 498, 0, 0, 0, 244, 245, 246,
	247, 248, 249, 0, 0, 251, 252, 253, 250, 0,
	254, 0, 255, 256, 257, 0, 258, 0, 259, 260,
	0, 0, 0, 0, 0, 0, 0, 261, 262, 263,
	264, 265, 266, 499, 500, 0, 267, 0, 269, 268,
	0, 270, 0, 0, 271, 272, 273, 0, 274, 0,
	275, 276, 0, 277, 501, 278, 279, 281, 283, 280,
	284, 285, 286, 287, 502, 503, 0, 0, 0, 0,
	0, 0, 0, 288, 289, 290, 504, 291, 292, 0,
	293, 0, 294, 0, 0, 0, 295, 296, 0, 297,
	505, 0, 506, 298, 0, 299, 300, 301, 302, 507,
	508, 509, 358, 0, 303, 304, 0, 305, 306, 307,
	309, 0, 0, 0, 308, 310, 317, 0, 0, 311,
	510, 313, 312, 314, 315, 316, 511, 0, 512, 0,
	318, 0, 513, 0, 319, 320, 321, 0, 322, 323,
	0, 0, 324, 325, 326, 327, 328, 0, 330, 329,
	0, 331, 514, 0, 332, 333, 0, 0, 334, 335,
	0, 0, 336, 337, 338, 339, 0, 340, 341, 343,
	345, 342, 344, 346, 348, 349, 347, 0, 350, 351,
	354, 355, 353, 0, 352, 0, 0, 0, 356, 0,
	515, 357, 516, 359, 360, 0, 361, 362, 363, 0,
	0, 365, 366, 367, 0, 0, 368, 369, 517, 0,
	370, 0, 518, 371, 364, 372, 373, 374, 375, 376,
	377, 378, 0, 379, 380, 519, 381, 520, 382, 383,
	0, 384, 0, 385, 386, 387, 388, 389, 390, 391,
	521, 392, 393, 0, 394, 395, 396, 397, 398, 399,
	0, 401, 402, 403, 400, 404, 405, 406, 407, 0,
	408, 0, 409, 410, 411, 412, 522, 413, 0, 414,
	418, 419, 420, 421, 422, 423, 424, 0, 430, 431,
	425, 427, 428, 429, 426, 432, 433, 434, 0, 435,
	415, 416, 436, 437, 0, 438, 439, 523, 440, 441,
	0, 442, 443, 444, 445, 417, 446, 450, 451, 447,
	448, 449, 524, 0, 453, 454, 452, 0, 455, 456,
	457, 458, 459, 282, 460, 0, 461, 525, 526, 527,
	528, 0, 468, 0, 462, 463, 529, 464, 530, 0,
	465, 466, 467, 0, 469, 470, 0, 0, 471, 472,
	473, 475, 476, 474, 478, 0, 479, 0, 477, 480,
	481, 482, 531, 532, 533, 0, 484, 483, 534, 584,
	0, 214, 0, 485, 486, 535, 487, 488, 489, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 220, 221,
	222, 223, 224, 0, 225, 0, 0, 0, 0, 0,
	490, 0, 0, 0, 0, 226, 1067, 227, 229, 230,
	491, 492, 231, 493, 234, 232, 233, 494, 0, 235,
	236, 237, 238, 239, 240, 241, 0, 0, 242, 495,
	496, 1065, 0, 243, 498, 0, 0, 0, 244, 245,
	246, 247, 248, 249, 0, 0, 251, 252, 253, 250,
	0, 254, 0, 255, 256, 257, 0, 258, 0, 259,
	260, 0, 0, 0, 0, 0, 0, 0, 261, 262,
	263, 264, 265, 266, 499, 500, 0, 267, 0, 269,
	268, 0, 270, 0, 0, 271, 272, 273, 0, 274,
	0, 275, 276, 0, 277, 501, 278, 279, 281, 283,
	280, 284, 285, 286, 287, 502, 503, 0, 0, 0,
	0, 0, 0, 0, 288, 289, 290, 504, 291, 292,
	0, 293, 0, 294, 0, 0, 0, 295, 296, 0,
	297, 505, 0, 506, 298, 0, 299, 300, 301, 302,
	507, 508, 509, 358, 0, 303, 304, 0, 305, 306,
	307, 309, 0, 0, 0, 308, 310, 317, 0, 0,
	311, 510, 313, 312, 314, 315, 316, 511, 0, 512,
	0, 318, 0, 513, 0, 319, 320, 321, 0, 322,
	323, 0, 0, 324, 325, 326, 327, 328, 0, 330,
	329, 0, 331, 514, 0, 332, 333, 0, 0, 334,
	335, 0, 0, 336, 337, 338, 339, 0, 340, 341,
	343, 345, 342, 344, 346, 348, 349, 585, 0, 350,
	351, 354, 355, 353, 0, 352, 0, 0, 0, 356,
	0, 515, 357, 516, 359, 360, 0, 361, 362, 363,
	0, 0, 365, 366, 367, 0, 0, 368, 369, 517,
	0, 370, 0, 518, 371, 364, 372, 373, 374, 375,
	376, 377, 378, 0, 379, 380, 519, 381, 520, 382,
	383, 0, 384, 0, 385, 386, 387, 388, 389, 390,
	391, 521, 392, 393, 0, 394, 395, 396, 397, 398,
	399, 0, 401, 402, 403, 400, 404, 405, 406, 407,
	0, 408, 0, 409, 410, 411, 412, 522, 413, 0,
	414, 418, 419, 581, 421, 422, 423, 424, 0, 430,
	431, 425, 427, 428, 429, 426, 432, 1068, 434, 0,
	435, 415, 416, 436, 437, 0, 438, 439, 523, 440,
	441, 0, 442, 443, 444, 445, 417, 446, 450, 451,
	447, 448, 449, 524, 0, 453, 454, 452, 0, 455,
	456, 457, 458, 459, 282, 460, 0, 461, 580, 526,
	527, 528, 0, 468, 0, 462, 463, 529, 464, 530,
	0, 465, 466, 467, 0, 469, 470, 0, 0, 471,
	472, 473, 475, 476, 474, 478, 0, 479, 0, 477,
	480, 481, 482, 531, 532, 533, 0, 484, 483, 534,
	584, 0, 214, 0, 485, 486, 535, 487, 488, 489,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 220,
	221, 222, 223, 224, 0, 225, 0, 0, 0, 0,
	0, 490, 0, 0, 0, 0, 226, 228, 227, 229,
	230, 491, 492, 231, 493, 234, 232, 233, 494, 0,
	235, 236, 237, 238, 239, 240, 241, 0, 0, 242,
	495, 496, 497, 0, 574, 498, 0, 0, 0, 244,
	245, 246, 247, 248, 249, 0, 0, 251, 252, 253,
	250, 0, 254, 0, 255, 256, 257, 0, 258, 0,
	259, 260, 0, 0, 0, 0, 0, 0, 0, 261,
	262, 263, 264, 265, 266, 499, 500, 0, 267, 0,
	269, 268, 0, 270, 0, 0, 271, 272, 273, 0,
	274, 0, 275, 276, 0, 277, 501, 278, 279, 281,
	283, 280, 284, 285, 286, 287, 502, 503, 0, 0,
	0, 0, 0, 0, 0, 288, 289, 290, 504, 291,
	292, 0, 293, 0, 294, 0, 0, 0, 295, 296,
	0, 297, 505, 0, 506, 298, 0, 299, 300, 301,
	302, 507, 508, 509, 358, 0, 303, 304, 0, 305,
	306, 307, 309, 0, 0, 0, 308, 310, 317, 0,
	0, 311, 510, 313, 312, 314, 315, 316, 511, 0,
	512, 0, 318, 0, 513, 0, 319, 320, 321, 0,
	322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
	330, 329, 0, 331, 514, 0, 332, 333, 0, 0,
	334, 335, 0, 0, 336, 337, 338, 339, 0, 340,
	341, 343, 345, 342, 344, 346, 348, 349, 585, 0,
	350, 351, 354, 355, 353, 0, 352, 0, 0, 0,
	356, 0, 515, 357, 516, 359, 360, 0, 361, 362,
	363, 0, 0, 365, 366, 367, 0, 0, 368, 369,
	517, 0, 370, 0, 518, 371, 364, 372, 373, 374,
	375, 376, 377, 378, 0, 379, 380, 519, 381, 520,
	382, 383, 0, 384, 0, 385, 386, 387, 388, 389,
	390, 391, 521, 392, 393, 0, 394, 395, 396, 397,
	398, 399, 0, 401, 402, 403, 400, 404, 405, 406,
	407, 0, 408, 0, 409, 410, 411, 412, 522, 413,
	0, 414, 418, 419, 581, 421, 422, 423, 424, 0,
	430, 431, 425, 427, 428, 429, 426, 432, 1354, 434,
	0, 435, 415, 416, 436, 437, 0, 438, 439, 523,
	440, 441, 0, 442, 443, 444, 445, 417, 446, 450,
	451, 447, 448, 449, 524, 0, 453, 454, 452, 0,
	455, 456, 457, 458, 459, 282, 460, 0, 461, 580,
	526, 527, 528, 0, 468, 0, 462, 463, 529, 464,
	530, 0, 465, 466, 467, 0, 469, 470, 0, 0,
	471, 472, 473, 475, 476, 474, 478, 0, 479, 0,
	477, 480, 481, 482, 531, 532, 533, 0, 484, 483,
	534, 1340, 0, 214, 0, 485, 486, 535, 487, 488,
	489, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 1339, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 0, 484,
	483, 534, 1288, 0, 214, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 220, 221, 222, 223, 224, 0, 225, 0, 0,
	0, 0, 0, 490, 0, 0, 0, 0, 226, 228,
	227, 229, 230, 491, 492, 231, 493, 234, 232, 233,
	494, 0, 235, 236, 237, 238, 239, 240, 241, 0,
	0, 242, 495, 496, 497, 0, 243, 498, 0, 0,
	0, 244, 245, 246, 247, 248, 249, 0, 0, 251,
	252, 253, 250, 0, 254, 0, 255, 256, 257, 0,
	258, 0, 259, 260, 0, 0, 0, 0, 0, 0,
	0, 261, 262, 263, 264, 265, 266, 499, 500, 0,
	267, 0, 269, 268, 0, 270, 0, 0, 271, 272,
	273, 0, 274, 0, 275, 276, 0, 277, 501, 278,
	279, 281, 283, 280, 284, 285, 286, 287, 502, 503,
	0, 0, 0, 0, 0, 0, 0, 288, 289, 290,
	504, 291, 292, 0, 293, 0, 294, 0, 0, 0,
	295, 296, 0, 297, 505, 0, 506, 298, 0, 299,
	300, 301, 302, 1287, 508, 509, 358, 0, 303, 304,
	0, 305, 306, 307, 309, 0, 0, 0, 308, 310,
	317, 0, 0, 311, 510, 313, 312, 314, 315, 316,
	511, 0, 512, 0, 318, 0, 513, 0, 319, 320,
	321, 0, 322, 323, 0, 0, 324, 325, 326, 327,
	328, 0, 330, 329, 0, 331, 514, 0, 332, 333,
	0, 0, 334, 335, 0, 0, 336, 337, 338, 339,
	0, 340, 341, 343, 345, 342, 344, 346, 348, 349,
	347, 0, 350, 351, 354, 355, 353, 0, 352, 0,
	0, 0, 356, 0, 515, 357, 516, 359, 360, 0,
	361, 362, 363, 0, 0, 365, 366, 367, 0, 0,
	368, 369, 517, 0, 370, 0, 518, 371, 364, 372,
	373, 374, 375, 376, 377, 378, 0, 379, 380, 519,
	381, 520, 382, 383, 0, 384, 0, 385, 386, 387,
	388, 389, 390, 391, 521, 392, 393, 0, 394, 395,
	396, 397, 398, 399, 0, 401, 402, 403, 400, 404,
	405, 406, 407, 0, 408, 0, 409, 410, 411, 412,
	522, 413, 0, 414, 418, 419, 420, 421, 422, 423,
	424, 0, 430, 431, 425, 427, 428, 429, 426, 432,
	433, 434, 0, 435, 415, 416, 436, 437, 0, 438,
	439, 523, 440, 441, 0, 442, 443, 444, 445, 417,
	446, 450, 451, 447, 448, 449, 524, 0, 453, 454,
	452, 0, 455, 456, 457, 458, 459, 282, 460, 0,
	461, 525, 526, 527, 528, 0, 468, 0, 462, 463,
	529, 464, 530, 0, 465, 466, 467, 0, 469, 470,
	0, 0, 471, 472, 473, 475, 476, 474, 478, 0,
	479, 0, 477, 480, 481, 482, 531, 532, 533, 0,
	484, 483, 534, 1273, 0, 214, 0, 485, 486, 535,
	487, 488, 489, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 0, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 1272, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 0, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 0, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 418, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 1268, 0, 214, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 0, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 1195, 0, 214, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 0, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 0, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 584, 0, 214, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 1067, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 1065, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 585, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	581, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 1068, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 580, 526, 527, 528, 0,
	468, 0, 462, 1066, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 1049, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 507, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 0, 484,
	483, 534, 584, 0, 214, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 220, 221, 222, 223, 224, 0, 225, 0, 0,
	0, 0, 0, 490, 0, 0, 0, 0, 226, 228,
	227, 229, 230, 491, 492, 231, 493, 234, 232, 233,
	494, 0, 235, 236, 237, 238, 239, 240, 241, 0,
	0, 242, 495, 496, 497, 0, 574, 498, 0, 0,
	0, 244, 245, 246, 247, 248, 249, 0, 0, 251,
	252, 253, 250, 0, 572, 0, 255, 256, 257, 0,
	258, 0, 259, 260, 0, 0, 0, 0, 0, 0,
	0, 261, 262, 263, 264, 265, 266, 499, 500, 0,
	267, 0, 269, 268, 0, 270, 0, 0, 271, 272,
	273, 0, 274, 0, 275, 276, 0, 277, 501, 278,
	279, 281, 283, 280, 284, 285, 286, 287, 502, 503,
	0, 0, 0, 0, 0, 0, 0, 288, 289, 290,
	504, 291, 292, 0, 293, 0, 294, 0, 0, 0,
	295, 296, 0, 297, 505, 0, 506, 298, 0, 299,
	300, 301, 302, 507, 508, 509, 358, 0, 303, 304,
	0, 305, 306, 307, 309, 0, 0, 0, 308, 310,
	317, 0, 0, 311, 510, 313, 312, 314, 315, 316,
	511, 0, 512, 0, 318, 0, 513, 0, 319, 320,
	321, 0, 322, 323, 0, 0, 324, 325, 326, 327,
	328, 0, 330, 329, 0, 331, 514, 0, 332, 333,
	0, 0, 334, 573, 0, 0, 336, 337, 338, 339,
	0, 340, 341, 343, 345, 342, 344, 346, 348, 349,
	585, 0, 350, 351, 354, 355, 353, 0, 352, 0,
	0, 0, 356, 0, 515, 357, 516, 359, 360, 0,
	361, 362, 363, 0, 0, 365, 366, 367, 0, 0,
	368, 369, 517, 0, 370, 0, 518, 371, 364, 372,
	373, 374, 375, 376, 377, 378, 0, 379, 380, 519,
	381, 520, 382, 383, 0, 384, 0, 385, 386, 387,
	388, 389, 390, 391, 521, 392, 393, 0, 394, 395,
	396, 397, 398, 399, 0, 401, 402, 403, 400, 404,
	405, 406, 407, 0, 408, 0, 409, 410, 411, 412,
	575, 413, 0, 414, 418, 419, 581, 421, 422, 423,
	424, 0, 430, 431, 425, 427, 428, 429, 426, 432,
	576, 434, 0, 435, 415, 416, 436, 437, 0, 438,
	439, 523, 440, 441, 0, 442, 443, 444, 445, 417,
	446, 450, 451, 447, 448, 449, 524, 0, 453, 454,
	452, 0, 455, 456, 457, 458, 459, 282, 460, 0,
	461, 580, 526, 527, 528, 0, 468, 0, 462, 578,
	529, 464, 530, 0, 465, 466, 467, 0, 469, 470,
	0, 0, 471, 472, 473, 475, 476, 474, 478, 0,
	479, 0, 477, 480, 481, 482, 531, 532, 533, 0,
	484, 483, 534, 568, 0, 214, 0, 485, 486, 535,
	487, 488, 489, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 220, 221, 222, 223, 224, 0, 225, 0,
	0, 0, 0, 0, 490, 0, 0, 0, 0, 226,
	228, 227, 229, 230, 491, 492, 231, 493, 234, 232,
	233, 494, 0, 235, 236, 237, 238, 239, 240, 241,
	0, 0, 242, 495, 496, 497, 0, 243, 498, 0,
	0, 0, 244, 245, 246, 247, 248, 249, 0, 0,
	251, 252, 253, 250, 0, 254, 0, 255, 256, 257,
	0, 258, 0, 259, 260, 0, 0, 0, 0, 0,
	0, 0, 261, 262, 263, 264, 265, 266, 499, 500,
	0, 267, 0, 269, 268, 0, 270, 0, 0, 271,
	272, 273, 0, 274, 0, 275, 276, 0, 277, 501,
	278, 279, 281, 283, 280, 284, 285, 286, 287, 502,
	503, 0, 0, 0, 0, 0, 0, 0, 288, 289,
	290, 504, 291, 292, 0, 293, 0, 294, 0, 0,
	0, 295, 296, 0, 297, 505, 0, 506, 298, 0,
	299, 300, 301, 302, 507, 508, 509, 358, 0, 303,
	304, 0, 305, 306, 307, 309, 0, 0, 0, 308,
	310, 317, 0, 0, 311, 510, 313, 312, 314, 315,
	316, 511, 0, 512, 0, 318, 0, 513, 0, 319,
	320, 321, 0, 322, 323, 0, 0, 324, 325, 326,
	327, 328, 0, 330, 329, 0, 331, 514, 0, 332,
	333, 0, 0, 334, 335, 0, 0, 336, 337, 338,
	339, 0, 340, 341, 343, 345, 342, 344, 346, 348,
	349, 347, 0, 350, 351, 354, 355, 353, 0, 352,
	0, 0, 0, 356, 0, 515, 357, 516, 359, 360,
	0, 361, 362, 363, 0, 0, 365, 366, 367, 0,
	0, 368, 369, 517, 0, 370, 0, 518, 371, 364,
	372, 373, 374, 375, 376, 377, 378, 0, 379, 380,
	519, 381, 520, 382, 383, 0, 384, 0, 385, 386,
	387, 388, 389, 390, 391, 521, 392, 393, 0, 394,
	395, 396, 397, 398, 399, 0, 401, 402, 403, 400,
	404, 405, 406, 407, 0, 408, 0, 409, 410, 411,
	412, 522, 413, 0, 414, 569, 419, 420, 421, 422,
	423, 424, 0, 430, 431, 425, 427, 428, 429, 426,
	432, 433, 434, 0, 435, 415, 416, 436, 437, 0,
	438, 439, 523, 440, 441, 0, 442, 443, 444, 445,
	417, 446, 450, 451, 447, 448, 449, 524, 0, 453,
	454, 452, 0, 455, 456, 457, 458, 459, 282, 460,
	0, 461, 525, 526, 527, 528, 0, 468, 0, 462,
	463, 529, 464, 530, 0, 465, 466, 467, 0, 469,
	470, 0, 0, 471, 472, 473, 475, 476, 474, 478,
	0, 479, 0, 477, 480, 481, 482, 531, 532, 533,
	0, 484, 483, 534, 566, 0, 214, 0, 485, 486,
	535, 487, 488, 489, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 220, 221, 222, 223, 224, 0, 225,
	0, 0, 0, 0, 0, 490, 0, 0, 0, 0,
	226, 228, 227, 229, 230, 491, 492, 231, 493, 234,
	232, 233, 494, 0, 235, 236, 237, 238, 239, 240,
	241, 0, 0, 242, 495, 496, 497, 0, 243, 498,
	0, 0, 0, 244, 245, 246, 247, 248, 249, 0,
	0, 251, 252, 253, 250, 0, 254, 0, 255, 256,
	257, 0, 258, 0, 259, 260, 0, 0, 0, 0,
	0, 0, 0, 261, 262, 263, 264, 265, 266, 499,
	500, 0, 267, 0, 269, 268, 0, 270, 0, 0,
	271, 272, 273, 0, 274, 0, 275, 276, 0, 277,
	501, 278, 279, 281, 283, 280, 284, 285, 286, 287,
	502, 503, 0, 0, 0, 0, 0, 0, 0, 288,
	289, 290, 504, 291, 292, 0, 293, 0, 294, 0,
	0, 0, 295, 296, 0, 297, 505, 0, 506, 298,
	0, 299, 300, 301, 302, 507, 508, 509, 358, 0,
	303, 304, 0, 305, 306, 307, 309, 0, 0, 0,
	308, 310, 317, 0, 0, 311, 510, 313, 312, 314,
	315, 316, 511, 0, 512, 0, 318, 0, 513, 0,
	319, 320, 321, 0, 322, 323, 0, 0, 324, 325,
	326, 327, 328, 0, 330, 329, 0, 331, 514, 0,
	332, 333, 0, 0, 334, 335, 0, 0, 336, 337,
	338, 339, 0, 340, 341, 343, 345, 342, 344, 346,
	348, 349, 347, 0, 350, 351, 354, 355, 353, 0,
	352, 0, 0, 0, 356, 0, 515, 357, 516, 359,
	360, 0, 361, 362, 363, 0, 0, 365, 366, 367,
	0, 0, 368, 369, 517, 0, 370, 0, 518, 371,
	364, 372, 373, 374, 375, 376, 377, 378, 0, 379,
	380, 519, 381, 520, 382, 383, 0, 384, 0, 385,
	386, 387, 388, 389, 390, 391, 521, 392, 393, 0,
	394, 395, 396, 397, 398, 399, 0, 401, 402, 403,
	400, 404, 405, 406, 407, 0, 408, 0, 409, 410,
	411, 412, 522, 413, 0, 414, 418, 419, 420, 421,
	422, 423, 424, 0, 430, 431, 425, 427, 428, 429,
	426, 432, 433, 434, 0, 435, 415, 416, 436, 437,
	0, 438, 439, 523, 440, 441, 0, 442, 443, 444,
	445, 417, 446, 450, 451, 447, 448, 449, 524, 0,
	453, 454, 452, 0, 455, 456, 457, 458, 459, 282,
	460, 0, 461, 525, 526, 527, 528, 0, 468, 0,
	462, 463, 529, 464, 530, 0, 465, 466, 467, 0,
	469, 470, 0, 0, 471, 472, 473, 475, 476, 474,
	478, 0, 479, 0, 477, 480, 481, 482, 531, 532,
	533, 0, 484, 483, 534, 560, 0, 214, 0, 485,
	486, 535, 487, 488, 489, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 220, 221, 222, 223, 224, 0,
	225, 0, 0, 0, 0, 0, 490, 0, 0, 0,
	0, 226, 228, 227, 229, 230, 491, 492, 231, 493,
	234, 232, 233, 494, 0, 235, 236, 237, 238, 239,
	240, 241, 0, 0, 242, 495, 496, 497, 0, 243,
	498, 0, 0, 0, 244, 245, 246, 247, 248, 249,
	0, 0, 251, 252, 253, 250, 0, 254, 0, 255,
	256, 257, 0, 258, 0, 259, 260, 0, 0, 0,
	0, 0, 0, 0, 261, 262, 263, 264, 265, 266,
	499, 500, 0, 267, 0, 269, 268, 0, 270, 0,
	0, 271, 272, 273, 0, 274, 0, 275, 276, 0,
	277, 501, 278, 279, 281, 283, 280, 284, 285, 286,
	287, 502, 503, 0, 0, 0, 0, 0, 0, 0,
	288, 289, 290, 504, 291, 292, 0, 293, 0, 294,
	0, 0, 0, 295, 296, 0, 297, 505, 0, 506,
	298, 0, 299, 300, 301, 302, 507, 508, 509, 358,
	0, 303, 304, 0, 305, 306, 307, 309, 0, 0,
	0, 308, 310, 317, 0, 0, 311, 510, 313, 312,
	314, 315, 316, 511, 0, 512, 0, 318, 0, 513,
	0, 319, 320, 321, 0, 322, 323, 0, 0, 324,
	325, 326, 327, 328, 0, 330, 329, 0, 331, 514,
	0, 332, 333, 0, 0, 334, 335, 0, 0, 336,
	337, 338, 339, 0, 340, 341, 343, 345, 342, 344,
	346, 348, 349, 347, 0, 350, 351, 354, 355, 353,
	0, 352, 0, 0, 0, 356, 0, 515, 357, 516,
	359, 360, 0, 361, 362, 363, 0, 0, 365, 366,
	367, 0, 0, 368, 369, 517, 0, 370, 0, 518,
	371, 364, 372, 373, 374, 375, 376, 377, 378, 0,
	379, 380, 519, 381, 520, 382, 383, 0, 384, 0,
	385, 386, 387, 388, 389, 390, 391, 521, 392, 393,
	0, 394, 395, 396, 397, 398, 399, 0, 401, 402,
	403, 400, 404, 405, 406, 407, 0, 408, 0, 409,
	410, 411, 412, 522, 413, 0, 414, 418, 419, 420,
	421, 422, 423, 424, 0, 430, 431, 425, 427, 428,
	429, 426, 432, 433, 434, 0, 435, 415, 416, 436,
	437, 0, 438, 439, 523, 440, 441, 0, 442, 443,
	444, 445, 417, 446, 450, 451, 447, 448, 449, 524,
	0, 453, 454, 452, 0, 455, 456, 457, 458, 459,
	282, 460, 0, 461, 525, 526, 527, 528, 0, 468,
	0, 462, 463, 529, 464, 530, 0, 465, 466, 467,
	0, 469, 470, 0, 0, 471, 472, 473, 475, 476,
	474, 478, 0, 479, 0, 477, 480, 481, 482, 531,
	532, 533, 0, 484, 483, 534, 538, 0, 214, 0,
	485, 486, 535, 487, 488, 489, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 507, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 2879, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 2802, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 2800, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 2786, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 2441, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 507, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 569, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 1895,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 0, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 1310, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 392, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 298, 0, 299, 300, 301, 302, 1250, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 374, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 389, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 413, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 214, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 0, 0, 0,
	220, 221, 222, 223, 224, 0, 225, 0, 0, 0,
	0, 0, 490, 0, 0, 0, 0, 226, 228, 227,
	229, 230, 491, 492, 231, 493, 234, 232, 233, 494,
	0, 235, 236, 237, 238, 239, 240, 241, 0, 0,
	242, 495, 496, 497, 0, 243, 498, 0, 0, 0,
	244, 245, 246, 247, 248, 249, 0, 0, 251, 252,
	253, 250, 0, 254, 0, 255, 256, 257, 0, 258,
	0, 259, 260, 0, 0, 0, 0, 0, 0, 0,
	261, 262, 263, 264, 265, 266, 499, 500, 0, 267,
	0, 269, 268, 0, 270, 0, 0, 271, 272, 273,
	0, 274, 0, 275, 276, 0, 277, 501, 278, 279,
	281, 283, 280, 284, 285, 286, 287, 502, 503, 0,
	0, 0, 0, 0, 0, 0, 288, 289, 290, 504,
	291, 292, 0, 293, 0, 294, 0, 0, 0, 295,
	296, 0, 297, 505, 0, 506, 298, 0, 299, 300,
	301, 302, 507, 508, 509, 358, 0, 303, 304, 0,
	305, 306, 307, 309, 0, 0, 0, 308, 310, 317,
	0, 0, 311, 510, 313, 312, 314, 315, 316, 511,
	0, 512, 0, 318, 0, 513, 0, 319, 320, 321,
	0, 322, 323, 0, 0, 324, 325, 326, 327, 328,
	0, 330, 329, 0, 331, 514, 0, 332, 333, 0,
	0, 334, 335, 0, 0, 336, 337, 338, 339, 0,
	340, 341, 343, 345, 342, 344, 346, 348, 349, 347,
	0, 350, 351, 354, 355, 353, 0, 352, 0, 0,
	0, 356, 0, 515, 357, 516, 359, 360, 0, 361,
	362, 363, 0, 0, 365, 366, 367, 0, 0, 368,
	369, 517, 0, 370, 0, 518, 371, 364, 372, 373,
	374, 375, 376, 377, 378, 0, 379, 380, 519, 381,
	520, 382, 383, 0, 384, 0, 385, 386, 387, 388,
	389, 390, 391, 521, 1003, 393, 0, 394, 395, 396,
	397, 398, 399, 0, 401, 402, 403, 400, 404, 405,
	406, 407, 0, 408, 0, 409, 410, 411, 412, 522,
	413, 0, 414, 418, 419, 420, 421, 422, 423, 424,
	0, 430, 431, 425, 427, 428, 429, 426, 432, 433,
	434, 0, 435, 415, 416, 436, 437, 0, 438, 439,
	523, 440, 441, 0, 442, 443, 444, 445, 417, 446,
	450, 451, 447, 448, 449, 524, 0, 453, 454, 452,
	0, 455, 456, 457, 458, 459, 282, 460, 0, 461,
	525, 526, 527, 528, 0, 468, 0, 462, 463, 529,
	464, 530, 0, 465, 466, 467, 0, 469, 470, 0,
	0, 471, 472, 473, 475, 476, 474, 478, 0, 479,
	0, 477, 480, 481, 482, 531, 532, 533, 214, 484,
	483, 534, 0, 0, 0, 0, 485, 486, 535, 487,
	488, 489, 0, 0, 0, 220, 221, 222, 223, 224,
	0, 225, 0, 0, 0, 0, 0, 490, 0, 0,
	0, 0, 226, 228, 227, 229, 230, 491, 492, 231,
	493, 234, 232, 233, 494, 0, 235, 236, 237, 238,
	239, 240, 241, 0, 0, 242, 495, 496, 497, 0,
	243, 498, 0, 0, 0, 244, 245, 246, 247, 248,
	249, 0, 0, 251, 252, 253, 250, 0, 254, 0,
	255, 256, 257, 0, 258, 0, 259, 260, 0, 0,
	0, 0, 0, 0, 0, 261, 262, 263, 264, 265,
	266, 499, 500, 0, 267, 0, 269, 268, 0, 270,
	0, 0, 271, 272, 273, 0, 274, 0, 275, 276,
	0, 277, 501, 278, 279, 281, 283, 280, 284, 285,
	286, 287, 502, 503, 0, 0, 0, 0, 0, 0,
	0, 288, 289, 290, 504, 291, 292, 0, 293, 0,
	294, 0, 0, 0, 295, 296, 0, 297, 505, 0,
	506, 0, 0, 299, 300, 301, 302, 507, 508, 509,
	358, 0, 303, 304, 0, 305, 306, 307, 309, 0,
	0, 0, 308, 310, 317, 0, 0, 311, 510, 313,
	312, 314, 315, 316, 511, 0, 512, 0, 318, 0,
	513, 0, 319, 320, 321, 0, 322, 323, 0, 0,
	324, 325, 326, 327, 328, 0, 330, 329, 0, 331,
	514, 0, 332, 333, 0, 0, 334, 335, 0, 0,
	336, 337, 338, 339, 0, 340, 341, 343, 345, 342,
	344, 346, 348, 349, 347, 0, 350, 351, 354, 355,
	353, 0, 352, 0, 0, 0, 356, 0, 515, 357,
	516, 359, 360, 0, 361, 362, 363, 0, 0, 365,
	366, 367, 0, 0, 368, 369, 517, 0, 370, 0,
	518, 371, 364, 372, 373, 0, 375, 376, 377, 378,
	0, 379, 380, 519, 381, 520, 382, 383, 0, 384,
	0, 385, 386, 387, 388, 0, 390, 391, 521, 392,
	393, 0, 394, 395, 396, 397, 398, 399, 0, 401,
	402, 403, 400, 404, 405, 406, 407, 0, 408, 0,
	409, 410, 411, 412, 522, 0, 0, 414, 418, 419,
	420, 421, 422, 423, 424, 0, 430, 431, 425, 427,
	428, 429, 426, 432, 433, 434, 0, 435, 415, 416,
	436, 437, 0, 438, 439, 523, 440, 441, 0, 442,
	443, 444, 445, 417, 446, 450, 451, 447, 448, 449,
	524, 0, 453, 454, 452, 0, 455, 456, 457, 458,
	459, 282, 460, 0, 461, 525, 526, 527, 528, 0,
	468, 0, 462, 463, 529, 464, 530, 0, 465, 466,
	467, 0, 469, 470, 0, 0, 471, 472, 473, 475,
	476, 474, 478, 0, 479, 0, 477, 480, 481, 482,
	531, 532, 533, 0, 484, 483, 534, 0, 0, 0,
	0, 485, 486, 535, 487, 488, 489, 1484, 1485, 0,
	1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1520, 1515, 0, 0,
	0, 0, 0, 0, 1487, 0, 0, 0, 0, 1533,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1486, 0, 0, 0, 0, 0,
	0, 0, 0, 1506, 0, 0, 0, 0, 0, 0,
	0, 1503, 0, 0, 0, 0, 1484, 1485, 0, 1517,
	1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1520, 1515, 0, 0, 0,
	0, 0, 0, 1487, 0, 0, 0, 0, 1533, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1509,
	1510, 1511, 1512, 1486, 0, 0, 0, 0, 0, 1492,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1524, 0, 0, 1534, 0, 0, 0,
	0, 1514, 1516, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1530, 0, 1531, 0, 0, 0, 0, 0, 0,
	1501, 1502, 0, 0, 0, 0, 0, 0, 1509, 1510,
	1511, 1512, 0, 0, 0, 0, 1522, 0, 1492, 0,
	0, 0, 0, 0, 0, 0, 1507, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1524, 0, 0, 1534, 0, 1532, 0, 0,
	1514, 1516, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1521, 0, 0, 0, 0, 0,
	1530, 0, 1531, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1522, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1507, 0, 0, 0, 0,
	1513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1532, 0, 1508, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1521, 0, 1484, 1485, 0, 1517, 1518,
	1519, 1527, 1528, 1529, 1525, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1520, 1515, 0, 0, 0, 0,
	0, 0, 1487, 0, 0, 0, 0, 1533, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1513,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1486, 0, 0, 0, 0, 1508, 0, 0,
	0, 1506, 0, 0, 0, 0, 0, 0, 0, 1503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1525, 0, 0, 0, 0, 0, 1523,
	0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 0, 1497,
	1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0,
	0, 0, 0, 0, 0, 0, 2974, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1509, 1510, 1511,
	1512, 0, 0, 0, 0, 0, 0, 1492, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1524, 0, 0, 1534, 0, 0, 0, 1523, 1514,
	1516, 1498, 1499, 1505, 1526, 1504, 1500, 0, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0, 1530,
	0, 1531, 0, 0, 0, 2653, 0, 0, 1501, 1502,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1522, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1507, 0, 0, 1484, 1485, 0,
	1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1532, 1520, 1515, 0, 0,
	0, 0, 0, 0, 1487, 0, 0, 0, 0, 1533,
	0, 0, 1521, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1486, 0, 0, 0, 0, 0,
	0, 0, 0, 1506, 0, 0, 0, 0, 0, 0,
	0, 1503, 0, 0, 0, 0, 0, 0, 1513, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1508, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1525, 0, 0, 0, 0, 0, 0, 1509,
	1510, 1511, 1512, 0, 0, 0, 0, 0, 0, 1492,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1524, 0, 0, 1534, 0, 0, 0,
	0, 1514, 1516, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1530, 0, 1531, 0, 0, 0, 0, 0, 0,
	1501, 1502, 0, 0, 0, 0, 0, 1523, 0, 0,
	1498, 1499, 1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 1507, 0, 0, 0,
	0, 0, 0, 0, 2652, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1532, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1521, 0, 1484, 1485, 0, 1517,
	1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1520, 1515, 0, 0, 0,
	0, 0, 0, 1487, 0, 0, 0, 0, 1533, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1486, 0, 0, 0, 0, 1508, 0,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 0, 0, 0, 1484, 1485, 0, 1517, 1518,
	1519, 1527, 1528, 1529, 1525, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1520, 1515, 0, 0, 0, 0,
	0, 0, 1487, 0, 0, 0, 0, 1533, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1509, 1510,
	1511, 1512, 1486, 0, 0, 0, 0, 0, 1492, 0,
	0, 1506, 0, 0, 0, 0, 0, 0, 0, 1503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1524, 0, 0, 1534, 0, 0, 0, 1523,
	1514, 1516, 1498, 1499, 1505, 1526, 1504, 1500, 0, 1497,
	1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0,
	1530, 0, 1531, 0, 0, 0, 2649, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 0, 1509, 1510, 1511,
	1512, 0, 0, 0, 0, 1522, 0, 1492, 0, 0,
	0, 0, 0, 0, 0, 1507, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1524, 0, 0, 1534, 0, 1532, 0, 0, 1514,
	1516, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1521, 0, 0, 0, 0, 0, 1530,
	0, 1531, 0, 0, 0, 0, 0, 0, 1501, 1502,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1522, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1507, 0, 0, 0, 0, 1513,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1532, 0, 1508, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1521, 0, 1484, 1485, 0, 1517, 1518, 1519,
	1527, 1528, 1529, 1525, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1520, 1515, 0, 0, 0, 0, 0,
	0, 1487, 0, 0, 0, 0, 1533, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1513, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1486, 0, 0, 0, 0, 1508, 0, 0, 0,
	1506, 0, 0, 0, 0, 0, 0, 0, 1503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1525, 0, 0, 0, 0, 0, 1523, 0,
	0, 1498, 1499, 1505, 1526, 1504, 1500, 0, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 0, 0, 0,
	0, 0, 0, 0, 0, 2648, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1509, 1510, 1511, 1512,
	0, 0, 0, 0, 0, 0, 1492, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1524, 0, 0, 1534, 0, 0, 0, 1523, 1514, 1516,
	1498, 1499, 1505, 1526, 1504, 1500, 0, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 0, 0, 1530, 0,
	1531, 0, 0, 0, 2647, 0, 0, 1501, 1502, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1522, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1507, 0, 0, 1484, 1485, 0, 1517,
	1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1532, 1520, 1515, 0, 0, 0,
	0, 0, 0, 1487, 0, 0, 0, 0, 1533, 0,
	0, 1521, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1486, 0, 0, 0, 0, 0, 0,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 0, 0, 0, 0, 0, 1513, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1508, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1525, 0, 0, 0, 0, 0, 0, 1509, 1510,
	1511, 1512, 0, 0, 0, 0, 0, 0, 1492, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1524, 0, 0, 1534, 0, 0, 0, 0,
	1514, 1516, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1530, 0, 1531, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 1523, 0, 0, 1498,
	1499, 1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496, 1488,
	1489, 1490, 1491, 1493, 1494, 1507, 0, 0, 0, 0,
	0, 0, 0, 2125, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1532, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1521, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1513,
	1520, 1515, 0, 0, 0, 0, 0, 0, 1487, 0,
	0, 0, 0, 1533, 0, 0, 0, 1508, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1486, 0,
	0, 0, 0, 1525, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 0, 1503, 0, 0, 0, 0,
	0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1520, 1515, 0, 0, 0, 0, 0, 0,
	1487, 0, 0, 0, 0, 1533, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1509, 1510, 1511, 1512, 0, 0, 0,
	1486, 0, 0, 1492, 0, 0, 0, 0, 1523, 1506,
	0, 1498, 1499, 1505, 1526, 1504, 1500, 1503, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 1524, 0, 0,
	1534, 3609, 0, 0, 0, 1514, 1516, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1530, 0, 1531, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1509, 1510, 1511, 1512, 0,
	1522, 0, 0, 0, 0, 1492, 0, 0, 0, 0,
	1507, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1524,
	0, 1532, 1534, 0, 0, 0, 0, 1514, 1516, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1521, 0,
	0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531,
	0, 0, 0, 0, 0, 0, 1501, 1502, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1522, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1507, 0, 1513, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1508, 1532, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1521, 0, 0, 0, 0, 0, 0, 0, 1525, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1484, 1485,
	0, 1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1513, 1520, 1515, 0,
	0, 0, 0, 0, 0, 1487, 0, 0, 0, 0,
	1533, 0, 0, 0, 1508, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1486, 0, 0, 0, 0,
	1525, 0, 0, 1523, 1506, 0, 1498, 1499, 1505, 1526,
	1504, 1500, 1503, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 0, 0, 0, 0, 3605, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1509, 1510, 1511, 1512, 0, 0, 0, 0, 0, 0,
	1492, 0, 0, 0, 0, 1523, 0, 0, 1498, 1499,
	1505, 1526, 1504, 1500, 0, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 1524, 0, 0, 1534, 3524, 0,
	0, 0, 1514, 1516, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1530, 0, 1531, 0, 0, 0, 0, 0,
	0, 1501, 1502, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1522, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1507, 0, 0,
	1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1532, 1520,
	1515, 0, 0, 0, 0, 0, 0, 1487, 0, 0,
	0, 0, 1533, 0, 0, 1521, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1486, 0, 0,
	0, 0, 0, 0, 0, 0, 1506, 0, 0, 0,
	0, 0, 0, 0, 1503, 0, 0, 0, 0, 0,
	0, 1513, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1508,
	0, 0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519,
	1527, 1528, 1529, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1520, 1515, 1525, 0, 0, 0, 0,
	0, 1487, 1509, 1510, 1511, 1512, 1533, 0, 0, 0,
	0, 0, 1492, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1486, 0, 0, 0, 0, 1524, 0, 0, 1534,
	1506, 0, 0, 0, 1514, 1516, 0, 0, 1503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1530, 0, 1531, 0, 0, 0,
	0, 0, 0, 1501, 1502, 0, 0, 0, 0, 0,
	1523, 0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 1522,
	1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 1507,
	0, 0, 0, 3523, 0, 0, 1509, 1510, 1511, 1512,
	0, 0, 0, 0, 0, 0, 1492, 0, 0, 0,
	1532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1521, 0, 0,
	1524, 0, 0, 1534, 0, 0, 0, 0, 1514, 1516,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1530, 0,
	1531, 0, 0, 0, 0, 0, 0, 1501, 1502, 0,
	0, 0, 0, 1513, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1522, 0, 0, 0, 0, 0, 0,
	0, 1508, 0, 1507, 0, 0, 1484, 1485, 0, 1517,
	1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1532, 1520, 1515, 1525, 0, 0,
	0, 0, 0, 1487, 0, 0, 0, 0, 1533, 0,
	0, 1521, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1486, 0, 0, 0, 0, 0, 0,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 0, 0, 0, 0, 0, 1513, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1508, 0, 0, 0, 0,
	0, 0, 1523, 0, 0, 1498, 1499, 1505, 1526, 1504,
	1500, 0, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493,
	1494, 1525, 0, 0, 0, 3406, 0, 0, 1509, 1510,
	1511, 1512, 0, 0, 0, 0, 0, 0, 1492, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1524, 0, 0, 1534, 0, 0, 0, 0,
	1514, 1516, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1530, 0, 1531, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 1523, 0, 0, 1498,
	1499, 1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496, 1488,
	1489, 1490, 1491, 1493, 1494, 1507, 0, 0, 0, 3303,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1532, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1521, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1513,
	1520, 1515, 0, 0, 0, 0, 0, 0, 1487, 0,
	0, 0, 0, 1533, 0, 0, 0, 1508, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1486, 0,
	0, 0, 0, 1525, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 0, 1503, 0, 0, 0, 0,
	0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1520, 1515, 0, 0, 0, 0, 0, 0,
	1487, 0, 0, 0, 0, 1533, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1509, 1510, 1511, 1512, 0, 0, 0,
	1486, 0, 0, 1492, 0, 0, 0, 0, 1523, 1506,
	0, 1498, 1499, 1505, 1526, 1504, 1500, 1503, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 1524, 0, 0,
	1534, 3256, 0, 0, 0, 1514, 1516, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1530, 0, 1531, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1509, 1510, 1511, 1512, 0,
	1522, 0, 0, 0, 0, 1492, 0, 0, 0, 0,
	1507, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1524,
	0, 1532, 1534, 0, 0, 0, 0, 1514, 1516, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1521, 0,
	0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531,
	0, 0, 0, 0, 0, 0, 1501, 1502, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1522, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1507, 0, 1513, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1508, 1532, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1521, 0, 0, 0, 0, 0, 0, 0, 1525, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1484, 1485,
	0, 1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1513, 1520, 1515, 0,
	0, 0, 0, 0, 0, 1487, 0, 0, 0, 0,
	1533, 0, 0, 0, 1508, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1486, 0, 0, 0, 0,
	1525, 0, 0, 1523, 1506, 0, 1498, 1499, 1505, 1526,
	1504, 1500, 1503, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 0, 0, 0, 0, 3255, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1509, 1510, 1511, 1512, 0, 0, 0, 0, 0, 0,
	1492, 0, 0, 0, 0, 1523, 0, 0, 1498, 1499,
	1505, 1526, 1504, 1500, 0, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 1524, 0, 0, 1534, 3254, 0,
	0, 0, 1514, 1516, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1530, 0, 1531, 0, 0, 0, 0, 0,
	0, 1501, 1502, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1522, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1507, 0, 0,
	1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1532, 1520,
	1515, 0, 0, 0, 0, 0, 0, 1487, 0, 0,
	0, 0, 1533, 0, 0, 1521, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1486, 0, 0,
	0, 0, 0, 0, 0, 0, 1506, 0, 0, 0,
	0, 0, 0, 0, 1503, 0, 0, 0, 0, 0,
	0, 1513, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1508,
	0, 0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519,
	1527, 1528, 1529, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1520, 1515, 1525, 0, 0, 0, 0,
	0, 1487, 1509, 1510, 1511, 1512, 1533, 0, 0, 0,
	0, 0, 1492, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1486, 0, 0, 0, 0, 1524, 0, 0, 1534,
	1506, 0, 0, 0, 1514, 1516, 0, 0, 1503, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1530, 0, 1531, 0, 0, 0,
	0, 0, 0, 1501, 1502, 0, 0, 0, 0, 0,
	1523, 0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 1522,
	1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 1507,
	0, 0, 0, 3010, 0, 0, 1509, 1510, 1511, 1512,
	0, 0, 0, 0, 0, 0, 1492, 0, 0, 0,
	1532, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1521, 0, 0,
	1524, 0, 0, 1534, 0, 0, 0, 0, 1514, 1516,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1530, 0,
	1531, 0, 0, 0, 0, 0, 0, 1501, 1502, 0,
	0, 0, 0, 1513, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1522, 0, 0, 0, 0, 0, 0,
	0, 1508, 0, 1507, 0, 0, 1484, 1485, 0, 1517,
	1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1532, 1520, 1515, 1525, 0, 0,
	0, 0, 0, 1487, 0, 0, 0, 0, 1533, 0,
	0, 1521, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1486, 0, 0, 0, 0, 0, 0,
	0, 0, 1506, 0, 0, 0, 0, 0, 0, 0,
	1503, 0, 0, 0, 0, 0, 0, 1513, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1508, 0, 0, 0, 0,
	0, 0, 1523, 0, 0, 1498, 1499, 1505, 1526, 1504,
	1500, 0, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493,
	1494, 1525, 0, 0, 0, 2645, 0, 0, 1509, 1510,
	1511, 1512, 0, 0, 0, 0, 0, 0, 1492, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1524, 0, 0, 1534, 0, 0, 0, 0,
	1514, 1516, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1530, 0, 1531, 0, 0, 0, 0, 0, 0, 1501,
	1502, 0, 0, 0, 0, 0, 1523, 0, 0, 1498,
	1499, 1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496, 1488,
	1489, 1490, 1491, 1493, 1494, 1507, 0, 0, 0, 2644,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1532, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1521, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1513,
	1520, 1515, 0, 0, 0, 0, 0, 0, 1487, 0,
	0, 0, 0, 1533, 0, 0, 0, 1508, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1486, 0,
	0, 0, 0, 1525, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 0, 1503, 0, 0, 0, 0,
	0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1520, 1515, 0, 0, 0, 0, 0, 0,
	1487, 0, 0, 0, 0, 1533, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1509, 1510, 1511, 1512, 0, 0, 0,
	1486, 0, 0, 1492, 0, 0, 0, 0, 1523, 1506,
	0, 1498, 1499, 1505, 1526, 1504, 1500, 1503, 1497, 1495,
	1496, 1488, 1489, 1490, 1491, 1493, 1494, 1524, 0, 0,
	1534, 2643, 0, 0, 0, 1514, 1516, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1530, 0, 1531, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1509, 1510, 1511, 1512, 0,
	1522, 0, 0, 0, 0, 1492, 0, 0, 0, 0,
	1507, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1524,
	0, 1532, 1534, 0, 0, 0, 0, 1514, 1516, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1521, 0,
	0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531,
	0, 0, 0, 0, 0, 0, 1501, 1502, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1522, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1507, 0, 1513, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1508, 1532, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1521, 0, 0, 0, 0, 0, 0, 0, 1525, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1484, 1485,
	0, 1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1513, 1520, 1515, 0,
	0, 0, 0, 0, 0, 1487, 0, 0, 0, 0,
	1533, 0, 0, 0, 1508, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1486, 0, 0, 0, 0,
	1525, 0, 0, 1523, 1506, 0, 1498, 1499, 1505, 1526,
	1504, 1500, 1503, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 0, 0, 0, 0, 2642, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1509, 1510, 1511, 1512, 0, 0, 0, 0, 0, 0,
	1492, 3719, 0, 0, 0, 1523, 0, 0, 1498, 1499,
	1505, 1526, 1504, 1500, 0, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 1524, 0, 2600, 1534, 0, 0,
	0, 0, 1514, 1516, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1530, 0, 1531, 0, 0, 0, 0, 0,
	0, 1501, 1502, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1522, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1507, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1532, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1521, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 3718, 0, 0,
	0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1513, 1520, 1515, 0, 0, 0, 0, 2571, 0,
	1487, 0, 0, 0, 0, 1533, 0, 0, 0, 1508,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1486, 0, 0, 0, 0, 1525, 0, 0, 0, 1506,
	0, 0, 0, 0, 0, 0, 0, 1503, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 2572, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1509, 1510, 1511, 1512, 0,
	0, 0, 0, 0, 0, 1492, 0, 0, 0, 0,
	1523, 0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 0,
	1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 1524,
	0, 0, 1534, 0, 0, 0, 0, 1514, 1516, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531,
	0, 0, 0, 0, 0, 0, 1501, 1502, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1522, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1507, 0, 0, 1484, 1485, 0, 1517, 1518,
	1519, 1527, 1528, 1529, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1532, 1520, 1515, 0, 0, 0, 0,
	0, 0, 1487, 0, 0, 0, 0, 1533, 0, 0,
	1521, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1486, 0, 0, 0, 0, 0, 0, 0,
	0, 1506, 0, 0, 0, 0, 0, 0, 0, 1503,
	0, 0, 0, 0, 0, 0, 1513, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 2235, 0, 1508, 0, 0, 0, 0, 1484,
	1485, 0, 1517, 1518, 1519, 1527, 1528, 1529, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1520, 1515,
	1525, 0, 0, 2234, 0, 0, 1487, 1509, 1510, 1511,
	1512, 1533, 0, 0, 0, 0, 0, 1492, 0, 2692,
	0, 0, 2691, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1486, 0, 0, 0,
	0, 1524, 0, 0, 1534, 1506, 0, 0, 0, 1514,
	1516, 0, 0, 1503, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1530,
	0, 1531, 0, 0, 0, 0, 0, 0, 1501, 1502,
	0, 0, 0, 0, 0, 1523, 0, 0, 1498, 1499,
	1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 1507, 0, 0, 0, 0, 0,
	0, 1509, 1510, 1511, 1512, 0, 0, 0, 0, 0,
	0, 1492, 0, 0, 0, 1532, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1521, 0, 0, 1524, 0, 0, 1534, 0,
	0, 0, 0, 1514, 1516, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1530, 0, 1531, 0, 0, 0, 0,
	0, 0, 1501, 1502, 0, 0, 0, 0, 1513, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1522, 0,
	0, 0, 0, 0, 0, 0, 1508, 0, 1507, 0,
	0, 1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1532,
	1520, 1515, 1525, 0, 0, 0, 0, 0, 1487, 0,
	0, 0, 0, 1533, 0, 0, 1521, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1486, 0,
	0, 0, 0, 0, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 0, 1503, 0, 0, 0, 0,
	0, 0, 1513, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1508, 0, 0, 0, 0, 0, 0, 1523, 0, 0,
	1498, 1499, 1505, 1526, 1504, 1500, 0, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 1525, 0, 0, 0,
	0, 0, 0, 1509, 1510, 1511, 1512, 0, 0, 0,
	0, 0, 0, 1492, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1524, 0, 0,
	1534, 0, 0, 0, 0, 1514, 1516, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1530, 0, 1531, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 0, 0, 0,
	0, 1523, 0, 0, 1498, 1499, 1505, 1526, 1504, 1500,
	1522, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494,
	1507, 0, 0, 1484, 1485, 0, 1517, 1518, 1519, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1532, 1520, 1515, 0, 0, 0, 0, 0, 0,
	1487, 0, 0, 0, 0, 1533, 0, 0, 1521, 844,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1486, 0, 0, 0, 0, 0, 0, 0, 0, 1506,
	0, 0, 0, 0, 0, 0, 0, 1503, 0, 0,
	0, 0, 0, 0, 1513, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1508, 0, 0, 0, 0, 1484, 1485, 0,
	1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1520, 1515, 1525, 0,
	0, 0, 0, 0, 1487, 1509, 1510, 1511, 1512, 1533,
	0, 0, 0, 0, 0, 1492, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1486, 0, 0, 0, 0, 1524,
	0, 0, 1534, 1506, 0, 0, 0, 1514, 1516, 0,
	0, 1503, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531,
	0, 0, 0, 0, 0, 0, 1501, 1502, 0, 0,
	0, 0, 0, 1523, 0, 0, 1498, 1499, 1505, 1526,
	1504, 1500, 1522, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 1507, 0, 0, 0, 0, 0, 0, 1509,
	1510, 1511, 1512, 0, 0, 0, 0, 0, 0, 1492,
	0, 0, 0, 1532, 2698, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1521, 0, 0, 1524, 0, 0, 1534, 0, 0, 0,
	0, 1514, 1516, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1530, 0, 1531, 0, 0, 0, 0, 0, 0,
	1501, 1502, 0, 0, 0, 0, 1513, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1522, 0, 0, 0,
	0, 0, 0, 0, 1508, 0, 1507, 0, 0, 1484,
	1485, 0, 1517, 1518, 1519, 1527, 1528, 1529, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1532, 1520, 1515,
	1525, 0, 0, 2693, 0, 0, 1487, 0, 0, 0,
	0, 1533, 0, 0, 1521, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 2989, 0, 0, 0, 0, 1486, 0, 0, 0,
	0, 0, 0, 0, 0, 1506, 0, 0, 0, 0,
	0, 0, 0, 1503, 0, 0, 0, 0, 0, 0,
	1513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1508, 0,
	0, 0, 0, 0, 0, 1523, 0, 0, 1498, 1499,
	1505, 1526, 1504, 1500, 0, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 1525, 0, 0, 0, 0, 0,
	0, 1509, 1510, 1511, 1512, 0, 0, 0, 0, 0,
	0, 1492, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1524, 0, 0, 1534, 0,
	0, 0, 0, 1514, 1516, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1530, 0, 1531, 0, 0, 0, 0,
	0, 0, 1501, 1502, 0, 0, 0, 0, 0, 1523,
	0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 1522, 1497,
	1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 1507, 0,
	0, 1484, 1485, 0, 1517, 1518, 1519, 1527, 1528, 1529,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1532,
	1520, 1515, 0, 0, 0, 0, 0, 0, 1487, 0,
	0, 0, 0, 1533, 0, 0, 1521, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1486, 0,
	0, 0, 0, 0, 0, 0, 0, 1506, 0, 0,
	0, 0, 0, 0, 0, 1503, 0, 0, 0, 0,
	0, 0, 1513, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1508, 0, 0, 0, 0, 1484, 1485, 0, 1517, 1518,
	1519, 1527, 1528, 1529, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1520, 1515, 1525, 0, 0, 2646,
	0, 0, 1487, 1509, 1510, 1511, 1512, 1533, 0, 0,
	0, 0, 0, 1492, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1486, 0, 0, 0, 0, 1524, 0, 0,
	1534, 1506, 0, 0, 0, 1514, 1516, 0, 0, 1503,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1530, 0, 1531, 0, 0,
	0, 0, 0, 0, 1501, 1502, 0, 0, 0, 0,
	0, 1523, 0, 0, 1498, 1499, 1505, 1526, 1504, 1500,
	1522, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494,
	1507, 0, 0, 0, 0, 0, 0, 1509, 1510, 1511,
	1512, 0, 0, 0, 0, 0, 0, 1492, 0, 0,
	0, 1532, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1521, 0,
	0, 1524, 0, 0, 1534, 0, 0, 0, 0, 1514,
	1516, 0, 0, 0, 0, 0, 2660, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1530,
	0, 1531, 0, 0, 0, 0, 0, 0, 1501, 1502,
	0, 0, 0, 0, 1513, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1522, 0, 0, 0, 0, 0,
	0, 0, 1508, 0, 1507, 0, 0, 1484, 1485, 0,
	1517, 1518, 1519, 1527, 1528, 1529, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1532, 1520, 1515, 1525, 0,
	0, 0, 0, 0, 1487, 0, 0, 0, 0, 1533,
	0, 0, 1521, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1486, 0, 0, 0, 0, 0,
	0, 0, 0, 1506, 0, 0, 0, 0, 0, 0,
	0, 1503, 0, 0, 0, 0, 0, 0, 1513, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1508, 0, 0, 0,
	0, 0, 0, 1523, 0, 0, 1498, 1499, 1505, 1526,
	1504, 1500, 0, 1497, 1495, 1496, 1488, 1489, 1490, 1491,
	1493, 1494, 1525, 0, 0, 0, 0, 0, 0, 1509,
	1510, 1511, 1512, 0, 0, 0, 0, 0, 0, 1492,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1524, 0, 0, 1534, 0, 0, 0,
	0, 1514, 1516, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1530, 0, 1531, 0, 0, 0, 0, 0, 0,
	1501, 1502, 0, 0, 0, 0, 0, 1523, 0, 0,
	1498, 1499, 1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 1507, 0, 0, 1484,
	1485, 0, 1517, 1518, 1519, 1527, 1528, 1529, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1532, 1520, 1515,
	0, 0, 0, 0, 0, 0, 1487, 0, 0, 0,
	0, 1533, 0, 0, 1521, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 1486, 0, 0, 0,
	0, 0, 0, 0, 0, 1506, 0, 0, 0, 0,
	0, 0, 0, 1503, 0, 0, 0, 0, 0, 0,
	1513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1508, 0,
	0, 0, 0, 1484, 1485, 0, 1517, 1518, 1519, 1527,
	1528, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1515, 1525, 0, 0, 0, 0, 0,
	1487, 1509, 1510, 1511, 1512, 1533, 0, 0, 0, 0,
	0, 1492, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1486, 0, 0, 0, 0, 1524, 0, 0, 1534, 1506,
	0, 0, 0, 1514, 1516, 0, 0, 1503, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1530, 0, 1531, 0, 0, 0, 0,
	0, 0, 1501, 1502, 0, 0, 0, 0, 0, 1523,
	0, 0, 1498, 1499, 1505, 1526, 1504, 1500, 1522, 1497,
	1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494, 1507, 0,
	0, 0, 0, 0, 0, 1509, 1510, 1511, 1512, 0,
	0, 0, 0, 0, 0, 1492, 0, 0, 0, 1532,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 1524,
	0, 0, 1534, 0, 0, 0, 0, 1514, 1516, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531,
	0, 0, 0, 0, 0, 0, 1501, 1502, 0, 0,
	0, 0, 1513, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1522, 0, 0, 0, 0, 0, 0, 0,
	1508, 0, 1507, 0, 0, 1484, 1485, 0, 1517, 1518,
	1519, 1527, 1528, 1529, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 1532, 0, 1515, 1525, 0, 0, 0,
	0, 0, 1487, 0, 0, 0, 0, 1533, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 1486, 0, 0, 0, 0, 0, 0, 0,
	0, 1506, 0, 0, 0, 0, 0, 0, 0, 1503,
	0, 0, 0, 0, 0, 0, 1513, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1508, 0, 0, 0, 0, 0,
	0, 1523, 0, 0, 1498, 1499, 1505, 1526, 1504, 1500,
	0, 1497, 1495, 1496, 1488, 1489, 1490, 1491, 1493, 1494,
	1525, 0, 0, 0, 0, 0, 0, 1509, 1510, 1511,
	1512, 0, 0, 0, 0, 0, 0, 1492, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1524, 0, 0, 1534, 0, 0, 0, 0, 1514,
	1516, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1703, 0, 0, 0, 1501, 1502,
	0, 0, 0, 0, 0, 1523, 0, 0, 1498, 1499,
	1505, 1526, 1504, 1500, 1522, 1497, 1495, 1496, 1488, 1489,
	1490, 1491, 1493, 1494, 1507, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 1720, 1697, 1704, 0, 1687, 1730,
	1729, 0, 0, 0, 1689, 1688, 0, 0, 0, 0,
	0, 0, 1740, 1741, 0, 0, 0, 0, 0, 0,
	0, 0, 633, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 634, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 1731, 0, 1727, 1726, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1513, 1725,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	635, 653, 0, 0, 0, 0, 1508, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	1724, 1722, 1723, 636, 0, 0, 637, 0, 0, 0,
	0, 0, 1525, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 660, 0, 0, 0, 0, 0, 638,
	0, 0, 0, 0, 1699, 0, 0, 0, 658, 0,
	0, 0, 0, 0, 1713, 1702, 1715, 1717, 1718, 1719,
	1714, 0, 1707, 0, 0, 0, 0, 639, 0, 0,
	0, 0, 1736, 1737, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 640, 0, 0,
	641, 662, 0, 0, 0, 605, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 1523, 0, 1691,
	1498, 1499, 1505, 1526, 1504, 1500, 0, 1497, 1495, 1496,
	1488, 1489, 1490, 1491, 1493, 1494, 1728, 0, 0, 0,
	1700, 0, 1701, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 661, 0, 0, 0, 0, 0, 0,
	0, 0, 644, 0, 1721, 0, 0, 0, 1710, 1708,
	1709, 1712, 1711, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 642, 0,
	0, 0, 0, 0, 1692, 1693, 1695, 1696, 645, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 1716, 1694, 0, 0, 0, 0, 0, 646, 0,
	0, 0, 1739, 0, 0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 1690, 0,
	0, 1732, 1733, 1734, 1735, 0, 604, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 654, 0, 0, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 647,
	0, 0, 1698, 0, 0, 0, 0, 1705, 1738, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 652, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	648, 0, 0, 665, 0, 664, 0, 0, 649, 0,
	0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	0, 650, 0, 0, 0, 0, 657, 0, 0, 0,
	0, 666, 0, 663, 0, 0, 0, 0, 0, 606,
}

var sqlPact = [...]int{
	4909, -1000, -1000, -1000, -1000, -1000, -1000, 171, 169, 167,
	166, 165, 164, 163, 161, -1000, -1000, -1000, -1000, 157,
	-1000, -1000, 156, -1000, 155, 154, 152, 150, -1000, 149,
	136, 133, -1000, -1000, -1000, -1000, 128, 118, 117, 59281,
	1840, 72004, 62773, 1838, 54013, 71563, 53572, 71122, 70681, 113,
	-1000, 70240, 111, 108, 105, -1000, 1484, -1000, 104, 3645,
	44724, 103, 102, 101, 1809, 100, -1000, 97, -1000, 85090,
	1298, -1000, 94, -1000, 7450, 516, 61897, 2266, 93, 91,
	44282, 2248, 2277, -1000, -1000, 1657, -1000, -1000, 90, 87,
	86, 84, 83, 82, 81, 80, 76, -1000, 75, 74,
	73, 72, 71, 70, 69, -1000, 68, 63, 62, 61,
	60, 59, 58, 57, 56, 55, 54, 52, -1000, 8706,
	1551, 1457, 1456, 1441, 1432, 1427, 873, 50, 49, 48,
	47, 46, 43, 42, -1000, 38, 34, 33, 29, 28,
	-1000, 27, 25, 140, 20, 19, 18, 17, 16, 2216,
	-1000, 1320, 761, 20959, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 76789, 72439, 15,
	-192, 14, -1000, 2605, 878, 36773, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 445, -1000, -1000, -1000,
	241, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 1570, 676, -1000, -1000,
	-1000, 69799, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	1836, -38, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 674,
	-1000, 1832, 193, 1766, -1000, -1000, -1000, -1000, -1000, 72439,
	-1000, -1000, 2909, 2906, 1627, 670, 69364, -1000, 1243, -1000,
	821, 23755, -1000, 1052, -1000, 23755, 239, -1000, -1000, -1000,
	2903, 2902, 2901, 2900, -1000, -1000, 53131, 15335, 52690, 52249,
	68923, 14884, 58846, 48300, -1000, -1000, -1000, 39437, 1087, -1000,
	-1000, -1000, -1000, -1000, -7, 49184, 72439, -1000, 226, -1000,
	-1000, -1000, -1000, -1000, -1000, 30383, 708, 29907, 326, 29431,
	278, -1000, -1000, -1000, 2899, 2898, 1001, 2896, 2532, 76354,
	1496, 2894, 1428, 1063, 917, 2892, 2890, 2889, 2888, 2887,
	2886, 1186, 68482, 2294, 68041, 1359, 47849, 59281, 59281, 2099,
	67600, 1201, 1106, -1000, -1000, -1000, -1000, 2411, 2270, 2258,
	41646, -1000, 2885, 2884, 2882, 2880, 2879, 75919, 1417, 2878,
	2000, 2877, 2876, 2874, 2873, 2872, 2871, 2870, 2869, 2867,
	-1000, 58405, 57964, 57523, 2650, 67159, 47398, -1000, -1000, -1000,
	38533, 5474, 4752, 66718, 39886, 59281, 59281, -1000, -1000, 30847,
	138, -1000, -1000, -1000, 39437, 2263, -1000, 30847, 138, -1000,
	72439, -1000, 2292, 1498, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, 1872, 1363, 2759, 46947, 1715, 1184,
	2609, 2410, 2405, 1287, 2060, 2404, 2389, 2378, 2362, 2355,
	1529, 2039, 369, 20483, 1308, 1284, 2353, 2334, 2780, 1600,
	1604, 51808, 2866, 2865, 2564, 2326, 2319, 2262, -1000, -1000,
	-1000, -1000, 1236, -1000, -1000, 54883, -1000, -1000, 1029, -1000,
	-1000, 1029, -1000, -1000, -1000, -1000, -1000, 1085, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 1320, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 1921, -1000, 1581, -1000, -1000,
	1975, 2575, 2575, 2575, 2635, 413, 393, -1000, 140, -1000,
	-1000, 84246, -1000, -1000, 30847, 30847, 30847, 30847, 30847, 1659,
	-1000, 660, -1000, -1000, 712, -1000, 657, 507, -1000, -1000,
	-1000, -1000, -1000, -1000, 654, 2786, -1000, -1000, -1000, -1000,
	-1000, 2728, -1000, 17639, -1000, -1000, -1000, 421, 651, 30847,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, 797, -1000, 223, 828, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, 539, 1528, 537, 537, 537, -1000, -1000, 899,
	-1000, -1000, -1000, 236, 536, 227, 535, -1000, -1000, -1000,
	-1000, 2291, 650, 643, -1000, 642, 640, 638, 636, 632,
	-1000, -1000, -1000, 629, 627, 625, 623, 613, 611, 610,
	608, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 896,
	-1000, 606, 604, 601, 598, 592, 590, 579, 574, 565,
	-1000, -1000, -9, 72439, -1000, 445, -9, -1000, -1000, 560,
	-1000, 24219, 24219, 24219, -1000, -1000, 1827, 30847, -1000, 2013,
	-1000, 0, 0, 792, 37651, -1000, 35891, 792, 496, 727,
	41205, -1000, 2259, -1000, -1000, 559, 214, -1000, -1000, 2253,
	72439, 15784, 72439, 59281, 59281, 59281, 2479, 30847, -1000, -1000,
	46496, 72439, 59716, 2692, 85020, 46496, 72439, 2289, -1000, -1000,
	-1000, 72439, -1000, 30847, -1000, 2688, 1242, 49623, 2655, -19,
	-1000, -1000, -1000, -1000, -1000, -1000, 1983, 2031, 975, 1866,
	1536, -1000, 23755, 2523, -1000, -1000, -1000, 208, 15784, -1000,
	-1000, -1000, -1000, -1000, 1641, 2445, 1127, -1000, 1864, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1470, 2444,
	-1000, 1460, 2438, 1467, -1000, -1000, 1778, -1000, -1000, 2561,
	-1000, -1000, 1473, 2428, 1, -1000, -1000, 861, 2426, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 779, -1000,
	48749, 39437, 49184, -11, -1000, -1000, -27, -1000, 14433, 84246,
	-1000, -1000, -1000, 84246, 758, -1000, -1000, 2425, -1000, 84246,
	750, -1000, -1000, 2424, -1000, -1000, -1000, 2864, -1000, 2862,
	1938, 2861, 2859, 2858, -1000, 1378, 1508, 2857, -1000, 2856,
	-1000, -1000, -1000, -1000, -1000, -1000, 57082, 1826, -1000, -1000,
	56200, -1000, 1936, -1000, -1000, 56641, 903, -1000, 861, 1935,
	-1000, 842, -1000, 2853, 2646, 2108, 861, 1926, -1000, -1000,
	-1000, -1000, -1000, 42524, -1000, 42524, -1000, 42524, -1000, 1253,
	-1000, 75484, 0, 0, 2728, -1000, -1000, -1000, -1000, -1000,
	2420, 2852, 2850, 2849, -1000, 72439, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, 183, 2418, -1000, -1000, 183,
	2415, -1000, 183, 2406, -1000, 61456, -1000, -1000, 1770, 2403,
	-1000, -30, 2402, -1000, -1000, -32, -1000, -1000, -1000, 878,
	-1000, 38092, -1000, 38092, 66277, 48749, 845, 675, 43841, 84246,
	-1000, -68, -1000, 39437, 84246, -1000, 48749, 56200, -1000, 65836,
	55765, -1000, -1000, 1183, 2017, -1000, -1000, -1000, 845, 48749,
	48749, 48749, -1000, 65395, -1000, -1000, 1623, 1405, 2565, 1605,
	59281, -1000, 1509, -1000, -1000, -1000, 2587, 2288, -1000, 46057,
	61021, -1000, 60586, -1000, 60151, -1000, 59281, -1000, 59281, -1000,
	2848, 2846, 2845, -1000, 2843, 2579, 84246, 2578, -1000, 2433,
	1418, 1414, 72439, -1000, -1000, 72439, -1000, 72439, -1000, -1000,
	-1000, -1000, -1000, 1980, -1000, -1000, -1000, -1000, 59281, -1000,
	-1000, -1000, -1000, -1000, -1000, 2287, -1000, 1402, -1000, 1494,
	-1000, 1175, -1000, -1000, 184, -1000, -1000, -19, -1000, 75049,
	-1000, 1975, -1000, 72439, -1000, 1982, 2275, 2286, 1194, 1846,
	2066, -1000, 28955, 2049, 33167, 1862, 140, -1000, -1000, 140,
	140, 23291, -1000, -1000, 85020, 85020, 15784, 1096, 30847, 30847,
	30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847,
	30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847,
	30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847, 30847,
	30847, 30847, 30847, 1912, 30847, 1083, 30847, 30847, 30847, 30847,
	1594, -1000, -1000, 1563, 465, 1577, -1000, 2727, 2727, 2727,
	84582, 84582, 532, 2842, 712, -1000, 30847, -1000, 138, 30847,
	16235, -1000, -1000, -1000, 393, 9474, 1908, -1000, 389, 16711,
	-1000, -1000, -1000, 17639, 507, 28479, 30847, 889, 84246, 1172,
	2749, 13984, 2304, 2148, -1000, 2765, -1000, -1000, 2749, -1000,
	-1000, -1000, -1000, 2749, 1093, 1070, 2749, -1000, 2749, 2749,
	557, 687, 685, 20007, 19531, 19055, 18579, 684, 30847, 30847,
	30847, 30847, 30847, 30847, 30847, 30847, -1000, 28015, 27539, 27063,
	33631, 26587, 30847, 18103, 26111, 25635, 72439, -9, 2685, 30847,
	146, -1000, 82878, -1000, 146, 146, 552, -33, 84246, 2038,
	2038, 37212, 1989, 1671, 1671, 1671, -1000, 792, 10366, 792,
	64521, 1720, 792, 792, 202, 222, 388, 35452, 2013, 64521,
	698, 545, 12, 10, 9, -1000, -1000, 5, 4, -1000,
	-1000, 59281, 544, 16235, 15784, 1148, -39, 195, 2050, 2048,
	2047, -1000, 2041, 1381, -40, 1081, -18, -1000, 849, -41,
	-1000, 1137, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, 892, 543, 542, 713, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, 539, 1528, 537, 537, 537, -1000,
	-1000, -1000, 236, 536, 227, 535, -1000, -1000, -1000, -1000,
	-1000, -1000, 2250, -27, 59716, 804, -47, 1004, -19, -1000,
	-1000, -1000, 49623, 1029, -1000, 1534, -1000, -1000, -1000, -1000,
	-1000, -1000, 1191, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	797, -1000, -1000, -1000, -1000, -1000, -1000, 2755, 2745, -10,
	-1000, -1000, 15784, -1000, -22, 1371, -1000, 51367, 1812, 2557,
	2549, 1252, -1000, 1195, 2627, 54883, 2659, 2674, 723, -1000,
	2246, -1000, -1000, 817, 1391, 1077, 54883, 1460, -1000, 85020,
	-1000, 2109, 2626, 1182, 1188, 1182, 1182, 1185, -1000, 54883,
	1075, -1000, 1074, -1000, -23, 2658, 2672, 234, -1000, 2237,
	1072, -1000, -1000, 59281, 15784, -1000, 1453, -1000, 48749, 2115,
	-1000, -49, 779, -11, 49184, 72439, 191, -1000, 30847, 138,
	30847, 138, -1000, -1000, 2401, -1000, -1000, -1000, 2840, 1510,
	1996, -1000, -1000, -1000, 534, 1923, 2236, 72439, 2053, -13,
	59281, -1000, 2398, 1460, 1920, -1000, -1000, 55324, -1000, 2396,
	630, 2839, -1000, 74614, -1000, 2559, 1109, 2391, 961, 479,
	2683, -1000, 479, 42963, -1000, 72439, -1000, -1000, 72439, -1000,
	-1000, -1000, 2838, -1000, 59281, -1000, -1000, 59281, -1000, 59281,
	-1000, 59281, 182, 2390, -1000, -1000, 72439, 48749, 48749, 3726,
	50497, -50, -56, 384, -1000, 64960, 72439, 957, 50932, 72439,
	2512, 845, 39437, -68, 845, 845, 779, -1000, 779, -1000,
	59281, 2285, -1000, 845, 845, 845, -1000, -1000, -1000, -1000,
	2837, 2836, -1000, -1000, -1000, 854, 59281, 72439, 59281, -1000,
	-1000, 72439, -1000, 72439, -1000, 854, 72439, 854, 72439, 854,
	72439, -1000, -1000, -1000, -1000, -1000, -1000, 138, 30847, 1303,
	-1000, 2278, -1000, 2276, -1000, 40, -1000, -1000, -1000, -1000,
	1490, 59281, 59281, 59281, 59281, 72439, 59281, -1000, 54883, -1000,
	1982, 2275, -1000, -1000, -1000, -1000, -1000, -1000, 1245, 1781,
	-1000, 2021, -1000, 1239, -1000, -1000, -1000, 84246, 34095, -1000,
	-1000, 84246, 1411, -1000, 32703, 32239, -1000, -1000, 1358, 59281,
	2073, -1000, 2073, -12, -1000, 82542, 2016, 59281, -1000, -1000,
	-1000, -1000, -1000, 814, 850, 850, 1119, 1119, 1119, 1119,
	2657, 844, 370, 323, 5612, 5612, 5148, 5148, 5148, 5148,
	5148, 5612, 434, 555, 555, 434, 434, 434, 434, 434,
	555, 555, 555, 5612, 5612, 5612, 84582, 84478, 9665, 30847,
	30847, 1071, 1549, 465, 7965, 30847, 9898, 9898, 9898, 9898,
	-1000, 1436, -1000, -1000, -1000, -1000, 2235, 531, 33631, 33631,
	-1000, -1000, -1000, -1000, 17175, 30847, -1000, -1000, -1000, -1000,
	25159, -1000, -1000, 81952, -245, 383, -203, -3, -1000, 30847,
	30847, 30847, 381, -1000, 190, 30847, 72439, -1000, 78863, 696,
	-55, -1000, -58, 1217, -1000, 30847, -1000, -1000, 1069, -1000,
	1064, 1062, 1061, -1000, 530, 378, -1000, 179, -1000, 1664,
	526, 525, 377, -59, 374, 813, 801, 373, 366, 358,
	30847, -1000, -1000, -1000, -1000, -1000, 81870, -1000, -1000, 81575,
	-1000, -1000, 81343, -1000, -1000, 81239, -1000, -1000, -1000, 84014,
	78594, 78515, 78246, 9135, 78014, 77745, -69, 355, -1000, 2230,
	-203, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 349,
	-1000, 346, -1000, 83910, -203, 345, 4956, -1000, 33631, 33631,
	33631, -1000, 344, -1000, 82774, -1000, 83678, 24695, 24695, 24695,
	342, 83446, 30847, -203, -71, -1000, -74, -1000, -1000, 523,
	-76, 885, 24219, 36332, 15784, -1000, 885, 885, 30847, -1000,
	30847, 2032, -1000, -1000, -1000, 2027, 1910, 2038, 37212, -1000,
	-1000, -1000, -1000, 64521, -1000, 2728, 2144, -1000, 64521, -1000,
	-1000, 72439, 445, -1000, 64521, 64521, 15784, 792, -1000, 792,
	64521, 658, -1000, -1000, -1000, -1000, -1000, 340, 40325, -3,
	177, 845, -1000, 15784, 2146, 2146, 2146, 2146, -1000, -1000,
	72439, 2708, -1000, 1535, -1000, 85020, -1000, 711, 988, 520,
	-1000, 2749, 2749, -1000, 2749, 72439, 129, 23755, -1000, 1029,
	-1000, -1000, 1330, -1000, 1500, -1000, 1067, -1000, -1000, -1000,
	-1000, 23755, -1000, 1552, 72439, 72439, 59281, -1000, -1000, 1918,
	74179, 1915, 85020, 72439, -1000, -1000, 518, 517, 2014, 2012,
	948, 72439, 72439, 2011, 73744, 73309, 72439, 1611, 30847, 1703,
	1429, 138, 138, -1000, -1000, 138, 515, 1084, 59281, 59281,
	59281, 1443, -1000, -1000, -1000, -1000, -1000, 54448, -1000, -1000,
	2763, 2761, -1000, 1182, -1000, -1000, -1000, 1182, 1460, 1440,
	59281, 72439, 1540, 138, 138, -1000, -1000, 138, 514, 15784,
	1472, -1000, 1453, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	45622, 959, 861, 845, 2226, -1000, 2115, -1000, -1000, 13535,
	84246, -1000, 84246, -1000, 72439, -1000, 901, 72439, 50932, 835,
	2388, 42085, -27, 845, 48749, 59281, -13, 72439, -1000, 1460,
	2386, 445, 1906, -1000, -1000, 48749, 2835, 512, 2831, -1000,
	1822, 1905, -1000, -1000, 72874, 2453, 748, 72439, 885, 37212,
	1486, -1000, 40766, 924, 72439, 1409, 110, -1000, -1000, -1000,
	23, 72439, -1000, 2826, -1000, -1000, 183, 183, 183, -1000,
	59281, 59281, 1770, -1000, -30, -1000, -1000, 3726, 3726, 845,
	-16, 511, -1000, 770, 766, 38988, 48749, -77, -1000, -1000,
	-1000, -1000, -1000, 59281, 72439, 612, 2107, 72439, -82, -1000,
	173, 508, -1000, -1000, 845, 2225, -1000, -1000, 881, -1000,
	1159, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1, -27, -27, -1000, 854, -1000, 854, -1000, 854, -1000,
	84246, -1000, 1286, 1277, 72439, -1000, 15784, 72439, 59281, 15784,
	59281, 2272, 2269, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 973, -1000, 1411, 1777, -1000, 507, -1000, -1000, -1000,
	-1000, -1000, -1000, -1000, -1000, -1000, 1968, -1000, -17, 23291,
	1873, -1000, -1000, 59281, -4, 30847, 30847, 7284, 6391, 30847,
	33631, 33631, -1000, 30847, 5800, -1000, -1000, -1000, -1000, -1000,
	2209, 506, 30847, 85020, 4933, 4850, -1000, 338, 77666, 434,
	-1000, 30847, -1000, 335, 22827, -1000, 83110, -14, -83, -1000,
	10827, -203, -84, -1000, -1000, 707, -1000, 2409, -1000, 30847,
	83342, 1955, 1504, 1398, 1297, 2749, 2784, 13086, -1000, 43402,
	887, 1738, -1000, -1000, 2749, 816, -1000, -1000, -1000, 816,
	-1000, 81007, -1000, -1000, -1000, -1000, 85020, 85020, 30847, 30847,
	-1000, 30847, 30847, 30847, -1000, -1000, 30847, -1000, -1000, 2207,
	30847, -1000, 85020, 85020, 33631, 33631, 33631, 33631, 33631, 33631,
	33631, 33631, 33631, 33631, 33631, 33631, 33631, 33631, 33631, 33631,
	33631, 33631, 33631, 2010, 33631, 2723, 2723, 2723, -1000, 2201,
	2207, 30847, 30847, 85020, 333, 330, 328, -1000, 30847, -203,
	-1000, -1000, 3726, -1000, 2147, -1000, 30847, -1000, -123, -1000,
	2013, -1000, -1000, 2147, 2147, -90, 84246, 37212, 37212, -1000,
	505, 30847, 2015, -1000, -1000, 694, -243, -1000, 762, -1000,
	-1000, -1000, -1000, -1000, 445, -1000, -1000, -1000, 147, 64521,
	64521, 693, -1000, -91, -1000, -1000, -92, -1000, 2681, 327,
	15784, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -27,
	1764, 2783, -1000, 2758, 700, 692, 2749, 322, 321, 308,
	-27, 72439, -1000, -19, -1000, -1000, -1000, 30847, -1000, -1000,
	2553, 1060, 1058, -1000, 2382, -1000, 1901, -1000, 929, -1000,
	1431, -1000, 30847, 30847, 503, 502, 2819, 1493, 2815, 952,
	2375, 1770, 2374, 1770, -1000, -1000, 818, -1000, 84246, 501,
	500, -1000, -22, 1365, 877, -1000, -1000, 30847, 30847, 64086,
	-1000, 379, 2561, -5, -1000, 1033, -1000, -1000, -1000, -1000,
	1460, 1031, -1000, -1000, -1000, 862, -1000, -1000, 30847, -1000,
	-23, 1028, -1000, -1000, -1000, 45173, -1000, -1000, 48749, 845,
	-1000, 2814, 2813, 2811, 305, -100, -26, 85020, 2680, 1811,
	524, 59281, 784, -1000, 2728, -1000, -1000, -1000, -1000, 59281,
	2679, 2373, 861, -1000, 2810, -1000, 59281, 2361, 1818, 1898,
	1988, 748, 50062, -1000, 861, 1738, -46, -1000, 1409, 22351,
	2552, -101, -1000, -1000, -1000, 885, 42963, 37212, 30847, 2809,
	-102, -1000, -1000, -1000, -1000, -1000, 182, -1000, -1000, -1000,
	-1000, 63651, 63651, 48749, 48749, 48749, 845, 72439, 72439, 50932,
	2808, 499, 72439, 72439, 498, -1000, 72439, 72439, 2807, 48749,
	-1000, 138, -1000, 1756, 59281, 12637, -1000, -1000, -1000, -1000,
	-1000, 854, -1000, -1000, 1560, 1853, 1560, 1404, 1399, -1000,
	1769, -1000, -1000, -1000, -1000, 2068, 2556, 15784, 2651, 9898,
	30847, 30847, 270, 4094, 3913, 9898, 30847, 30847, 85020, 84814,
	-103, 30847, 30847, -1000, 30847, 682, 84246, 2782, 30847, 299,
	298, -1000, -1000, -1000, 2740, -1000, -1000, -1000, 84246, 30847,
	-1000, -1000, -1000, -1000, -1000, -1000, -1000, 295, -1000, 130,
	-1000, -1000, -1000, 77224, -1000, 30847, 294, 291, -1000, -1000,
	-1000, 289, 283, 9816, 8510, 80712, 80630, 80335, 84246, 2201,
	84246, -1000, -1000, 905, 905, 1164, 1164, 1164, 1164, 2723,
	1066, 671, 626, 3810, 3810, 3810, 279, 880, 880, 3810,
	3810, 3810, 2182, 2018, 497, 5507, -1000, -1000, 84246, 84246,
	281, -1000, -1000, -1000, -203, 280, 2141, 2625, 84246, -1000,
	37212, 2141, 2141, -1000, -1000, 1910, 72439, 84246, 37212, -1000,
	2144, -1000, 11286, -1000, 15784, -1000, -1000, -1000, -1000, 2728,
	-1000, 40325, -1000, 492, -1000, 24, -1000, -1000, 681, 2803,
	628, 276, -1000, -1000, -1000, -27, 84246, 72439, 72439, 72439,
	2360, -1000, 3596, -1000, 948, 80103, -108, -1000, 82542, 30847,
	72439, -1000, -1000, 1499, 2090, 986, -1000, 2590, 72439, -1000,
	72439, -1000, -1000, 72439, 72439, 59281, 2347, -110, 84246, -28,
	-1000, 760, -1000, 1190, -1000, 12188, 59281, 59281, 2344, -111,
	15784, -1000, -1000, -30, -1000, -1000, -1000, -1000, 2103, -1000,
	62332, 1760, 138, -1000, 63212, 2802, 491, -1000, 1744, -1000,
	672, 1460, 138, 59281, -1000, -1000, 941, 15784, 59281, 2357,
	1992, 748, 50062, -1000, 1109, 2066, -1000, -31, -1000, 482,
	138, 1738, -1000, -46, 84246, -1000, 756, -1000, -1000, -116,
	-1000, -1000, 251, -1000, 2511, 2510, -1000, -1000, 30847, 489,
	488, 72439, 2507, -1000, -1000, -117, -1000, 1750, -1000, -1000,
	-1000, -1000, -1000, 15784, 1352, -1000, 483, 481, -1000, -1000,
	-1000, -1000, 2556, 9898, 9898, 30847, 30847, 30847, 9898, 84814,
	-118, -1000, 9898, 9898, -203, -1000, -1000, 83110, -1000, -1000,
	-1000, 84246, -1000, 11739, 1576, -1000, 79999, -1000, -1000, -1000,
	-1000, 30847, 30847, -1000, -1000, -1000, -1000, -1000, 33631, 2165,
	480, 85020, -1000, -1000, 843, 30847, 30847, 2013, 843, 843,
	-1000, -127, -1000, -1000, -1000, 2728, 24, -1000, -1000, 2801,
	15784, 436, -1000, 2796, -1000, -1000, -1000, -1000, 72439, -1000,
	72439, -1000, 15784, 72439, 2166, 1892, -1000, -1000, 2009, 476,
	33631, 59281, 726, 2181, 1555, 30847, 1873, -128, -130, 1891,
	-1000, -1000, 1890, 30847, -1000, 85020, 472, 1770, 1770, -136,
	-137, -1000, 30847, 1027, 72439, 21887, -1000, 2795, 2561, -1000,
	-1000, 30847, 1026, -1000, 1540, 2124, -1000, -1000, -1000, -1000,
	2007, -1000, -1000, 72439, 2006, 846, -143, -1000, 755, 753,
	-1000, 50932, 835, 825, -1000, -1000, -1000, 445, 471, 72439,
	1815, 468, 15784, -1000, 748, 50062, -1000, 2453, 1409, -1000,
	2472, 72439, 2546, -1000, 2066, 465, -1000, 845, 464, 462,
	-149, 30847, 30847, -150, 461, 845, -139, -1000, 673, 634,
	-1000, -1000, 59281, 59281, 30847, 30847, -1000, 9898, 9898, 9898,
	-1000, 250, -1000, -1000, 1738, 2618, -1000, 79767, 79472, 3991,
	33631, 85020, -151, -1000, 72439, 84246, -203, -1000, -1000, -1000,
	659, -1000, 2794, -1000, -1000, 1869, -1000, -1000, -1000, 72439,
	1897, -1000, 947, 30847, 5507, 460, 30847, -1000, -1000, 2070,
	2218, 2103, 459, -1000, -1000, -1000, -1000, -1000, 935, 1489,
	-1000, -1000, 84246, 2598, 30847, -1000, -1000, 456, 454, 84246,
	452, 747, 2158, -1000, -1000, -1000, 84246, 448, 835, -1000,
	1634, 1760, 447, -1000, -1000, 1775, 2065, -1000, 63212, 34544,
	34544, 249, 2670, 825, -1000, 2733, -1000, 2669, 30847, -1000,
	59281, 30847, 1808, 50062, -1000, 1988, -1000, 1139, -156, 72439,
	1409, -1000, -1000, 48749, 48749, 935, -157, -163, -1000, 48749,
	-1000, 1750, -1000, 72439, -1000, 72439, -1000, -1000, -164, -165,
	-1000, 1782, 30847, -1000, -1000, 3991, -166, -1000, -162, -1000,
	2667, -1000, -1000, -1000, -1000, 2340, 2139, 79390, 1962, 72439,
	79095, 2198, -1000, -1000, 1540, 72439, 2103, 2136, 59281, 946,
	15784, -171, 1560, 1560, 30847, 21423, 1622, 30847, 1775, 59281,
	72439, -1000, 2584, -1000, 2506, -1000, -1000, -1000, 2103, 138,
	-1000, -1000, 138, -173, 941, -174, 59281, -1000, 1992, 1251,
	-1000, 885, -1000, -1000, -180, -181, 1555, 935, -1000, -182,
	-1000, -187, -197, -1000, -1000, 247, 31775, 31775, 31775, -203,
	-1000, 72439, 446, 2313, 851, -1000, 1787, 1662, 237, 955,
	-1000, -1000, 2181, -202, -1000, 847, 445, -1000, 30847, -1000,
	935, -209, -1000, 922, -214, -1000, 909, -216, -1000, 2157,
	-1000, -217, -1000, 444, -219, -1000, -1000, 1893, -1000, 1540,
	846, -1000, 935, 439, 1555, 438, -1000, 42963, -1000, 845,
	845, 2103, 1555, 845, -1000, -1000, -1000, 2434, -1000, 34993,
	1774, 1389, 82247, 2434, 2434, -1000, -1000, 72439, 2645, -1000,
	1799, 1798, 1281, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
	-1000, 2643, 1962, 84246, 2103, -1000, 1560, 2122, -1000, 1560,
	2153, -1000, 1614, -1000, 72439, -1000, 72439, 1353, 1342, 2792,
	835, 1775, 1555, 30847, 2103, 30847, -188, -1000, -1000, 1540,
	2103, -1000, -1000, 1400, 2699, -1000, -1000, -1000, -1000, -1000,
	-1000, -1000, -1000, 746, -1000, 2493, -1000, 971, 1858, 1858,
	744, 1787, -1000, -1000, 435, -1000, 433, -1000, -222, -1000,
	-1000, 2791, -1000, 1775, -1000, 2103, -225, 1540, -230, -1000,
	-1000, 1540, 1360, -1000, -1000, 1709, 31311, 30847, -1000, 2711,
	-1000, -1000, 2036, -1000, 30847, 2181, 30847, 30847, 1727, -1000,
	-1000, 1540, 935, 884, 1555, -1000, -1000, -1000, -1000, 84246,
	-1000, -1000, -1000, 84246, -1000, -231, -232, -1000, -1000, -1000,
	884, 1555, -1000, 2790, 2103, 1540, 1022, -1000, 2103, -1000,
	1540, -1000, 418, 1540, 884, 30847, 884, -1000, -233, -1000,
	1540, -1000,
}

var sqlPgo = [...]int{
	0, 3382, 3379, 3378, 3377, 3376, 3369, 3367, 3365, 3361,
	3359, 3357, 3354, 3353, 3349, 3346, 3345, 3343, 3340, 3338,
	3337, 3336, 3333, 3332, 3331, 3330, 3329, 3328, 3326, 3324,
	3323, 3322, 3321, 3320, 3319, 3317, 3314, 3313, 3312, 3311,
	3310, 3309, 3308, 3307, 3306, 3305, 3304, 35, 3303, 3300,
	3299, 3298, 3297, 3292, 3288, 3287, 3286, 3280, 3279, 3277,
	3275, 3273, 3272, 3271, 3270, 39, 3269, 232, 3268, 3267,
	3266, 3265, 3264, 3263, 3262, 3258, 3255, 230, 3254, 126,
	3253, 3252, 3250, 3246, 3245, 229, 3242, 3241, 3240, 3236,
	3230, 3228, 3227, 3226, 165, 206, 3224, 297, 3223, 3222,
	3220, 3219, 3218, 3217, 3215, 3213, 3212, 3209, 208, 3208,
	227, 3207, 3206, 3205, 3204, 3201, 3200, 3199, 3198, 3197,
	3196, 3194, 3193, 3192, 3190, 3189, 3188, 3186, 3185, 3184,
	3183, 3182, 3181, 3180, 3179, 3178, 3176, 3175, 3174, 233,
	151, 3172, 3171, 225, 223, 3157, 3154, 135, 103, 100,
	141, 3149, 122, 50, 3146, 15, 131, 212, 6480, 198,
	3145, 3139, 3135, 207, 160, 3133, 199, 3132, 3131, 3130,
	3123, 78, 66, 140, 145, 142, 137, 91, 3122, 3120,
	74, 63, 37, 30, 3118, 3117, 3116, 1980, 95, 3115,
	221, 201, 134, 3114, 3113, 3112, 1686, 3109, 139, 80,
	104, 44, 86, 3108, 117, 26, 3107, 143, 56, 3106,
	130, 70, 34, 5693, 5122, 3104, 93, 236, 73, 119,
	192, 191, 127, 170, 167, 144, 83, 3103, 216, 3102,
	148, 128, 3101, 3097, 3096, 55, 161, 75, 3095, 7,
	3, 12, 132, 11, 98, 16, 3094, 14, 3093, 3092,
	3091, 3089, 33, 133, 3088, 118, 57, 3087, 17, 3086,
	23, 175, 3085, 184, 101, 3084, 3083, 214, 164, 158,
	3082, 18, 190, 3081, 3080, 3079, 3078, 3077, 107, 24,
	105, 3076, 3074, 110, 197, 162, 3072, 51, 3071, 138,
	76, 114, 228, 97, 181, 94, 194, 149, 195, 3070,
	3069, 3068, 155, 3066, 3065, 180, 154, 3064, 3063, 168,
	234, 32, 59, 196, 60, 159, 129, 3062, 166, 3061,
	3060, 3059, 235, 150, 177, 1, 4, 67, 92, 31,
	10, 187, 120, 209, 85, 3057, 3129, 1862, 1517, 41,
	115, 90, 62, 99, 121, 224, 53, 3056, 3053, 1815,
	3052, 3051, 3050, 3048, 153, 3047, 3046, 3044, 116, 112,
	146, 3043, 123, 68, 13, 89, 210, 226, 88, 176,
	169, 211, 3034, 152, 3030, 69, 113, 3028, 163, 205,
	96, 3025, 171, 109, 3020, 186, 3018, 3017, 3016, 3010,
	3009, 3008, 3006, 136, 3003, 111, 3001, 3000, 220, 157,
	2996, 218, 188, 193, 79, 36, 2995, 65, 215, 2990,
	173, 38, 2986, 345, 58, 0, 6846, 4845, 5956, 2985,
	5846, 2983, 172, 108, 2982, 2980, 2978, 82, 2977, 64,
	2976, 2975, 54, 2974, 19, 8, 9, 20, 21, 1325,
	336, 2971, 2970, 84, 102, 124, 2969, 231, 182, 2968,
	2967, 2965, 72, 2964, 25, 2962, 29, 2961, 2960, 27,
	6, 22, 2959, 2956, 204, 2952, 203, 2951, 2950, 2709,
	106, 2949, 2948, 219, 87, 2947, 217, 2946, 2656, 147,
	183, 2942, 2939, 2938, 2937, 213, 2934, 2933, 28, 5,
	2931, 2929, 174, 2, 2582, 2926, 2925, 71, 2922, 2917,
	156,
}

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

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

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

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

var sqlTok1 = [...]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, 3, 3, 464, 3, 470, 465, 3,
	475, 476, 468, 466, 480, 467, 477, 469, 3, 3,
	3, 3, 3, 3, 3, 3, 3, 3, 483, 3,
	456, 458, 457, 461, 479, 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, 473, 3, 474, 471, 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, 481, 463, 482, 459,
}

var sqlTok2 = [...]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, 83, 84, 85, 86, 87, 88, 89, 90, 91,
	92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
	102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
	112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
	122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
	132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
	142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
	152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
	162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
	172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
	182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
	192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
	202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
	212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
	222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
	232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
	242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
	252, 253, 254, 255, 256, 257,
}

var sqlTok3 = [...]int{
	57600, 258, 57601, 259, 57602, 260, 57603, 261, 57604, 262,
	57605, 263, 57606, 264, 57607, 265, 57608, 266, 57609, 267,
	57610, 268, 57611, 269, 57612, 270, 57613, 271, 57614, 272,
	57615, 273, 57616, 274, 57617, 275, 57618, 276, 57619, 277,
	57620, 278, 57621, 279, 57622, 280, 57623, 281, 57624, 282,
	57625, 283, 57626, 284, 57627, 285, 57628, 286, 57629, 287,
	57630, 288, 57631, 289, 57632, 290, 57633, 291, 57634, 292,
	57635, 293, 57636, 294, 57637, 295, 57638, 296, 57639, 297,
	57640, 298, 57641, 299, 57642, 300, 57643, 301, 57644, 302,
	57645, 303, 57646, 304, 57647, 305, 57648, 306, 57649, 307,
	57650, 308, 57651, 309, 57652, 310, 57653, 311, 57654, 312,
	57655, 313, 57656, 314, 57657, 315, 57658, 316, 57659, 317,
	57660, 318, 57661, 319, 57662, 320, 57663, 321, 57664, 322,
	57665, 323, 57666, 324, 57667, 325, 57668, 326, 57669, 327,
	57670, 328, 57671, 329, 57672, 330, 57673, 331, 57674, 332,
	57675, 333, 57676, 334, 57677, 335, 57678, 336, 57679, 337,
	57680, 338, 57681, 339, 57682, 340, 57683, 341, 57684, 342,
	57685, 343, 57686, 344, 57687, 345, 57688, 346, 57689, 347,
	57690, 348, 57691, 349, 57692, 350, 57693, 351, 57694, 352,
	57695, 353, 57696, 354, 57697, 355, 57698, 356, 57699, 357,
	57700, 358, 57701, 359, 57702, 360, 57703, 361, 57704, 362,
	57705, 363, 57706, 364, 57707, 365, 57708, 366, 57709, 367,
	57710, 368, 57711, 369, 57712, 370, 57713, 371, 57714, 372,
	57715, 373, 57716, 374, 57717, 375, 57718, 376, 57719, 377,
	57720, 378, 57721, 379, 57722, 380, 57723, 381, 57724, 382,
	57725, 383, 57726, 384, 57727, 385, 57728, 386, 57729, 387,
	57730, 388, 57731, 389, 57732, 390, 57733, 391, 57734, 392,
	57735, 393, 57736, 394, 57737, 395, 57738, 396, 57739, 397,
	57740, 398, 57741, 399, 57742, 400, 57743, 401, 57744, 402,
	57745, 403, 57746, 404, 57747, 405, 57748, 406, 57749, 407,
	57750, 408, 57751, 409, 57752, 410, 57753, 411, 57754, 412,
	57755, 413, 57756, 414, 57757, 415, 57758, 416, 57759, 417,
	57760, 418, 57761, 419, 57762, 420, 57763, 421, 57764, 422,
	57765, 423, 57766, 424, 57767, 425, 57768, 426, 57769, 427,
	57770, 428, 57771, 429, 57772, 430, 57773, 431, 57774, 432,
	57775, 433, 57776, 434, 57777, 435, 57778, 436, 57779, 437,
	57780, 438, 57781, 439, 57782, 440, 57783, 441, 57784, 442,
	57785, 443, 57786, 444, 57787, 445, 57788, 446, 57789, 447,
	57790, 448, 57791, 449, 57792, 450, 57793, 451, 57794, 452,
	57795, 453, 57796, 454, 57797, 455, 57798, 460, 57799, 462,
	57800, 472, 57801, 478, 0,
}

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

//line yaccpar:1

/*	parser for yacc output	*/

var (
	sqlDebug        = 0
	sqlErrorVerbose = false
)

type sqlLexer interface {
	Lex(lval *sqlSymType) int
	Error(s string)
}

type sqlParser interface {
	Parse(sqlLexer) int
	Lookahead() int
}

type sqlParserImpl struct {
	lval  sqlSymType
	stack [sqlInitialStackSize]sqlSymType
	char  int
}

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

func sqlNewParser() sqlParser {
	return &sqlParserImpl{}
}

const sqlFlag = -1000

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

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

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

	if !sqlErrorVerbose {
		return "syntax error"
	}

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

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

	// To match Bison, suggest at most four expected tokens.
	expected := make([]int, 0, 4)

	// Look for shiftable tokens.
	base := sqlPact[state]
	for tok := TOKSTART; tok-1 < len(sqlToknames); tok++ {
		if n := base + tok; n >= 0 && n < sqlLast && sqlChk[sqlAct[n]] == tok {
			if len(expected) == cap(expected) {
				return res
			}
			expected = append(expected, tok)
		}
	}

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

		// Look for tokens that we accept or reduce.
		for i += 2; sqlExca[i] >= 0; i += 2 {
			tok := sqlExca[i]
			if tok < TOKSTART || sqlExca[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 sqlExca[i+1] != 0 {
			return res
		}
	}

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

func sqllex1(lex sqlLexer, lval *sqlSymType) (char, token int) {
	token = 0
	char = lex.Lex(lval)
	if char <= 0 {
		token = sqlTok1[0]
		goto out
	}
	if char < len(sqlTok1) {
		token = sqlTok1[char]
		goto out
	}
	if char >= sqlPrivate {
		if char < sqlPrivate+len(sqlTok2) {
			token = sqlTok2[char-sqlPrivate]
			goto out
		}
	}
	for i := 0; i < len(sqlTok3); i += 2 {
		token = sqlTok3[i+0]
		if token == char {
			token = sqlTok3[i+1]
			goto out
		}
	}

out:
	if token == 0 {
		token = sqlTok2[1] /* unknown char */
	}
	if sqlDebug >= 3 {
		__yyfmt__.Printf("lex %s(%d)\n", sqlTokname(token), uint(char))
	}
	return char, token
}

func sqlParse(sqllex sqlLexer) int {
	return sqlNewParser().Parse(sqllex)
}

func (sqlrcvr *sqlParserImpl) Parse(sqllex sqlLexer) int {
	var sqln int
	var sqlVAL sqlSymType
	var sqlDollar []sqlSymType
	_ = sqlDollar // silence set and not used
	sqlS := sqlrcvr.stack[:]

	Nerrs := 0   /* number of errors */
	Errflag := 0 /* error recovery flag */
	sqlstate := 0
	sqlrcvr.char = -1
	sqltoken := -1 // sqlrcvr.char translated into internal numbering
	defer func() {
		// Make sure we report no lookahead when not parsing.
		sqlstate = -1
		sqlrcvr.char = -1
		sqltoken = -1
	}()
	sqlp := -1
	goto sqlstack

ret0:
	return 0

ret1:
	return 1

sqlstack:
	/* put a state and value onto the stack */
	if sqlDebug >= 4 {
		__yyfmt__.Printf("char %v in %v\n", sqlTokname(sqltoken), sqlStatname(sqlstate))
	}

	sqlp++
	if sqlp >= len(sqlS) {
		nyys := make([]sqlSymType, len(sqlS)*2)
		copy(nyys, sqlS)
		sqlS = nyys
	}
	sqlS[sqlp] = sqlVAL
	sqlS[sqlp].yys = sqlstate

sqlnewstate:
	sqln = sqlPact[sqlstate]
	if sqln <= sqlFlag {
		goto sqldefault /* simple state */
	}
	if sqlrcvr.char < 0 {
		sqlrcvr.char, sqltoken = sqllex1(sqllex, &sqlrcvr.lval)
	}
	sqln += sqltoken
	if sqln < 0 || sqln >= sqlLast {
		goto sqldefault
	}
	sqln = sqlAct[sqln]
	if sqlChk[sqln] == sqltoken { /* valid shift */
		sqlrcvr.char = -1
		sqltoken = -1
		sqlVAL = sqlrcvr.lval
		sqlstate = sqln
		if Errflag > 0 {
			Errflag--
		}
		goto sqlstack
	}

sqldefault:
	/* default state action */
	sqln = sqlDef[sqlstate]
	if sqln == -2 {
		if sqlrcvr.char < 0 {
			sqlrcvr.char, sqltoken = sqllex1(sqllex, &sqlrcvr.lval)
		}

		/* look through exception table */
		xi := 0
		for {
			if sqlExca[xi+0] == -1 && sqlExca[xi+1] == sqlstate {
				break
			}
			xi += 2
		}
		for xi += 2; ; xi += 2 {
			sqln = sqlExca[xi+0]
			if sqln < 0 || sqln == sqltoken {
				break
			}
		}
		sqln = sqlExca[xi+1]
		if sqln < 0 {
			goto ret0
		}
	}
	if sqln == 0 {
		/* error ... attempt to resume parsing */
		switch Errflag {
		case 0: /* brand new error */
			sqllex.Error(sqlErrorMessage(sqlstate, sqltoken))
			Nerrs++
			if sqlDebug >= 1 {
				__yyfmt__.Printf("%s", sqlStatname(sqlstate))
				__yyfmt__.Printf(" saw %s\n", sqlTokname(sqltoken))
			}
			fallthrough

		case 1, 2: /* incompletely recovered error ... try again */
			Errflag = 3

			/* find a state where "error" is a legal shift action */
			for sqlp >= 0 {
				sqln = sqlPact[sqlS[sqlp].yys] + sqlErrCode
				if sqln >= 0 && sqln < sqlLast {
					sqlstate = sqlAct[sqln] /* simulate a shift of "error" */
					if sqlChk[sqlstate] == sqlErrCode {
						goto sqlstack
					}
				}

				/* the current p has no shift on "error", pop stack */
				if sqlDebug >= 2 {
					__yyfmt__.Printf("error recovery pops state %d\n", sqlS[sqlp].yys)
				}
				sqlp--
			}
			/* there is no state on the stack with an error shift ... abort */
			goto ret1

		case 3: /* no shift yet; clobber input char */
			if sqlDebug >= 2 {
				__yyfmt__.Printf("error recovery discards %s\n", sqlTokname(sqltoken))
			}
			if sqltoken == sqlEofCode {
				goto ret1
			}
			sqlrcvr.char = -1
			sqltoken = -1
			goto sqlnewstate /* try again in the same state */
		}
	}

	/* reduction by production sqln */
	if sqlDebug >= 2 {
		__yyfmt__.Printf("reduce %v in:\n\t%v\n", sqln, sqlStatname(sqlstate))
	}

	sqlnt := sqln
	sqlpt := sqlp
	_ = sqlpt // guard against "declared and not used"

	sqlp -= sqlR2[sqln]
	// sqlp is now the index of $0. Perform the default action. Iff the
	// reduced production is ε, $1 is possibly out of range.
	if sqlp+1 >= len(sqlS) {
		nyys := make([]sqlSymType, len(sqlS)*2)
		copy(nyys, sqlS)
		sqlS = nyys
	}
	sqlVAL = sqlS[sqlp+1]

	/* consult goto table to find next state */
	sqln = sqlR1[sqln]
	sqlg := sqlPgo[sqln]
	sqlj := sqlg + sqlS[sqlp].yys + 1

	if sqlj >= sqlLast {
		sqlstate = sqlAct[sqlg]
	} else {
		sqlstate = sqlAct[sqlj]
		if sqlChk[sqlstate] != -sqln {
			sqlstate = sqlAct[sqlg]
		}
	}
	// dummy call; replaced with literal code
	switch sqlnt {

	case 1:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1127
		{
			sqllex.(*lexer).SetStmt(sqlDollar[1].union.stmt())
		}
	case 2:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1132
		{
			return helpWith(sqllex, "")
		}
	case 7:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1136
		{
			return helpWith(sqllex, "EXECUTE")
		}
	case 9:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1137
		{
			return helpWith(sqllex, "DEALLOCATE")
		}
	case 11:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1138
		{
			return helpWith(sqllex, "DISCARD")
		}
	case 13:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1139
		{
			return helpWith(sqllex, "GRANT")
		}
	case 15:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1140
		{
			return helpWith(sqllex, "PREPARE")
		}
	case 17:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1141
		{
			return helpWith(sqllex, "REVOKE")
		}
	case 19:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1142
		{
			return helpWith(sqllex, "SAVEPOINT")
		}
	case 21:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1143
		{
			return helpWith(sqllex, "RELEASE")
		}
	case 25:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:1148
		{
			sqlVAL.union.val = tree.Statement(nil)
		}
	case 28:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1157
		{
			return helpWith(sqllex, "ALTER ROLE")
		}
	case 29:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1158
		{
			return helpWith(sqllex, "ALTER")
		}
	case 31:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1161
		{
			return helpWith(sqllex, "ALTER TABLE")
		}
	case 33:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1162
		{
			return helpWith(sqllex, "ALTER INDEX")
		}
	case 35:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1163
		{
			return helpWith(sqllex, "ALTER VIEW")
		}
	case 37:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1164
		{
			return helpWith(sqllex, "ALTER SEQUENCE")
		}
	case 39:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1165
		{
			return helpWith(sqllex, "ALTER DATABASE")
		}
	case 41:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1166
		{
			return helpWith(sqllex, "ALTER RANGE")
		}
	case 43:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1167
		{
			return helpWith(sqllex, "ALTER PARTITION")
		}
	case 52:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1221
		{
			return helpWith(sqllex, "ALTER TABLE")
		}
	case 54:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1247
		{
			return helpWith(sqllex, "ALTER PARTITION")
		}
	case 56:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1258
		{
			return helpWith(sqllex, "ALTER VIEW")
		}
	case 59:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1273
		{
			return helpWith(sqllex, "ALTER SEQUENCE")
		}
	case 60:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1277
		{
			sqlVAL.union.val = &tree.AlterSequence{Name: sqlDollar[3].union.unresolvedObjectName(), Options: sqlDollar[4].union.seqOpts(), IfExists: false}
		}
	case 61:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1281
		{
			sqlVAL.union.val = &tree.AlterSequence{Name: sqlDollar[5].union.unresolvedObjectName(), Options: sqlDollar[6].union.seqOpts(), IfExists: true}
		}
	case 64:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1295
		{
			return helpWith(sqllex, "ALTER DATABASE")
		}
	case 66:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1314
		{
			return helpWith(sqllex, "ALTER RANGE")
		}
	case 75:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1346
		{
			return helpWith(sqllex, "ALTER INDEX")
		}
	case 76:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1350
		{
			sqlVAL.union.val = &tree.AlterTable{Table: sqlDollar[3].union.unresolvedObjectName(), IfExists: false, Cmds: sqlDollar[4].union.alterTableCmds()}
		}
	case 77:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1354
		{
			sqlVAL.union.val = &tree.AlterTable{Table: sqlDollar[5].union.unresolvedObjectName(), IfExists: true, Cmds: sqlDollar[6].union.alterTableCmds()}
		}
	case 78:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1360
		{
			sqlVAL.union.val = &tree.AlterIndex{Index: sqlDollar[3].union.tableIndexName(), IfExists: false, Cmds: sqlDollar[4].union.alterIndexCmds()}
		}
	case 79:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1364
		{
			sqlVAL.union.val = &tree.AlterIndex{Index: sqlDollar[5].union.tableIndexName(), IfExists: true, Cmds: sqlDollar[6].union.alterIndexCmds()}
		}
	case 80:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1370
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Split{
				TableOrIndex: tree.TableIndexName{Table: name},
				Rows:         sqlDollar[6].union.slct(),
				ExpireExpr:   tree.Expr(nil),
			}
		}
	case 81:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:1379
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Split{
				TableOrIndex: tree.TableIndexName{Table: name},
				Rows:         sqlDollar[6].union.slct(),
				ExpireExpr:   sqlDollar[9].union.expr(),
			}
		}
	case 82:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1390
		{
			sqlVAL.union.val = &tree.Split{TableOrIndex: sqlDollar[3].union.tableIndexName(), Rows: sqlDollar[6].union.slct(), ExpireExpr: tree.Expr(nil)}
		}
	case 83:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:1394
		{
			sqlVAL.union.val = &tree.Split{TableOrIndex: sqlDollar[3].union.tableIndexName(), Rows: sqlDollar[6].union.slct(), ExpireExpr: sqlDollar[9].union.expr()}
		}
	case 84:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1400
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Unsplit{
				TableOrIndex: tree.TableIndexName{Table: name},
				Rows:         sqlDollar[6].union.slct(),
			}
		}
	case 85:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1408
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Unsplit{
				TableOrIndex: tree.TableIndexName{Table: name},
				All:          true,
			}
		}
	case 86:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1418
		{
			sqlVAL.union.val = &tree.Unsplit{TableOrIndex: sqlDollar[3].union.tableIndexName(), Rows: sqlDollar[6].union.slct()}
		}
	case 87:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1422
		{
			sqlVAL.union.val = &tree.Unsplit{TableOrIndex: sqlDollar[3].union.tableIndexName(), All: true}
		}
	case 90:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1432
		{

			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Relocate{
				TableOrIndex: tree.TableIndexName{Table: name},
				Rows:         sqlDollar[5].union.slct(),
			}
		}
	case 91:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1443
		{

			sqlVAL.union.val = &tree.Relocate{TableOrIndex: sqlDollar[3].union.tableIndexName(), Rows: sqlDollar[5].union.slct()}
		}
	case 92:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1450
		{

			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Relocate{
				TableOrIndex:  tree.TableIndexName{Table: name},
				Rows:          sqlDollar[6].union.slct(),
				RelocateLease: true,
			}
		}
	case 93:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1462
		{

			sqlVAL.union.val = &tree.Relocate{TableOrIndex: sqlDollar[3].union.tableIndexName(), Rows: sqlDollar[6].union.slct(), RelocateLease: true}
		}
	case 94:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1469
		{
			s := sqlDollar[4].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{NamedZone: tree.UnrestrictedName(sqlDollar[3].str)}
			sqlVAL.union.val = s
		}
	case 95:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1477
		{

			sqlVAL.union.val = &tree.SetZoneConfig{YAMLConfig: sqlDollar[4].union.expr()}
		}
	case 96:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1482
		{
			sqlVAL.union.val = &tree.SetZoneConfig{Options: sqlDollar[4].union.kvOptions()}
		}
	case 97:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1486
		{

			sqlVAL.union.val = &tree.SetZoneConfig{SetDefault: true}
		}
	case 98:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1491
		{
			sqlVAL.union.val = &tree.SetZoneConfig{YAMLConfig: tree.DNull}
		}
	case 99:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1497
		{
			s := sqlDollar[4].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{Database: tree.Name(sqlDollar[3].str)}
			sqlVAL.union.val = s
		}
	case 100:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1505
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			s := sqlDollar[4].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{
				TableOrIndex: tree.TableIndexName{Table: name},
			}
			sqlVAL.union.val = s
		}
	case 101:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1516
		{
			s := sqlDollar[4].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{
				TableOrIndex: sqlDollar[3].union.tableIndexName(),
			}
			sqlVAL.union.val = s
		}
	case 102:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:1526
		{
			name := sqlDollar[6].union.unresolvedObjectName().ToTableName()
			s := sqlDollar[7].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{
				TableOrIndex: tree.TableIndexName{Table: name},
				Partition:    tree.Name(sqlDollar[3].str),
			}
			sqlVAL.union.val = s
		}
	case 103:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:1536
		{
			s := sqlDollar[7].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{
				TableOrIndex: sqlDollar[6].union.tableIndexName(),
				Partition:    tree.Name(sqlDollar[3].str),
			}
			sqlVAL.union.val = s
		}
	case 104:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:1545
		{
			name := sqlDollar[6].union.unresolvedObjectName().ToTableName()
			s := sqlDollar[9].union.setZoneConfig()
			s.ZoneSpecifier = tree.ZoneSpecifier{
				TableOrIndex: tree.TableIndexName{Table: name},
				Partition:    tree.Name(sqlDollar[3].str),
			}
			s.AllIndexes = true
			sqlVAL.union.val = s
		}
	case 105:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:1556
		{
			err := errors.New("index name should not be specified in ALTER PARTITION ... OF TABLE")
			err = errors.WithHint(err, "try ALTER PARTITION ... OF INDEX")
			return setErr(sqllex, err)
		}
	case 106:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:1562
		{
			err := errors.New("index wildcard unsupported in ALTER PARTITION ... OF TABLE")
			err = errors.WithHint(err, "try ALTER PARTITION <partition> OF INDEX <tablename>@*")
			return setErr(sqllex, err)
		}
	case 107:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1570
		{
			sqlVAL.union.val = []tree.KVOption{tree.KVOption{Key: tree.Name(strings.Join(sqlDollar[1].union.strs(), "."))}}
		}
	case 108:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1574
		{
			sqlVAL.union.val = []tree.KVOption{tree.KVOption{Key: tree.Name(strings.Join(sqlDollar[1].union.strs(), ".")), Value: sqlDollar[3].union.expr()}}
		}
	case 109:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1578
		{
			sqlVAL.union.val = append(sqlDollar[1].union.kvOptions(), tree.KVOption{Key: tree.Name(strings.Join(sqlDollar[3].union.strs(), ".")), Value: sqlDollar[5].union.expr()})
		}
	case 110:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:1582
		{
			sqlVAL.union.val = append(sqlDollar[1].union.kvOptions(), tree.KVOption{Key: tree.Name(strings.Join(sqlDollar[3].union.strs(), "."))})
		}
	case 111:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1588
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Scatter{TableOrIndex: tree.TableIndexName{Table: name}}
		}
	case 112:
		sqlDollar = sqlS[sqlpt-12 : sqlpt+1]
//line sql-gen.y:1593
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Scatter{
				TableOrIndex: tree.TableIndexName{Table: name},
				From:         sqlDollar[7].union.exprs(),
				To:           sqlDollar[11].union.exprs(),
			}
		}
	case 113:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1604
		{
			sqlVAL.union.val = &tree.Scatter{TableOrIndex: sqlDollar[3].union.tableIndexName()}
		}
	case 114:
		sqlDollar = sqlS[sqlpt-12 : sqlpt+1]
//line sql-gen.y:1608
		{
			sqlVAL.union.val = &tree.Scatter{TableOrIndex: sqlDollar[3].union.tableIndexName(), From: sqlDollar[7].union.exprs(), To: sqlDollar[11].union.exprs()}
		}
	case 115:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1614
		{
			sqlVAL.union.val = tree.AlterTableCmds{sqlDollar[1].union.alterTableCmd()}
		}
	case 116:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1618
		{
			sqlVAL.union.val = append(sqlDollar[1].union.alterTableCmds(), sqlDollar[3].union.alterTableCmd())
		}
	case 117:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1625
		{
			sqlVAL.union.val = &tree.AlterTableRenameColumn{Column: tree.Name(sqlDollar[3].str), NewName: tree.Name(sqlDollar[5].str)}
		}
	case 118:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1630
		{
			sqlVAL.union.val = &tree.AlterTableRenameConstraint{Constraint: tree.Name(sqlDollar[3].str), NewName: tree.Name(sqlDollar[5].str)}
		}
	case 119:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1635
		{
			sqlVAL.union.val = &tree.AlterTableAddColumn{IfNotExists: false, ColumnDef: sqlDollar[2].union.colDef()}
		}
	case 120:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1640
		{
			sqlVAL.union.val = &tree.AlterTableAddColumn{IfNotExists: true, ColumnDef: sqlDollar[5].union.colDef()}
		}
	case 121:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1645
		{
			sqlVAL.union.val = &tree.AlterTableAddColumn{IfNotExists: false, ColumnDef: sqlDollar[3].union.colDef()}
		}
	case 122:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1650
		{
			sqlVAL.union.val = &tree.AlterTableAddColumn{IfNotExists: true, ColumnDef: sqlDollar[6].union.colDef()}
		}
	case 123:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1655
		{
			sqlVAL.union.val = &tree.AlterTableSetDefault{Column: tree.Name(sqlDollar[3].str), Default: sqlDollar[4].union.expr()}
		}
	case 124:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1660
		{
			sqlVAL.union.val = &tree.AlterTableDropNotNull{Column: tree.Name(sqlDollar[3].str)}
		}
	case 125:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1665
		{
			sqlVAL.union.val = &tree.AlterTableDropStored{Column: tree.Name(sqlDollar[3].str)}
		}
	case 126:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1670
		{
			sqlVAL.union.val = &tree.AlterTableSetNotNull{Column: tree.Name(sqlDollar[3].str)}
		}
	case 127:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1675
		{
			sqlVAL.union.val = &tree.AlterTableDropColumn{
				IfExists:     true,
				Column:       tree.Name(sqlDollar[5].str),
				DropBehavior: sqlDollar[6].union.dropBehavior(),
			}
		}
	case 128:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1684
		{
			sqlVAL.union.val = &tree.AlterTableDropColumn{
				IfExists:     false,
				Column:       tree.Name(sqlDollar[3].str),
				DropBehavior: sqlDollar[4].union.dropBehavior(),
			}
		}
	case 129:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:1696
		{
			sqlVAL.union.val = &tree.AlterTableAlterColumnType{
				Column:    tree.Name(sqlDollar[3].str),
				ToType:    sqlDollar[6].union.colType(),
				Collation: sqlDollar[7].str,
				Using:     sqlDollar[8].union.expr(),
			}
		}
	case 130:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1706
		{
			sqlVAL.union.val = &tree.AlterTableAddConstraint{
				ConstraintDef:      sqlDollar[2].union.constraintDef(),
				ValidationBehavior: sqlDollar[3].union.validationBehavior(),
			}
		}
	case 131:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1713
		{
			return unimplementedWithIssueDetail(sqllex, 31632, "alter constraint")
		}
	case 132:
		sqlDollar = sqlS[sqlpt-10 : sqlpt+1]
//line sql-gen.y:1717
		{
			sqlVAL.union.val = &tree.AlterTableAlterPrimaryKey{
				Columns:    sqlDollar[7].union.idxElems(),
				Sharded:    sqlDollar[9].union.shardedIndexDef(),
				Interleave: sqlDollar[10].union.interleave(),
			}
		}
	case 133:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1725
		{
			sqlVAL.union.val = &tree.AlterTableValidateConstraint{
				Constraint: tree.Name(sqlDollar[3].str),
			}
		}
	case 134:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1732
		{
			sqlVAL.union.val = &tree.AlterTableDropConstraint{
				IfExists:     true,
				Constraint:   tree.Name(sqlDollar[5].str),
				DropBehavior: sqlDollar[6].union.dropBehavior(),
			}
		}
	case 135:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1741
		{
			sqlVAL.union.val = &tree.AlterTableDropConstraint{
				IfExists:     false,
				Constraint:   tree.Name(sqlDollar[3].str),
				DropBehavior: sqlDollar[4].union.dropBehavior(),
			}
		}
	case 136:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1750
		{
			sqlVAL.union.val = &tree.AlterTableSetAudit{Mode: sqlDollar[3].union.auditMode()}
		}
	case 137:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1755
		{
			sqlVAL.union.val = &tree.AlterTablePartitionBy{
				PartitionBy: sqlDollar[1].union.partitionBy(),
			}
		}
	case 138:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1762
		{

			sqlVAL.union.val = &tree.AlterTableInjectStats{
				Stats: sqlDollar[3].union.expr(),
			}
		}
	case 139:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1770
		{
			sqlVAL.union.val = tree.AuditModeReadWrite
		}
	case 140:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1771
		{
			sqlVAL.union.val = tree.AuditModeDisable
		}
	case 141:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1775
		{
			sqlVAL.union.val = tree.AlterIndexCmds{sqlDollar[1].union.alterIndexCmd()}
		}
	case 142:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1779
		{
			sqlVAL.union.val = append(sqlDollar[1].union.alterIndexCmds(), sqlDollar[3].union.alterIndexCmd())
		}
	case 143:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1785
		{
			sqlVAL.union.val = &tree.AlterIndexPartitionBy{
				PartitionBy: sqlDollar[1].union.partitionBy(),
			}
		}
	case 144:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1793
		{
			sqlVAL.union.val = sqlDollar[3].union.expr()
		}
	case 145:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1797
		{
			sqlVAL.union.val = nil
		}
	case 146:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1803
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 147:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:1807
		{
			sqlVAL.union.val = nil
		}
	case 148:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1814
		{
			sqlVAL.union.val = tree.DropCascade
		}
	case 149:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1818
		{
			sqlVAL.union.val = tree.DropRestrict
		}
	case 150:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:1822
		{
			sqlVAL.union.val = tree.DropDefault
		}
	case 151:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1828
		{
			sqlVAL.union.val = tree.ValidationSkip
		}
	case 152:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:1832
		{
			sqlVAL.union.val = tree.ValidationDefault
		}
	case 153:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1858
		{
			sqlVAL.union.val = &tree.Backup{DescriptorCoverage: tree.AllDescriptors, To: sqlDollar[3].union.partitionedBackup(), IncrementalFrom: sqlDollar[5].union.exprs(), AsOf: sqlDollar[4].union.asOfClause(), Options: sqlDollar[6].union.kvOptions()}
		}
	case 154:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:1862
		{
			sqlVAL.union.val = &tree.Backup{Targets: sqlDollar[2].union.targetList(), To: sqlDollar[4].union.partitionedBackup(), IncrementalFrom: sqlDollar[6].union.exprs(), AsOf: sqlDollar[5].union.asOfClause(), Options: sqlDollar[7].union.kvOptions()}
		}
	case 155:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1865
		{
			return helpWith(sqllex, "BACKUP")
		}
	case 156:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:1888
		{
			sqlVAL.union.val = &tree.Restore{DescriptorCoverage: tree.AllDescriptors, From: sqlDollar[3].union.partitionedBackups(), AsOf: sqlDollar[4].union.asOfClause(), Options: sqlDollar[5].union.kvOptions()}
		}
	case 157:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1892
		{
			sqlVAL.union.val = &tree.Restore{Targets: sqlDollar[2].union.targetList(), From: sqlDollar[4].union.partitionedBackups(), AsOf: sqlDollar[5].union.asOfClause(), Options: sqlDollar[6].union.kvOptions()}
		}
	case 158:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1895
		{
			return helpWith(sqllex, "RESTORE")
		}
	case 159:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1899
		{
			sqlVAL.union.val = tree.PartitionedBackup{sqlDollar[1].union.expr()}
		}
	case 160:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1903
		{
			sqlVAL.union.val = tree.PartitionedBackup(sqlDollar[2].union.exprs())
		}
	case 161:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1909
		{
			sqlVAL.union.val = []tree.PartitionedBackup{sqlDollar[1].union.partitionedBackup()}
		}
	case 162:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:1913
		{
			sqlVAL.union.val = append(sqlDollar[1].union.partitionedBackups(), sqlDollar[3].union.partitionedBackup())
		}
	case 163:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:1919
		{
			sqlVAL.str = strings.ToUpper(sqlDollar[1].str)
		}
	case 164:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:1956
		{

			sqlVAL.union.val = &tree.Import{Bundle: true, FileFormat: sqlDollar[2].str, Files: tree.Exprs{sqlDollar[4].union.expr()}, Options: sqlDollar[6].union.kvOptions()}
		}
	case 165:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:1961
		{
			sqlVAL.union.val = &tree.Import{Bundle: true, FileFormat: sqlDollar[2].str, Files: tree.Exprs{sqlDollar[3].union.expr()}, Options: sqlDollar[4].union.kvOptions()}
		}
	case 166:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:1965
		{

			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Import{Bundle: true, Table: &name, FileFormat: sqlDollar[5].str, Files: tree.Exprs{sqlDollar[7].union.expr()}, Options: sqlDollar[9].union.kvOptions()}
		}
	case 167:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:1971
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Import{Bundle: true, Table: &name, FileFormat: sqlDollar[5].str, Files: tree.Exprs{sqlDollar[6].union.expr()}, Options: sqlDollar[7].union.kvOptions()}
		}
	case 168:
		sqlDollar = sqlS[sqlpt-12 : sqlpt+1]
//line sql-gen.y:1976
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Import{Table: &name, CreateFile: sqlDollar[6].union.expr(), FileFormat: sqlDollar[7].str, Files: sqlDollar[10].union.exprs(), Options: sqlDollar[12].union.kvOptions()}
		}
	case 169:
		sqlDollar = sqlS[sqlpt-12 : sqlpt+1]
//line sql-gen.y:1981
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Import{Table: &name, CreateDefs: sqlDollar[5].union.tblDefs(), FileFormat: sqlDollar[7].str, Files: sqlDollar[10].union.exprs(), Options: sqlDollar[12].union.kvOptions()}
		}
	case 170:
		sqlDollar = sqlS[sqlpt-12 : sqlpt+1]
//line sql-gen.y:1986
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Import{Table: &name, Into: true, IntoCols: sqlDollar[5].union.nameList(), FileFormat: sqlDollar[7].str, Files: sqlDollar[10].union.exprs(), Options: sqlDollar[12].union.kvOptions()}
		}
	case 171:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:1991
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Import{Table: &name, Into: true, IntoCols: nil, FileFormat: sqlDollar[4].str, Files: sqlDollar[7].union.exprs(), Options: sqlDollar[9].union.kvOptions()}
		}
	case 172:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:1995
		{
			return helpWith(sqllex, "IMPORT")
		}
	case 173:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2011
		{
			sqlVAL.union.val = &tree.Export{Query: sqlDollar[7].union.slct(), FileFormat: sqlDollar[3].str, File: sqlDollar[4].union.expr(), Options: sqlDollar[5].union.kvOptions()}
		}
	case 174:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2014
		{
			return helpWith(sqllex, "EXPORT")
		}
	case 175:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2018
		{
			sqlVAL.union.val = tree.NewStrVal(sqlDollar[1].str)
		}
	case 176:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2022
		{
			p := sqlDollar[1].union.placeholder()
			sqllex.(*lexer).UpdateNumPlaceholders(p)
			sqlVAL.union.val = p
		}
	case 177:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2030
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 178:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2034
		{
			sqlVAL.union.val = append(sqlDollar[1].union.exprs(), sqlDollar[3].union.expr())
		}
	case 179:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2040
		{
			sqlVAL.union.val = sqlDollar[3].union.exprs()
		}
	case 180:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2044
		{
			sqlVAL.union.val = tree.Exprs(nil)
		}
	case 181:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2050
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: sqlDollar[3].union.expr()}
		}
	case 182:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2054
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str)}
		}
	case 183:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2058
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: sqlDollar[3].union.expr()}
		}
	case 184:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2062
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str)}
		}
	case 185:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2068
		{
			sqlVAL.union.val = []tree.KVOption{sqlDollar[1].union.kvOption()}
		}
	case 186:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2072
		{
			sqlVAL.union.val = append(sqlDollar[1].union.kvOptions(), sqlDollar[3].union.kvOption())
		}
	case 187:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2078
		{
			sqlVAL.union.val = sqlDollar[2].union.kvOptions()
		}
	case 188:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2082
		{
			sqlVAL.union.val = sqlDollar[4].union.kvOptions()
		}
	case 189:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2086
		{
			sqlVAL.union.val = nil
		}
	case 190:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2092
		{
			name := sqlDollar[2].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CopyFrom{
				Table:   name,
				Columns: sqlDollar[3].union.nameList(),
				Stdin:   true,
				Options: sqlDollar[6].union.kvOptions(),
			}
		}
	case 192:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2106
		{
			return helpWith(sqllex, "CANCEL JOBS")
		}
	case 194:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2107
		{
			return helpWith(sqllex, "CANCEL QUERIES")
		}
	case 196:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2108
		{
			return helpWith(sqllex, "CANCEL SESSIONS")
		}
	case 197:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2109
		{
			return helpWith(sqllex, "CANCEL")
		}
	case 198:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2119
		{
			sqlVAL.union.val = &tree.ControlJobs{
				Jobs: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[3].union.expr()}}},
				},
				Command: tree.CancelJob,
			}
		}
	case 199:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2127
		{
			return helpWith(sqllex, "CANCEL JOBS")
		}
	case 200:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2129
		{
			sqlVAL.union.val = &tree.ControlJobs{Jobs: sqlDollar[3].union.slct(), Command: tree.CancelJob}
		}
	case 201:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2132
		{
			return helpWith(sqllex, "CANCEL JOBS")
		}
	case 202:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2142
		{
			sqlVAL.union.val = &tree.CancelQueries{
				Queries: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[3].union.expr()}}},
				},
				IfExists: false,
			}
		}
	case 203:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2151
		{
			sqlVAL.union.val = &tree.CancelQueries{
				Queries: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[5].union.expr()}}},
				},
				IfExists: true,
			}
		}
	case 204:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2159
		{
			return helpWith(sqllex, "CANCEL QUERIES")
		}
	case 205:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2161
		{
			sqlVAL.union.val = &tree.CancelQueries{Queries: sqlDollar[3].union.slct(), IfExists: false}
		}
	case 206:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2165
		{
			sqlVAL.union.val = &tree.CancelQueries{Queries: sqlDollar[5].union.slct(), IfExists: true}
		}
	case 207:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2168
		{
			return helpWith(sqllex, "CANCEL QUERIES")
		}
	case 208:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2178
		{
			sqlVAL.union.val = &tree.CancelSessions{
				Sessions: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[3].union.expr()}}},
				},
				IfExists: false,
			}
		}
	case 209:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2187
		{
			sqlVAL.union.val = &tree.CancelSessions{
				Sessions: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[5].union.expr()}}},
				},
				IfExists: true,
			}
		}
	case 210:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2195
		{
			return helpWith(sqllex, "CANCEL SESSIONS")
		}
	case 211:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2197
		{
			sqlVAL.union.val = &tree.CancelSessions{Sessions: sqlDollar[3].union.slct(), IfExists: false}
		}
	case 212:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2201
		{
			sqlVAL.union.val = &tree.CancelSessions{Sessions: sqlDollar[5].union.slct(), IfExists: true}
		}
	case 213:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2204
		{
			return helpWith(sqllex, "CANCEL SESSIONS")
		}
	case 214:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2208
		{
			sqlVAL.union.val = &tree.CommentOnDatabase{Name: tree.Name(sqlDollar[4].str), Comment: sqlDollar[6].union.strPtr()}
		}
	case 215:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2212
		{
			sqlVAL.union.val = &tree.CommentOnTable{Table: sqlDollar[4].union.unresolvedObjectName(), Comment: sqlDollar[6].union.strPtr()}
		}
	case 216:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2216
		{
			varName, err := sqlDollar[4].union.unresolvedName().NormalizeVarName()
			if err != nil {
				return setErr(sqllex, err)
			}
			columnItem, ok := varName.(*tree.ColumnItem)
			if !ok {
				sqllex.Error(fmt.Sprintf("invalid column name: %q", tree.ErrString(sqlDollar[4].union.unresolvedName())))
				return 1
			}
			sqlVAL.union.val = &tree.CommentOnColumn{ColumnItem: columnItem, Comment: sqlDollar[6].union.strPtr()}
		}
	case 217:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2229
		{
			sqlVAL.union.val = &tree.CommentOnIndex{Index: sqlDollar[4].union.tableIndexName(), Comment: sqlDollar[6].union.strPtr()}
		}
	case 218:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2235
		{
			t := sqlDollar[1].str
			sqlVAL.union.val = &t
		}
	case 219:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2240
		{
			var str *string
			sqlVAL.union.val = str
		}
	case 221:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2252
		{
			return helpWith(sqllex, "CREATE ROLE")
		}
	case 224:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2254
		{
			return helpWith(sqllex, "CREATE STATISTICS")
		}
	case 225:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2255
		{
		}
	case 226:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2256
		{
			return helpWith(sqllex, "CREATE")
		}
	case 227:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2259
		{
			return unimplemented(sqllex, "create aggregate")
		}
	case 228:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2260
		{
			return unimplemented(sqllex, "create cast")
		}
	case 229:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2261
		{
			return unimplementedWithIssueDetail(sqllex, 28296, "create constraint")
		}
	case 230:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2262
		{
			return unimplemented(sqllex, "create conversion")
		}
	case 231:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2263
		{
			return unimplemented(sqllex, "create def conv")
		}
	case 232:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2264
		{
			return unimplemented(sqllex, "create extension "+sqlDollar[6].str)
		}
	case 233:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2265
		{
			return unimplemented(sqllex, "create extension "+sqlDollar[3].str)
		}
	case 234:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2266
		{
			return unimplemented(sqllex, "create foreign table")
		}
	case 235:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2267
		{
			return unimplemented(sqllex, "create fdw")
		}
	case 236:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2268
		{
			return unimplementedWithIssueDetail(sqllex, 17511, "create function")
		}
	case 237:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2269
		{
			return unimplementedWithIssueDetail(sqllex, 17511, "create function")
		}
	case 238:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2270
		{
			return unimplementedWithIssueDetail(sqllex, 17511, "create language "+sqlDollar[6].str)
		}
	case 239:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2271
		{
			return unimplementedWithIssue(sqllex, 41649)
		}
	case 240:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2272
		{
			return unimplemented(sqllex, "create operator")
		}
	case 241:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2273
		{
			return unimplemented(sqllex, "create publication")
		}
	case 242:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2274
		{
			return unimplemented(sqllex, "create rule")
		}
	case 243:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2275
		{
			return unimplemented(sqllex, "create server")
		}
	case 244:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2276
		{
			return unimplemented(sqllex, "create subscription")
		}
	case 245:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2277
		{
			return unimplementedWithIssueDetail(sqllex, 7821, "create text")
		}
	case 246:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2278
		{
			return unimplementedWithIssueDetail(sqllex, 28296, "create")
		}
	case 247:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2281
		{
		}
	case 248:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2282
		{
		}
	case 249:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2285
		{
		}
	case 250:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2286
		{
		}
	case 251:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2289
		{
		}
	case 252:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2290
		{
		}
	case 253:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2293
		{
			return unimplemented(sqllex, "drop aggregate")
		}
	case 254:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2294
		{
			return unimplemented(sqllex, "drop cast")
		}
	case 255:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2295
		{
			return unimplemented(sqllex, "drop collation")
		}
	case 256:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2296
		{
			return unimplemented(sqllex, "drop conversion")
		}
	case 257:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2297
		{
			return unimplementedWithIssueDetail(sqllex, 27796, "drop")
		}
	case 258:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2298
		{
			return unimplemented(sqllex, "drop extension "+sqlDollar[5].str)
		}
	case 259:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2299
		{
			return unimplemented(sqllex, "drop extension "+sqlDollar[3].str)
		}
	case 260:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2300
		{
			return unimplemented(sqllex, "drop foreign table")
		}
	case 261:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2301
		{
			return unimplemented(sqllex, "drop fdw")
		}
	case 262:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2302
		{
			return unimplementedWithIssueDetail(sqllex, 17511, "drop function")
		}
	case 263:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2303
		{
			return unimplementedWithIssueDetail(sqllex, 17511, "drop language "+sqlDollar[4].str)
		}
	case 264:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2304
		{
			return unimplemented(sqllex, "drop operator")
		}
	case 265:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2305
		{
			return unimplemented(sqllex, "drop publication")
		}
	case 266:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2306
		{
			return unimplemented(sqllex, "drop rule")
		}
	case 267:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2307
		{
			return unimplementedWithIssueDetail(sqllex, 26443, "drop")
		}
	case 268:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2308
		{
			return unimplemented(sqllex, "drop server")
		}
	case 269:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2309
		{
			return unimplemented(sqllex, "drop subscription")
		}
	case 270:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2310
		{
			return unimplementedWithIssueDetail(sqllex, 7821, "drop text")
		}
	case 271:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2311
		{
			return unimplementedWithIssueDetail(sqllex, 27793, "drop type")
		}
	case 272:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2312
		{
			return unimplementedWithIssueDetail(sqllex, 28296, "drop")
		}
	case 275:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2316
		{
			return helpWith(sqllex, "CREATE DATABASE")
		}
	case 277:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2317
		{
			return helpWith(sqllex, "CREATE INDEX")
		}
	case 279:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2318
		{
			return helpWith(sqllex, "CREATE SCHEMA")
		}
	case 281:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2319
		{
			return helpWith(sqllex, "CREATE TABLE")
		}
	case 283:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2320
		{
			return helpWith(sqllex, "CREATE TABLE")
		}
	case 284:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2322
		{
			return helpWith(sqllex, "CREATE TABLE")
		}
	case 285:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2323
		{
		}
	case 287:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2324
		{
			return helpWith(sqllex, "CREATE VIEW")
		}
	case 289:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2325
		{
			return helpWith(sqllex, "CREATE SEQUENCE")
		}
	case 290:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2335
		{
			sqlVAL.union.val = &tree.CreateStats{
				Name:        tree.Name(sqlDollar[3].str),
				ColumnNames: sqlDollar[4].union.nameList(),
				Table:       sqlDollar[6].union.tblExpr(),
				Options:     *sqlDollar[7].union.createStatsOptions(),
			}
		}
	case 291:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2343
		{
			return helpWith(sqllex, "CREATE STATISTICS")
		}
	case 292:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2347
		{
			sqlVAL.union.val = sqlDollar[2].union.nameList()
		}
	case 293:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2351
		{
			sqlVAL.union.val = tree.NameList(nil)
		}
	case 294:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2357
		{
			sqlVAL.union.val = sqlDollar[1].union.unresolvedObjectName()
		}
	case 295:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2361
		{

			sqlVAL.union.val = &tree.TableRef{
				TableID: sqlDollar[2].union.int64(),
			}
		}
	case 296:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2370
		{

			sqlVAL.union.val = sqlDollar[3].union.createStatsOptions()
		}
	case 297:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2377
		{
			sqlVAL.union.val = &tree.CreateStatsOptions{
				AsOf: sqlDollar[1].union.asOfClause(),
			}
		}
	case 298:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2383
		{
			sqlVAL.union.val = &tree.CreateStatsOptions{}
		}
	case 299:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2389
		{
			sqlVAL.union.val = sqlDollar[1].union.createStatsOptions()
		}
	case 300:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2393
		{
			a := sqlDollar[1].union.createStatsOptions()
			b := sqlDollar[2].union.createStatsOptions()
			if err := a.CombineWith(b); err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = a
		}
	case 301:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2404
		{

			value, _ := constant.Float64Val(sqlDollar[2].union.numVal().AsConstantValue())
			if value < 0.0 || value >= 1.0 {
				sqllex.Error("THROTTLING fraction must be between 0 and 1")
				return 1
			}
			sqlVAL.union.val = &tree.CreateStatsOptions{
				Throttling: value,
			}
		}
	case 302:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2416
		{
			sqlVAL.union.val = &tree.CreateStatsOptions{
				AsOf: sqlDollar[1].union.asOfClause(),
			}
		}
	case 303:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2424
		{
			sqlVAL.union.val = &tree.CreateChangefeed{
				Targets: sqlDollar[4].union.targetList(),
				SinkURI: sqlDollar[5].union.expr(),
				Options: sqlDollar[6].union.kvOptions(),
			}
		}
	case 304:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2432
		{

			sqlVAL.union.val = &tree.CreateChangefeed{
				Targets: sqlDollar[4].union.targetList(),
				Options: sqlDollar[5].union.kvOptions(),
			}
		}
	case 305:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2442
		{
			sqlVAL.union.val = tree.TargetList{Tables: sqlDollar[1].union.tablePatterns()}
		}
	case 306:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2446
		{
			sqlVAL.union.val = tree.TargetList{Tables: sqlDollar[2].union.tablePatterns()}
		}
	case 307:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2452
		{
			sqlVAL.union.val = tree.TablePatterns{sqlDollar[1].union.unresolvedObjectName().ToUnresolvedName()}
		}
	case 308:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2456
		{
			sqlVAL.union.val = append(sqlDollar[1].union.tablePatterns(), sqlDollar[3].union.unresolvedObjectName().ToUnresolvedName())
		}
	case 309:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2463
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 310:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2467
		{

			sqlVAL.union.val = nil
		}
	case 311:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:2481
		{
			sqlVAL.union.val = &tree.Delete{
				With:      sqlDollar[1].union.with(),
				Table:     sqlDollar[4].union.tblExpr(),
				Where:     tree.NewWhere(tree.AstWhere, sqlDollar[6].union.expr()),
				OrderBy:   sqlDollar[7].union.orderBy(),
				Limit:     sqlDollar[8].union.limit(),
				Returning: sqlDollar[9].union.retClause(),
			}
		}
	case 312:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2491
		{
			return helpWith(sqllex, "DELETE")
		}
	case 313:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2494
		{
			return unimplementedWithIssueDetail(sqllex, 40963, "delete using")
		}
	case 314:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2495
		{
		}
	case 315:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2503
		{
			sqlVAL.union.val = &tree.Discard{Mode: tree.DiscardModeAll}
		}
	case 316:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2506
		{
			return unimplemented(sqllex, "discard plans")
		}
	case 317:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2507
		{
			return unimplemented(sqllex, "discard sequences")
		}
	case 318:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2508
		{
			return unimplemented(sqllex, "discard temp")
		}
	case 319:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2509
		{
			return unimplemented(sqllex, "discard temp")
		}
	case 320:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2510
		{
			return helpWith(sqllex, "DISCARD")
		}
	case 323:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2519
		{
			return helpWith(sqllex, "DROP ROLE")
		}
	case 324:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2520
		{
		}
	case 325:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2521
		{
			return helpWith(sqllex, "DROP")
		}
	case 327:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2524
		{
			return helpWith(sqllex, "DROP DATABASE")
		}
	case 329:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2525
		{
			return helpWith(sqllex, "DROP INDEX")
		}
	case 331:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2526
		{
			return helpWith(sqllex, "DROP TABLE")
		}
	case 333:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2527
		{
			return helpWith(sqllex, "DROP VIEW")
		}
	case 335:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2528
		{
			return helpWith(sqllex, "DROP SEQUENCE")
		}
	case 336:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2536
		{
			sqlVAL.union.val = &tree.DropView{Names: sqlDollar[3].union.tableNames(), IfExists: false, DropBehavior: sqlDollar[4].union.dropBehavior()}
		}
	case 337:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2540
		{
			sqlVAL.union.val = &tree.DropView{Names: sqlDollar[5].union.tableNames(), IfExists: true, DropBehavior: sqlDollar[6].union.dropBehavior()}
		}
	case 338:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2543
		{
			return helpWith(sqllex, "DROP VIEW")
		}
	case 339:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2551
		{
			sqlVAL.union.val = &tree.DropSequence{Names: sqlDollar[3].union.tableNames(), IfExists: false, DropBehavior: sqlDollar[4].union.dropBehavior()}
		}
	case 340:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2555
		{
			sqlVAL.union.val = &tree.DropSequence{Names: sqlDollar[5].union.tableNames(), IfExists: true, DropBehavior: sqlDollar[6].union.dropBehavior()}
		}
	case 341:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2558
		{
			return helpWith(sqllex, "DROP VIEW")
		}
	case 342:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2566
		{
			sqlVAL.union.val = &tree.DropTable{Names: sqlDollar[3].union.tableNames(), IfExists: false, DropBehavior: sqlDollar[4].union.dropBehavior()}
		}
	case 343:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2570
		{
			sqlVAL.union.val = &tree.DropTable{Names: sqlDollar[5].union.tableNames(), IfExists: true, DropBehavior: sqlDollar[6].union.dropBehavior()}
		}
	case 344:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2573
		{
			return helpWith(sqllex, "DROP TABLE")
		}
	case 345:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2581
		{
			sqlVAL.union.val = &tree.DropIndex{
				IndexList:    sqlDollar[4].union.newTableIndexNames(),
				IfExists:     false,
				DropBehavior: sqlDollar[5].union.dropBehavior(),
				Concurrently: sqlDollar[3].union.bool(),
			}
		}
	case 346:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2590
		{
			sqlVAL.union.val = &tree.DropIndex{
				IndexList:    sqlDollar[6].union.newTableIndexNames(),
				IfExists:     true,
				DropBehavior: sqlDollar[7].union.dropBehavior(),
				Concurrently: sqlDollar[3].union.bool(),
			}
		}
	case 347:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2598
		{
			return helpWith(sqllex, "DROP INDEX")
		}
	case 348:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2606
		{
			sqlVAL.union.val = &tree.DropDatabase{
				Name:         tree.Name(sqlDollar[3].str),
				IfExists:     false,
				DropBehavior: sqlDollar[4].union.dropBehavior(),
			}
		}
	case 349:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2614
		{
			sqlVAL.union.val = &tree.DropDatabase{
				Name:         tree.Name(sqlDollar[5].str),
				IfExists:     true,
				DropBehavior: sqlDollar[6].union.dropBehavior(),
			}
		}
	case 350:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2621
		{
			return helpWith(sqllex, "DROP DATABASE")
		}
	case 351:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2629
		{
			sqlVAL.union.val = &tree.DropRole{Names: sqlDollar[3].union.exprs(), IfExists: false, IsRole: sqlDollar[2].union.bool()}
		}
	case 352:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2633
		{
			sqlVAL.union.val = &tree.DropRole{Names: sqlDollar[5].union.exprs(), IfExists: true, IsRole: sqlDollar[2].union.bool()}
		}
	case 353:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2636
		{
			return helpWith(sqllex, "DROP ROLE")
		}
	case 354:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2640
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = tree.TableNames{name}
		}
	case 355:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2645
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = append(sqlDollar[1].union.tableNames(), name)
		}
	case 356:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2668
		{
			var err error
			sqlVAL.union.val, err = tree.MakeExplain(nil, sqlDollar[2].union.stmt())
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 357:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2675
		{
			return helpWith(sqllex, "EXPLAIN")
		}
	case 358:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2677
		{
			var err error
			sqlVAL.union.val, err = tree.MakeExplain(sqlDollar[3].union.strs(), sqlDollar[5].union.stmt())
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 359:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2685
		{
			var err error
			sqlVAL.union.val, err = tree.MakeExplain([]string{"DISTSQL", "ANALYZE"}, sqlDollar[3].union.stmt())
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 360:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2693
		{
			var err error
			sqlVAL.union.val, err = tree.MakeExplain([]string{"DISTSQL", "ANALYZE"}, sqlDollar[3].union.stmt())
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 361:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2701
		{
			var err error
			sqlVAL.union.val, err = tree.MakeExplain(append(sqlDollar[4].union.strs(), "ANALYZE"), sqlDollar[6].union.stmt())
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 362:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2709
		{
			var err error
			sqlVAL.union.val, err = tree.MakeExplain(append(sqlDollar[4].union.strs(), "ANALYZE"), sqlDollar[6].union.stmt())
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 363:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2720
		{
			return helpWith(sqllex, "EXPLAIN")
		}
	case 366:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2724
		{
			return helpWith(sqllex, "BACKUP")
		}
	case 370:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2727
		{
			return helpWith(sqllex, "DELETE")
		}
	case 373:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2729
		{
			return helpWith(sqllex, "EXPLAIN")
		}
	case 375:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2730
		{
			return helpWith(sqllex, "IMPORT")
		}
	case 377:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2731
		{
			return helpWith(sqllex, "INSERT")
		}
	case 379:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2732
		{
			return helpWith(sqllex, "PAUSE JOBS")
		}
	case 382:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2734
		{
			return helpWith(sqllex, "RESTORE")
		}
	case 384:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2735
		{
			return helpWith(sqllex, "RESUME JOBS")
		}
	case 386:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2736
		{
			return helpWith(sqllex, "EXPORT")
		}
	case 388:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2739
		{
			sqlVAL.union.val = sqlDollar[1].union.slct()
		}
	case 392:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2744
		{
			return helpWith(sqllex, "TRUNCATE")
		}
	case 394:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2745
		{
			return helpWith(sqllex, "UPDATE")
		}
	case 396:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2746
		{
			return helpWith(sqllex, "UPSERT")
		}
	case 398:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2751
		{
			return helpWith(sqllex, "DELETE")
		}
	case 400:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2752
		{
			return helpWith(sqllex, "EXPLAIN")
		}
	case 402:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2753
		{
			return helpWith(sqllex, "INSERT")
		}
	case 403:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2755
		{
			sqlVAL.union.val = sqlDollar[1].union.slct()
		}
	case 406:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2759
		{
			return helpWith(sqllex, "UPDATE")
		}
	case 408:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2760
		{
			return helpWith(sqllex, "UPSERT")
		}
	case 409:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2764
		{
			sqlVAL.union.val = []string{sqlDollar[1].str}
		}
	case 410:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2768
		{
			sqlVAL.union.val = append(sqlDollar[1].union.strs(), sqlDollar[3].str)
		}
	case 411:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2778
		{
			sqlVAL.union.val = &tree.Prepare{
				Name:      tree.Name(sqlDollar[2].str),
				Types:     sqlDollar[3].union.colTypes(),
				Statement: sqlDollar[5].union.stmt(),
			}
		}
	case 412:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2786
		{

			sqlVAL.union.val = &tree.Prepare{
				Name:      tree.Name(sqlDollar[2].str),
				Types:     sqlDollar[3].union.colTypes(),
				Statement: &tree.CannedOptPlan{Plan: sqlDollar[7].str},
			}
		}
	case 413:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2794
		{
			return helpWith(sqllex, "PREPARE")
		}
	case 414:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2798
		{
			sqlVAL.union.val = sqlDollar[2].union.colTypes()
		}
	case 415:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2802
		{
			sqlVAL.union.val = []*types.T(nil)
		}
	case 416:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2812
		{
			sqlVAL.union.val = &tree.Execute{
				Name:   tree.Name(sqlDollar[2].str),
				Params: sqlDollar[3].union.exprs(),
			}
		}
	case 417:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:2819
		{

			sqlVAL.union.val = &tree.Execute{
				Name:        tree.Name(sqlDollar[2].str),
				Params:      sqlDollar[3].union.exprs(),
				DiscardRows: true,
			}
		}
	case 418:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2827
		{
			return helpWith(sqllex, "EXECUTE")
		}
	case 419:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2831
		{
			sqlVAL.union.val = sqlDollar[2].union.exprs()
		}
	case 420:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:2835
		{
			sqlVAL.union.val = tree.Exprs(nil)
		}
	case 421:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2845
		{
			sqlVAL.union.val = &tree.Deallocate{Name: tree.Name(sqlDollar[2].str)}
		}
	case 422:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2849
		{
			sqlVAL.union.val = &tree.Deallocate{Name: tree.Name(sqlDollar[3].str)}
		}
	case 423:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2853
		{
			sqlVAL.union.val = &tree.Deallocate{}
		}
	case 424:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2857
		{
			sqlVAL.union.val = &tree.Deallocate{}
		}
	case 425:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2860
		{
			return helpWith(sqllex, "DEALLOCATE")
		}
	case 426:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2880
		{
			sqlVAL.union.val = &tree.Grant{Privileges: sqlDollar[2].union.privilegeList(), Grantees: sqlDollar[6].union.nameList(), Targets: sqlDollar[4].union.targetList()}
		}
	case 427:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2884
		{
			sqlVAL.union.val = &tree.GrantRole{Roles: sqlDollar[2].union.nameList(), Members: sqlDollar[4].union.nameList(), AdminOption: false}
		}
	case 428:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2888
		{
			sqlVAL.union.val = &tree.GrantRole{Roles: sqlDollar[2].union.nameList(), Members: sqlDollar[4].union.nameList(), AdminOption: true}
		}
	case 429:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2891
		{
			return helpWith(sqllex, "GRANT")
		}
	case 430:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:2911
		{
			sqlVAL.union.val = &tree.Revoke{Privileges: sqlDollar[2].union.privilegeList(), Grantees: sqlDollar[6].union.nameList(), Targets: sqlDollar[4].union.targetList()}
		}
	case 431:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2915
		{
			sqlVAL.union.val = &tree.RevokeRole{Roles: sqlDollar[2].union.nameList(), Members: sqlDollar[4].union.nameList(), AdminOption: false}
		}
	case 432:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:2919
		{
			sqlVAL.union.val = &tree.RevokeRole{Roles: sqlDollar[5].union.nameList(), Members: sqlDollar[7].union.nameList(), AdminOption: true}
		}
	case 433:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2922
		{
			return helpWith(sqllex, "REVOKE")
		}
	case 434:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2927
		{
			sqlVAL.union.val = privilege.List{privilege.ALL}
		}
	case 435:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2931
		{
			privList, err := privilege.ListFromStrings(sqlDollar[1].union.nameList().ToStrings())
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = privList
		}
	case 436:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:2941
		{
			sqlVAL.union.val = tree.NameList{tree.Name(sqlDollar[1].str)}
		}
	case 437:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2945
		{
			sqlVAL.union.val = append(sqlDollar[1].union.nameList(), tree.Name(sqlDollar[3].str))
		}
	case 443:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2959
		{
			return helpWith(sqllex, "RESET")
		}
	case 445:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2960
		{
			return helpWith(sqllex, "RESET CLUSTER SETTING")
		}
	case 446:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2968
		{
			sqlVAL.union.val = &tree.SetVar{Name: sqlDollar[2].str, Values: tree.Exprs{tree.DefaultVal{}}}
		}
	case 447:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2972
		{
			sqlVAL.union.val = &tree.SetVar{Name: sqlDollar[3].str, Values: tree.Exprs{tree.DefaultVal{}}}
		}
	case 448:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2975
		{
			return helpWith(sqllex, "RESET")
		}
	case 449:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:2983
		{
			sqlVAL.union.val = &tree.SetClusterSetting{Name: strings.Join(sqlDollar[4].union.strs(), "."), Value: tree.DefaultVal{}}
		}
	case 450:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:2986
		{
			return helpWith(sqllex, "RESET CLUSTER SETTING")
		}
	case 451:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:2997
		{
			sqlVAL.union.val = &tree.SetVar{Name: "database", Values: tree.Exprs{sqlDollar[2].union.expr()}}
		}
	case 452:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3000
		{
			return helpWith(sqllex, "USE")
		}
	case 454:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3004
		{
			return helpWith(sqllex, "SET TRANSACTION")
		}
	case 455:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3005
		{
		}
	case 456:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3006
		{
			return unimplemented(sqllex, "set constraints")
		}
	case 457:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3007
		{
			return unimplementedWithIssue(sqllex, 32562)
		}
	case 459:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3011
		{
			return helpWith(sqllex, "SET SESSION")
		}
	case 461:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3012
		{
			return helpWith(sqllex, "SET CLUSTER SETTING")
		}
	case 463:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3013
		{
			return helpWith(sqllex, "USE")
		}
	case 466:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3029
		{
			return helpWith(sqllex, "SCRUB")
		}
	case 467:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3044
		{
			sqlVAL.union.val = &tree.Scrub{Typ: tree.ScrubDatabase, Database: tree.Name(sqlDollar[4].str), AsOf: sqlDollar[5].union.asOfClause()}
		}
	case 468:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3047
		{
			return helpWith(sqllex, "SCRUB DATABASE")
		}
	case 469:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3065
		{
			sqlVAL.union.val = &tree.Scrub{
				Typ:     tree.ScrubTable,
				Table:   sqlDollar[4].union.unresolvedObjectName(),
				AsOf:    sqlDollar[5].union.asOfClause(),
				Options: sqlDollar[6].union.scrubOptions(),
			}
		}
	case 470:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3073
		{
			return helpWith(sqllex, "SCRUB TABLE")
		}
	case 471:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3077
		{
			sqlVAL.union.val = sqlDollar[3].union.scrubOptions()
		}
	case 472:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:3081
		{
			sqlVAL.union.val = tree.ScrubOptions{}
		}
	case 473:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3087
		{
			sqlVAL.union.val = tree.ScrubOptions{sqlDollar[1].union.scrubOption()}
		}
	case 474:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3091
		{
			sqlVAL.union.val = append(sqlDollar[1].union.scrubOptions(), sqlDollar[3].union.scrubOption())
		}
	case 475:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3097
		{
			sqlVAL.union.val = &tree.ScrubOptionIndex{}
		}
	case 476:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3101
		{
			sqlVAL.union.val = &tree.ScrubOptionIndex{IndexNames: sqlDollar[3].union.nameList()}
		}
	case 477:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3105
		{
			sqlVAL.union.val = &tree.ScrubOptionConstraint{}
		}
	case 478:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3109
		{
			sqlVAL.union.val = &tree.ScrubOptionConstraint{ConstraintNames: sqlDollar[3].union.nameList()}
		}
	case 479:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3113
		{
			sqlVAL.union.val = &tree.ScrubOptionPhysical{}
		}
	case 480:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3124
		{
			sqlVAL.union.val = &tree.SetClusterSetting{Name: strings.Join(sqlDollar[4].union.strs(), "."), Value: sqlDollar[6].union.expr()}
		}
	case 481:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3127
		{
			return helpWith(sqllex, "SET CLUSTER SETTING")
		}
	case 484:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3137
		{
			sqlVAL.union.val = &tree.SetVar{Values: sqlDollar[4].union.exprs()}
		}
	case 485:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3153
		{
			sqlVAL.union.val = sqlDollar[3].union.stmt()
		}
	case 486:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3157
		{
			sqlVAL.union.val = sqlDollar[2].union.stmt()
		}
	case 487:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3162
		{
			sqlVAL.union.val = &tree.SetSessionCharacteristics{Modes: sqlDollar[6].union.transactionModes()}
		}
	case 488:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3179
		{
			sqlVAL.union.val = &tree.SetTransaction{Modes: sqlDollar[3].union.transactionModes()}
		}
	case 489:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3182
		{
			return helpWith(sqllex, "SET TRANSACTION")
		}
	case 490:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3184
		{
			sqlVAL.union.val = &tree.SetTransaction{Modes: sqlDollar[4].union.transactionModes()}
		}
	case 491:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3187
		{
			return helpWith(sqllex, "SET TRANSACTION")
		}
	case 492:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3191
		{

			varName := sqlDollar[1].union.strs()
			if len(varName) == 1 && varName[0] == "tracing" {
				sqlVAL.union.val = &tree.SetTracing{Values: sqlDollar[3].union.exprs()}
			} else {
				sqlVAL.union.val = &tree.SetVar{Name: strings.Join(sqlDollar[1].union.strs(), "."), Values: sqlDollar[3].union.exprs()}
			}
		}
	case 494:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3210
		{

			sqlVAL.union.val = &tree.SetVar{Name: "timezone", Values: tree.Exprs{sqlDollar[3].union.expr()}}
		}
	case 495:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3217
		{

			sqlVAL.union.val = &tree.SetVar{Name: "search_path", Values: tree.Exprs{sqlDollar[2].union.expr()}}
		}
	case 496:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3222
		{

			sqlVAL.union.val = &tree.SetSessionAuthorizationDefault{}
		}
	case 497:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3227
		{
			return unimplementedWithIssue(sqllex, 40283)
		}
	case 499:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3232
		{
			return unimplemented(sqllex, "set from current")
		}
	case 500:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3233
		{
			return helpWith(sqllex, "SET SESSION")
		}
	case 501:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3241
		{

			sqlVAL.union.val = &tree.SetVar{Name: "client_encoding", Values: tree.Exprs{sqlDollar[2].union.expr()}}
		}
	case 502:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3246
		{

			sqlVAL.union.val = &tree.SetVar{Name: "client_encoding", Values: tree.Exprs{tree.DefaultVal{}}}
		}
	case 503:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3253
		{
			sqlVAL.union.val = []string{sqlDollar[1].str}
		}
	case 504:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3257
		{
			sqlVAL.union.val = append([]string{sqlDollar[1].str}, sqlDollar[2].union.strs()...)
		}
	case 505:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3263
		{
			sqlVAL.union.val = []string{sqlDollar[2].str}
		}
	case 506:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3267
		{
			sqlVAL.union.val = append(sqlDollar[1].union.strs(), sqlDollar[3].str)
		}
	case 508:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3274
		{
			sqlVAL.union.val = tree.Expr(&tree.UnresolvedName{NumParts: 1, Parts: tree.NameParts{sqlDollar[1].str}})
		}
	case 511:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3295
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 512:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3299
		{
			sqlVAL.union.val = append(sqlDollar[1].union.exprs(), sqlDollar[3].union.expr())
		}
	case 513:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3305
		{
			sqlVAL.union.val = tree.SerializableIsolation
		}
	case 514:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3309
		{
			sqlVAL.union.val = tree.SerializableIsolation
		}
	case 515:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3313
		{
			sqlVAL.union.val = tree.SerializableIsolation
		}
	case 516:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3317
		{
			sqlVAL.union.val = tree.SerializableIsolation
		}
	case 517:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3321
		{
			sqlVAL.union.val = tree.SerializableIsolation
		}
	case 518:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3327
		{
			sqlVAL.union.val = tree.Low
		}
	case 519:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3331
		{
			sqlVAL.union.val = tree.Normal
		}
	case 520:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3335
		{
			sqlVAL.union.val = tree.High
		}
	case 521:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3346
		{
			sqlVAL.union.val = tree.NewStrVal(sqlDollar[1].str)
		}
	case 522:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3350
		{
			sqlVAL.union.val = tree.NewStrVal(sqlDollar[1].str)
		}
	case 523:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3354
		{
			sqlVAL.union.val = sqlDollar[1].union.expr()
		}
	case 525:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3359
		{
			sqlVAL.union.val = tree.DefaultVal{}
		}
	case 526:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3363
		{
			sqlVAL.union.val = tree.NewStrVal(sqlDollar[1].str)
		}
	case 528:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3376
		{
			return helpWith(sqllex, "SHOW BACKUP")
		}
	case 530:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3377
		{
			return helpWith(sqllex, "SHOW COLUMNS")
		}
	case 532:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3378
		{
			return helpWith(sqllex, "SHOW CONSTRAINTS")
		}
	case 534:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3379
		{
			return helpWith(sqllex, "SHOW CREATE")
		}
	case 536:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3380
		{
			return helpWith(sqllex, "SHOW CLUSTER SETTING")
		}
	case 538:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3381
		{
			return helpWith(sqllex, "SHOW DATABASES")
		}
	case 541:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3383
		{
			return helpWith(sqllex, "SHOW GRANTS")
		}
	case 543:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3384
		{
			return helpWith(sqllex, "SHOW HISTOGRAM")
		}
	case 545:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3385
		{
			return helpWith(sqllex, "SHOW INDEXES")
		}
	case 547:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3386
		{
			return helpWith(sqllex, "SHOW PARTITIONS")
		}
	case 549:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3387
		{
			return helpWith(sqllex, "SHOW JOBS")
		}
	case 551:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3388
		{
			return helpWith(sqllex, "SHOW QUERIES")
		}
	case 553:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3389
		{
			return helpWith(sqllex, "SHOW RANGES")
		}
	case 556:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3391
		{
			return helpWith(sqllex, "SHOW ROLES")
		}
	case 558:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3392
		{
			return helpWith(sqllex, "SHOW SAVEPOINT")
		}
	case 560:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3393
		{
			return helpWith(sqllex, "SHOW SCHEMAS")
		}
	case 562:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3394
		{
			return helpWith(sqllex, "SHOW SEQUENCES")
		}
	case 564:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3395
		{
			return helpWith(sqllex, "SHOW SESSION")
		}
	case 566:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3396
		{
			return helpWith(sqllex, "SHOW SESSIONS")
		}
	case 568:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3397
		{
			return helpWith(sqllex, "SHOW STATISTICS")
		}
	case 570:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3398
		{
			return helpWith(sqllex, "SHOW SYNTAX")
		}
	case 572:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3399
		{
			return helpWith(sqllex, "SHOW TABLES")
		}
	case 574:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3400
		{
			return helpWith(sqllex, "SHOW TRACE")
		}
	case 576:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3401
		{
			return helpWith(sqllex, "SHOW TRANSACTION")
		}
	case 578:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3402
		{
			return helpWith(sqllex, "SHOW USERS")
		}
	case 580:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3404
		{
			return helpWith(sqllex, "SHOW")
		}
	case 581:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3408
		{

			return purposelyUnimplemented(sqllex, "reindex table", "CockroachDB does not require reindexing.")
		}
	case 582:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3413
		{

			return purposelyUnimplemented(sqllex, "reindex index", "CockroachDB does not require reindexing.")
		}
	case 583:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3418
		{

			return purposelyUnimplemented(sqllex, "reindex database", "CockroachDB does not require reindexing.")
		}
	case 584:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3423
		{

			return purposelyUnimplemented(sqllex, "reindex system", "CockroachDB does not require reindexing.")
		}
	case 585:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3433
		{
			sqlVAL.union.val = &tree.ShowVar{Name: sqlDollar[2].str}
		}
	case 586:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3434
		{
			sqlVAL.union.val = &tree.ShowVar{Name: sqlDollar[3].str}
		}
	case 587:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3435
		{
			return helpWith(sqllex, "SHOW SESSION")
		}
	case 591:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3446
		{
			sqlVAL.str = "client_encoding"
		}
	case 593:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3449
		{
			sqlVAL.str = "timezone"
		}
	case 594:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3450
		{
			return helpWith(sqllex, "SHOW SESSION")
		}
	case 595:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3464
		{
			sqlVAL.union.val = &tree.ShowTableStats{Table: sqlDollar[5].union.unresolvedObjectName()}
		}
	case 596:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:3468
		{

			sqlVAL.union.val = &tree.ShowTableStats{Table: sqlDollar[7].union.unresolvedObjectName(), UsingJSON: true}
		}
	case 597:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3472
		{
			return helpWith(sqllex, "SHOW STATISTICS")
		}
	case 598:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3483
		{

			id, err := sqlDollar[3].union.numVal().AsInt64()
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = &tree.ShowHistogram{HistogramID: id}
		}
	case 599:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3491
		{
			return helpWith(sqllex, "SHOW HISTOGRAM")
		}
	case 600:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3499
		{
			sqlVAL.union.val = &tree.ShowBackup{
				Details: tree.BackupDefaultDetails,
				Path:    sqlDollar[3].union.expr(),
				Options: sqlDollar[4].union.kvOptions(),
			}
		}
	case 601:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3507
		{
			sqlVAL.union.val = &tree.ShowBackup{
				Details:              tree.BackupDefaultDetails,
				ShouldIncludeSchemas: true,
				Path:                 sqlDollar[4].union.expr(),
				Options:              sqlDollar[5].union.kvOptions(),
			}
		}
	case 602:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3516
		{

			sqlVAL.union.val = &tree.ShowBackup{
				Details: tree.BackupRangeDetails,
				Path:    sqlDollar[4].union.expr(),
				Options: sqlDollar[5].union.kvOptions(),
			}
		}
	case 603:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3525
		{

			sqlVAL.union.val = &tree.ShowBackup{
				Details: tree.BackupFileDetails,
				Path:    sqlDollar[4].union.expr(),
				Options: sqlDollar[5].union.kvOptions(),
			}
		}
	case 604:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3533
		{
			return helpWith(sqllex, "SHOW BACKUP")
		}
	case 605:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3543
		{
			sqlVAL.union.val = &tree.ShowClusterSetting{Name: strings.Join(sqlDollar[4].union.strs(), ".")}
		}
	case 606:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3547
		{
			sqlVAL.union.val = &tree.ShowClusterSettingList{All: true}
		}
	case 607:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3550
		{
			return helpWith(sqllex, "SHOW CLUSTER SETTING")
		}
	case 608:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3552
		{
			sqlVAL.union.val = &tree.ShowClusterSettingList{All: true}
		}
	case 609:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3555
		{
			return helpWith(sqllex, "SHOW CLUSTER SETTING")
		}
	case 610:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3557
		{
			sqlVAL.union.val = &tree.ShowClusterSettingList{}
		}
	case 611:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3561
		{
			sqlVAL.union.val = &tree.ShowClusterSettingList{}
		}
	case 612:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3564
		{
			return helpWith(sqllex, "SHOW CLUSTER SETTING")
		}
	case 613:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3572
		{
			sqlVAL.union.val = &tree.ShowColumns{Table: sqlDollar[4].union.unresolvedObjectName(), WithComment: sqlDollar[5].union.bool()}
		}
	case 614:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3575
		{
			return helpWith(sqllex, "SHOW COLUMNS")
		}
	case 615:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3583
		{
			sqlVAL.union.val = &tree.ShowPartitions{IsTable: true, Table: sqlDollar[5].union.unresolvedObjectName()}
		}
	case 616:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3587
		{
			sqlVAL.union.val = &tree.ShowPartitions{IsDB: true, Database: tree.Name(sqlDollar[5].str)}
		}
	case 617:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3591
		{
			sqlVAL.union.val = &tree.ShowPartitions{IsIndex: true, Index: sqlDollar[5].union.tableIndexName()}
		}
	case 618:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:3595
		{
			sqlVAL.union.val = &tree.ShowPartitions{IsTable: true, Table: sqlDollar[5].union.unresolvedObjectName()}
		}
	case 619:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3598
		{
			return helpWith(sqllex, "SHOW PARTITIONS")
		}
	case 620:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3606
		{
			sqlVAL.union.val = &tree.ShowDatabases{WithComment: sqlDollar[3].union.bool()}
		}
	case 621:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3609
		{
			return helpWith(sqllex, "SHOW DATABASES")
		}
	case 622:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3622
		{
			lst := sqlDollar[3].union.targetListPtr()
			if lst != nil && lst.ForRoles {
				sqlVAL.union.val = &tree.ShowRoleGrants{Roles: lst.Roles, Grantees: sqlDollar[4].union.nameList()}
			} else {
				sqlVAL.union.val = &tree.ShowGrants{Targets: lst, Grantees: sqlDollar[4].union.nameList()}
			}
		}
	case 623:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3630
		{
			return helpWith(sqllex, "SHOW GRANTS")
		}
	case 624:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3638
		{
			sqlVAL.union.val = &tree.ShowIndexes{Table: sqlDollar[4].union.unresolvedObjectName(), WithComment: sqlDollar[5].union.bool()}
		}
	case 625:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3641
		{
			return helpWith(sqllex, "SHOW INDEXES")
		}
	case 626:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3643
		{
			sqlVAL.union.val = &tree.ShowDatabaseIndexes{Database: tree.Name(sqlDollar[5].str), WithComment: sqlDollar[6].union.bool()}
		}
	case 627:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3647
		{
			sqlVAL.union.val = &tree.ShowIndexes{Table: sqlDollar[4].union.unresolvedObjectName(), WithComment: sqlDollar[5].union.bool()}
		}
	case 628:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3651
		{
			sqlVAL.union.val = &tree.ShowDatabaseIndexes{Database: tree.Name(sqlDollar[5].str), WithComment: sqlDollar[6].union.bool()}
		}
	case 629:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3654
		{
			return helpWith(sqllex, "SHOW INDEXES")
		}
	case 630:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3656
		{
			sqlVAL.union.val = &tree.ShowIndexes{Table: sqlDollar[4].union.unresolvedObjectName(), WithComment: sqlDollar[5].union.bool()}
		}
	case 631:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3660
		{
			sqlVAL.union.val = &tree.ShowDatabaseIndexes{Database: tree.Name(sqlDollar[5].str), WithComment: sqlDollar[6].union.bool()}
		}
	case 632:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3663
		{
			return helpWith(sqllex, "SHOW INDEXES")
		}
	case 633:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3671
		{
			sqlVAL.union.val = &tree.ShowConstraints{Table: sqlDollar[4].union.unresolvedObjectName()}
		}
	case 634:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3674
		{
			return helpWith(sqllex, "SHOW CONSTRAINTS")
		}
	case 635:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3676
		{
			sqlVAL.union.val = &tree.ShowConstraints{Table: sqlDollar[4].union.unresolvedObjectName()}
		}
	case 636:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3679
		{
			return helpWith(sqllex, "SHOW CONSTRAINTS")
		}
	case 637:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3687
		{
			sqlVAL.union.val = &tree.ShowQueries{All: false, Cluster: sqlDollar[2].union.bool()}
		}
	case 638:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3690
		{
			return helpWith(sqllex, "SHOW QUERIES")
		}
	case 639:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3692
		{
			sqlVAL.union.val = &tree.ShowQueries{All: true, Cluster: sqlDollar[3].union.bool()}
		}
	case 640:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3695
		{
			return helpWith(sqllex, "SHOW QUERIES")
		}
	case 641:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:3699
		{
			sqlVAL.union.val = true
		}
	case 642:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3701
		{
			sqlVAL.union.val = true
		}
	case 643:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3703
		{
			sqlVAL.union.val = false
		}
	case 644:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3713
		{
			sqlVAL.union.val = &tree.ShowJobs{Automatic: true}
		}
	case 645:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3717
		{
			sqlVAL.union.val = &tree.ShowJobs{Automatic: false}
		}
	case 646:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3720
		{
			return helpWith(sqllex, "SHOW JOBS")
		}
	case 647:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3721
		{
			return helpWith(sqllex, "SHOW JOBS")
		}
	case 648:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3723
		{
			sqlVAL.union.val = &tree.ShowJobs{Jobs: sqlDollar[3].union.slct()}
		}
	case 649:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3727
		{
			sqlVAL.union.val = &tree.ShowJobs{Jobs: sqlDollar[5].union.slct(), Block: true}
		}
	case 650:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3730
		{
			return helpWith(sqllex, "SHOW JOBS")
		}
	case 651:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3732
		{
			sqlVAL.union.val = &tree.ShowJobs{
				Jobs: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[3].union.expr()}}},
				},
			}
		}
	case 652:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3740
		{
			sqlVAL.union.val = &tree.ShowJobs{
				Jobs: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[5].union.expr()}}},
				},
				Block: true,
			}
		}
	case 653:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3748
		{
			return helpWith(sqllex, "SHOW JOBS")
		}
	case 654:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3757
		{
			sqlVAL.union.val = &tree.ShowTraceForSession{TraceType: tree.ShowTraceRaw, Compact: sqlDollar[2].union.bool()}
		}
	case 655:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3760
		{
			return helpWith(sqllex, "SHOW TRACE")
		}
	case 656:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3762
		{
			sqlVAL.union.val = &tree.ShowTraceForSession{TraceType: tree.ShowTraceKV, Compact: sqlDollar[2].union.bool()}
		}
	case 657:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3765
		{
			return helpWith(sqllex, "SHOW TRACE")
		}
	case 658:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3767
		{

			sqlVAL.union.val = &tree.ShowTraceForSession{TraceType: tree.ShowTraceReplica, Compact: sqlDollar[2].union.bool()}
		}
	case 659:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3771
		{
			return helpWith(sqllex, "SHOW TRACE")
		}
	case 660:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:3774
		{
			sqlVAL.union.val = true
		}
	case 661:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:3775
		{
			sqlVAL.union.val = false
		}
	case 662:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3783
		{
			sqlVAL.union.val = &tree.ShowSessions{Cluster: sqlDollar[2].union.bool()}
		}
	case 663:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3786
		{
			return helpWith(sqllex, "SHOW SESSIONS")
		}
	case 664:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3788
		{
			sqlVAL.union.val = &tree.ShowSessions{All: true, Cluster: sqlDollar[3].union.bool()}
		}
	case 665:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3791
		{
			return helpWith(sqllex, "SHOW SESSIONS")
		}
	case 666:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:3799
		{
			sqlVAL.union.val = &tree.ShowTables{TableNamePrefix: tree.TableNamePrefix{
				CatalogName:     tree.Name(sqlDollar[4].str),
				ExplicitCatalog: true,
				SchemaName:      tree.Name(sqlDollar[6].str),
				ExplicitSchema:  true,
			},
				WithComment: sqlDollar[7].union.bool()}
		}
	case 667:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:3809
		{
			sqlVAL.union.val = &tree.ShowTables{TableNamePrefix: tree.TableNamePrefix{

				SchemaName:     tree.Name(sqlDollar[4].str),
				ExplicitSchema: true,
			},
				WithComment: sqlDollar[5].union.bool()}
		}
	case 668:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3819
		{
			sqlVAL.union.val = &tree.ShowTables{WithComment: sqlDollar[3].union.bool()}
		}
	case 669:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3822
		{
			return helpWith(sqllex, "SHOW TABLES")
		}
	case 670:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3825
		{
			sqlVAL.union.val = true
		}
	case 671:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:3826
		{
			sqlVAL.union.val = false
		}
	case 672:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3833
		{
			sqlVAL.union.val = &tree.ShowSchemas{Database: tree.Name(sqlDollar[4].str)}
		}
	case 673:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3837
		{
			sqlVAL.union.val = &tree.ShowSchemas{}
		}
	case 674:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3840
		{
			return helpWith(sqllex, "SHOW SCHEMAS")
		}
	case 675:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3847
		{
			sqlVAL.union.val = &tree.ShowSequences{Database: tree.Name(sqlDollar[4].str)}
		}
	case 676:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3851
		{
			sqlVAL.union.val = &tree.ShowSequences{}
		}
	case 677:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3854
		{
			return helpWith(sqllex, "SHOW SEQUENCES")
		}
	case 678:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3861
		{

			sqlVAL.union.val = &tree.ShowSyntax{Statement: sqlDollar[3].str}
		}
	case 679:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3865
		{
			return helpWith(sqllex, "SHOW SYNTAX")
		}
	case 680:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3872
		{
			sqlVAL.union.val = &tree.ShowSavepointStatus{}
		}
	case 681:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3875
		{
			return helpWith(sqllex, "SHOW SAVEPOINT")
		}
	case 682:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3883
		{

			sqlVAL.union.val = &tree.ShowVar{Name: "transaction_isolation"}
		}
	case 683:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3888
		{

			sqlVAL.union.val = &tree.ShowVar{Name: "transaction_priority"}
		}
	case 684:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3893
		{

			sqlVAL.union.val = &tree.ShowTransactionStatus{}
		}
	case 685:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3897
		{
			return helpWith(sqllex, "SHOW TRANSACTION")
		}
	case 686:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3905
		{
			sqlVAL.union.val = &tree.ShowCreate{Name: sqlDollar[3].union.unresolvedObjectName()}
		}
	case 687:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3909
		{

			sqlVAL.union.val = &tree.ShowCreate{Name: sqlDollar[4].union.unresolvedObjectName()}
		}
	case 688:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3913
		{
			return helpWith(sqllex, "SHOW CREATE")
		}
	case 692:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3926
		{
			sqlVAL.union.val = &tree.ShowUsers{}
		}
	case 693:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3929
		{
			return helpWith(sqllex, "SHOW USERS")
		}
	case 694:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:3937
		{
			sqlVAL.union.val = &tree.ShowRoles{}
		}
	case 695:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3940
		{
			return helpWith(sqllex, "SHOW ROLES")
		}
	case 696:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3944
		{
			sqlVAL.union.val = &tree.ShowZoneConfig{ZoneSpecifier: tree.ZoneSpecifier{NamedZone: tree.UnrestrictedName(sqlDollar[6].str)}}
		}
	case 697:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:3948
		{
			sqlVAL.union.val = &tree.ShowZoneConfig{ZoneSpecifier: tree.ZoneSpecifier{Database: tree.Name(sqlDollar[6].str)}}
		}
	case 698:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:3952
		{
			name := sqlDollar[6].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.ShowZoneConfig{ZoneSpecifier: tree.ZoneSpecifier{
				TableOrIndex: tree.TableIndexName{Table: name},
				Partition:    tree.Name(sqlDollar[7].str),
			}}
		}
	case 699:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:3960
		{
			name := sqlDollar[9].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.ShowZoneConfig{ZoneSpecifier: tree.ZoneSpecifier{
				TableOrIndex: tree.TableIndexName{Table: name},
				Partition:    tree.Name(sqlDollar[6].str),
			}}
		}
	case 700:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:3968
		{
			sqlVAL.union.val = &tree.ShowZoneConfig{ZoneSpecifier: tree.ZoneSpecifier{
				TableOrIndex: sqlDollar[6].union.tableIndexName(),
				Partition:    tree.Name(sqlDollar[7].str),
			}}
		}
	case 701:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:3975
		{
			sqlVAL.union.val = &tree.ShowZoneConfig{ZoneSpecifier: tree.ZoneSpecifier{
				TableOrIndex: sqlDollar[9].union.tableIndexName(),
				Partition:    tree.Name(sqlDollar[6].str),
			}}
		}
	case 702:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:3982
		{
			sqlVAL.union.val = &tree.ShowZoneConfig{}
		}
	case 703:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:3986
		{
			sqlVAL.union.val = &tree.ShowZoneConfig{}
		}
	case 704:
		sqlDollar = sqlS[sqlpt-10 : sqlpt+1]
//line sql-gen.y:3997
		{
			name := sqlDollar[5].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.ShowRangeForRow{
				Row:          sqlDollar[9].union.exprs(),
				TableOrIndex: tree.TableIndexName{Table: name},
			}
		}
	case 705:
		sqlDollar = sqlS[sqlpt-10 : sqlpt+1]
//line sql-gen.y:4005
		{
			sqlVAL.union.val = &tree.ShowRangeForRow{
				Row:          sqlDollar[9].union.exprs(),
				TableOrIndex: sqlDollar[5].union.tableIndexName(),
			}
		}
	case 706:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4011
		{
			return helpWith(sqllex, "SHOW RANGE")
		}
	case 707:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4020
		{
			name := sqlDollar[5].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.ShowRanges{TableOrIndex: tree.TableIndexName{Table: name}}
		}
	case 708:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4025
		{
			sqlVAL.union.val = &tree.ShowRanges{TableOrIndex: sqlDollar[5].union.tableIndexName()}
		}
	case 709:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4029
		{
			sqlVAL.union.val = &tree.ShowRanges{DatabaseName: tree.Name(sqlDollar[5].str)}
		}
	case 710:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4032
		{
			return helpWith(sqllex, "SHOW RANGES")
		}
	case 711:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4036
		{

			sqlVAL.union.val = &tree.ShowFingerprints{Table: sqlDollar[5].union.unresolvedObjectName()}
		}
	case 712:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4043
		{
			tmp := sqlDollar[2].union.targetList()
			sqlVAL.union.val = &tmp
		}
	case 713:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4048
		{
			sqlVAL.union.val = (*tree.TargetList)(nil)
		}
	case 714:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4168
		{
			sqlVAL.union.val = tree.TargetList{Tables: tree.TablePatterns{&tree.UnresolvedName{NumParts: 1, Parts: tree.NameParts{sqlDollar[1].str}}}}
		}
	case 715:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4172
		{
			sqlVAL.union.val = tree.TargetList{Tables: tree.TablePatterns{&tree.UnresolvedName{NumParts: 1, Parts: tree.NameParts{sqlDollar[1].str}}}}
		}
	case 716:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4176
		{

			sqlVAL.union.val = tree.TargetList{
				Tables:   tree.TablePatterns{&tree.UnresolvedName{NumParts: 1, Parts: tree.NameParts{sqlDollar[1].str}}},
				ForRoles: sqlDollar[1].str == "role",
			}
		}
	case 717:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4215
		{
			sqlVAL.union.val = tree.TargetList{Tables: tree.TablePatterns{sqlDollar[1].union.unresolvedName()}}
		}
	case 718:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4219
		{
			remainderPats := sqlDollar[3].union.tablePatterns()
			sqlVAL.union.val = tree.TargetList{Tables: append(tree.TablePatterns{sqlDollar[1].union.unresolvedName()}, remainderPats...)}
		}
	case 719:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4224
		{
			sqlVAL.union.val = tree.TargetList{Tables: sqlDollar[2].union.tablePatterns()}
		}
	case 720:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4228
		{
			sqlVAL.union.val = tree.TargetList{Databases: sqlDollar[2].union.nameList()}
		}
	case 721:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4237
		{
			sqlVAL.union.val = tree.TargetList{ForRoles: true, Roles: sqlDollar[2].union.nameList()}
		}
	case 723:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4244
		{
			sqlVAL.union.val = sqlDollar[2].union.nameList()
		}
	case 724:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4248
		{
			sqlVAL.union.val = tree.NameList(nil)
		}
	case 725:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4260
		{
			sqlVAL.union.val = &tree.ControlJobs{
				Jobs: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[3].union.expr()}}},
				},
				Command: tree.PauseJob,
			}
		}
	case 726:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4269
		{
			sqlVAL.union.val = &tree.ControlJobs{Jobs: sqlDollar[3].union.slct(), Command: tree.PauseJob}
		}
	case 727:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4272
		{
			return helpWith(sqllex, "PAUSE JOBS")
		}
	case 728:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4280
		{
			sqlVAL.union.val = &tree.CreateSchema{
				Schema: sqlDollar[3].str,
			}
		}
	case 729:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:4286
		{
			sqlVAL.union.val = &tree.CreateSchema{
				Schema:      sqlDollar[6].str,
				IfNotExists: true,
			}
		}
	case 730:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4292
		{
			return helpWith(sqllex, "CREATE SCHEMA")
		}
	case 731:
		sqlDollar = sqlS[sqlpt-11 : sqlpt+1]
//line sql-gen.y:4331
		{
			name := sqlDollar[4].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateTable{
				Table:         name,
				IfNotExists:   false,
				Interleave:    sqlDollar[8].union.interleave(),
				Defs:          sqlDollar[6].union.tblDefs(),
				AsSource:      nil,
				PartitionBy:   sqlDollar[9].union.partitionBy(),
				Temporary:     sqlDollar[2].union.persistenceType(),
				StorageParams: sqlDollar[10].union.storageParams(),
				OnCommit:      sqlDollar[11].union.createTableOnCommitSetting(),
			}
		}
	case 732:
		sqlDollar = sqlS[sqlpt-14 : sqlpt+1]
//line sql-gen.y:4346
		{
			name := sqlDollar[7].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateTable{
				Table:         name,
				IfNotExists:   true,
				Interleave:    sqlDollar[11].union.interleave(),
				Defs:          sqlDollar[9].union.tblDefs(),
				AsSource:      nil,
				PartitionBy:   sqlDollar[12].union.partitionBy(),
				Temporary:     sqlDollar[2].union.persistenceType(),
				StorageParams: sqlDollar[13].union.storageParams(),
				OnCommit:      sqlDollar[14].union.createTableOnCommitSetting(),
			}
		}
	case 733:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4363
		{
			sqlVAL.union.val = nil
		}
	case 734:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4367
		{

			sqlVAL.union.val = nil
		}
	case 735:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:4373
		{

			sqlVAL.union.val = sqlDollar[3].union.storageParams()
		}
	case 736:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4378
		{
			return unimplemented(sqllex, "create table with oids")
		}
	case 737:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4384
		{
			sqlVAL.union.val = tree.CreateTableOnCommitUnset
		}
	case 738:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:4388
		{

			sqlVAL.union.val = tree.CreateTableOnCommitPreserveRows
		}
	case 739:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4393
		{

			return unimplementedWithIssueDetail(sqllex, 46556, "delete rows")
		}
	case 740:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:4398
		{

			return unimplementedWithIssueDetail(sqllex, 46556, "drop")
		}
	case 741:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4405
		{
			sqlVAL.union.val = tree.StorageParam{Key: tree.Name(sqlDollar[1].str), Value: sqlDollar[3].union.expr()}
		}
	case 742:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4409
		{
			sqlVAL.union.val = tree.StorageParam{Key: tree.Name(sqlDollar[1].str), Value: sqlDollar[3].union.expr()}
		}
	case 743:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4415
		{
			sqlVAL.union.val = []tree.StorageParam{sqlDollar[1].union.storageParam()}
		}
	case 744:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4419
		{
			sqlVAL.union.val = append(sqlDollar[1].union.storageParams(), sqlDollar[3].union.storageParam())
		}
	case 745:
		sqlDollar = sqlS[sqlpt-10 : sqlpt+1]
//line sql-gen.y:4425
		{
			name := sqlDollar[4].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateTable{
				Table:         name,
				IfNotExists:   false,
				Interleave:    nil,
				Defs:          sqlDollar[5].union.tblDefs(),
				AsSource:      sqlDollar[8].union.slct(),
				StorageParams: sqlDollar[6].union.storageParams(),
				OnCommit:      sqlDollar[10].union.createTableOnCommitSetting(),
				Temporary:     sqlDollar[2].union.persistenceType(),
			}
		}
	case 746:
		sqlDollar = sqlS[sqlpt-13 : sqlpt+1]
//line sql-gen.y:4439
		{
			name := sqlDollar[7].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateTable{
				Table:         name,
				IfNotExists:   true,
				Interleave:    nil,
				Defs:          sqlDollar[8].union.tblDefs(),
				AsSource:      sqlDollar[11].union.slct(),
				StorageParams: sqlDollar[9].union.storageParams(),
				OnCommit:      sqlDollar[13].union.createTableOnCommitSetting(),
				Temporary:     sqlDollar[2].union.persistenceType(),
			}
		}
	case 747:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4454
		{
		}
	case 748:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4455
		{
		}
	case 749:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4456
		{
			return unimplemented(sqllex, "create table as with no data")
		}
	case 750:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4474
		{
			sqlVAL.union.val = true
		}
	case 751:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4475
		{
			sqlVAL.union.val = true
		}
	case 752:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4476
		{
			sqlVAL.union.val = false
		}
	case 754:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4480
		{
			sqlVAL.union.val = true
		}
	case 755:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4481
		{
			sqlVAL.union.val = true
		}
	case 756:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4482
		{
			sqlVAL.union.val = true
		}
	case 757:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4483
		{
			sqlVAL.union.val = true
		}
	case 758:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4484
		{
			return unimplemented(sqllex, "create unlogged")
		}
	case 760:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4489
		{
			sqlVAL.union.val = tree.TableDefs(nil)
		}
	case 761:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4495
		{
			sqlVAL.union.val = tree.TableDefs{sqlDollar[1].union.tblDef()}
		}
	case 762:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4499
		{
			sqlVAL.union.val = append(sqlDollar[1].union.tblDefs(), sqlDollar[3].union.tblDef())
		}
	case 763:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4505
		{
			sqlVAL.union.val = sqlDollar[1].union.colDef()
		}
	case 766:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4511
		{
			sqlVAL.union.val = sqlDollar[1].union.constraintDef()
		}
	case 767:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4514
		{
			return unimplementedWithIssue(sqllex, 30840)
		}
	case 768:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:4518
		{
			name := sqlDollar[4].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.InterleaveDef{
				Parent:       name,
				Fields:       sqlDollar[6].union.nameList(),
				DropBehavior: sqlDollar[8].union.dropBehavior(),
			}
		}
	case 769:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4527
		{
			sqlVAL.union.val = (*tree.InterleaveDef)(nil)
		}
	case 770:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4534
		{

			sqlVAL.union.val = tree.DropCascade
		}
	case 771:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4539
		{

			sqlVAL.union.val = tree.DropRestrict
		}
	case 772:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4544
		{
			sqlVAL.union.val = tree.DropDefault
		}
	case 773:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4550
		{
			sqlVAL.str = sqlDollar[2].str
		}
	case 775:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4557
		{
			sqlVAL.str = ""
		}
	case 777:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4564
		{
			sqlVAL.union.val = (*tree.PartitionBy)(nil)
		}
	case 778:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:4570
		{
			sqlVAL.union.val = &tree.PartitionBy{
				Fields: sqlDollar[5].union.nameList(),
				List:   sqlDollar[8].union.listPartitions(),
			}
		}
	case 779:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:4577
		{
			sqlVAL.union.val = &tree.PartitionBy{
				Fields: sqlDollar[5].union.nameList(),
				Range:  sqlDollar[8].union.rangePartitions(),
			}
		}
	case 780:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4584
		{
			sqlVAL.union.val = (*tree.PartitionBy)(nil)
		}
	case 781:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4590
		{
			sqlVAL.union.val = []tree.ListPartition{sqlDollar[1].union.listPartition()}
		}
	case 782:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4594
		{
			sqlVAL.union.val = append(sqlDollar[1].union.listPartitions(), sqlDollar[3].union.listPartition())
		}
	case 783:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:4600
		{
			sqlVAL.union.val = tree.ListPartition{
				Name:         tree.UnrestrictedName(sqlDollar[1].str),
				Exprs:        sqlDollar[5].union.exprs(),
				Subpartition: sqlDollar[7].union.partitionBy(),
			}
		}
	case 784:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4610
		{
			sqlVAL.union.val = []tree.RangePartition{sqlDollar[1].union.rangePartition()}
		}
	case 785:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4614
		{
			sqlVAL.union.val = append(sqlDollar[1].union.rangePartitions(), sqlDollar[3].union.rangePartition())
		}
	case 786:
		sqlDollar = sqlS[sqlpt-11 : sqlpt+1]
//line sql-gen.y:4620
		{
			sqlVAL.union.val = tree.RangePartition{
				Name:         tree.UnrestrictedName(sqlDollar[1].str),
				From:         sqlDollar[5].union.exprs(),
				To:           sqlDollar[9].union.exprs(),
				Subpartition: sqlDollar[11].union.partitionBy(),
			}
		}
	case 787:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4634
		{
			typ := sqlDollar[2].union.colType()
			tableDef, err := tree.NewColumnTableDef(tree.Name(sqlDollar[1].str), typ, isSerialType(typ), sqlDollar[3].union.colQuals())
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = tableDef
		}
	case 788:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4645
		{
			sqlVAL.union.val = append(sqlDollar[1].union.colQuals(), sqlDollar[2].union.colQual())
		}
	case 789:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4649
		{
			sqlVAL.union.val = []tree.NamedColumnQualification(nil)
		}
	case 790:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4655
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Name: tree.Name(sqlDollar[2].str), Qualification: sqlDollar[3].union.colQualElem()}
		}
	case 791:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4659
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: sqlDollar[1].union.colQualElem()}
		}
	case 792:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4663
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: tree.ColumnCollation(sqlDollar[2].str)}
		}
	case 793:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4667
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: &tree.ColumnFamilyConstraint{Family: tree.Name(sqlDollar[2].str)}}
		}
	case 794:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4671
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: &tree.ColumnFamilyConstraint{Family: tree.Name(sqlDollar[3].str), Create: true}}
		}
	case 795:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4675
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: &tree.ColumnFamilyConstraint{Create: true}}
		}
	case 796:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:4679
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: &tree.ColumnFamilyConstraint{Family: tree.Name(sqlDollar[6].str), Create: true, IfNotExists: true}}
		}
	case 797:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4697
		{
			sqlVAL.union.val = tree.NotNullConstraint{}
		}
	case 798:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4701
		{
			sqlVAL.union.val = tree.NullConstraint{}
		}
	case 799:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4705
		{
			sqlVAL.union.val = tree.UniqueConstraint{}
		}
	case 800:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4709
		{
			sqlVAL.union.val = tree.PrimaryKeyConstraint{}
		}
	case 801:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:4713
		{
			sqlVAL.union.val = tree.ShardedPrimaryKeyConstraint{
				Sharded:      true,
				ShardBuckets: sqlDollar[8].union.expr(),
			}
		}
	case 802:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:4720
		{
			sqlVAL.union.val = &tree.ColumnCheckConstraint{Expr: sqlDollar[3].union.expr()}
		}
	case 803:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4724
		{
			sqlVAL.union.val = &tree.ColumnDefault{Expr: sqlDollar[2].union.expr()}
		}
	case 804:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4728
		{
			name := sqlDollar[2].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.ColumnFKConstraint{
				Table:   name,
				Col:     tree.Name(sqlDollar[3].str),
				Actions: sqlDollar[5].union.referenceActions(),
				Match:   sqlDollar[4].union.compositeKeyMatchMethod(),
			}
		}
	case 805:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4738
		{
			sqlVAL.union.val = &tree.ColumnComputedDef{Expr: sqlDollar[3].union.expr()}
		}
	case 806:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4742
		{
			return unimplemented(sqllex, "virtual computed columns")
		}
	case 807:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4746
		{
			sqllex.Error("use AS ( <expr> ) STORED")
			return 1
		}
	case 808:
		sqlDollar = sqlS[sqlpt-9 : sqlpt+1]
//line sql-gen.y:4753
		{
			sqlVAL.union.val = &tree.IndexTableDef{
				Name:        tree.Name(sqlDollar[2].str),
				Columns:     sqlDollar[4].union.idxElems(),
				Sharded:     sqlDollar[6].union.shardedIndexDef(),
				Storing:     sqlDollar[7].union.nameList(),
				Interleave:  sqlDollar[8].union.interleave(),
				PartitionBy: sqlDollar[9].union.partitionBy(),
			}
		}
	case 809:
		sqlDollar = sqlS[sqlpt-10 : sqlpt+1]
//line sql-gen.y:4764
		{
			sqlVAL.union.val = &tree.UniqueConstraintTableDef{
				IndexTableDef: tree.IndexTableDef{
					Name:        tree.Name(sqlDollar[3].str),
					Columns:     sqlDollar[5].union.idxElems(),
					Sharded:     sqlDollar[7].union.shardedIndexDef(),
					Storing:     sqlDollar[8].union.nameList(),
					Interleave:  sqlDollar[9].union.interleave(),
					PartitionBy: sqlDollar[10].union.partitionBy(),
				},
			}
		}
	case 810:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:4777
		{
			sqlVAL.union.val = &tree.IndexTableDef{
				Name:     tree.Name(sqlDollar[3].str),
				Columns:  sqlDollar[5].union.idxElems(),
				Inverted: true,
			}
		}
	case 811:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4787
		{
			sqlVAL.union.val = &tree.FamilyTableDef{
				Name:    tree.Name(sqlDollar[2].str),
				Columns: sqlDollar[4].union.nameList(),
			}
		}
	case 812:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4799
		{
			sqlVAL.union.val = sqlDollar[3].union.constraintDef()
			sqlVAL.union.val.(tree.ConstraintTableDef).SetName(tree.Name(sqlDollar[2].str))
		}
	case 813:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4804
		{
			sqlVAL.union.val = sqlDollar[1].union.constraintDef()
		}
	case 814:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4810
		{
			sqlVAL.union.val = &tree.CheckConstraintTableDef{
				Expr: sqlDollar[3].union.expr(),
			}
		}
	case 815:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:4816
		{
			sqlVAL.union.val = &tree.UniqueConstraintTableDef{
				IndexTableDef: tree.IndexTableDef{
					Columns:     sqlDollar[3].union.idxElems(),
					Storing:     sqlDollar[5].union.nameList(),
					Interleave:  sqlDollar[6].union.interleave(),
					PartitionBy: sqlDollar[7].union.partitionBy(),
				},
			}
		}
	case 816:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:4827
		{
			sqlVAL.union.val = &tree.UniqueConstraintTableDef{
				IndexTableDef: tree.IndexTableDef{
					Columns:    sqlDollar[4].union.idxElems(),
					Sharded:    sqlDollar[6].union.shardedIndexDef(),
					Interleave: sqlDollar[7].union.interleave(),
				},
				PrimaryKey: true,
			}
		}
	case 817:
		sqlDollar = sqlS[sqlpt-11 : sqlpt+1]
//line sql-gen.y:4839
		{
			name := sqlDollar[7].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.ForeignKeyConstraintTableDef{
				Table:    name,
				FromCols: sqlDollar[4].union.nameList(),
				ToCols:   sqlDollar[8].union.nameList(),
				Match:    sqlDollar[9].union.compositeKeyMatchMethod(),
				Actions:  sqlDollar[10].union.referenceActions(),
			}
		}
	case 818:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4850
		{
			return unimplementedWithIssueDetail(sqllex, 46657, "add constraint exclude using")
		}
	case 819:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4857
		{
			sqlVAL.union.val = sqlDollar[2].union.val
		}
	case 820:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4861
		{
			sqlVAL.union.val = tree.TableDefs(nil)
		}
	case 821:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4867
		{
			tableDef, err := tree.NewColumnTableDef(tree.Name(sqlDollar[1].str), nil, false, sqlDollar[2].union.colQuals())
			if err != nil {
				return setErr(sqllex, err)
			}

			var colToTableDef tree.TableDef = tableDef
			sqlVAL.union.val = tree.TableDefs{colToTableDef}
		}
	case 822:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:4877
		{
			tableDef, err := tree.NewColumnTableDef(tree.Name(sqlDollar[3].str), nil, false, sqlDollar[4].union.colQuals())
			if err != nil {
				return setErr(sqllex, err)
			}

			var colToTableDef tree.TableDef = tableDef

			sqlVAL.union.val = append(sqlDollar[1].union.tblDefs(), colToTableDef)
		}
	case 823:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4888
		{
			sqlVAL.union.val = append(sqlDollar[1].union.tblDefs(), sqlDollar[3].union.tblDef())
		}
	case 824:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4892
		{
			var constraintToTableDef tree.TableDef = sqlDollar[3].union.constraintDef()
			sqlVAL.union.val = append(sqlDollar[1].union.tblDefs(), constraintToTableDef)
		}
	case 825:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4899
		{
			sqlVAL.union.val = sqlDollar[1].union.constraintDef()
		}
	case 826:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:4905
		{
			sqlVAL.union.val = &tree.UniqueConstraintTableDef{
				IndexTableDef: tree.IndexTableDef{
					Columns: sqlDollar[4].union.idxElems(),
				},
				PrimaryKey: true,
			}
		}
	case 827:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4916
		{
			sqlVAL.union.val = tree.IndexElemList{sqlDollar[1].union.idxElem()}
		}
	case 828:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4920
		{
			sqlVAL.union.val = append(sqlDollar[1].union.idxElems(), sqlDollar[3].union.idxElem())
		}
	case 829:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4926
		{
			sqlVAL.union.val = tree.IndexElem{Column: tree.Name(sqlDollar[1].str)}
		}
	case 830:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4932
		{
			sqlVAL.union.val = append(sqlDollar[1].union.colQuals(), sqlDollar[2].union.colQual())
		}
	case 831:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4936
		{
			sqlVAL.union.val = []tree.NamedColumnQualification(nil)
		}
	case 832:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4942
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: sqlDollar[1].union.colQualElem()}
		}
	case 833:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4946
		{
			sqlVAL.union.val = tree.NamedColumnQualification{Qualification: &tree.ColumnFamilyConstraint{Family: tree.Name(sqlDollar[2].str)}}
		}
	case 834:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4952
		{
			sqlVAL.union.val = tree.PrimaryKeyConstraint{}
		}
	case 835:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4957
		{
		}
	case 836:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:4958
		{
			return unimplementedWithIssueDetail(sqllex, 31632, "deferrable")
		}
	case 837:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4959
		{
			return unimplementedWithIssueDetail(sqllex, 31632, "def initially deferred")
		}
	case 838:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:4960
		{
			return unimplementedWithIssueDetail(sqllex, 31632, "def initially immediate")
		}
	case 839:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4961
		{
			return unimplementedWithIssueDetail(sqllex, 31632, "initially deferred")
		}
	case 840:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:4962
		{
			return unimplementedWithIssueDetail(sqllex, 31632, "initially immediate")
		}
	case 844:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:4980
		{
			sqlVAL.union.val = sqlDollar[3].union.nameList()
		}
	case 845:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4984
		{
			sqlVAL.union.val = tree.NameList(nil)
		}
	case 846:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:4990
		{
			sqlVAL.union.val = &tree.ShardedIndexDef{
				ShardBuckets: sqlDollar[6].union.expr(),
			}
		}
	case 847:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:4996
		{
			sqlVAL.union.val = (*tree.ShardedIndexDef)(nil)
		}
	case 848:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5002
		{
			sqlVAL.union.val = sqlDollar[2].union.nameList()
		}
	case 849:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5006
		{
			sqlVAL.union.val = tree.NameList(nil)
		}
	case 850:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5026
		{
			sqlVAL.union.val = tree.MatchSimple
		}
	case 851:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5030
		{
			sqlVAL.union.val = tree.MatchFull
		}
	case 852:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5034
		{
			return unimplementedWithIssueDetail(sqllex, 20305, "match partial")
		}
	case 853:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5038
		{
			sqlVAL.union.val = tree.MatchSimple
		}
	case 854:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5047
		{
			sqlVAL.union.val = tree.ReferenceActions{Update: sqlDollar[1].union.referenceAction()}
		}
	case 855:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5051
		{
			sqlVAL.union.val = tree.ReferenceActions{Delete: sqlDollar[1].union.referenceAction()}
		}
	case 856:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5055
		{
			sqlVAL.union.val = tree.ReferenceActions{Update: sqlDollar[1].union.referenceAction(), Delete: sqlDollar[2].union.referenceAction()}
		}
	case 857:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5059
		{
			sqlVAL.union.val = tree.ReferenceActions{Delete: sqlDollar[1].union.referenceAction(), Update: sqlDollar[2].union.referenceAction()}
		}
	case 858:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5063
		{
			sqlVAL.union.val = tree.ReferenceActions{}
		}
	case 859:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5069
		{
			sqlVAL.union.val = sqlDollar[3].union.referenceAction()
		}
	case 860:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5075
		{
			sqlVAL.union.val = sqlDollar[3].union.referenceAction()
		}
	case 861:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5083
		{
			sqlVAL.union.val = tree.NoAction
		}
	case 862:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5087
		{
			sqlVAL.union.val = tree.Restrict
		}
	case 863:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5091
		{
			sqlVAL.union.val = tree.Cascade
		}
	case 864:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5095
		{
			sqlVAL.union.val = tree.SetNull
		}
	case 865:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5099
		{
			sqlVAL.union.val = tree.SetDefault
		}
	case 866:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:5118
		{
			name := sqlDollar[4].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateSequence{
				Name:      name,
				Temporary: sqlDollar[2].union.persistenceType(),
				Options:   sqlDollar[5].union.seqOpts(),
			}
		}
	case 867:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5127
		{
			name := sqlDollar[7].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateSequence{
				Name: name, Options: sqlDollar[8].union.seqOpts(),
				Temporary:   sqlDollar[2].union.persistenceType(),
				IfNotExists: true,
			}
		}
	case 868:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5135
		{
			return helpWith(sqllex, "CREATE SEQUENCE")
		}
	case 870:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5139
		{
			sqlVAL.union.val = []tree.SequenceOption(nil)
		}
	case 871:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5142
		{
			sqlVAL.union.val = []tree.SequenceOption{sqlDollar[1].union.seqOpt()}
		}
	case 872:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5143
		{
			sqlVAL.union.val = append(sqlDollar[1].union.seqOpts(), sqlDollar[2].union.seqOpt())
		}
	case 873:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5146
		{
			return unimplementedWithIssueDetail(sqllex, 25110, sqlDollar[2].union.colType().SQLString())
		}
	case 874:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5147
		{
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptCycle}
		}
	case 875:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5149
		{
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptNoCycle}
		}
	case 876:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5150
		{
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptOwnedBy, ColumnItemVal: nil}
		}
	case 877:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5151
		{
			varName, err := sqlDollar[3].union.unresolvedName().NormalizeVarName()
			if err != nil {
				return setErr(sqllex, err)
			}
			columnItem, ok := varName.(*tree.ColumnItem)
			if !ok {
				sqllex.Error(fmt.Sprintf("invalid column name: %q", tree.ErrString(sqlDollar[3].union.unresolvedName())))
				return 1
			}
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptOwnedBy, ColumnItemVal: columnItem}
		}
	case 878:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5161
		{
			x := sqlDollar[2].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptCache, IntVal: &x}
		}
	case 879:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5164
		{
			x := sqlDollar[2].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptIncrement, IntVal: &x}
		}
	case 880:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5166
		{
			x := sqlDollar[3].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptIncrement, IntVal: &x, OptionalWord: true}
		}
	case 881:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5168
		{
			x := sqlDollar[2].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptMinValue, IntVal: &x}
		}
	case 882:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5170
		{
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptMinValue}
		}
	case 883:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5171
		{
			x := sqlDollar[2].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptMaxValue, IntVal: &x}
		}
	case 884:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5173
		{
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptMaxValue}
		}
	case 885:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5174
		{
			x := sqlDollar[2].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptStart, IntVal: &x}
		}
	case 886:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5176
		{
			x := sqlDollar[3].union.int64()
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptStart, IntVal: &x, OptionalWord: true}
		}
	case 887:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5178
		{
			sqlVAL.union.val = tree.SequenceOption{Name: tree.SeqOptVirtual}
		}
	case 888:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5186
		{
			sqlVAL.union.val = &tree.Truncate{Tables: sqlDollar[3].union.tableNames(), DropBehavior: sqlDollar[4].union.dropBehavior()}
		}
	case 889:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5189
		{
			return helpWith(sqllex, "TRUNCATE")
		}
	case 890:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5193
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: sqlDollar[2].union.expr()}
		}
	case 891:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5197
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: tree.DNull}
		}
	case 892:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5207
		{
			sqlVAL.union.val = &tree.CreateRole{Name: sqlDollar[3].union.expr(), KVOptions: sqlDollar[4].union.kvOptions(), IsRole: sqlDollar[2].union.bool()}
		}
	case 893:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:5211
		{
			sqlVAL.union.val = &tree.CreateRole{Name: sqlDollar[6].union.expr(), IfNotExists: true, KVOptions: sqlDollar[7].union.kvOptions(), IsRole: sqlDollar[2].union.bool()}
		}
	case 894:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5214
		{
			return helpWith(sqllex, "CREATE ROLE")
		}
	case 895:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5222
		{
			sqlVAL.union.val = &tree.AlterRole{Name: sqlDollar[3].union.expr(), KVOptions: sqlDollar[4].union.kvOptions(), IsRole: sqlDollar[2].union.bool()}
		}
	case 896:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5226
		{
			sqlVAL.union.val = &tree.AlterRole{Name: sqlDollar[5].union.expr(), IfExists: true, KVOptions: sqlDollar[6].union.kvOptions(), IsRole: sqlDollar[2].union.bool()}
		}
	case 897:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5229
		{
			return helpWith(sqllex, "ALTER ROLE")
		}
	case 898:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5235
		{
			sqlVAL.union.val = true
		}
	case 899:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5239
		{

			sqlVAL.union.val = true
		}
	case 900:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5244
		{
			sqlVAL.union.val = false
		}
	case 901:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5254
		{
			name := sqlDollar[5].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateView{
				Name:        name,
				ColumnNames: sqlDollar[6].union.nameList(),
				AsSource:    sqlDollar[8].union.slct(),
				Temporary:   sqlDollar[2].union.persistenceType(),
				IfNotExists: false,
			}
		}
	case 902:
		sqlDollar = sqlS[sqlpt-11 : sqlpt+1]
//line sql-gen.y:5265
		{
			name := sqlDollar[8].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateView{
				Name:        name,
				ColumnNames: sqlDollar[9].union.nameList(),
				AsSource:    sqlDollar[11].union.slct(),
				Temporary:   sqlDollar[2].union.persistenceType(),
				IfNotExists: true,
			}
		}
	case 903:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:5275
		{
			return unimplementedWithIssue(sqllex, 24897)
		}
	case 904:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:5276
		{
			return helpWith(sqllex, "CREATE VIEW")
		}
	case 905:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5280
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: nil}
		}
	case 906:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5284
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: nil}
		}
	case 907:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5288
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: nil}
		}
	case 908:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5292
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(sqlDollar[1].str), Value: nil}
		}
	case 911:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5300
		{
			sqlVAL.union.val = []tree.KVOption{sqlDollar[1].union.kvOption()}
		}
	case 912:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5304
		{
			sqlVAL.union.val = append(sqlDollar[1].union.kvOptions(), sqlDollar[2].union.kvOption())
		}
	case 913:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5310
		{
			sqlVAL.union.val = sqlDollar[2].union.kvOptions()
		}
	case 914:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5314
		{
			sqlVAL.union.val = nil
		}
	case 915:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5320
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(fmt.Sprintf("%s_%s", sqlDollar[1].str, sqlDollar[2].str)), Value: sqlDollar[3].union.expr()}
		}
	case 916:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5324
		{
			sqlVAL.union.val = tree.KVOption{Key: tree.Name(fmt.Sprintf("%s_%s", sqlDollar[1].str, sqlDollar[2].str)), Value: tree.DNull}
		}
	case 917:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5329
		{
		}
	case 918:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5330
		{
			return unimplemented(sqllex, "create recursive view")
		}
	case 919:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5336
		{
			return unimplementedWithIssue(sqllex, 27792)
		}
	case 920:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:5338
		{
			return unimplementedWithIssue(sqllex, 24873)
		}
	case 921:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5340
		{
			return unimplementedWithIssue(sqllex, 27791)
		}
	case 922:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:5342
		{
			return unimplementedWithIssueDetail(sqllex, 27793, "base")
		}
	case 923:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5344
		{
			return unimplementedWithIssueDetail(sqllex, 27793, "shell")
		}
	case 924:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5346
		{
			return unimplementedWithIssueDetail(sqllex, 27796, "create")
		}
	case 925:
		sqlDollar = sqlS[sqlpt-16 : sqlpt+1]
//line sql-gen.y:5362
		{
			table := sqlDollar[7].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateIndex{
				Name:         tree.Name(sqlDollar[5].str),
				Table:        table,
				Unique:       sqlDollar[2].union.bool(),
				Columns:      sqlDollar[10].union.idxElems(),
				Sharded:      sqlDollar[12].union.shardedIndexDef(),
				Storing:      sqlDollar[13].union.nameList(),
				Interleave:   sqlDollar[14].union.interleave(),
				PartitionBy:  sqlDollar[15].union.partitionBy(),
				Inverted:     sqlDollar[8].union.bool(),
				Concurrently: sqlDollar[4].union.bool(),
			}
		}
	case 926:
		sqlDollar = sqlS[sqlpt-19 : sqlpt+1]
//line sql-gen.y:5378
		{
			table := sqlDollar[10].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateIndex{
				Name:         tree.Name(sqlDollar[8].str),
				Table:        table,
				Unique:       sqlDollar[2].union.bool(),
				IfNotExists:  true,
				Columns:      sqlDollar[13].union.idxElems(),
				Sharded:      sqlDollar[15].union.shardedIndexDef(),
				Storing:      sqlDollar[16].union.nameList(),
				Interleave:   sqlDollar[17].union.interleave(),
				PartitionBy:  sqlDollar[18].union.partitionBy(),
				Inverted:     sqlDollar[11].union.bool(),
				Concurrently: sqlDollar[4].union.bool(),
			}
		}
	case 927:
		sqlDollar = sqlS[sqlpt-15 : sqlpt+1]
//line sql-gen.y:5395
		{
			table := sqlDollar[8].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateIndex{
				Name:         tree.Name(sqlDollar[6].str),
				Table:        table,
				Unique:       sqlDollar[2].union.bool(),
				Inverted:     true,
				Columns:      sqlDollar[10].union.idxElems(),
				Storing:      sqlDollar[12].union.nameList(),
				Interleave:   sqlDollar[13].union.interleave(),
				PartitionBy:  sqlDollar[14].union.partitionBy(),
				Concurrently: sqlDollar[5].union.bool(),
			}
		}
	case 928:
		sqlDollar = sqlS[sqlpt-18 : sqlpt+1]
//line sql-gen.y:5410
		{
			table := sqlDollar[11].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.CreateIndex{
				Name:         tree.Name(sqlDollar[9].str),
				Table:        table,
				Unique:       sqlDollar[2].union.bool(),
				Inverted:     true,
				IfNotExists:  true,
				Columns:      sqlDollar[13].union.idxElems(),
				Storing:      sqlDollar[15].union.nameList(),
				Interleave:   sqlDollar[16].union.interleave(),
				PartitionBy:  sqlDollar[17].union.partitionBy(),
				Concurrently: sqlDollar[5].union.bool(),
			}
		}
	case 929:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5425
		{
			return helpWith(sqllex, "CREATE INDEX")
		}
	case 930:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5428
		{
		}
	case 931:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5429
		{
			return unimplementedWithIssue(sqllex, 9683)
		}
	case 932:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5433
		{

			switch sqlDollar[2].str {
			case "gin":
				sqlVAL.union.val = true
			case "btree":
				sqlVAL.union.val = false
			case "hash", "gist", "spgist", "brin":
				return unimplemented(sqllex, "index using "+sqlDollar[2].str)
			default:
				sqllex.Error("unrecognized access method: " + sqlDollar[2].str)
				return 1
			}
		}
	case 933:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5448
		{
			sqlVAL.union.val = false
		}
	case 934:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5454
		{
			sqlVAL.union.val = true
		}
	case 935:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5458
		{
			sqlVAL.union.val = false
		}
	case 936:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5464
		{
			sqlVAL.union.val = true
		}
	case 937:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5468
		{
			sqlVAL.union.val = false
		}
	case 938:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5474
		{
			sqlVAL.union.val = tree.IndexElemList{sqlDollar[1].union.idxElem()}
		}
	case 939:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5478
		{
			sqlVAL.union.val = append(sqlDollar[1].union.idxElems(), sqlDollar[3].union.idxElem())
		}
	case 940:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5487
		{

			e := sqlDollar[1].union.expr()
			dir := sqlDollar[2].union.dir()
			nullsOrder := sqlDollar[3].union.nullsOrder()

			if nullsOrder != tree.DefaultNullsOrder {
				if dir == tree.Descending && nullsOrder == tree.NullsFirst {
					return unimplementedWithIssue(sqllex, 6224)
				}
				if dir != tree.Descending && nullsOrder == tree.NullsLast {
					return unimplementedWithIssue(sqllex, 6224)
				}
			}
			if colName, ok := e.(*tree.UnresolvedName); ok && colName.NumParts == 1 {
				sqlVAL.union.val = tree.IndexElem{Column: tree.Name(colName.Parts[0]), Direction: dir, NullsOrder: nullsOrder}
			} else {
				return unimplementedWithIssueDetail(sqllex, 9682, fmt.Sprintf("%T", e))
			}
		}
	case 941:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5509
		{
			sqlVAL.str = sqlDollar[2].str
		}
	case 942:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5510
		{
			sqlVAL.str = ""
		}
	case 943:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5514
		{
			sqlVAL.union.val = tree.Ascending
		}
	case 944:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5518
		{
			sqlVAL.union.val = tree.Descending
		}
	case 945:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5522
		{
			sqlVAL.union.val = tree.DefaultDirection
		}
	case 946:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5528
		{
			sqlVAL.union.val = &tree.RenameDatabase{Name: tree.Name(sqlDollar[3].str), NewName: tree.Name(sqlDollar[6].str)}
		}
	case 947:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5534
		{
			name := sqlDollar[3].union.unresolvedObjectName()
			newName := sqlDollar[6].union.unresolvedObjectName()
			sqlVAL.union.val = &tree.RenameTable{Name: name, NewName: newName, IfExists: false, IsView: false}
		}
	case 948:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5540
		{
			name := sqlDollar[5].union.unresolvedObjectName()
			newName := sqlDollar[8].union.unresolvedObjectName()
			sqlVAL.union.val = &tree.RenameTable{Name: name, NewName: newName, IfExists: true, IsView: false}
		}
	case 949:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5548
		{
			name := sqlDollar[3].union.unresolvedObjectName()
			newName := sqlDollar[6].union.unresolvedObjectName()
			sqlVAL.union.val = &tree.RenameTable{Name: name, NewName: newName, IfExists: false, IsView: true}
		}
	case 950:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5554
		{
			name := sqlDollar[5].union.unresolvedObjectName()
			newName := sqlDollar[8].union.unresolvedObjectName()
			sqlVAL.union.val = &tree.RenameTable{Name: name, NewName: newName, IfExists: true, IsView: true}
		}
	case 951:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5562
		{
			name := sqlDollar[3].union.unresolvedObjectName()
			newName := sqlDollar[6].union.unresolvedObjectName()
			sqlVAL.union.val = &tree.RenameTable{Name: name, NewName: newName, IfExists: false, IsSequence: true}
		}
	case 952:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5568
		{
			name := sqlDollar[5].union.unresolvedObjectName()
			newName := sqlDollar[8].union.unresolvedObjectName()
			sqlVAL.union.val = &tree.RenameTable{Name: name, NewName: newName, IfExists: true, IsSequence: true}
		}
	case 953:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5576
		{
			sqlVAL.union.val = &tree.RenameIndex{Index: sqlDollar[3].union.newTableIndexName(), NewName: tree.UnrestrictedName(sqlDollar[6].str), IfExists: false}
		}
	case 954:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5580
		{
			sqlVAL.union.val = &tree.RenameIndex{Index: sqlDollar[5].union.newTableIndexName(), NewName: tree.UnrestrictedName(sqlDollar[8].str), IfExists: true}
		}
	case 955:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5585
		{
		}
	case 956:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5586
		{
		}
	case 957:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5589
		{
		}
	case 958:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5590
		{
		}
	case 959:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5598
		{
			sqlVAL.union.val = &tree.ReleaseSavepoint{Savepoint: tree.Name(sqlDollar[2].str)}
		}
	case 960:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5601
		{
			return helpWith(sqllex, "RELEASE")
		}
	case 961:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5611
		{
			sqlVAL.union.val = &tree.ControlJobs{
				Jobs: &tree.Select{
					Select: &tree.ValuesClause{Rows: []tree.Exprs{tree.Exprs{sqlDollar[3].union.expr()}}},
				},
				Command: tree.ResumeJob,
			}
		}
	case 962:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5620
		{
			sqlVAL.union.val = &tree.ControlJobs{Jobs: sqlDollar[3].union.slct(), Command: tree.ResumeJob}
		}
	case 963:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5623
		{
			return helpWith(sqllex, "RESUME JOBS")
		}
	case 964:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5631
		{
			sqlVAL.union.val = &tree.Savepoint{Name: tree.Name(sqlDollar[2].str)}
		}
	case 965:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5634
		{
			return helpWith(sqllex, "SAVEPOINT")
		}
	case 967:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5638
		{
			return helpWith(sqllex, "BEGIN")
		}
	case 969:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5639
		{
			return helpWith(sqllex, "COMMIT")
		}
	case 971:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5640
		{
			return helpWith(sqllex, "ROLLBACK")
		}
	case 973:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5656
		{
			sqlVAL.union.val = sqlDollar[3].union.stmt()
		}
	case 974:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5659
		{
			return helpWith(sqllex, "BEGIN")
		}
	case 975:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5661
		{
			sqlVAL.union.val = sqlDollar[3].union.stmt()
		}
	case 976:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5664
		{
			return helpWith(sqllex, "BEGIN")
		}
	case 977:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5674
		{
			sqlVAL.union.val = &tree.CommitTransaction{}
		}
	case 978:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5677
		{
			return helpWith(sqllex, "COMMIT")
		}
	case 979:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5679
		{
			sqlVAL.union.val = &tree.CommitTransaction{}
		}
	case 980:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5682
		{
			return helpWith(sqllex, "COMMIT")
		}
	case 981:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5686
		{
			sqlVAL.union.val = &tree.RollbackTransaction{}
		}
	case 982:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5691
		{
		}
	case 983:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5692
		{
		}
	case 984:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5693
		{
		}
	case 985:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5703
		{
			sqlVAL.union.val = &tree.RollbackTransaction{}
		}
	case 986:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5707
		{
			sqlVAL.union.val = &tree.RollbackToSavepoint{Savepoint: tree.Name(sqlDollar[4].str)}
		}
	case 987:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5710
		{
			return helpWith(sqllex, "ROLLBACK")
		}
	case 988:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5713
		{
		}
	case 989:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5714
		{
		}
	case 990:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5718
		{
			sqlVAL.str = sqlDollar[2].str
		}
	case 991:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5722
		{
			sqlVAL.str = sqlDollar[1].str
		}
	case 992:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5728
		{
			sqlVAL.union.val = &tree.BeginTransaction{Modes: sqlDollar[1].union.transactionModes()}
		}
	case 993:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5732
		{
			sqlVAL.union.val = &tree.BeginTransaction{}
		}
	case 994:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5738
		{
			sqlVAL.union.val = sqlDollar[1].union.transactionModes()
		}
	case 995:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5742
		{
			a := sqlDollar[1].union.transactionModes()
			b := sqlDollar[3].union.transactionModes()
			err := a.Merge(b)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = a
		}
	case 996:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5755
		{
		}
	case 997:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5757
		{
		}
	case 998:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5761
		{

			sqlVAL.union.val = tree.TransactionModes{Isolation: sqlDollar[1].union.isoLevel()}
		}
	case 999:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5766
		{
			sqlVAL.union.val = tree.TransactionModes{UserPriority: sqlDollar[1].union.userPriority()}
		}
	case 1000:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5770
		{
			sqlVAL.union.val = tree.TransactionModes{ReadWriteMode: sqlDollar[1].union.readWriteMode()}
		}
	case 1001:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5774
		{
			sqlVAL.union.val = tree.TransactionModes{AsOf: sqlDollar[1].union.asOfClause()}
		}
	case 1002:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5780
		{
			sqlVAL.union.val = sqlDollar[2].union.userPriority()
		}
	case 1003:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5786
		{
			sqlVAL.union.val = sqlDollar[3].union.isoLevel()
		}
	case 1004:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5792
		{
			sqlVAL.union.val = tree.ReadOnly
		}
	case 1005:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5796
		{
			sqlVAL.union.val = tree.ReadWrite
		}
	case 1006:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5806
		{
			sqlVAL.union.val = &tree.CreateDatabase{
				Name:     tree.Name(sqlDollar[3].str),
				Template: sqlDollar[5].str,
				Encoding: sqlDollar[6].str,
				Collate:  sqlDollar[7].str,
				CType:    sqlDollar[8].str,
			}
		}
	case 1007:
		sqlDollar = sqlS[sqlpt-11 : sqlpt+1]
//line sql-gen.y:5816
		{
			sqlVAL.union.val = &tree.CreateDatabase{
				IfNotExists: true,
				Name:        tree.Name(sqlDollar[6].str),
				Template:    sqlDollar[8].str,
				Encoding:    sqlDollar[9].str,
				Collate:     sqlDollar[10].str,
				CType:       sqlDollar[11].str,
			}
		}
	case 1008:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5826
		{
			return helpWith(sqllex, "CREATE DATABASE")
		}
	case 1009:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5830
		{
			sqlVAL.str = sqlDollar[3].str
		}
	case 1010:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5834
		{
			sqlVAL.str = ""
		}
	case 1011:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5840
		{
			sqlVAL.str = sqlDollar[3].str
		}
	case 1012:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5844
		{
			sqlVAL.str = ""
		}
	case 1013:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5850
		{
			sqlVAL.str = sqlDollar[3].str
		}
	case 1014:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5854
		{
			sqlVAL.str = ""
		}
	case 1015:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5860
		{
			sqlVAL.str = sqlDollar[3].str
		}
	case 1016:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5864
		{
			sqlVAL.str = ""
		}
	case 1017:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5869
		{
		}
	case 1018:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5870
		{
		}
	case 1019:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5882
		{
			sqlVAL.union.val = sqlDollar[5].union.stmt()
			sqlVAL.union.val.(*tree.Insert).With = sqlDollar[1].union.with()
			sqlVAL.union.val.(*tree.Insert).Table = sqlDollar[4].union.tblExpr()
			sqlVAL.union.val.(*tree.Insert).Returning = sqlDollar[6].union.retClause()
		}
	case 1020:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:5889
		{
			sqlVAL.union.val = sqlDollar[5].union.stmt()
			sqlVAL.union.val.(*tree.Insert).With = sqlDollar[1].union.with()
			sqlVAL.union.val.(*tree.Insert).Table = sqlDollar[4].union.tblExpr()
			sqlVAL.union.val.(*tree.Insert).OnConflict = sqlDollar[6].union.onConflict()
			sqlVAL.union.val.(*tree.Insert).Returning = sqlDollar[7].union.retClause()
		}
	case 1021:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5896
		{
			return helpWith(sqllex, "INSERT")
		}
	case 1022:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:5907
		{
			sqlVAL.union.val = sqlDollar[5].union.stmt()
			sqlVAL.union.val.(*tree.Insert).With = sqlDollar[1].union.with()
			sqlVAL.union.val.(*tree.Insert).Table = sqlDollar[4].union.tblExpr()
			sqlVAL.union.val.(*tree.Insert).OnConflict = &tree.OnConflict{}
			sqlVAL.union.val.(*tree.Insert).Returning = sqlDollar[6].union.retClause()
		}
	case 1023:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5914
		{
			return helpWith(sqllex, "UPSERT")
		}
	case 1024:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5918
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &name
		}
	case 1025:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5927
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.AliasedTableExpr{Expr: &name, As: tree.AliasClause{Alias: tree.Name(sqlDollar[3].str)}}
		}
	case 1026:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5932
		{
			sqlVAL.union.val = sqlDollar[1].union.tblExpr()
		}
	case 1027:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5938
		{
			sqlVAL.union.val = &tree.Insert{Rows: sqlDollar[1].union.slct()}
		}
	case 1028:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5942
		{
			sqlVAL.union.val = &tree.Insert{Columns: sqlDollar[2].union.nameList(), Rows: sqlDollar[4].union.slct()}
		}
	case 1029:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:5946
		{
			sqlVAL.union.val = &tree.Insert{Rows: &tree.Select{}}
		}
	case 1030:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:5952
		{
			sqlVAL.union.val = tree.NameList{tree.Name(sqlDollar[1].str)}
		}
	case 1031:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5956
		{
			sqlVAL.union.val = append(sqlDollar[1].union.nameList(), tree.Name(sqlDollar[3].str))
		}
	case 1033:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5976
		{
			return unimplementedWithIssue(sqllex, 27792)
		}
	case 1034:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:5980
		{
			sqlVAL.union.val = &tree.OnConflict{Columns: sqlDollar[3].union.nameList(), Exprs: sqlDollar[7].union.updateExprs(), Where: tree.NewWhere(tree.AstWhere, sqlDollar[8].union.expr())}
		}
	case 1035:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:5984
		{
			sqlVAL.union.val = &tree.OnConflict{Columns: sqlDollar[3].union.nameList(), DoNothing: true}
		}
	case 1036:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5990
		{
			sqlVAL.union.val = sqlDollar[2].union.nameList()
		}
	case 1037:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:5993
		{
			return unimplementedWithIssue(sqllex, 32557)
		}
	case 1038:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:5994
		{
			return unimplementedWithIssue(sqllex, 28161)
		}
	case 1039:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:5996
		{
			sqlVAL.union.val = tree.NameList(nil)
		}
	case 1040:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6002
		{
			ret := tree.ReturningExprs(sqlDollar[2].union.selExprs())
			sqlVAL.union.val = &ret
		}
	case 1041:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6007
		{
			sqlVAL.union.val = tree.ReturningNothingClause
		}
	case 1042:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6011
		{
			sqlVAL.union.val = tree.AbsentReturningClause
		}
	case 1043:
		sqlDollar = sqlS[sqlpt-10 : sqlpt+1]
//line sql-gen.y:6028
		{
			sqlVAL.union.val = &tree.Update{
				With:      sqlDollar[1].union.with(),
				Table:     sqlDollar[3].union.tblExpr(),
				Exprs:     sqlDollar[5].union.updateExprs(),
				From:      sqlDollar[6].union.tblExprs(),
				Where:     tree.NewWhere(tree.AstWhere, sqlDollar[7].union.expr()),
				OrderBy:   sqlDollar[8].union.orderBy(),
				Limit:     sqlDollar[9].union.limit(),
				Returning: sqlDollar[10].union.retClause(),
			}
		}
	case 1044:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6040
		{
			return helpWith(sqllex, "UPDATE")
		}
	case 1045:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6043
		{
			sqlVAL.union.val = sqlDollar[2].union.tblExprs()
		}
	case 1046:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6046
		{
			sqlVAL.union.val = tree.TableExprs{}
		}
	case 1047:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6052
		{
			sqlVAL.union.val = tree.UpdateExprs{sqlDollar[1].union.updateExpr()}
		}
	case 1048:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6056
		{
			sqlVAL.union.val = append(sqlDollar[1].union.updateExprs(), sqlDollar[3].union.updateExpr())
		}
	case 1051:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6069
		{
			sqlVAL.union.val = &tree.UpdateExpr{Names: tree.NameList{tree.Name(sqlDollar[1].str)}, Expr: sqlDollar[3].union.expr()}
		}
	case 1052:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6072
		{
			return unimplementedWithIssue(sqllex, 27792)
		}
	case 1053:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6076
		{
			sqlVAL.union.val = &tree.UpdateExpr{Tuple: true, Names: sqlDollar[2].union.nameList(), Expr: sqlDollar[5].union.expr()}
		}
	case 1055:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6119
		{
			sqlVAL.union.val = &tree.Select{Select: sqlDollar[1].union.selectStmt()}
		}
	case 1056:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6125
		{
			sqlVAL.union.val = &tree.ParenSelect{Select: sqlDollar[2].union.slct()}
		}
	case 1057:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6129
		{
			sqlVAL.union.val = &tree.ParenSelect{Select: &tree.Select{Select: sqlDollar[2].union.selectStmt()}}
		}
	case 1058:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6144
		{
			sqlVAL.union.val = &tree.Select{Select: sqlDollar[1].union.selectStmt()}
		}
	case 1059:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6148
		{
			sqlVAL.union.val = &tree.Select{Select: sqlDollar[1].union.selectStmt(), OrderBy: sqlDollar[2].union.orderBy()}
		}
	case 1060:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6152
		{
			sqlVAL.union.val = &tree.Select{Select: sqlDollar[1].union.selectStmt(), OrderBy: sqlDollar[2].union.orderBy(), Limit: sqlDollar[4].union.limit(), Locking: sqlDollar[3].union.lockingClause()}
		}
	case 1061:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6156
		{
			sqlVAL.union.val = &tree.Select{Select: sqlDollar[1].union.selectStmt(), OrderBy: sqlDollar[2].union.orderBy(), Limit: sqlDollar[3].union.limit(), Locking: sqlDollar[4].union.lockingClause()}
		}
	case 1062:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6160
		{
			sqlVAL.union.val = &tree.Select{With: sqlDollar[1].union.with(), Select: sqlDollar[2].union.selectStmt()}
		}
	case 1063:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6164
		{
			sqlVAL.union.val = &tree.Select{With: sqlDollar[1].union.with(), Select: sqlDollar[2].union.selectStmt(), OrderBy: sqlDollar[3].union.orderBy()}
		}
	case 1064:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6168
		{
			sqlVAL.union.val = &tree.Select{With: sqlDollar[1].union.with(), Select: sqlDollar[2].union.selectStmt(), OrderBy: sqlDollar[3].union.orderBy(), Limit: sqlDollar[5].union.limit(), Locking: sqlDollar[4].union.lockingClause()}
		}
	case 1065:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6172
		{
			sqlVAL.union.val = &tree.Select{With: sqlDollar[1].union.with(), Select: sqlDollar[2].union.selectStmt(), OrderBy: sqlDollar[3].union.orderBy(), Limit: sqlDollar[4].union.limit(), Locking: sqlDollar[5].union.lockingClause()}
		}
	case 1066:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6177
		{
			sqlVAL.union.val = sqlDollar[1].union.lockingClause()
		}
	case 1067:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6178
		{
			sqlVAL.union.val = (tree.LockingClause)(nil)
		}
	case 1068:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6181
		{
			sqlVAL.union.val = sqlDollar[1].union.lockingClause()
		}
	case 1069:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6182
		{
			sqlVAL.union.val = (tree.LockingClause)(nil)
		}
	case 1070:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6186
		{
			sqlVAL.union.val = tree.LockingClause{sqlDollar[1].union.lockingItem()}
		}
	case 1071:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6190
		{
			sqlVAL.union.val = append(sqlDollar[1].union.lockingClause(), sqlDollar[2].union.lockingItem())
		}
	case 1072:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6196
		{
			sqlVAL.union.val = &tree.LockingItem{
				Strength:   sqlDollar[1].union.lockingStrength(),
				Targets:    sqlDollar[2].union.tableNames(),
				WaitPolicy: sqlDollar[3].union.lockingWaitPolicy(),
			}
		}
	case 1073:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6205
		{
			sqlVAL.union.val = tree.ForUpdate
		}
	case 1074:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6206
		{
			sqlVAL.union.val = tree.ForNoKeyUpdate
		}
	case 1075:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6207
		{
			sqlVAL.union.val = tree.ForShare
		}
	case 1076:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6208
		{
			sqlVAL.union.val = tree.ForKeyShare
		}
	case 1077:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6211
		{
			sqlVAL.union.val = tree.TableNames{}
		}
	case 1078:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6212
		{
			sqlVAL.union.val = sqlDollar[2].union.tableNames()
		}
	case 1079:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6215
		{
			sqlVAL.union.val = tree.LockWaitBlock
		}
	case 1080:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6216
		{
			sqlVAL.union.val = tree.LockWaitSkip
		}
	case 1081:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6217
		{
			sqlVAL.union.val = tree.LockWaitError
		}
	case 1082:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6222
		{
			return helpWith(sqllex, "<SELECTCLAUSE>")
		}
	case 1086:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6257
		{
			return helpWith(sqllex, "SELECT")
		}
	case 1088:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6258
		{
			return helpWith(sqllex, "VALUES")
		}
	case 1090:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6259
		{
			return helpWith(sqllex, "TABLE")
		}
	case 1092:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:6281
		{
			sqlVAL.union.val = &tree.SelectClause{
				Exprs:   sqlDollar[3].union.selExprs(),
				From:    sqlDollar[4].union.from(),
				Where:   tree.NewWhere(tree.AstWhere, sqlDollar[5].union.expr()),
				GroupBy: sqlDollar[6].union.groupBy(),
				Having:  tree.NewWhere(tree.AstHaving, sqlDollar[7].union.expr()),
				Window:  sqlDollar[8].union.window(),
			}
		}
	case 1093:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:6294
		{
			sqlVAL.union.val = &tree.SelectClause{
				Distinct: sqlDollar[2].union.bool(),
				Exprs:    sqlDollar[3].union.selExprs(),
				From:     sqlDollar[4].union.from(),
				Where:    tree.NewWhere(tree.AstWhere, sqlDollar[5].union.expr()),
				GroupBy:  sqlDollar[6].union.groupBy(),
				Having:   tree.NewWhere(tree.AstHaving, sqlDollar[7].union.expr()),
				Window:   sqlDollar[8].union.window(),
			}
		}
	case 1094:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:6308
		{
			sqlVAL.union.val = &tree.SelectClause{
				Distinct:   true,
				DistinctOn: sqlDollar[2].union.distinctOn(),
				Exprs:      sqlDollar[3].union.selExprs(),
				From:       sqlDollar[4].union.from(),
				Where:      tree.NewWhere(tree.AstWhere, sqlDollar[5].union.expr()),
				GroupBy:    sqlDollar[6].union.groupBy(),
				Having:     tree.NewWhere(tree.AstHaving, sqlDollar[7].union.expr()),
				Window:     sqlDollar[8].union.window(),
			}
		}
	case 1095:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6320
		{
			return helpWith(sqllex, "SELECT")
		}
	case 1096:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6324
		{
			sqlVAL.union.val = &tree.UnionClause{
				Type:  tree.UnionOp,
				Left:  &tree.Select{Select: sqlDollar[1].union.selectStmt()},
				Right: &tree.Select{Select: sqlDollar[4].union.selectStmt()},
				All:   sqlDollar[3].union.bool(),
			}
		}
	case 1097:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6333
		{
			sqlVAL.union.val = &tree.UnionClause{
				Type:  tree.IntersectOp,
				Left:  &tree.Select{Select: sqlDollar[1].union.selectStmt()},
				Right: &tree.Select{Select: sqlDollar[4].union.selectStmt()},
				All:   sqlDollar[3].union.bool(),
			}
		}
	case 1098:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6342
		{
			sqlVAL.union.val = &tree.UnionClause{
				Type:  tree.ExceptOp,
				Left:  &tree.Select{Select: sqlDollar[1].union.selectStmt()},
				Right: &tree.Select{Select: sqlDollar[4].union.selectStmt()},
				All:   sqlDollar[3].union.bool(),
			}
		}
	case 1099:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6357
		{
			sqlVAL.union.val = &tree.SelectClause{
				Exprs:       tree.SelectExprs{tree.StarSelectExpr()},
				From:        tree.From{Tables: tree.TableExprs{sqlDollar[2].union.tblExpr()}},
				TableSelect: true,
			}
		}
	case 1100:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6364
		{
			return helpWith(sqllex, "TABLE")
		}
	case 1101:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6376
		{
			sqlVAL.union.val = &tree.With{CTEList: sqlDollar[2].union.ctes()}
		}
	case 1102:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6380
		{

			sqlVAL.union.val = &tree.With{CTEList: sqlDollar[2].union.ctes()}
		}
	case 1103:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6385
		{
			sqlVAL.union.val = &tree.With{Recursive: true, CTEList: sqlDollar[3].union.ctes()}
		}
	case 1104:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6391
		{
			sqlVAL.union.val = []*tree.CTE{sqlDollar[1].union.cte()}
		}
	case 1105:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6395
		{
			sqlVAL.union.val = append(sqlDollar[1].union.ctes(), sqlDollar[3].union.cte())
		}
	case 1106:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:6401
		{
			sqlVAL.union.val = &tree.CTE{
				Name: tree.AliasClause{Alias: tree.Name(sqlDollar[1].str), Cols: sqlDollar[2].union.nameList()},
				Stmt: sqlDollar[5].union.stmt(),
			}
		}
	case 1107:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6409
		{
		}
	case 1108:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6410
		{
		}
	case 1109:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6414
		{
			sqlVAL.union.val = sqlDollar[1].union.with()
		}
	case 1110:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6418
		{
			sqlVAL.union.val = nil
		}
	case 1111:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6423
		{
		}
	case 1112:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6424
		{
		}
	case 1113:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6428
		{
			sqlVAL.union.val = true
		}
	case 1114:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6432
		{
			sqlVAL.union.val = false
		}
	case 1115:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6436
		{
			sqlVAL.union.val = false
		}
	case 1116:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6442
		{
			sqlVAL.union.val = true
		}
	case 1117:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6448
		{
			sqlVAL.union.val = tree.DistinctOn(sqlDollar[4].union.exprs())
		}
	case 1118:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6453
		{
		}
	case 1119:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6454
		{
		}
	case 1120:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6458
		{
			sqlVAL.union.val = sqlDollar[1].union.orderBy()
		}
	case 1121:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6462
		{
			sqlVAL.union.val = tree.OrderBy(nil)
		}
	case 1122:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6468
		{
			sqlVAL.union.val = tree.OrderBy(sqlDollar[3].union.orders())
		}
	case 1123:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6474
		{
			sqlVAL.union.val = []*tree.Order{sqlDollar[1].union.order()}
		}
	case 1124:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6478
		{
			sqlVAL.union.val = append(sqlDollar[1].union.orders(), sqlDollar[3].union.order())
		}
	case 1125:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6484
		{

			dir := sqlDollar[2].union.dir()
			nullsOrder := sqlDollar[3].union.nullsOrder()

			if nullsOrder != tree.DefaultNullsOrder {
				if dir == tree.Descending && nullsOrder == tree.NullsFirst {
					return unimplementedWithIssue(sqllex, 6224)
				}
				if dir != tree.Descending && nullsOrder == tree.NullsLast {
					return unimplementedWithIssue(sqllex, 6224)
				}
			}
			sqlVAL.union.val = &tree.Order{
				OrderType:  tree.OrderByColumn,
				Expr:       sqlDollar[1].union.expr(),
				Direction:  dir,
				NullsOrder: nullsOrder,
			}
		}
	case 1126:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6505
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Order{OrderType: tree.OrderByIndex, Direction: sqlDollar[4].union.dir(), Table: name}
		}
	case 1127:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6510
		{
			name := sqlDollar[2].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.Order{
				OrderType: tree.OrderByIndex,
				Direction: sqlDollar[5].union.dir(),
				Table:     name,
				Index:     tree.UnrestrictedName(sqlDollar[4].str),
			}
		}
	case 1128:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6522
		{
			sqlVAL.union.val = tree.NullsFirst
		}
	case 1129:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6526
		{
			sqlVAL.union.val = tree.NullsLast
		}
	case 1130:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6530
		{
			sqlVAL.union.val = tree.DefaultNullsOrder
		}
	case 1131:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6539
		{
			if sqlDollar[1].union.limit() == nil {
				sqlVAL.union.val = sqlDollar[2].union.limit()
			} else {
				sqlVAL.union.val = sqlDollar[1].union.limit()
				sqlVAL.union.val.(*tree.Limit).Offset = sqlDollar[2].union.limit().Offset
			}
		}
	case 1132:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6548
		{
			sqlVAL.union.val = sqlDollar[1].union.limit()
			if sqlDollar[2].union.limit() != nil {
				sqlVAL.union.val.(*tree.Limit).Count = sqlDollar[2].union.limit().Count
				sqlVAL.union.val.(*tree.Limit).LimitAll = sqlDollar[2].union.limit().LimitAll
			}
		}
	case 1135:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6559
		{
			sqlVAL.union.val = sqlDollar[1].union.limit()
		}
	case 1136:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6560
		{
			sqlVAL.union.val = (*tree.Limit)(nil)
		}
	case 1138:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6564
		{
			sqlVAL.union.val = (*tree.Limit)(nil)
		}
	case 1139:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6568
		{
			sqlVAL.union.val = &tree.Limit{LimitAll: true}
		}
	case 1140:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6572
		{
			if sqlDollar[2].union.expr() == nil {
				sqlVAL.union.val = (*tree.Limit)(nil)
			} else {
				sqlVAL.union.val = &tree.Limit{Count: sqlDollar[2].union.expr()}
			}
		}
	case 1141:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6586
		{
			sqlVAL.union.val = &tree.Limit{Count: sqlDollar[3].union.expr()}
		}
	case 1142:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6590
		{
			sqlVAL.union.val = &tree.Limit{
				Count: tree.NewNumVal(constant.MakeInt64(1), "", false),
			}
		}
	case 1143:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6598
		{
			sqlVAL.union.val = &tree.Limit{Offset: sqlDollar[2].union.expr()}
		}
	case 1144:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6605
		{
			sqlVAL.union.val = &tree.Limit{Offset: sqlDollar[2].union.expr()}
		}
	case 1148:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6627
		{
		}
	case 1149:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6628
		{
		}
	case 1150:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6631
		{
		}
	case 1151:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6632
		{
		}
	case 1152:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6649
		{
			sqlVAL.union.val = tree.GroupBy(sqlDollar[3].union.exprs())
		}
	case 1153:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6653
		{
			sqlVAL.union.val = tree.GroupBy(nil)
		}
	case 1154:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6659
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1155:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6663
		{
			sqlVAL.union.val = tree.Expr(nil)
		}
	case 1156:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6682
		{
			sqlVAL.union.val = &tree.ValuesClause{Rows: []tree.Exprs{sqlDollar[3].union.exprs()}}
		}
	case 1157:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6685
		{
			return helpWith(sqllex, "VALUES")
		}
	case 1158:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6687
		{
			valNode := sqlDollar[1].union.selectStmt().(*tree.ValuesClause)
			valNode.Rows = append(valNode.Rows, sqlDollar[4].union.exprs())
			sqlVAL.union.val = valNode
		}
	case 1159:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6699
		{
			sqlVAL.union.val = tree.From{Tables: sqlDollar[2].union.tblExprs(), AsOf: sqlDollar[3].union.asOfClause()}
		}
	case 1160:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6702
		{
			return helpWith(sqllex, "<SOURCE>")
		}
	case 1161:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6704
		{
			sqlVAL.union.val = tree.From{}
		}
	case 1162:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6710
		{
			sqlVAL.union.val = tree.TableExprs{sqlDollar[1].union.tblExpr()}
		}
	case 1163:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6714
		{
			sqlVAL.union.val = append(sqlDollar[1].union.tblExprs(), sqlDollar[3].union.tblExpr())
		}
	case 1164:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6720
		{
			sqlVAL.union.val = &tree.IndexFlags{Index: tree.UnrestrictedName(sqlDollar[3].str)}
		}
	case 1165:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6724
		{

			sqlVAL.union.val = &tree.IndexFlags{IndexID: tree.IndexID(sqlDollar[4].union.int64())}
		}
	case 1166:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6729
		{

			sqlVAL.union.val = &tree.IndexFlags{Direction: tree.Ascending}
		}
	case 1167:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6734
		{

			sqlVAL.union.val = &tree.IndexFlags{Direction: tree.Descending}
		}
	case 1168:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6740
		{
			sqlVAL.union.val = &tree.IndexFlags{NoIndexJoin: true}
		}
	case 1169:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6745
		{

			sqlVAL.union.val = &tree.IndexFlags{IgnoreForeignKeys: true}
		}
	case 1170:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6752
		{
			sqlVAL.union.val = sqlDollar[1].union.indexFlags()
		}
	case 1171:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6757
		{
			a := sqlDollar[1].union.indexFlags()
			b := sqlDollar[3].union.indexFlags()
			if err := a.CombineWith(b); err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = a
		}
	case 1172:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6768
		{
			sqlVAL.union.val = &tree.IndexFlags{Index: tree.UnrestrictedName(sqlDollar[2].str)}
		}
	case 1173:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6772
		{
			sqlVAL.union.val = &tree.IndexFlags{IndexID: tree.IndexID(sqlDollar[3].union.int64())}
		}
	case 1174:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6776
		{
			flags := sqlDollar[3].union.indexFlags()
			if err := flags.Check(); err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = flags
		}
	case 1175:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6784
		{
			sqlVAL.union.val = (*tree.IndexFlags)(nil)
		}
	case 1176:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6815
		{

			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       sqlDollar[1].union.tblExpr(),
				IndexFlags: sqlDollar[2].union.indexFlags(),
				Ordinality: sqlDollar[3].union.bool(),
				As:         sqlDollar[4].union.aliasClause(),
			}
		}
	case 1177:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6825
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       &name,
				IndexFlags: sqlDollar[2].union.indexFlags(),
				Ordinality: sqlDollar[3].union.bool(),
				As:         sqlDollar[4].union.aliasClause(),
			}
		}
	case 1178:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6835
		{
			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       &tree.Subquery{Select: sqlDollar[1].union.selectStmt()},
				Ordinality: sqlDollar[2].union.bool(),
				As:         sqlDollar[3].union.aliasClause(),
			}
		}
	case 1179:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6843
		{
			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       &tree.Subquery{Select: sqlDollar[2].union.selectStmt()},
				Ordinality: sqlDollar[3].union.bool(),
				Lateral:    true,
				As:         sqlDollar[4].union.aliasClause(),
			}
		}
	case 1180:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6852
		{
			sqlVAL.union.val = sqlDollar[1].union.tblExpr()
		}
	case 1181:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6856
		{
			sqlVAL.union.val = &tree.AliasedTableExpr{Expr: &tree.ParenTableExpr{Expr: sqlDollar[2].union.tblExpr()}, Ordinality: sqlDollar[4].union.bool(), As: sqlDollar[5].union.aliasClause()}
		}
	case 1182:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6860
		{
			f := sqlDollar[1].union.tblExpr()
			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       f,
				Ordinality: sqlDollar[2].union.bool(),

				As: sqlDollar[3].union.aliasClause(),
			}
		}
	case 1183:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6871
		{
			f := sqlDollar[2].union.tblExpr()
			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       f,
				Ordinality: sqlDollar[3].union.bool(),
				Lateral:    true,
				As:         sqlDollar[4].union.aliasClause(),
			}
		}
	case 1184:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6895
		{
			sqlVAL.union.val = &tree.AliasedTableExpr{Expr: &tree.StatementSource{Statement: sqlDollar[2].union.stmt()}, Ordinality: sqlDollar[4].union.bool(), As: sqlDollar[5].union.aliasClause()}
		}
	case 1185:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6901
		{

			sqlVAL.union.val = &tree.TableRef{
				TableID: sqlDollar[2].union.int64(),
				Columns: sqlDollar[3].union.tableRefCols(),
				As:      sqlDollar[4].union.aliasClause(),
			}
		}
	case 1186:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6912
		{
			sqlVAL.union.val = &tree.RowsFromExpr{Items: tree.Exprs{sqlDollar[1].union.expr()}}
		}
	case 1187:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6916
		{
			sqlVAL.union.val = &tree.RowsFromExpr{Items: sqlDollar[4].union.exprs()}
		}
	case 1188:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6922
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 1189:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6924
		{
			sqlVAL.union.val = append(sqlDollar[1].union.exprs(), sqlDollar[3].union.expr())
		}
	case 1190:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6928
		{
			sqlVAL.union.val = sqlDollar[1].union.expr()
		}
	case 1191:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6934
		{
		}
	case 1192:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6936
		{
			return unimplemented(sqllex, "ROWS FROM with col_def_list")
		}
	case 1193:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6939
		{
			sqlVAL.union.val = nil
		}
	case 1194:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6940
		{
			sqlVAL.union.val = []tree.ColumnID{}
		}
	case 1195:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6941
		{
			sqlVAL.union.val = sqlDollar[2].union.tableRefCols()
		}
	case 1196:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:6945
		{
			sqlVAL.union.val = []tree.ColumnID{tree.ColumnID(sqlDollar[1].union.int64())}
		}
	case 1197:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6949
		{
			sqlVAL.union.val = append(sqlDollar[1].union.tableRefCols(), tree.ColumnID(sqlDollar[3].union.int64()))
		}
	case 1198:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:6955
		{
			sqlVAL.union.val = true
		}
	case 1199:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:6959
		{
			sqlVAL.union.val = false
		}
	case 1200:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:6979
		{
			sqlVAL.union.val = &tree.ParenTableExpr{Expr: sqlDollar[2].union.tblExpr()}
		}
	case 1201:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:6983
		{
			sqlVAL.union.val = &tree.JoinTableExpr{JoinType: tree.AstCross, Left: sqlDollar[1].union.tblExpr(), Right: sqlDollar[5].union.tblExpr(), Hint: sqlDollar[3].str}
		}
	case 1202:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:6987
		{
			sqlVAL.union.val = &tree.JoinTableExpr{JoinType: sqlDollar[2].str, Left: sqlDollar[1].union.tblExpr(), Right: sqlDollar[5].union.tblExpr(), Cond: sqlDollar[6].union.joinCond(), Hint: sqlDollar[3].str}
		}
	case 1203:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6991
		{
			sqlVAL.union.val = &tree.JoinTableExpr{Left: sqlDollar[1].union.tblExpr(), Right: sqlDollar[3].union.tblExpr(), Cond: sqlDollar[4].union.joinCond()}
		}
	case 1204:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:6995
		{
			sqlVAL.union.val = &tree.JoinTableExpr{JoinType: sqlDollar[3].str, Left: sqlDollar[1].union.tblExpr(), Right: sqlDollar[6].union.tblExpr(), Cond: tree.NaturalJoinCond{}, Hint: sqlDollar[4].str}
		}
	case 1205:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:6999
		{
			sqlVAL.union.val = &tree.JoinTableExpr{Left: sqlDollar[1].union.tblExpr(), Right: sqlDollar[4].union.tblExpr(), Cond: tree.NaturalJoinCond{}}
		}
	case 1206:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7005
		{
			sqlVAL.union.val = tree.AliasClause{Alias: tree.Name(sqlDollar[2].str), Cols: sqlDollar[3].union.nameList()}
		}
	case 1207:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7009
		{
			sqlVAL.union.val = tree.AliasClause{Alias: tree.Name(sqlDollar[1].str), Cols: sqlDollar[2].union.nameList()}
		}
	case 1209:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7016
		{
			sqlVAL.union.val = tree.AliasClause{}
		}
	case 1210:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7022
		{
			sqlVAL.union.val = tree.AsOfClause{Expr: sqlDollar[5].union.expr()}
		}
	case 1212:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7029
		{
			sqlVAL.union.val = tree.AsOfClause{}
		}
	case 1213:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7035
		{
			sqlVAL.str = tree.AstFull
		}
	case 1214:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7039
		{
			sqlVAL.str = tree.AstLeft
		}
	case 1215:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7043
		{
			sqlVAL.str = tree.AstRight
		}
	case 1216:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7047
		{
			sqlVAL.str = tree.AstInner
		}
	case 1217:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7053
		{
		}
	case 1218:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7054
		{
		}
	case 1219:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7075
		{
			sqlVAL.str = tree.AstHash
		}
	case 1220:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7079
		{
			sqlVAL.str = tree.AstMerge
		}
	case 1221:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7083
		{
			sqlVAL.str = tree.AstLookup
		}
	case 1222:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7087
		{
			sqlVAL.str = ""
		}
	case 1223:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7100
		{
			sqlVAL.union.val = &tree.UsingJoinCond{Cols: sqlDollar[3].union.nameList()}
		}
	case 1224:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7104
		{
			sqlVAL.union.val = &tree.OnJoinCond{Expr: sqlDollar[2].union.expr()}
		}
	case 1225:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7109
		{
			sqlVAL.union.val = sqlDollar[1].union.unresolvedObjectName()
		}
	case 1226:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7110
		{
			sqlVAL.union.val = sqlDollar[1].union.unresolvedObjectName()
		}
	case 1227:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7111
		{
			sqlVAL.union.val = sqlDollar[2].union.unresolvedObjectName()
		}
	case 1228:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7112
		{
			sqlVAL.union.val = sqlDollar[3].union.unresolvedObjectName()
		}
	case 1229:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7116
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = tree.TableNames{name}
		}
	case 1230:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7121
		{
			name := sqlDollar[3].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = append(sqlDollar[1].union.tableNames(), name)
		}
	case 1231:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7135
		{
			sqlVAL.union.val = sqlDollar[1].union.tblExpr()
		}
	case 1232:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7139
		{
			alias := sqlDollar[1].union.tblExpr().(*tree.AliasedTableExpr)
			alias.As = tree.AliasClause{Alias: tree.Name(sqlDollar[2].str)}
			sqlVAL.union.val = alias
		}
	case 1233:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7145
		{
			alias := sqlDollar[1].union.tblExpr().(*tree.AliasedTableExpr)
			alias.As = tree.AliasClause{Alias: tree.Name(sqlDollar[3].str)}
			sqlVAL.union.val = alias
		}
	case 1234:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7151
		{

			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       sqlDollar[1].union.tblExpr(),
				IndexFlags: sqlDollar[2].union.indexFlags(),
			}
		}
	case 1235:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7161
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = &tree.AliasedTableExpr{
				Expr:       &name,
				IndexFlags: sqlDollar[2].union.indexFlags(),
			}
		}
	case 1236:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7171
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1238:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7178
		{
			sqlVAL.union.val = tree.Expr(nil)
		}
	case 1239:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7190
		{
			if bounds := sqlDollar[2].union.int32s(); bounds != nil {
				var err error
				sqlVAL.union.val, err = arrayOf(sqlDollar[1].union.colType(), bounds)
				if err != nil {
					return setErr(sqllex, err)
				}
			} else {
				sqlVAL.union.val = sqlDollar[1].union.colType()
			}
		}
	case 1240:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7203
		{

			var err error
			sqlVAL.union.val, err = arrayOf(sqlDollar[1].union.colType(), nil)
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 1241:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:7211
		{
			return unimplementedWithIssue(sqllex, 32552)
		}
	case 1242:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7212
		{
			var err error
			sqlVAL.union.val, err = arrayOf(sqlDollar[1].union.colType(), nil)
			if err != nil {
				return setErr(sqllex, err)
			}
		}
	case 1243:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7222
		{
			sqlVAL.union.val = sqlDollar[1].union.colType()
		}
	case 1244:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7229
		{
			sqlVAL.union.val = []int32{-1}
		}
	case 1245:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7230
		{
			return unimplementedWithIssue(sqllex, 32552)
		}
	case 1246:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7232
		{

			bound, err := sqlDollar[2].union.numVal().AsInt32()
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = []int32{bound}
		}
	case 1247:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7240
		{
			return unimplementedWithIssue(sqllex, 32552)
		}
	case 1248:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7241
		{
			sqlVAL.union.val = []int32(nil)
		}
	case 1260:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7269
		{
			sqlVAL.union.val = types.Jsonb
		}
	case 1261:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7273
		{
			sqlVAL.union.val = types.Bytes
		}
	case 1262:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7277
		{
			sqlVAL.union.val = types.Bytes
		}
	case 1263:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7281
		{
			sqlVAL.union.val = types.Bytes
		}
	case 1264:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7285
		{
			sqlVAL.union.val = types.String
		}
	case 1265:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7289
		{
			sqlVAL.union.val = types.Name
		}
	case 1266:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7293
		{
			switch sqllex.(*lexer).nakedIntType.Width() {
			case 32:
				sqlVAL.union.val = &serial4Type
			default:
				sqlVAL.union.val = &serial8Type
			}
		}
	case 1267:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7302
		{
			sqlVAL.union.val = &serial2Type
		}
	case 1268:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7306
		{
			sqlVAL.union.val = &serial2Type
		}
	case 1269:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7310
		{
			sqlVAL.union.val = &serial4Type
		}
	case 1270:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7314
		{
			sqlVAL.union.val = &serial8Type
		}
	case 1271:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7318
		{
			sqlVAL.union.val = &serial8Type
		}
	case 1272:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7322
		{
			sqlVAL.union.val = types.Uuid
		}
	case 1273:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7326
		{
			sqlVAL.union.val = types.INet
		}
	case 1274:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7330
		{
			sqlVAL.union.val = types.Oid
		}
	case 1275:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7334
		{
			sqlVAL.union.val = types.OidVector
		}
	case 1276:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7338
		{
			sqlVAL.union.val = types.Int2Vector
		}
	case 1277:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7342
		{

			if sqlDollar[1].str == "char" {
				sqlVAL.union.val = types.MakeQChar(0)
			} else {
				var ok bool
				var unimp int
				sqlVAL.union.val, ok, unimp = types.TypeForNonKeywordTypeName(sqlDollar[1].str)
				if !ok {
					switch unimp {
					case 0:

						sqllex.Error("type does not exist")
						return 1
					case -1:
						return unimplemented(sqllex, "type name "+sqlDollar[1].str)
					default:
						return unimplementedWithIssueDetail(sqllex, unimp, sqlDollar[1].str)
					}
				}
			}
		}
	case 1278:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7373
		{
			dec, err := newDecimal(sqlDollar[2].union.int32(), 0)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = dec
		}
	case 1279:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7381
		{
			dec, err := newDecimal(sqlDollar[2].union.int32(), sqlDollar[4].union.int32())
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = dec
		}
	case 1280:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7389
		{
			sqlVAL.union.val = nil
		}
	case 1281:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7396
		{
			sqlVAL.union.val = sqllex.(*lexer).nakedIntType
		}
	case 1282:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7400
		{
			sqlVAL.union.val = sqllex.(*lexer).nakedIntType
		}
	case 1283:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7404
		{
			sqlVAL.union.val = types.Int2
		}
	case 1284:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7408
		{
			sqlVAL.union.val = types.Int2
		}
	case 1285:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7412
		{
			sqlVAL.union.val = types.Int4
		}
	case 1286:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7416
		{
			sqlVAL.union.val = types.Int
		}
	case 1287:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7420
		{
			sqlVAL.union.val = types.Int
		}
	case 1288:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7424
		{
			sqlVAL.union.val = types.Int
		}
	case 1289:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7428
		{
			sqlVAL.union.val = types.Float4
		}
	case 1290:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7432
		{
			sqlVAL.union.val = types.Float4
		}
	case 1291:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7436
		{
			sqlVAL.union.val = types.Float
		}
	case 1292:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7440
		{
			sqlVAL.union.val = sqlDollar[2].union.colType()
		}
	case 1293:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7444
		{
			sqlVAL.union.val = types.Float
		}
	case 1294:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7448
		{
			typ := sqlDollar[2].union.colType()
			if typ == nil {
				typ = types.Decimal
			}
			sqlVAL.union.val = typ
		}
	case 1295:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7456
		{
			typ := sqlDollar[2].union.colType()
			if typ == nil {
				typ = types.Decimal
			}
			sqlVAL.union.val = typ
		}
	case 1296:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7464
		{
			typ := sqlDollar[2].union.colType()
			if typ == nil {
				typ = types.Decimal
			}
			sqlVAL.union.val = typ
		}
	case 1297:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7472
		{
			sqlVAL.union.val = types.Bool
		}
	case 1298:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7476
		{
			sqlVAL.union.val = types.Bool
		}
	case 1299:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7483
		{
			sqlVAL.union.val = types.RegProc
		}
	case 1300:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7487
		{
			sqlVAL.union.val = types.RegProcedure
		}
	case 1301:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7491
		{
			sqlVAL.union.val = types.RegClass
		}
	case 1302:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7495
		{
			sqlVAL.union.val = types.RegType
		}
	case 1303:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7499
		{
			sqlVAL.union.val = types.RegNamespace
		}
	case 1304:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7505
		{
			nv := sqlDollar[2].union.numVal()
			prec, err := nv.AsInt64()
			if err != nil {
				return setErr(sqllex, err)
			}
			typ, err := newFloat(prec)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = typ
		}
	case 1305:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7518
		{
			sqlVAL.union.val = types.Float
		}
	case 1306:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7524
		{
			bit, err := newBitType(sqlDollar[4].union.int32(), sqlDollar[2].union.bool())
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = bit
		}
	case 1307:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7530
		{
			bit, err := newBitType(sqlDollar[3].union.int32(), true)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = bit
		}
	case 1308:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7538
		{
			sqlVAL.union.val = types.MakeBit(1)
		}
	case 1309:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7542
		{
			sqlVAL.union.val = types.VarBit
		}
	case 1310:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7546
		{
			sqlVAL.union.val = types.VarBit
		}
	case 1311:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7552
		{
			colTyp := *sqlDollar[1].union.colType()
			n := sqlDollar[3].union.int32()
			if n == 0 {
				sqllex.Error(fmt.Sprintf("length for type %s must be at least 1", colTyp.SQLString()))
				return 1
			}
			sqlVAL.union.val = types.MakeScalar(types.StringFamily, colTyp.Oid(), colTyp.Precision(), n, colTyp.Locale())
		}
	case 1312:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7564
		{
			sqlVAL.union.val = sqlDollar[1].union.colType()
		}
	case 1313:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7570
		{
			sqlVAL.union.val = types.MakeChar(1)
		}
	case 1314:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7574
		{
			sqlVAL.union.val = types.VarChar
		}
	case 1315:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7578
		{
			sqlVAL.union.val = types.VarChar
		}
	case 1316:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7582
		{
			sqlVAL.union.val = types.String
		}
	case 1319:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7591
		{
			sqlVAL.union.val = true
		}
	case 1320:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7592
		{
			sqlVAL.union.val = false
		}
	case 1321:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7597
		{
			sqlVAL.union.val = types.Date
		}
	case 1322:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7601
		{
			if sqlDollar[2].union.bool() {
				sqlVAL.union.val = types.TimeTZ
			} else {
				sqlVAL.union.val = types.Time
			}
		}
	case 1323:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7609
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			if sqlDollar[5].union.bool() {
				sqlVAL.union.val = types.MakeTimeTZ(prec)
			} else {
				sqlVAL.union.val = types.MakeTime(prec)
			}
		}
	case 1324:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7621
		{
			sqlVAL.union.val = types.TimeTZ
		}
	case 1325:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7623
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			sqlVAL.union.val = types.MakeTimeTZ(prec)
		}
	case 1326:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7632
		{
			if sqlDollar[2].union.bool() {
				sqlVAL.union.val = types.TimestampTZ
			} else {
				sqlVAL.union.val = types.Timestamp
			}
		}
	case 1327:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7640
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			if sqlDollar[5].union.bool() {
				sqlVAL.union.val = types.MakeTimestampTZ(prec)
			} else {
				sqlVAL.union.val = types.MakeTimestamp(prec)
			}
		}
	case 1328:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7653
		{
			sqlVAL.union.val = types.TimestampTZ
		}
	case 1329:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7657
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			sqlVAL.union.val = types.MakeTimestampTZ(prec)
		}
	case 1330:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7667
		{
			sqlVAL.union.val = true
		}
	case 1331:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7668
		{
			sqlVAL.union.val = false
		}
	case 1332:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7669
		{
			sqlVAL.union.val = false
		}
	case 1333:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7673
		{
			sqlVAL.union.val = types.Interval
		}
	case 1334:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7677
		{
			sqlVAL.union.val = types.MakeInterval(sqlDollar[2].union.intervalTypeMetadata())
		}
	case 1335:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7681
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			sqlVAL.union.val = types.MakeInterval(types.IntervalTypeMetadata{Precision: prec, PrecisionIsSet: true})
		}
	case 1336:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7692
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_YEAR,
				},
			}
		}
	case 1337:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7700
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_MONTH,
				},
			}
		}
	case 1338:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7708
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_DAY,
				},
			}
		}
	case 1339:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7716
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_HOUR,
				},
			}
		}
	case 1340:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7724
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_MINUTE,
				},
			}
		}
	case 1341:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7732
		{
			sqlVAL.union.val = sqlDollar[1].union.intervalTypeMetadata()
		}
	case 1342:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7738
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					FromDurationType: types.IntervalDurationType_YEAR,
					DurationType:     types.IntervalDurationType_MONTH,
				},
			}
		}
	case 1343:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7747
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					FromDurationType: types.IntervalDurationType_DAY,
					DurationType:     types.IntervalDurationType_HOUR,
				},
			}
		}
	case 1344:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7756
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					FromDurationType: types.IntervalDurationType_DAY,
					DurationType:     types.IntervalDurationType_MINUTE,
				},
			}
		}
	case 1345:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7765
		{
			ret := sqlDollar[3].union.intervalTypeMetadata()
			ret.DurationField.FromDurationType = types.IntervalDurationType_DAY
			sqlVAL.union.val = ret
		}
	case 1346:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7771
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					FromDurationType: types.IntervalDurationType_HOUR,
					DurationType:     types.IntervalDurationType_MINUTE,
				},
			}
		}
	case 1347:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7780
		{
			ret := sqlDollar[3].union.intervalTypeMetadata()
			ret.DurationField.FromDurationType = types.IntervalDurationType_HOUR
			sqlVAL.union.val = ret
		}
	case 1348:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7786
		{
			sqlVAL.union.val = sqlDollar[3].union.intervalTypeMetadata()
			ret := sqlDollar[3].union.intervalTypeMetadata()
			ret.DurationField.FromDurationType = types.IntervalDurationType_MINUTE
			sqlVAL.union.val = ret
		}
	case 1350:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:7796
		{
			sqlVAL.union.val = nil
		}
	case 1351:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:7802
		{
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_SECOND,
				},
			}
		}
	case 1352:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:7810
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			sqlVAL.union.val = types.IntervalTypeMetadata{
				DurationField: types.IntervalDurationField{
					DurationType: types.IntervalDurationType_SECOND,
				},
				PrecisionIsSet: true,
				Precision:      prec,
			}
		}
	case 1354:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7847
		{
			sqlVAL.union.val = &tree.CastExpr{Expr: sqlDollar[1].union.expr(), Type: sqlDollar[3].union.colType(), SyntaxMode: tree.CastShort}
		}
	case 1355:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7851
		{
			sqlVAL.union.val = &tree.AnnotateTypeExpr{Expr: sqlDollar[1].union.expr(), Type: sqlDollar[3].union.colType(), SyntaxMode: tree.AnnotateShort}
		}
	case 1356:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7855
		{
			sqlVAL.union.val = &tree.CollateExpr{Expr: sqlDollar[1].union.expr(), Locale: sqlDollar[3].str}
		}
	case 1357:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:7859
		{

			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("timezone"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[5].union.expr()}}
		}
	case 1358:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7872
		{

			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1359:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7877
		{
			sqlVAL.union.val = unaryNegation(sqlDollar[2].union.expr())
		}
	case 1360:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:7881
		{
			sqlVAL.union.val = &tree.UnaryExpr{Operator: tree.UnaryComplement, Expr: sqlDollar[2].union.expr()}
		}
	case 1361:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7885
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Plus, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1362:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7889
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Minus, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1363:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7893
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Mult, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1364:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7897
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Div, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1365:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7901
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.FloorDiv, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1366:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7905
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Mod, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1367:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7909
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Pow, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1368:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7913
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Bitxor, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1369:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7917
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Bitand, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1370:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7921
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Bitor, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1371:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7925
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.LT, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1372:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7929
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.GT, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1373:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7933
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.JSONExists, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1374:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7937
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.JSONSomeExists, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1375:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7941
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.JSONAllExists, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1376:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7945
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.Contains, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1377:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7949
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.ContainedBy, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1378:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7953
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.EQ, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1379:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7957
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Concat, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1380:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7961
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.LShift, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1381:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7965
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.RShift, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1382:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7969
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.JSONFetchVal, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1383:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7973
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.JSONFetchText, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1384:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7977
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.JSONFetchValPath, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1385:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7981
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.JSONFetchTextPath, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1386:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7985
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("json_remove_path"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[3].union.expr()}}
		}
	case 1387:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7989
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("inet_contained_by_or_equals"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[3].union.expr()}}
		}
	case 1388:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7993
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.Overlaps, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1389:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:7997
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("inet_contains_or_equals"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[3].union.expr()}}
		}
	case 1390:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8001
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.LE, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1391:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8005
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.GE, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1392:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8009
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NE, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1393:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8013
		{
			sqlVAL.union.val = &tree.AndExpr{Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1394:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8017
		{
			sqlVAL.union.val = &tree.OrExpr{Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1395:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8021
		{
			sqlVAL.union.val = &tree.NotExpr{Expr: sqlDollar[2].union.expr()}
		}
	case 1396:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8025
		{
			sqlVAL.union.val = &tree.NotExpr{Expr: sqlDollar[2].union.expr()}
		}
	case 1397:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8029
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.Like, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1398:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8033
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("like_escape"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[3].union.expr(), sqlDollar[5].union.expr()}}
		}
	case 1399:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8037
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NotLike, Left: sqlDollar[1].union.expr(), Right: sqlDollar[4].union.expr()}
		}
	case 1400:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8041
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("not_like_escape"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[4].union.expr(), sqlDollar[6].union.expr()}}
		}
	case 1401:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8045
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.ILike, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1402:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8049
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("ilike_escape"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[3].union.expr(), sqlDollar[5].union.expr()}}
		}
	case 1403:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8053
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NotILike, Left: sqlDollar[1].union.expr(), Right: sqlDollar[4].union.expr()}
		}
	case 1404:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8057
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("not_ilike_escape"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[4].union.expr(), sqlDollar[6].union.expr()}}
		}
	case 1405:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8061
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.SimilarTo, Left: sqlDollar[1].union.expr(), Right: sqlDollar[4].union.expr()}
		}
	case 1406:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8065
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("similar_to_escape"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[4].union.expr(), sqlDollar[6].union.expr()}}
		}
	case 1407:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8069
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NotSimilarTo, Left: sqlDollar[1].union.expr(), Right: sqlDollar[5].union.expr()}
		}
	case 1408:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:8073
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("not_similar_to_escape"), Exprs: tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[5].union.expr(), sqlDollar[7].union.expr()}}
		}
	case 1409:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8077
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.RegMatch, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1410:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8081
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NotRegMatch, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1411:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8085
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.RegIMatch, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1412:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8089
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NotRegIMatch, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1413:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8093
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.EQ, Left: sqlDollar[1].union.expr(), Right: tree.NewStrVal("NaN")}
		}
	case 1414:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8097
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NE, Left: sqlDollar[1].union.expr(), Right: tree.NewStrVal("NaN")}
		}
	case 1415:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8101
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.DNull}
		}
	case 1416:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8105
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.DNull}
		}
	case 1417:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8109
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.DNull}
		}
	case 1418:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8113
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.DNull}
		}
	case 1419:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8116
		{
			return unimplemented(sqllex, "overlaps")
		}
	case 1420:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8118
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.MakeDBool(true)}
		}
	case 1421:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8122
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.MakeDBool(true)}
		}
	case 1422:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8126
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.MakeDBool(false)}
		}
	case 1423:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8130
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.MakeDBool(false)}
		}
	case 1424:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8134
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.DNull}
		}
	case 1425:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8138
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: tree.DNull}
		}
	case 1426:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8142
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: sqlDollar[5].union.expr()}
		}
	case 1427:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8146
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: sqlDollar[6].union.expr()}
		}
	case 1428:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8150
		{
			sqlVAL.union.val = &tree.IsOfTypeExpr{Expr: sqlDollar[1].union.expr(), Types: sqlDollar[5].union.colTypes()}
		}
	case 1429:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:8154
		{
			sqlVAL.union.val = &tree.IsOfTypeExpr{Not: true, Expr: sqlDollar[1].union.expr(), Types: sqlDollar[6].union.colTypes()}
		}
	case 1430:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8158
		{
			sqlVAL.union.val = &tree.RangeCond{Left: sqlDollar[1].union.expr(), From: sqlDollar[4].union.expr(), To: sqlDollar[6].union.expr()}
		}
	case 1431:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:8162
		{
			sqlVAL.union.val = &tree.RangeCond{Not: true, Left: sqlDollar[1].union.expr(), From: sqlDollar[5].union.expr(), To: sqlDollar[7].union.expr()}
		}
	case 1432:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8166
		{
			sqlVAL.union.val = &tree.RangeCond{Symmetric: true, Left: sqlDollar[1].union.expr(), From: sqlDollar[4].union.expr(), To: sqlDollar[6].union.expr()}
		}
	case 1433:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:8170
		{
			sqlVAL.union.val = &tree.RangeCond{Not: true, Symmetric: true, Left: sqlDollar[1].union.expr(), From: sqlDollar[5].union.expr(), To: sqlDollar[7].union.expr()}
		}
	case 1434:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8174
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.In, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1435:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8178
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NotIn, Left: sqlDollar[1].union.expr(), Right: sqlDollar[4].union.expr()}
		}
	case 1436:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8182
		{
			op := sqlDollar[3].union.cmpOp()
			subOp := sqlDollar[2].union.op()
			subOpCmp, ok := subOp.(tree.ComparisonOperator)
			if !ok {
				sqllex.Error(fmt.Sprintf("%s %s <array> is invalid because %q is not a boolean operator",
					subOp, op, subOp))
				return 1
			}
			sqlVAL.union.val = &tree.ComparisonExpr{
				Operator:    op,
				SubOperator: subOpCmp,
				Left:        sqlDollar[1].union.expr(),
				Right:       sqlDollar[4].union.expr(),
			}
		}
	case 1437:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8199
		{
			sqlVAL.union.val = tree.DefaultVal{}
		}
	case 1438:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8204
		{
			return unimplemented(sqllex, "UNIQUE predicate")
		}
	case 1440:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8216
		{
			sqlVAL.union.val = &tree.CastExpr{Expr: sqlDollar[1].union.expr(), Type: sqlDollar[3].union.colType(), SyntaxMode: tree.CastShort}
		}
	case 1441:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8220
		{
			sqlVAL.union.val = &tree.AnnotateTypeExpr{Expr: sqlDollar[1].union.expr(), Type: sqlDollar[3].union.colType(), SyntaxMode: tree.AnnotateShort}
		}
	case 1442:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8224
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1443:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8228
		{
			sqlVAL.union.val = unaryNegation(sqlDollar[2].union.expr())
		}
	case 1444:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8232
		{
			sqlVAL.union.val = &tree.UnaryExpr{Operator: tree.UnaryComplement, Expr: sqlDollar[2].union.expr()}
		}
	case 1445:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8236
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Plus, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1446:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8240
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Minus, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1447:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8244
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Mult, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1448:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8248
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Div, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1449:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8252
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.FloorDiv, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1450:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8256
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Mod, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1451:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8260
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Pow, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1452:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8264
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Bitxor, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1453:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8268
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Bitand, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1454:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8272
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Bitor, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1455:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8276
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.LT, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1456:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8280
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.GT, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1457:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8284
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.EQ, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1458:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8288
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.Concat, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1459:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8292
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.LShift, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1460:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8296
		{
			sqlVAL.union.val = &tree.BinaryExpr{Operator: tree.RShift, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1461:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8300
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.LE, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1462:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8304
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.GE, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1463:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8308
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.NE, Left: sqlDollar[1].union.expr(), Right: sqlDollar[3].union.expr()}
		}
	case 1464:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8312
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsDistinctFrom, Left: sqlDollar[1].union.expr(), Right: sqlDollar[5].union.expr()}
		}
	case 1465:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8316
		{
			sqlVAL.union.val = &tree.ComparisonExpr{Operator: tree.IsNotDistinctFrom, Left: sqlDollar[1].union.expr(), Right: sqlDollar[6].union.expr()}
		}
	case 1466:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8320
		{
			sqlVAL.union.val = &tree.IsOfTypeExpr{Expr: sqlDollar[1].union.expr(), Types: sqlDollar[5].union.colTypes()}
		}
	case 1467:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:8324
		{
			sqlVAL.union.val = &tree.IsOfTypeExpr{Not: true, Expr: sqlDollar[1].union.expr(), Types: sqlDollar[6].union.colTypes()}
		}
	case 1469:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8338
		{
			sqlVAL.union.val = &tree.IndirectionExpr{
				Expr:        sqlDollar[1].union.expr(),
				Indirection: sqlDollar[2].union.arraySubscripts(),
			}
		}
	case 1471:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8346
		{
			sqlVAL.union.val = &tree.Subquery{Select: sqlDollar[2].union.selectStmt(), Exists: true}
		}
	case 1472:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8382
		{
			sqlVAL.union.val = sqlDollar[1].union.numVal()
		}
	case 1473:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8386
		{
			sqlVAL.union.val = sqlDollar[1].union.numVal()
		}
	case 1474:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8390
		{
			sqlVAL.union.val = tree.NewStrVal(sqlDollar[1].str)
		}
	case 1475:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8394
		{
			sqlVAL.union.val = tree.NewBytesStrVal(sqlDollar[1].str)
		}
	case 1476:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8398
		{
			d, err := tree.ParseDBitArray(sqlDollar[1].str)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = d
		}
	case 1477:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8403
		{
			return unimplemented(sqllex, sqlDollar[1].union.unresolvedName().String()+"(...) SCONST")
		}
	case 1478:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8405
		{
			sqlVAL.union.val = &tree.CastExpr{Expr: tree.NewStrVal(sqlDollar[2].str), Type: sqlDollar[1].union.colType(), SyntaxMode: tree.CastPrepend}
		}
	case 1479:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8409
		{
			sqlVAL.union.val = sqlDollar[1].union.expr()
		}
	case 1480:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8413
		{
			sqlVAL.union.val = tree.MakeDBool(true)
		}
	case 1481:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8417
		{
			sqlVAL.union.val = tree.MakeDBool(false)
		}
	case 1482:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8421
		{
			sqlVAL.union.val = tree.DNull
		}
	case 1483:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8425
		{
			sqlVAL.union.val = tree.Expr(sqlDollar[1].union.unresolvedName())
		}
	case 1484:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8429
		{
			colNum := sqlDollar[2].union.int64()
			if colNum < 1 || colNum > int64(MaxInt) {
				sqllex.Error(fmt.Sprintf("invalid column ordinal: @%d", colNum))
				return 1
			}
			sqlVAL.union.val = tree.NewOrdinalReference(int(colNum - 1))
		}
	case 1485:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8438
		{
			p := sqlDollar[1].union.placeholder()
			sqllex.(*lexer).UpdateNumPlaceholders(p)
			sqlVAL.union.val = p
		}
	case 1486:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8445
		{
			sqlVAL.union.val = &tree.TupleStar{Expr: sqlDollar[2].union.expr()}
		}
	case 1487:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8449
		{
			sqlVAL.union.val = &tree.ColumnAccessExpr{Expr: sqlDollar[2].union.expr(), ColName: sqlDollar[5].str}
		}
	case 1488:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8453
		{
			idx, err := sqlDollar[6].union.numVal().AsInt32()
			if err != nil || idx <= 0 {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = &tree.ColumnAccessExpr{Expr: sqlDollar[2].union.expr(), ByIndex: true, ColIndex: int(idx - 1)}
		}
	case 1489:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8459
		{
			sqlVAL.union.val = &tree.ParenExpr{Expr: sqlDollar[2].union.expr()}
		}
	case 1491:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8464
		{
			sqlVAL.union.val = &tree.Subquery{Select: sqlDollar[1].union.selectStmt()}
		}
	case 1492:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8468
		{
			sqlVAL.union.val = sqlDollar[1].union.tuple()
		}
	case 1493:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8472
		{
			sqlVAL.union.val = &tree.ArrayFlatten{Subquery: &tree.Subquery{Select: sqlDollar[2].union.selectStmt()}}
		}
	case 1494:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8476
		{
			sqlVAL.union.val = &tree.Array{Exprs: sqlDollar[2].union.tuple().Exprs}
		}
	case 1495:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8480
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1496:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8483
		{
			return unimplemented(sqllex, "d_expr grouping")
		}
	case 1497:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8487
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: sqlDollar[1].union.resolvableFuncRefFromName()}
		}
	case 1498:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8491
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: sqlDollar[1].union.resolvableFuncRefFromName(), Exprs: sqlDollar[3].union.exprs(), OrderBy: sqlDollar[4].union.orderBy()}
		}
	case 1499:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8494
		{
			return unimplemented(sqllex, "variadic")
		}
	case 1500:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:8495
		{
			return unimplemented(sqllex, "variadic")
		}
	case 1501:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8497
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: sqlDollar[1].union.resolvableFuncRefFromName(), Type: tree.AllFuncType, Exprs: sqlDollar[4].union.exprs(), OrderBy: sqlDollar[5].union.orderBy()}
		}
	case 1502:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8503
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: sqlDollar[1].union.resolvableFuncRefFromName(), Type: tree.DistinctFuncType, Exprs: sqlDollar[4].union.exprs()}
		}
	case 1503:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8507
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: sqlDollar[1].union.resolvableFuncRefFromName(), Exprs: tree.Exprs{tree.StarExpr()}}
		}
	case 1504:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8510
		{
			return helpWithFunction(sqllex, sqlDollar[1].union.resolvableFuncRefFromName())
		}
	case 1505:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8521
		{
			f := sqlDollar[1].union.expr().(*tree.FuncExpr)
			f.Filter = sqlDollar[3].union.expr()
			f.WindowDef = sqlDollar[4].union.windowDef()
			sqlVAL.union.val = f
		}
	case 1506:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8528
		{
			sqlVAL.union.val = sqlDollar[1].union.expr()
		}
	case 1507:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8537
		{
			sqlVAL.union.val = sqlDollar[1].union.expr()
		}
	case 1508:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8538
		{
			sqlVAL.union.val = sqlDollar[1].union.expr()
		}
	case 1509:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8543
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("pg_collation_for"), Exprs: tree.Exprs{sqlDollar[4].union.expr()}}
		}
	case 1510:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8547
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1511:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8551
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1512:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8557
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("current_database")}
		}
	case 1513:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8561
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1514:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8565
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1515:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8569
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1516:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8573
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1517:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8577
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1518:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8583
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("current_user")}
		}
	case 1519:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8587
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("current_user")}
		}
	case 1520:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8591
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("current_user")}
		}
	case 1521:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8595
		{
			sqlVAL.union.val = &tree.CastExpr{Expr: sqlDollar[3].union.expr(), Type: sqlDollar[5].union.colType(), SyntaxMode: tree.CastExplicit}
		}
	case 1522:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8599
		{
			sqlVAL.union.val = &tree.AnnotateTypeExpr{Expr: sqlDollar[3].union.expr(), Type: sqlDollar[5].union.colType(), SyntaxMode: tree.AnnotateExplicit}
		}
	case 1523:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:8603
		{
			sqlVAL.union.val = &tree.IfExpr{Cond: sqlDollar[3].union.expr(), True: sqlDollar[5].union.expr(), Else: sqlDollar[7].union.expr()}
		}
	case 1524:
		sqlDollar = sqlS[sqlpt-8 : sqlpt+1]
//line sql-gen.y:8607
		{
			sqlVAL.union.val = &tree.IfErrExpr{Cond: sqlDollar[3].union.expr(), Else: sqlDollar[5].union.expr(), ErrCode: sqlDollar[7].union.expr()}
		}
	case 1525:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8611
		{
			sqlVAL.union.val = &tree.IfErrExpr{Cond: sqlDollar[3].union.expr(), Else: sqlDollar[5].union.expr()}
		}
	case 1526:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8615
		{
			sqlVAL.union.val = &tree.IfErrExpr{Cond: sqlDollar[3].union.expr()}
		}
	case 1527:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8619
		{
			sqlVAL.union.val = &tree.IfErrExpr{Cond: sqlDollar[3].union.expr(), ErrCode: sqlDollar[5].union.expr()}
		}
	case 1528:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8623
		{
			sqlVAL.union.val = &tree.NullIfExpr{Expr1: sqlDollar[3].union.expr(), Expr2: sqlDollar[5].union.expr()}
		}
	case 1529:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8627
		{
			sqlVAL.union.val = &tree.CoalesceExpr{Name: "IFNULL", Exprs: tree.Exprs{sqlDollar[3].union.expr(), sqlDollar[5].union.expr()}}
		}
	case 1530:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8631
		{
			sqlVAL.union.val = &tree.CoalesceExpr{Name: "COALESCE", Exprs: sqlDollar[3].union.exprs()}
		}
	case 1532:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8638
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1533:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8641
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1534:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8643
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1535:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8646
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1536:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8648
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1537:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8652
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: tree.Exprs{sqlDollar[3].union.expr()}}
		}
	case 1538:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8655
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1539:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8657
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1540:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8661
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: tree.Exprs{sqlDollar[3].union.expr()}}
		}
	case 1541:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8664
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1542:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8666
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1543:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8670
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: tree.Exprs{sqlDollar[3].union.expr()}}
		}
	case 1544:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8673
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1545:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8675
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1546:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8679
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: tree.Exprs{sqlDollar[3].union.expr()}}
		}
	case 1547:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8682
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1548:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8684
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str)}
		}
	case 1549:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8687
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1550:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8689
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1551:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8692
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1552:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8694
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1553:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8697
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1554:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8699
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1555:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8702
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1556:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8704
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("strpos"), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1557:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8708
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1558:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8711
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1559:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8712
		{
			return unimplemented(sqllex, "treat")
		}
	case 1560:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8714
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("btrim"), Exprs: sqlDollar[4].union.exprs()}
		}
	case 1561:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8718
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("ltrim"), Exprs: sqlDollar[4].union.exprs()}
		}
	case 1562:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8722
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("rtrim"), Exprs: sqlDollar[4].union.exprs()}
		}
	case 1563:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8726
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction("btrim"), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1564:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8730
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1565:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8733
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1566:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8735
		{
			sqlVAL.union.val = &tree.FuncExpr{Func: tree.WrapFunction(sqlDollar[1].str), Exprs: sqlDollar[3].union.exprs()}
		}
	case 1567:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8738
		{
			return helpWithFunctionByName(sqllex, sqlDollar[1].str)
		}
	case 1568:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8743
		{
			return unimplemented(sqllex, "within group")
		}
	case 1569:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8744
		{
		}
	case 1570:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8748
		{
			sqlVAL.union.val = sqlDollar[4].union.expr()
		}
	case 1571:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8752
		{
			sqlVAL.union.val = tree.Expr(nil)
		}
	case 1572:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8759
		{
			sqlVAL.union.val = sqlDollar[2].union.window()
		}
	case 1573:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8763
		{
			sqlVAL.union.val = tree.Window(nil)
		}
	case 1574:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8769
		{
			sqlVAL.union.val = tree.Window{sqlDollar[1].union.windowDef()}
		}
	case 1575:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8773
		{
			sqlVAL.union.val = append(sqlDollar[1].union.window(), sqlDollar[3].union.windowDef())
		}
	case 1576:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8779
		{
			n := sqlDollar[3].union.windowDef()
			n.Name = tree.Name(sqlDollar[1].str)
			sqlVAL.union.val = n
		}
	case 1577:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8787
		{
			sqlVAL.union.val = sqlDollar[2].union.windowDef()
		}
	case 1578:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8791
		{
			sqlVAL.union.val = &tree.WindowDef{Name: tree.Name(sqlDollar[2].str)}
		}
	case 1579:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8795
		{
			sqlVAL.union.val = (*tree.WindowDef)(nil)
		}
	case 1580:
		sqlDollar = sqlS[sqlpt-6 : sqlpt+1]
//line sql-gen.y:8802
		{
			sqlVAL.union.val = &tree.WindowDef{
				RefName:    tree.Name(sqlDollar[2].str),
				Partitions: sqlDollar[3].union.exprs(),
				OrderBy:    sqlDollar[4].union.orderBy(),
				Frame:      sqlDollar[5].union.windowFrame(),
			}
		}
	case 1582:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8822
		{
			sqlVAL.str = ""
		}
	case 1583:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8828
		{
			sqlVAL.union.val = sqlDollar[3].union.exprs()
		}
	case 1584:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8832
		{
			sqlVAL.union.val = tree.Exprs(nil)
		}
	case 1585:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8838
		{
			sqlVAL.union.val = &tree.WindowFrame{
				Mode:      tree.RANGE,
				Bounds:    sqlDollar[2].union.windowFrameBounds(),
				Exclusion: sqlDollar[3].union.windowFrameExclusion(),
			}
		}
	case 1586:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8846
		{
			sqlVAL.union.val = &tree.WindowFrame{
				Mode:      tree.ROWS,
				Bounds:    sqlDollar[2].union.windowFrameBounds(),
				Exclusion: sqlDollar[3].union.windowFrameExclusion(),
			}
		}
	case 1587:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8854
		{
			sqlVAL.union.val = &tree.WindowFrame{
				Mode:      tree.GROUPS,
				Bounds:    sqlDollar[2].union.windowFrameBounds(),
				Exclusion: sqlDollar[3].union.windowFrameExclusion(),
			}
		}
	case 1588:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8862
		{
			sqlVAL.union.val = (*tree.WindowFrame)(nil)
		}
	case 1589:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8868
		{
			startBound := sqlDollar[1].union.windowFrameBound()
			switch {
			case startBound.BoundType == tree.UnboundedFollowing:
				sqllex.Error("frame start cannot be UNBOUNDED FOLLOWING")
				return 1
			case startBound.BoundType == tree.OffsetFollowing:
				sqllex.Error("frame starting from following row cannot end with current row")
				return 1
			}
			sqlVAL.union.val = tree.WindowFrameBounds{StartBound: startBound}
		}
	case 1590:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8881
		{
			startBound := sqlDollar[2].union.windowFrameBound()
			endBound := sqlDollar[4].union.windowFrameBound()
			switch {
			case startBound.BoundType == tree.UnboundedFollowing:
				sqllex.Error("frame start cannot be UNBOUNDED FOLLOWING")
				return 1
			case endBound.BoundType == tree.UnboundedPreceding:
				sqllex.Error("frame end cannot be UNBOUNDED PRECEDING")
				return 1
			case startBound.BoundType == tree.CurrentRow && endBound.BoundType == tree.OffsetPreceding:
				sqllex.Error("frame starting from current row cannot have preceding rows")
				return 1
			case startBound.BoundType == tree.OffsetFollowing && endBound.BoundType == tree.OffsetPreceding:
				sqllex.Error("frame starting from following row cannot have preceding rows")
				return 1
			case startBound.BoundType == tree.OffsetFollowing && endBound.BoundType == tree.CurrentRow:
				sqllex.Error("frame starting from following row cannot have preceding rows")
				return 1
			}
			sqlVAL.union.val = tree.WindowFrameBounds{StartBound: startBound, EndBound: endBound}
		}
	case 1591:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8909
		{
			sqlVAL.union.val = &tree.WindowFrameBound{BoundType: tree.UnboundedPreceding}
		}
	case 1592:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8913
		{
			sqlVAL.union.val = &tree.WindowFrameBound{BoundType: tree.UnboundedFollowing}
		}
	case 1593:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8917
		{
			sqlVAL.union.val = &tree.WindowFrameBound{BoundType: tree.CurrentRow}
		}
	case 1594:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8921
		{
			sqlVAL.union.val = &tree.WindowFrameBound{
				OffsetExpr: sqlDollar[1].union.expr(),
				BoundType:  tree.OffsetPreceding,
			}
		}
	case 1595:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8928
		{
			sqlVAL.union.val = &tree.WindowFrameBound{
				OffsetExpr: sqlDollar[1].union.expr(),
				BoundType:  tree.OffsetFollowing,
			}
		}
	case 1596:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8937
		{
			sqlVAL.union.val = tree.ExcludeCurrentRow
		}
	case 1597:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8941
		{
			sqlVAL.union.val = tree.ExcludeGroup
		}
	case 1598:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:8945
		{
			sqlVAL.union.val = tree.ExcludeTies
		}
	case 1599:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:8949
		{

			sqlVAL.union.val = tree.NoExclusion
		}
	case 1600:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:8954
		{
			sqlVAL.union.val = tree.NoExclusion
		}
	case 1601:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:8967
		{
			sqlVAL.union.val = &tree.Tuple{Exprs: sqlDollar[3].union.exprs(), Row: true}
		}
	case 1602:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8971
		{
			sqlVAL.union.val = sqlDollar[1].union.tuple()
		}
	case 1604:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:8978
		{
			t := sqlDollar[2].union.tuple()
			labels := sqlDollar[4].union.nameList()
			t.Labels = make([]string, len(labels))
			for i, l := range labels {
				t.Labels[i] = string(l)
			}
			sqlVAL.union.val = t
		}
	case 1605:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8990
		{
			sqlVAL.union.val = tree.Any
		}
	case 1606:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8994
		{
			sqlVAL.union.val = tree.Some
		}
	case 1607:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:8998
		{
			sqlVAL.union.val = tree.All
		}
	case 1608:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9003
		{
			sqlVAL.union.val = tree.Plus
		}
	case 1609:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9004
		{
			sqlVAL.union.val = tree.Minus
		}
	case 1610:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9005
		{
			sqlVAL.union.val = tree.Mult
		}
	case 1611:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9006
		{
			sqlVAL.union.val = tree.Div
		}
	case 1612:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9007
		{
			sqlVAL.union.val = tree.FloorDiv
		}
	case 1613:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9008
		{
			sqlVAL.union.val = tree.Mod
		}
	case 1614:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9009
		{
			sqlVAL.union.val = tree.Bitand
		}
	case 1615:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9010
		{
			sqlVAL.union.val = tree.Bitor
		}
	case 1616:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9011
		{
			sqlVAL.union.val = tree.Pow
		}
	case 1617:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9012
		{
			sqlVAL.union.val = tree.Bitxor
		}
	case 1618:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9013
		{
			sqlVAL.union.val = tree.LT
		}
	case 1619:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9014
		{
			sqlVAL.union.val = tree.GT
		}
	case 1620:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9015
		{
			sqlVAL.union.val = tree.EQ
		}
	case 1621:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9016
		{
			sqlVAL.union.val = tree.LE
		}
	case 1622:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9017
		{
			sqlVAL.union.val = tree.GE
		}
	case 1623:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9018
		{
			sqlVAL.union.val = tree.NE
		}
	case 1625:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9022
		{
			sqlVAL.union.val = tree.Like
		}
	case 1626:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9023
		{
			sqlVAL.union.val = tree.NotLike
		}
	case 1627:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9024
		{
			sqlVAL.union.val = tree.ILike
		}
	case 1628:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9025
		{
			sqlVAL.union.val = tree.NotILike
		}
	case 1629:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9048
		{
			sqlVAL.union.val = &tree.Tuple{}
		}
	case 1630:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9052
		{
			sqlVAL.union.val = &tree.Tuple{Exprs: sqlDollar[2].union.exprs()}
		}
	case 1631:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9058
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 1632:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9062
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 1633:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9066
		{
			sqlVAL.union.val = append(tree.Exprs{sqlDollar[1].union.expr()}, sqlDollar[3].union.exprs()...)
		}
	case 1634:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9077
		{
			sqlVAL.union.val = &tree.Tuple{}
		}
	case 1635:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9081
		{
			sqlVAL.union.val = &tree.Tuple{Exprs: sqlDollar[2].union.exprs()}
		}
	case 1636:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9087
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 1637:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9091
		{
			sqlVAL.union.val = append(tree.Exprs{sqlDollar[1].union.expr()}, sqlDollar[3].union.exprs()...)
		}
	case 1639:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9098
		{
			sqlVAL.union.val = tree.Exprs(nil)
		}
	case 1640:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9104
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 1641:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9108
		{
			sqlVAL.union.val = append(sqlDollar[1].union.exprs(), sqlDollar[3].union.expr())
		}
	case 1642:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9114
		{
			sqlVAL.union.val = []*types.T{sqlDollar[1].union.colType()}
		}
	case 1643:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9118
		{
			sqlVAL.union.val = append(sqlDollar[1].union.colTypes(), sqlDollar[3].union.colType())
		}
	case 1644:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9124
		{
			sqlVAL.union.val = &tree.Array{Exprs: sqlDollar[2].union.exprs()}
		}
	case 1645:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9128
		{
			sqlVAL.union.val = &tree.Array{Exprs: sqlDollar[2].union.exprs()}
		}
	case 1646:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9134
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr()}
		}
	case 1647:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9138
		{
			sqlVAL.union.val = append(sqlDollar[1].union.exprs(), sqlDollar[3].union.expr())
		}
	case 1648:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9144
		{
			sqlVAL.union.val = tree.Exprs{tree.NewStrVal(sqlDollar[1].str), sqlDollar[3].union.expr()}
		}
	case 1649:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9148
		{
			sqlVAL.union.val = sqlDollar[1].union.exprs()
		}
	case 1658:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:9171
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[2].union.expr(), sqlDollar[3].union.expr(), sqlDollar[4].union.expr()}
		}
	case 1659:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9175
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[2].union.expr(), sqlDollar[3].union.expr()}
		}
	case 1660:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9179
		{
			sqlVAL.union.val = sqlDollar[1].union.exprs()
		}
	case 1661:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9185
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1662:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9192
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[3].union.expr(), sqlDollar[1].union.expr()}
		}
	case 1663:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9196
		{
			sqlVAL.union.val = tree.Exprs(nil)
		}
	case 1664:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9213
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[2].union.expr(), sqlDollar[3].union.expr()}
		}
	case 1665:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9217
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[3].union.expr(), sqlDollar[2].union.expr()}
		}
	case 1666:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9221
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr(), sqlDollar[2].union.expr()}
		}
	case 1667:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9225
		{
			sqlVAL.union.val = tree.Exprs{sqlDollar[1].union.expr(), tree.NewDInt(1), sqlDollar[2].union.expr()}
		}
	case 1668:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9229
		{
			sqlVAL.union.val = sqlDollar[1].union.exprs()
		}
	case 1669:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9235
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1670:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9241
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1671:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9247
		{
			sqlVAL.union.val = append(sqlDollar[3].union.exprs(), sqlDollar[1].union.expr())
		}
	case 1672:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9251
		{
			sqlVAL.union.val = sqlDollar[2].union.exprs()
		}
	case 1673:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9255
		{
			sqlVAL.union.val = sqlDollar[1].union.exprs()
		}
	case 1674:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9261
		{
			sqlVAL.union.val = &tree.Subquery{Select: sqlDollar[1].union.selectStmt()}
		}
	case 1676:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9273
		{
			sqlVAL.union.val = &tree.CaseExpr{Expr: sqlDollar[2].union.expr(), Whens: sqlDollar[3].union.whens(), Else: sqlDollar[4].union.expr()}
		}
	case 1677:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9280
		{
			sqlVAL.union.val = []*tree.When{sqlDollar[1].union.when()}
		}
	case 1678:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9284
		{
			sqlVAL.union.val = append(sqlDollar[1].union.whens(), sqlDollar[2].union.when())
		}
	case 1679:
		sqlDollar = sqlS[sqlpt-4 : sqlpt+1]
//line sql-gen.y:9290
		{
			sqlVAL.union.val = &tree.When{Cond: sqlDollar[2].union.expr(), Val: sqlDollar[4].union.expr()}
		}
	case 1680:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9296
		{
			sqlVAL.union.val = sqlDollar[2].union.expr()
		}
	case 1681:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9300
		{
			sqlVAL.union.val = tree.Expr(nil)
		}
	case 1683:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9307
		{
			sqlVAL.union.val = tree.Expr(nil)
		}
	case 1684:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9313
		{
			sqlVAL.union.val = &tree.ArraySubscript{Begin: sqlDollar[2].union.expr()}
		}
	case 1685:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9317
		{
			sqlVAL.union.val = &tree.ArraySubscript{Begin: sqlDollar[2].union.expr(), End: sqlDollar[4].union.expr(), Slice: true}
		}
	case 1687:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9324
		{
			sqlVAL.union.val = tree.Expr(nil)
		}
	case 1688:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9330
		{
			sqlVAL.union.val = tree.ArraySubscripts{sqlDollar[1].union.arraySubscript()}
		}
	case 1689:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9334
		{
			sqlVAL.union.val = append(sqlDollar[1].union.arraySubscripts(), sqlDollar[2].union.arraySubscript())
		}
	case 1690:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9339
		{
		}
	case 1691:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9340
		{
		}
	case 1692:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9344
		{
			sqlVAL.union.val = tree.SelectExprs{sqlDollar[1].union.selExpr()}
		}
	case 1693:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9348
		{
			sqlVAL.union.val = append(sqlDollar[1].union.selExprs(), sqlDollar[3].union.selExpr())
		}
	case 1694:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9354
		{
			sqlVAL.union.val = tree.SelectExpr{Expr: sqlDollar[1].union.expr(), As: tree.UnrestrictedName(sqlDollar[3].str)}
		}
	case 1695:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9363
		{
			sqlVAL.union.val = tree.SelectExpr{Expr: sqlDollar[1].union.expr(), As: tree.UnrestrictedName(sqlDollar[2].str)}
		}
	case 1696:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9367
		{
			sqlVAL.union.val = tree.SelectExpr{Expr: sqlDollar[1].union.expr()}
		}
	case 1697:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9371
		{
			sqlVAL.union.val = tree.StarSelectExpr()
		}
	case 1698:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9379
		{
			sqlVAL.union.val = tree.TableIndexNames{sqlDollar[1].union.newTableIndexName()}
		}
	case 1699:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9383
		{
			sqlVAL.union.val = append(sqlDollar[1].union.newTableIndexNames(), sqlDollar[3].union.newTableIndexName())
		}
	case 1700:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9389
		{
			sqlVAL.union.val = tree.TablePatterns{sqlDollar[1].union.unresolvedName()}
		}
	case 1701:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9393
		{
			sqlVAL.union.val = append(sqlDollar[1].union.tablePatterns(), sqlDollar[3].union.unresolvedName())
		}
	case 1702:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9412
		{
			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			sqlVAL.union.val = tree.TableIndexName{
				Table: name,
				Index: tree.UnrestrictedName(sqlDollar[3].str),
			}
		}
	case 1703:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9420
		{

			name := sqlDollar[1].union.unresolvedObjectName().ToTableName()
			indexName := tree.UnrestrictedName(name.TableName)
			name.TableName = ""
			sqlVAL.union.val = tree.TableIndexName{
				Table: name,
				Index: indexName,
			}
		}
	case 1704:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9443
		{
			sqlVAL.union.val = sqlDollar[1].union.unresolvedObjectName().ToUnresolvedName()
		}
	case 1706:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9452
		{
			sqlVAL.union.val = sqlDollar[1].union.unresolvedObjectName().ToUnresolvedName()
		}
	case 1707:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9456
		{
			sqlVAL.union.val = &tree.UnresolvedName{Star: true, NumParts: 3, Parts: tree.NameParts{"", sqlDollar[3].str, sqlDollar[1].str}}
		}
	case 1708:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9460
		{
			sqlVAL.union.val = &tree.UnresolvedName{Star: true, NumParts: 2, Parts: tree.NameParts{"", sqlDollar[1].str}}
		}
	case 1709:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9464
		{
			sqlVAL.union.val = &tree.UnresolvedName{Star: true, NumParts: 1}
		}
	case 1710:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9470
		{
			sqlVAL.union.val = tree.NameList{tree.Name(sqlDollar[1].str)}
		}
	case 1711:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9474
		{
			sqlVAL.union.val = append(sqlDollar[1].union.nameList(), tree.Name(sqlDollar[3].str))
		}
	case 1716:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9489
		{
			sqlVAL.union.val = sqlDollar[2].union.numVal()
		}
	case 1717:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9493
		{
			n := sqlDollar[2].union.numVal()
			n.SetNegative()
			sqlVAL.union.val = n
		}
	case 1720:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9505
		{
			sqlVAL.union.val = sqlDollar[2].union.numVal()
		}
	case 1721:
		sqlDollar = sqlS[sqlpt-2 : sqlpt+1]
//line sql-gen.y:9509
		{
			n := sqlDollar[2].union.numVal()
			n.SetNegative()
			sqlVAL.union.val = n
		}
	case 1722:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9518
		{
			val, err := sqlDollar[1].union.numVal().AsInt32()
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = val
		}
	case 1723:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9529
		{
			val, err := sqlDollar[1].union.numVal().AsInt64()
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = val
		}
	case 1724:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9538
		{
			val, err := sqlDollar[1].union.numVal().AsInt64()
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = val
		}
	case 1725:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9546
		{
			var err error
			var d tree.Datum
			if sqlDollar[3].union.val == nil {
				d, err = tree.ParseDInterval(sqlDollar[2].str)
			} else {
				d, err = tree.ParseDIntervalWithTypeMetadata(sqlDollar[2].str, sqlDollar[3].union.intervalTypeMetadata())
			}
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = d
		}
	case 1726:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9558
		{
			prec := sqlDollar[3].union.int32()
			if prec < 0 || prec > 6 {
				sqllex.Error(fmt.Sprintf("precision %d out of range", prec))
				return 1
			}
			d, err := tree.ParseDIntervalWithTypeMetadata(sqlDollar[5].str, types.IntervalTypeMetadata{
				Precision:      prec,
				PrecisionIsSet: true,
			})
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = d
		}
	case 1748:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9657
		{
			sqlVAL.union.val = &tree.UnresolvedName{NumParts: 1, Parts: tree.NameParts{sqlDollar[1].str}}
		}
	case 1750:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9664
		{
			sqlVAL.union.val = &tree.UnresolvedName{NumParts: 2, Parts: tree.NameParts{sqlDollar[3].str, sqlDollar[1].str}}
		}
	case 1751:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9668
		{
			sqlVAL.union.val = &tree.UnresolvedName{NumParts: 3, Parts: tree.NameParts{sqlDollar[5].str, sqlDollar[3].str, sqlDollar[1].str}}
		}
	case 1752:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:9672
		{
			sqlVAL.union.val = &tree.UnresolvedName{NumParts: 4, Parts: tree.NameParts{sqlDollar[7].str, sqlDollar[5].str, sqlDollar[3].str, sqlDollar[1].str}}
		}
	case 1754:
		sqlDollar = sqlS[sqlpt-7 : sqlpt+1]
//line sql-gen.y:9686
		{
			sqlVAL.union.val = &tree.UnresolvedName{Star: true, NumParts: 4, Parts: tree.NameParts{"", sqlDollar[5].str, sqlDollar[3].str, sqlDollar[1].str}}
		}
	case 1755:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9690
		{
			sqlVAL.union.val = &tree.UnresolvedName{Star: true, NumParts: 3, Parts: tree.NameParts{"", sqlDollar[3].str, sqlDollar[1].str}}
		}
	case 1756:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9694
		{
			sqlVAL.union.val = &tree.UnresolvedName{Star: true, NumParts: 2, Parts: tree.NameParts{"", sqlDollar[1].str}}
		}
	case 1757:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9707
		{
			sqlVAL.union.val = &tree.UnresolvedName{NumParts: 1, Parts: tree.NameParts{sqlDollar[1].str}}
		}
	case 1761:
		sqlDollar = sqlS[sqlpt-1 : sqlpt+1]
//line sql-gen.y:9725
		{
			aIdx := sqllex.(*lexer).NewAnnotation()
			res, err := tree.NewUnresolvedObjectName(1, [3]string{sqlDollar[1].str}, aIdx)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = res
		}
	case 1762:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9738
		{
			aIdx := sqllex.(*lexer).NewAnnotation()
			res, err := tree.NewUnresolvedObjectName(2, [3]string{sqlDollar[3].str, sqlDollar[1].str}, aIdx)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = res
		}
	case 1763:
		sqlDollar = sqlS[sqlpt-5 : sqlpt+1]
//line sql-gen.y:9745
		{
			aIdx := sqllex.(*lexer).NewAnnotation()
			res, err := tree.NewUnresolvedObjectName(3, [3]string{sqlDollar[5].str, sqlDollar[3].str, sqlDollar[1].str}, aIdx)
			if err != nil {
				return setErr(sqllex, err)
			}
			sqlVAL.union.val = res
		}
	case 1771:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9770
		{
			sqlVAL.str = ""
		}
	case 1772:
		sqlDollar = sqlS[sqlpt-3 : sqlpt+1]
//line sql-gen.y:9776
		{
			sqlVAL.str = sqlDollar[2].str
		}
	case 1773:
		sqlDollar = sqlS[sqlpt-0 : sqlpt+1]
//line sql-gen.y:9780
		{
			sqlVAL.str = ""
		}
	}
	goto sqlstack /* stack new state and value */
}
