// Code generated by goyacc DO NOT EDIT. // Copyright 2020 PingCAP, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // See the License for the specific language governing permissions and // limitations under the License. package parser import __yyfmt__ "fmt" import ( "math" "strconv" "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/parser/model" ) type yyhintSymType struct { yys int offset int ident string number uint64 hint *ast.TableOptimizerHint hints []*ast.TableOptimizerHint table ast.HintTable modelIdents []model.CIStr } type yyhintXError struct { state, xsym int } const ( yyhintDefault = 57434 yyhintEOFCode = 57344 yyhintErrCode = 57345 hintAggToCop = 57380 hintBCJoin = 57402 hintBKA = 57355 hintBNL = 57357 hintDupsWeedOut = 57430 hintFalse = 57426 hintFirstMatch = 57431 hintForceIndex = 57416 hintGB = 57429 hintHashAgg = 57382 hintHashJoin = 57359 hintHashJoinBuild = 57360 hintHashJoinProbe = 57361 hintIdentifier = 57347 hintIgnoreIndex = 57385 hintIgnorePlanCache = 57381 hintIndexHashJoin = 57389 hintIndexJoin = 57386 hintIndexMerge = 57365 hintIndexMergeJoin = 57393 hintInlHashJoin = 57388 hintInlJoin = 57391 hintInlMergeJoin = 57392 hintIntLit = 57346 hintInvalid = 57348 hintJoinFixedOrder = 57351 hintJoinOrder = 57352 hintJoinPrefix = 57353 hintJoinSuffix = 57354 hintLeading = 57418 hintLimitToCop = 57415 hintLooseScan = 57432 hintMB = 57428 hintMRR = 57367 hintMaterialization = 57433 hintMaxExecutionTime = 57375 hintMemoryQuota = 57395 hintMerge = 57363 hintMpp1PhaseAgg = 57383 hintMpp2PhaseAgg = 57384 hintNoBKA = 57356 hintNoBNL = 57358 hintNoDecorrelate = 57420 hintNoHashJoin = 57362 hintNoICP = 57369 hintNoIndexHashJoin = 57390 hintNoIndexJoin = 57387 hintNoIndexMerge = 57366 hintNoIndexMergeJoin = 57394 hintNoMRR = 57368 hintNoMerge = 57364 hintNoOrderIndex = 57409 hintNoRangeOptimization = 57370 hintNoSMJoin = 57401 hintNoSemijoin = 57374 hintNoSkipScan = 57372 hintNoSwapJoinInputs = 57396 hintNthPlan = 57414 hintOLAP = 57421 hintOLTP = 57422 hintOrderIndex = 57408 hintPartition = 57423 hintQBName = 57379 hintQueryType = 57397 hintReadConsistentReplica = 57398 hintReadFromStorage = 57399 hintResourceGroup = 57378 hintSMJoin = 57400 hintSemiJoinRewrite = 57419 hintSemijoin = 57373 hintSetVar = 57377 hintShuffleJoin = 57403 hintSingleAtIdentifier = 57349 hintSkipScan = 57371 hintStraightJoin = 57417 hintStreamAgg = 57404 hintStringLit = 57350 hintSwapJoinInputs = 57405 hintTiFlash = 57425 hintTiKV = 57424 hintTidbKvReadTimeout = 57376 hintTimeRange = 57412 hintTrue = 57427 hintUseCascades = 57413 hintUseIndex = 57407 hintUseIndexMerge = 57406 hintUsePlanCache = 57410 hintUseToja = 57411 yyhintMaxDepth = 200 yyhintTabOfs = -213 ) var ( yyhintXLAT = map[int]int{ 41: 0, // ')' (157x) 57380: 1, // hintAggToCop (144x) 57402: 2, // hintBCJoin (144x) 57355: 3, // hintBKA (144x) 57357: 4, // hintBNL (144x) 57416: 5, // hintForceIndex (144x) 57382: 6, // hintHashAgg (144x) 57359: 7, // hintHashJoin (144x) 57360: 8, // hintHashJoinBuild (144x) 57361: 9, // hintHashJoinProbe (144x) 57385: 10, // hintIgnoreIndex (144x) 57381: 11, // hintIgnorePlanCache (144x) 57389: 12, // hintIndexHashJoin (144x) 57386: 13, // hintIndexJoin (144x) 57365: 14, // hintIndexMerge (144x) 57393: 15, // hintIndexMergeJoin (144x) 57388: 16, // hintInlHashJoin (144x) 57391: 17, // hintInlJoin (144x) 57392: 18, // hintInlMergeJoin (144x) 57351: 19, // hintJoinFixedOrder (144x) 57352: 20, // hintJoinOrder (144x) 57353: 21, // hintJoinPrefix (144x) 57354: 22, // hintJoinSuffix (144x) 57418: 23, // hintLeading (144x) 57415: 24, // hintLimitToCop (144x) 57375: 25, // hintMaxExecutionTime (144x) 57395: 26, // hintMemoryQuota (144x) 57363: 27, // hintMerge (144x) 57383: 28, // hintMpp1PhaseAgg (144x) 57384: 29, // hintMpp2PhaseAgg (144x) 57367: 30, // hintMRR (144x) 57356: 31, // hintNoBKA (144x) 57358: 32, // hintNoBNL (144x) 57420: 33, // hintNoDecorrelate (144x) 57362: 34, // hintNoHashJoin (144x) 57369: 35, // hintNoICP (144x) 57390: 36, // hintNoIndexHashJoin (144x) 57387: 37, // hintNoIndexJoin (144x) 57366: 38, // hintNoIndexMerge (144x) 57394: 39, // hintNoIndexMergeJoin (144x) 57364: 40, // hintNoMerge (144x) 57368: 41, // hintNoMRR (144x) 57409: 42, // hintNoOrderIndex (144x) 57370: 43, // hintNoRangeOptimization (144x) 57374: 44, // hintNoSemijoin (144x) 57372: 45, // hintNoSkipScan (144x) 57401: 46, // hintNoSMJoin (144x) 57396: 47, // hintNoSwapJoinInputs (144x) 57414: 48, // hintNthPlan (144x) 57408: 49, // hintOrderIndex (144x) 57379: 50, // hintQBName (144x) 57397: 51, // hintQueryType (144x) 57398: 52, // hintReadConsistentReplica (144x) 57399: 53, // hintReadFromStorage (144x) 57378: 54, // hintResourceGroup (144x) 57373: 55, // hintSemijoin (144x) 57419: 56, // hintSemiJoinRewrite (144x) 57377: 57, // hintSetVar (144x) 57403: 58, // hintShuffleJoin (144x) 57371: 59, // hintSkipScan (144x) 57400: 60, // hintSMJoin (144x) 57417: 61, // hintStraightJoin (144x) 57404: 62, // hintStreamAgg (144x) 57405: 63, // hintSwapJoinInputs (144x) 57376: 64, // hintTidbKvReadTimeout (144x) 57412: 65, // hintTimeRange (144x) 57413: 66, // hintUseCascades (144x) 57407: 67, // hintUseIndex (144x) 57406: 68, // hintUseIndexMerge (144x) 57410: 69, // hintUsePlanCache (144x) 57411: 70, // hintUseToja (144x) 44: 71, // ',' (141x) 57430: 72, // hintDupsWeedOut (120x) 57431: 73, // hintFirstMatch (120x) 57432: 74, // hintLooseScan (120x) 57433: 75, // hintMaterialization (120x) 57425: 76, // hintTiFlash (120x) 57424: 77, // hintTiKV (120x) 57426: 78, // hintFalse (119x) 57421: 79, // hintOLAP (119x) 57422: 80, // hintOLTP (119x) 57427: 81, // hintTrue (119x) 57429: 82, // hintGB (118x) 57428: 83, // hintMB (118x) 57347: 84, // hintIdentifier (117x) 57349: 85, // hintSingleAtIdentifier (104x) 93: 86, // ']' (94x) 46: 87, // '.' (93x) 57423: 88, // hintPartition (88x) 61: 89, // '=' (84x) 40: 90, // '(' (79x) 57344: 91, // $end (26x) 57454: 92, // QueryBlockOpt (21x) 57446: 93, // Identifier (15x) 57346: 94, // hintIntLit (10x) 57350: 95, // hintStringLit (5x) 57436: 96, // CommaOpt (4x) 57442: 97, // HintTable (4x) 57443: 98, // HintTableList (4x) 91: 99, // '[' (3x) 57435: 100, // BooleanHintName (2x) 57437: 101, // HintIndexList (2x) 57439: 102, // HintStorageType (2x) 57440: 103, // HintStorageTypeAndTable (2x) 57444: 104, // HintTableListOpt (2x) 57449: 105, // JoinOrderOptimizerHintName (2x) 57450: 106, // NullaryHintName (2x) 57453: 107, // PartitionListOpt (2x) 57456: 108, // StorageOptimizerHintOpt (2x) 57457: 109, // SubqueryOptimizerHintName (2x) 57460: 110, // SubqueryStrategy (2x) 57461: 111, // SupportedIndexLevelOptimizerHintName (2x) 57462: 112, // SupportedTableLevelOptimizerHintName (2x) 57463: 113, // TableOptimizerHintOpt (2x) 57465: 114, // UnsupportedIndexLevelOptimizerHintName (2x) 57466: 115, // UnsupportedTableLevelOptimizerHintName (2x) 57468: 116, // ViewName (2x) 57438: 117, // HintQueryType (1x) 57441: 118, // HintStorageTypeAndTableList (1x) 57445: 119, // HintTrueOrFalse (1x) 57447: 120, // IndexNameList (1x) 57448: 121, // IndexNameListOpt (1x) 57451: 122, // OptimizerHintList (1x) 57452: 123, // PartitionList (1x) 57455: 124, // Start (1x) 57458: 125, // SubqueryStrategies (1x) 57459: 126, // SubqueryStrategiesOpt (1x) 57464: 127, // UnitOfBytes (1x) 57467: 128, // Value (1x) 57469: 129, // ViewNameList (1x) 57434: 130, // $default (0x) 57345: 131, // error (0x) 57348: 132, // hintInvalid (0x) } yyhintSymNames = []string{ "')'", "hintAggToCop", "hintBCJoin", "hintBKA", "hintBNL", "hintForceIndex", "hintHashAgg", "hintHashJoin", "hintHashJoinBuild", "hintHashJoinProbe", "hintIgnoreIndex", "hintIgnorePlanCache", "hintIndexHashJoin", "hintIndexJoin", "hintIndexMerge", "hintIndexMergeJoin", "hintInlHashJoin", "hintInlJoin", "hintInlMergeJoin", "hintJoinFixedOrder", "hintJoinOrder", "hintJoinPrefix", "hintJoinSuffix", "hintLeading", "hintLimitToCop", "hintMaxExecutionTime", "hintMemoryQuota", "hintMerge", "hintMpp1PhaseAgg", "hintMpp2PhaseAgg", "hintMRR", "hintNoBKA", "hintNoBNL", "hintNoDecorrelate", "hintNoHashJoin", "hintNoICP", "hintNoIndexHashJoin", "hintNoIndexJoin", "hintNoIndexMerge", "hintNoIndexMergeJoin", "hintNoMerge", "hintNoMRR", "hintNoOrderIndex", "hintNoRangeOptimization", "hintNoSemijoin", "hintNoSkipScan", "hintNoSMJoin", "hintNoSwapJoinInputs", "hintNthPlan", "hintOrderIndex", "hintQBName", "hintQueryType", "hintReadConsistentReplica", "hintReadFromStorage", "hintResourceGroup", "hintSemijoin", "hintSemiJoinRewrite", "hintSetVar", "hintShuffleJoin", "hintSkipScan", "hintSMJoin", "hintStraightJoin", "hintStreamAgg", "hintSwapJoinInputs", "hintTidbKvReadTimeout", "hintTimeRange", "hintUseCascades", "hintUseIndex", "hintUseIndexMerge", "hintUsePlanCache", "hintUseToja", "','", "hintDupsWeedOut", "hintFirstMatch", "hintLooseScan", "hintMaterialization", "hintTiFlash", "hintTiKV", "hintFalse", "hintOLAP", "hintOLTP", "hintTrue", "hintGB", "hintMB", "hintIdentifier", "hintSingleAtIdentifier", "']'", "'.'", "hintPartition", "'='", "'('", "$end", "QueryBlockOpt", "Identifier", "hintIntLit", "hintStringLit", "CommaOpt", "HintTable", "HintTableList", "'['", "BooleanHintName", "HintIndexList", "HintStorageType", "HintStorageTypeAndTable", "HintTableListOpt", "JoinOrderOptimizerHintName", "NullaryHintName", "PartitionListOpt", "StorageOptimizerHintOpt", "SubqueryOptimizerHintName", "SubqueryStrategy", "SupportedIndexLevelOptimizerHintName", "SupportedTableLevelOptimizerHintName", "TableOptimizerHintOpt", "UnsupportedIndexLevelOptimizerHintName", "UnsupportedTableLevelOptimizerHintName", "ViewName", "HintQueryType", "HintStorageTypeAndTableList", "HintTrueOrFalse", "IndexNameList", "IndexNameListOpt", "OptimizerHintList", "PartitionList", "Start", "SubqueryStrategies", "SubqueryStrategiesOpt", "UnitOfBytes", "Value", "ViewNameList", "$default", "error", "hintInvalid", } yyhintReductions = []struct{ xsym, components int }{ {0, 1}, {124, 1}, {122, 1}, {122, 3}, {122, 1}, {122, 3}, {113, 4}, {113, 4}, {113, 4}, {113, 4}, {113, 4}, {113, 4}, {113, 5}, {113, 5}, {113, 5}, {113, 5}, {113, 6}, {113, 4}, {113, 4}, {113, 6}, {113, 6}, {113, 6}, {113, 5}, {113, 4}, {113, 5}, {108, 5}, {118, 1}, {118, 3}, {103, 4}, {92, 0}, {92, 1}, {96, 0}, {96, 1}, {107, 0}, {107, 4}, {123, 1}, {123, 3}, {104, 1}, {104, 1}, {98, 2}, {98, 3}, {97, 3}, {97, 5}, {129, 3}, {129, 1}, {116, 2}, {116, 1}, {101, 4}, {121, 0}, {121, 1}, {120, 1}, {120, 3}, {126, 0}, {126, 1}, {125, 1}, {125, 3}, {128, 1}, {128, 1}, {128, 1}, {127, 1}, {127, 1}, {119, 1}, {119, 1}, {105, 1}, {105, 1}, {105, 1}, {115, 1}, {115, 1}, {115, 1}, {115, 1}, {115, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {112, 1}, {114, 1}, {114, 1}, {114, 1}, {114, 1}, {114, 1}, {114, 1}, {114, 1}, {111, 1}, {111, 1}, {111, 1}, {111, 1}, {111, 1}, {111, 1}, {109, 1}, {109, 1}, {110, 1}, {110, 1}, {110, 1}, {110, 1}, {100, 1}, {100, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {106, 1}, {117, 1}, {117, 1}, {102, 1}, {102, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, {93, 1}, } yyhintXErrors = map[yyhintXError]string{} yyhintParseTab = [304][]uint16{ // 0 {1: 288, 247, 240, 242, 276, 284, 261, 263, 264, 274, 292, 254, 250, 266, 259, 253, 249, 258, 218, 237, 238, 239, 265, 289, 225, 231, 252, 285, 286, 267, 241, 243, 295, 262, 269, 255, 251, 290, 260, 244, 268, 278, 270, 280, 272, 246, 257, 227, 277, 230, 235, 291, 236, 229, 279, 294, 228, 248, 271, 245, 293, 287, 256, 226, 232, 282, 273, 275, 283, 281, 100: 233, 105: 219, 234, 108: 217, 224, 111: 223, 221, 216, 222, 220, 122: 215, 124: 214}, {91: 213}, {1: 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 401, 91: 212, 96: 514}, {1: 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 91: 211}, {1: 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 91: 209}, // 5 {90: 511}, {90: 508}, {90: 505}, {90: 500}, {90: 497}, // 10 {90: 486}, {90: 474}, {90: 470}, {90: 466}, {90: 462}, // 15 {90: 454}, {90: 451}, {90: 439}, {90: 432}, {90: 427}, // 20 {90: 421}, {90: 418}, {90: 412}, {90: 296}, {90: 150}, // 25 {90: 149}, {90: 148}, {90: 147}, {90: 146}, {90: 145}, // 30 {90: 144}, {90: 143}, {90: 142}, {90: 141}, {90: 140}, // 35 {90: 139}, {90: 138}, {90: 137}, {90: 136}, {90: 135}, // 40 {90: 134}, {90: 133}, {90: 132}, {90: 131}, {90: 130}, // 45 {90: 129}, {90: 128}, {90: 127}, {90: 126}, {90: 125}, // 50 {90: 124}, {90: 123}, {90: 122}, {90: 121}, {90: 120}, // 55 {90: 119}, {90: 118}, {90: 117}, {90: 116}, {90: 115}, // 60 {90: 114}, {90: 113}, {90: 112}, {90: 111}, {90: 110}, // 65 {90: 109}, {90: 108}, {90: 107}, {90: 102}, {90: 101}, // 70 {90: 100}, {90: 99}, {90: 98}, {90: 97}, {90: 96}, // 75 {90: 95}, {90: 94}, {90: 93}, {90: 92}, {90: 91}, // 80 {90: 90}, {90: 89}, {90: 88}, {76: 184, 184, 85: 298, 92: 297}, {76: 303, 302, 102: 301, 300, 118: 299}, // 85 {183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 86: 183, 183, 183, 94: 183}, {409, 71: 410}, {187, 71: 187}, {99: 304}, {99: 85}, // 90 {99: 84}, {1: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 72: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 92: 306, 98: 305}, {71: 407, 86: 406}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 308, 97: 307}, {174, 71: 174, 86: 174}, // 95 {184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 184, 393, 184, 92: 392}, {83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83}, {82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82}, {81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81}, {80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}, // 100 {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, 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, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79}, {78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78}, {77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77}, {76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76}, {75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75}, // 105 {74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74}, {73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73}, {72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72}, {71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71}, {70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70}, // 110 {69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69}, {68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67}, {66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66}, {65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65}, // 115 {64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64}, {63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}, {62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62}, {61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61}, {60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60}, // 120 {59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59}, {58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58}, {57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57}, {56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56}, {55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55}, // 125 {54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54}, {53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53}, {52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52}, {51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51}, {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}, // 130 {49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49}, {48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48}, {47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47}, {46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46}, {45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45}, // 135 {44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44}, {43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43}, {42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42}, {41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41}, {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, // 140 {39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39}, {38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38}, {37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37}, {36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36}, {35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35}, // 145 {34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34}, {33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33}, {32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}, {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}, {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // 150 {29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29}, {28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28}, {27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27}, {26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26}, {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25}, // 155 {24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24}, {23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23}, {22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22}, {21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21}, {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, // 160 {19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19}, {18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18}, {17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17}, {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, // 165 {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14}, {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, // 170 {9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}, {5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}, // 175 {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, {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, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 86: 180, 88: 396, 107: 405}, // 180 {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 394}, {184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 184, 88: 184, 92: 395}, {180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 86: 180, 88: 396, 107: 397}, {90: 398}, {171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 86: 171}, // 185 {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 400, 123: 399}, {402, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 401, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 96: 403}, {178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178}, {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 72: 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 95: 181}, {179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 86: 179}, // 190 {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 404}, {177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177}, {172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 86: 172}, {185, 71: 185}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 308, 97: 408}, // 195 {173, 71: 173, 86: 173}, {1: 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 91: 188}, {76: 303, 302, 102: 301, 411}, {186, 71: 186}, {79: 184, 184, 85: 298, 92: 413}, // 200 {79: 415, 416, 117: 414}, {417}, {87}, {86}, {1: 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 91: 189}, // 205 {184, 85: 298, 92: 419}, {420}, {1: 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 91: 190}, {78: 184, 81: 184, 85: 298, 92: 422}, {78: 425, 81: 424, 119: 423}, // 210 {426}, {152}, {151}, {1: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 91: 191}, {95: 428}, // 215 {71: 401, 95: 182, 429}, {95: 430}, {431}, {1: 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 91: 192}, {85: 298, 92: 433, 94: 184}, // 220 {94: 434}, {82: 437, 436, 127: 435}, {438}, {154}, {153}, // 225 {1: 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 91: 193}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 440}, {441, 71: 442}, {1: 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 91: 195}, {184, 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 298, 87: 184, 92: 446, 445, 116: 444, 129: 443}, // 230 {448, 87: 449}, {169, 87: 169}, {184, 85: 298, 87: 184, 92: 447}, {167, 87: 167}, {168, 87: 168}, // 235 {1: 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 91: 194}, {184, 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 298, 87: 184, 92: 446, 445, 116: 450}, {170, 87: 170}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 452}, {453}, // 240 {1: 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 91: 196}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 455}, {89: 456}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 459, 460, 458, 128: 457}, {461}, // 245 {157}, {156}, {155}, {1: 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 91: 197}, {85: 298, 92: 463, 94: 184}, // 250 {94: 464}, {465}, {1: 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 91: 198}, {85: 298, 92: 467, 94: 184}, {94: 468}, // 255 {469}, {1: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 91: 199}, {85: 298, 92: 471, 94: 184}, {94: 472}, {473}, // 260 {1: 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 91: 200}, {184, 72: 184, 184, 184, 184, 85: 298, 92: 475}, {161, 72: 479, 480, 481, 482, 110: 478, 125: 477, 476}, {485}, {160, 71: 483}, // 265 {159, 71: 159}, {106, 71: 106}, {105, 71: 105}, {104, 71: 104}, {103, 71: 103}, // 270 {72: 479, 480, 481, 482, 110: 484}, {158, 71: 158}, {1: 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 91: 201}, {1: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 72: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 92: 488, 101: 487}, {496}, // 275 {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 308, 97: 489}, {182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 401, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 96: 490}, {165, 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 493, 120: 492, 491}, {166}, {164, 71: 494}, // 280 {163, 71: 163}, {1: 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 495}, {162, 71: 162}, {1: 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 91: 202}, {1: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 72: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 92: 488, 101: 498}, // 285 {499}, {1: 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 91: 203}, {184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 72: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 92: 503, 98: 502, 104: 501}, {504}, {176, 71: 407}, // 290 {175, 338, 361, 314, 316, 374, 341, 318, 319, 320, 344, 340, 346, 349, 324, 352, 345, 348, 351, 310, 311, 312, 313, 376, 339, 334, 354, 322, 342, 343, 326, 315, 317, 378, 321, 328, 347, 350, 325, 353, 323, 327, 368, 329, 333, 331, 360, 355, 373, 367, 337, 356, 357, 358, 336, 332, 377, 335, 362, 330, 359, 375, 363, 364, 379, 371, 372, 366, 365, 369, 370, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 309, 93: 308, 97: 307}, {1: 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 91: 204}, {184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 72: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 92: 503, 98: 502, 104: 506}, {507}, {1: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 91: 205}, // 295 {1: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 72: 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 298, 92: 306, 98: 509}, {510, 71: 407}, {1: 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 91: 206}, {184, 85: 298, 92: 512}, {513}, // 300 {1: 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 91: 207}, {1: 288, 247, 240, 242, 276, 284, 261, 263, 264, 274, 292, 254, 250, 266, 259, 253, 249, 258, 218, 237, 238, 239, 265, 289, 225, 231, 252, 285, 286, 267, 241, 243, 295, 262, 269, 255, 251, 290, 260, 244, 268, 278, 270, 280, 272, 246, 257, 227, 277, 230, 235, 291, 236, 229, 279, 294, 228, 248, 271, 245, 293, 287, 256, 226, 232, 282, 273, 275, 283, 281, 100: 233, 105: 219, 234, 108: 516, 224, 111: 223, 221, 515, 222, 220}, {1: 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 91: 210}, {1: 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 91: 208}, } ) var yyhintDebug = 0 type yyhintLexer interface { Lex(lval *yyhintSymType) int Errorf(format string, a ...interface{}) error AppendError(err error) AppendWarn(err error) Errors() (warns []error, errs []error) } type yyhintLexerEx interface { yyhintLexer Reduced(rule, state int, lval *yyhintSymType) bool } func yyhintSymName(c int) (s string) { x, ok := yyhintXLAT[c] if ok { return yyhintSymNames[x] } return __yyfmt__.Sprintf("%d", c) } func yyhintlex1(yylex yyhintLexer, lval *yyhintSymType) (n int) { n = yylex.Lex(lval) if n <= 0 { n = yyhintEOFCode } if yyhintDebug >= 3 { __yyfmt__.Printf("\nlex %s(%#x %d), lval: %+v\n", yyhintSymName(n), n, n, lval) } return n } func yyhintParse(yylex yyhintLexer, parser *hintParser) int { const yyError = 131 yyEx, _ := yylex.(yyhintLexerEx) var yyn int parser.yylval = yyhintSymType{} yyS := parser.cache Nerrs := 0 /* number of errors */ Errflag := 0 /* error recovery flag */ yyerrok := func() { if yyhintDebug >= 2 { __yyfmt__.Printf("yyerrok()\n") } Errflag = 0 } _ = yyerrok yystate := 0 yychar := -1 var yyxchar int var yyshift int yyp := -1 goto yystack ret0: return 0 ret1: return 1 yystack: /* put a state and value onto the stack */ yyp++ if yyp+1 >= len(yyS) { nyys := make([]yyhintSymType, len(yyS)*2) copy(nyys, yyS) yyS = nyys parser.cache = yyS } parser.yyVAL = &yyS[yyp+1] yyS[yyp].yys = yystate yynewstate: if yychar < 0 { yychar = yyhintlex1(yylex, &parser.yylval) var ok bool if yyxchar, ok = yyhintXLAT[yychar]; !ok { yyxchar = len(yyhintSymNames) // > tab width } } if yyhintDebug >= 4 { var a []int for _, v := range yyS[:yyp+1] { a = append(a, v.yys) } __yyfmt__.Printf("state stack %v\n", a) } row := yyhintParseTab[yystate] yyn = 0 if yyxchar < len(row) { if yyn = int(row[yyxchar]); yyn != 0 { yyn += yyhintTabOfs } } switch { case yyn > 0: // shift yychar = -1 *parser.yyVAL = parser.yylval yystate = yyn yyshift = yyn if yyhintDebug >= 2 { __yyfmt__.Printf("shift, and goto state %d\n", yystate) } if Errflag > 0 { Errflag-- } goto yystack case yyn < 0: // reduce case yystate == 1: // accept if yyhintDebug >= 2 { __yyfmt__.Println("accept") } goto ret0 } if yyn == 0 { /* error ... attempt to resume parsing */ switch Errflag { case 0: /* brand new error */ if yyhintDebug >= 1 { __yyfmt__.Printf("no action for %s in state %d\n", yyhintSymName(yychar), yystate) } msg, ok := yyhintXErrors[yyhintXError{yystate, yyxchar}] if !ok { msg, ok = yyhintXErrors[yyhintXError{yystate, -1}] } if !ok && yyshift != 0 { msg, ok = yyhintXErrors[yyhintXError{yyshift, yyxchar}] } if !ok { msg, ok = yyhintXErrors[yyhintXError{yyshift, -1}] } if !ok || msg == "" { msg = "syntax error" } // ignore goyacc error message yylex.AppendError(yylex.Errorf("")) Nerrs++ fallthrough case 1, 2: /* incompletely recovered error ... try again */ Errflag = 3 /* find a state where "error" is a legal shift action */ for yyp >= 0 { row := yyhintParseTab[yyS[yyp].yys] if yyError < len(row) { yyn = int(row[yyError]) + yyhintTabOfs if yyn > 0 { // hit if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery found error shift in state %d\n", yyS[yyp].yys) } yystate = yyn /* simulate a shift of "error" */ goto yystack } } /* the current p has no shift on "error", pop stack */ if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) } yyp-- } /* there is no state on the stack with an error shift ... abort */ if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery failed\n") } goto ret1 case 3: /* no shift yet; clobber input char */ if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery discards %s\n", yyhintSymName(yychar)) } if yychar == yyhintEOFCode { goto ret1 } yychar = -1 goto yynewstate /* try again in the same state */ } } r := -yyn x0 := yyhintReductions[r] x, n := x0.xsym, x0.components yypt := yyp _ = yypt // guard against "declared and not used" yyp -= n if yyp+1 >= len(yyS) { nyys := make([]yyhintSymType, len(yyS)*2) copy(nyys, yyS) yyS = nyys parser.cache = yyS } parser.yyVAL = &yyS[yyp+1] /* consult goto table to find next state */ exState := yystate yystate = int(yyhintParseTab[yyS[yyp].yys][x]) + yyhintTabOfs /* reduction by production r */ if yyhintDebug >= 2 { __yyfmt__.Printf("reduce using rule %v (%s), and goto state %d\n", r, yyhintSymNames[x], yystate) } switch r { case 1: { parser.result = yyS[yypt-0].hints } case 2: { if yyS[yypt-0].hint != nil { parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} } } case 3: { if yyS[yypt-0].hint != nil { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) } else { parser.yyVAL.hints = yyS[yypt-2].hints } } case 4: { parser.yyVAL.hints = yyS[yypt-0].hints } case 5: { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hints...) } case 6: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 7: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 8: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 9: { h := yyS[yypt-1].hint h.HintName = model.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 10: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 11: { h := yyS[yypt-1].hint h.HintName = model.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 12: { parser.warnUnsupportedHint(yyS[yypt-4].ident) parser.yyVAL.hint = nil } case 13: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-4].ident), QBName: model.NewCIStr(yyS[yypt-2].ident), HintData: yyS[yypt-1].number, } } case 14: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-4].ident), QBName: model.NewCIStr(yyS[yypt-2].ident), HintData: yyS[yypt-1].number, } } case 15: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-4].ident), QBName: model.NewCIStr(yyS[yypt-2].ident), HintData: int64(yyS[yypt-1].number), } } case 16: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-5].ident), HintData: ast.HintSetVar{ VarName: yyS[yypt-3].ident, Value: yyS[yypt-1].ident, }, } } case 17: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-3].ident), HintData: yyS[yypt-1].ident, } } case 18: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-3].ident), QBName: model.NewCIStr(yyS[yypt-1].ident), } } case 19: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-5].ident), QBName: model.NewCIStr(yyS[yypt-3].ident), Tables: yyS[yypt-1].hint.Tables, } } case 20: { maxValue := uint64(math.MaxInt64) / yyS[yypt-1].number if yyS[yypt-2].number <= maxValue { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-5].ident), HintData: int64(yyS[yypt-2].number * yyS[yypt-1].number), QBName: model.NewCIStr(yyS[yypt-3].ident), } } else { yylex.AppendError(ErrWarnMemoryQuotaOverflow.GenWithStackByArgs(math.MaxInt64)) parser.lastErrorAsWarn() parser.yyVAL.hint = nil } } case 21: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-5].ident), HintData: ast.HintTimeRange{ From: yyS[yypt-3].ident, To: yyS[yypt-1].ident, }, } } case 22: { h := yyS[yypt-1].hint h.HintName = model.NewCIStr(yyS[yypt-4].ident) h.QBName = model.NewCIStr(yyS[yypt-2].ident) parser.yyVAL.hint = h } case 23: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-3].ident), QBName: model.NewCIStr(yyS[yypt-1].ident), } } case 24: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: model.NewCIStr(yyS[yypt-4].ident), QBName: model.NewCIStr(yyS[yypt-2].ident), HintData: model.NewCIStr(yyS[yypt-1].ident), } } case 25: { hs := yyS[yypt-1].hints name := model.NewCIStr(yyS[yypt-4].ident) qb := model.NewCIStr(yyS[yypt-2].ident) for _, h := range hs { h.HintName = name h.QBName = qb } parser.yyVAL.hints = hs } case 26: { parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} } case 27: { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) } case 28: { h := yyS[yypt-1].hint h.HintData = model.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 29: { parser.yyVAL.ident = "" } case 33: { parser.yyVAL.modelIdents = nil } case 34: { parser.yyVAL.modelIdents = yyS[yypt-1].modelIdents } case 35: { parser.yyVAL.modelIdents = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } case 36: { parser.yyVAL.modelIdents = append(yyS[yypt-2].modelIdents, model.NewCIStr(yyS[yypt-0].ident)) } case 38: { parser.yyVAL.hint = &ast.TableOptimizerHint{ QBName: model.NewCIStr(yyS[yypt-0].ident), } } case 39: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Tables: []ast.HintTable{yyS[yypt-0].table}, QBName: model.NewCIStr(yyS[yypt-1].ident), } } case 40: { h := yyS[yypt-2].hint h.Tables = append(h.Tables, yyS[yypt-0].table) parser.yyVAL.hint = h } case 41: { parser.yyVAL.table = ast.HintTable{ TableName: model.NewCIStr(yyS[yypt-2].ident), QBName: model.NewCIStr(yyS[yypt-1].ident), PartitionList: yyS[yypt-0].modelIdents, } } case 42: { parser.yyVAL.table = ast.HintTable{ DBName: model.NewCIStr(yyS[yypt-4].ident), TableName: model.NewCIStr(yyS[yypt-2].ident), QBName: model.NewCIStr(yyS[yypt-1].ident), PartitionList: yyS[yypt-0].modelIdents, } } case 43: { h := yyS[yypt-2].hint h.Tables = append(h.Tables, yyS[yypt-0].table) parser.yyVAL.hint = h } case 44: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Tables: []ast.HintTable{yyS[yypt-0].table}, } } case 45: { parser.yyVAL.table = ast.HintTable{ TableName: model.NewCIStr(yyS[yypt-1].ident), QBName: model.NewCIStr(yyS[yypt-0].ident), } } case 46: { parser.yyVAL.table = ast.HintTable{ QBName: model.NewCIStr(yyS[yypt-0].ident), } } case 47: { h := yyS[yypt-0].hint h.Tables = []ast.HintTable{yyS[yypt-2].table} h.QBName = model.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 48: { parser.yyVAL.hint = &ast.TableOptimizerHint{} } case 50: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Indexes: []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)}, } } case 51: { h := yyS[yypt-2].hint h.Indexes = append(h.Indexes, model.NewCIStr(yyS[yypt-0].ident)) parser.yyVAL.hint = h } case 58: { parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) } case 59: { parser.yyVAL.number = 1024 * 1024 } case 60: { parser.yyVAL.number = 1024 * 1024 * 1024 } case 61: { parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: true} } case 62: { parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: false} } } if !parser.lexer.skipPositionRecording { yyhintSetOffset(parser.yyVAL, parser.yyVAL.offset) } if yyEx != nil && yyEx.Reduced(r, exState, parser.yyVAL) { return -1 } goto yystack /* stack new state and value */ }