0 txs
0 calls
constructor
No constructor.
functions
autoBsw
viewfunction autoBsw() view returns (address)
bswToken
viewfunction bswToken() view returns (address)
busNFT
viewfunction busNFT() view returns (address)
contractsCount
viewfunction contractsCount(uint256) view returns (uint256)
decreaseWithdrawalFeeByDay
viewfunction decreaseWithdrawalFeeByDay() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
firstGameCountdownSE
viewfunction firstGameCountdownSE(address) view returns (uint256)
games
viewfunction games(uint256) view returns (uint128 minSeAmount, uint128 minStakeAmount, uint256 chanceToWin, string name, bool enable)
gamesV2
viewfunction gamesV2(uint256) view returns (uint128 minSeAmount, uint128 minStakeAmount, uint256 chanceToWin, string name, bool enable)
getContractV2Cost
viewfunction getContractV2Cost(uint256[] _playersId, uint256 _contractIndex) view returns (uint256 totalCost, uint256[] playersCost)
getGameCount
viewfunction getGameCount(uint256 contractVersion) view returns (uint256 count)
getGameInfo
viewfunction getGameInfo(address _user, uint256 contractVersion) view returns (tuple[])
getLimitContractsParameters
viewfunction getLimitContractsParameters() view returns (uint256 totalLimit, uint256 contractsOnPeriod, uint256 timeLeft)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getUserContractsV2Cost
viewfunction getUserContractsV2Cost(address _user) view returns (uint256[] playersId, uint256[][] contractCost)
getUserRewardBalances
viewfunction getUserRewardBalances(address _user) view returns (address[], uint128[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
masterChef
viewfunction masterChef() view returns (address)
oracle
viewfunction oracle() view returns (address)
paused
viewfunction paused() view returns (bool)
playerContracts
viewfunction playerContracts(uint256) view returns (uint32 duration, uint128 priceInUSD, bool enable)
playerContractsV2
viewfunction playerContractsV2(uint256) view returns (uint32 duration, uint128 priceInUSD, bool enable)
playerNFT
viewfunction playerNFT() view returns (address)
recoveryTime
viewfunction recoveryTime() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
treasuryAddress
viewfunction treasuryAddress() view returns (address)
usdtToken
viewfunction usdtToken() view returns (address)
userInfo
viewfunction userInfo(address _user) view returns (tuple)
withdrawalFee
viewfunction withdrawalFee() view returns (uint256)
withdrawTimeLock
viewfunction withdrawTimeLock(address) view returns (uint256)
addNewGame
nonpayablefunction addNewGame(tuple _game, uint256 contractVersion)
addPlayerContract
nonpayablefunction addPlayerContract(tuple _playerContract, uint256 contractVersion)
buyContracts
nonpayablefunction buyContracts(uint256[] _tokensId, uint256 _contractIndex)
buyContractsV2
nonpayablefunction buyContractsV2(uint256[] _tokensId, uint256 _contractIndex)
changePlayerContract
nonpayablefunction changePlayerContract(uint256 _pcIndex, uint256 contractVersion, tuple _playerContract)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _usdtToken, address _bswToken, address _busNFT, address _playerNFT, address _oracle, address _masterChef, address _autoBsw, address _treasuryAddress, uint256 _recoveryTime)
pause
nonpayablefunction pause()
playGame
nonpayablefunction playGame(uint256 _gameIndex, uint256[] _playersId, uint256 contractVersion)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAutoBsw
nonpayablefunction setAutoBsw(address _autoBsw)
setGameParameters
nonpayablefunction setGameParameters(uint256 _gameIndex, tuple _newGame, uint256 contractVersion)
setPeriodLimitContracts
nonpayablefunction setPeriodLimitContracts(uint256 newLimit, bool enabled)
setRecoveryTime
nonpayablefunction setRecoveryTime(uint256 _newRecoveryTime)
setTreasuryAddress
nonpayablefunction setTreasuryAddress(address _treasuryAddress)
setWithdrawalFee
nonpayablefunction setWithdrawalFee(uint256 _decreaseWithdrawalFeeByDay, uint256 _withdrawalFee)
unpause
nonpayablefunction unpause()
withdrawReward
nonpayablefunction withdrawReward()
events
GameAdded
event GameAdded(uint256 gameIndex, uint256 contractVersion)
GameDisable
event GameDisable(uint256 gameIndex)
GameEnable
event GameEnable(uint256 gameIndex)
GamePlay
event GamePlay(address indexed user, uint256 indexed gameIndex, bool userWin, address[] rewardTokens, uint128[] rewardAmount)
Paused
event Paused(address account)
RewardTokenChanged
event RewardTokenChanged(uint256 gameIndex)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SetNewGameParam
event SetNewGameParam(uint256 gameIndex, uint256 contractVersion)
Unpaused
event Unpaused(address account)
Withdrew
event Withdrew(address indexed user, (address token, uint128 rewardInUSD, uint128 rewardInToken)[] _rewardBalance)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615cd280620000216000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c80637ae14a0911610182578063a98ad46c116100e9578063c885bc58116100a2578063e0da3e021161007c578063e0da3e02146106b5578063ed895960146106c8578063f9a76089146106eb578063fc87ec461461070c57600080fd5b8063c885bc5814610687578063cd98ed2c1461068f578063d547741f146106a257600080fd5b8063a98ad46c146105f9578063a9b661051461060c578063bd312e551461061f578063c48ff43314610640578063c5f956af14610660578063c62d0f3c1461067457600080fd5b80638d968fdc1161013b5780638d968fdc1461058457806391d1485414610597578063969a44ff146105aa5780639fcb4424146105bd578063a217fddf146105de578063a8579d45146105e657600080fd5b80637ae14a09146104fa5780637dc0d1d01461050d5780637f81a09e146105205780638456cb591461055f57806388850d5f146105675780638bc7e8c41461057a57600080fd5b806335cf386d1161022657806352d52659116101df57806352d526591461048a578063575a86b2146104ab5780635c975abb146104bf57806362ffc7ac146104ca5780636605bfda146104d45780636d5c6822146104e757600080fd5b806335cf386d1461040a57806336568abe1461041d5780633bf186d0146104305780633f4ba83a1461045b5780633f5679041461046357806345af669e1461047757600080fd5b8063248a9ca311610278578063248a9ca3146103835780632f2ff15d146103a657806333718b06146103b957806333d2df3a146103c357806333ea44d6146103d6578063344dd6e4146103f757600080fd5b806301ffc9a7146102c0578063087b5ce4146102e8578063117a5b90146102fd5780631959a002146103215780631a326b7d146103415780631f89532b14610354575b600080fd5b6102d36102ce3660046146d2565b61071f565b60405190151581526020015b60405180910390f35b6102fb6102f6366004614714565b610756565b005b61031061030b366004614763565b610a11565b6040516102df9594939291906147d4565b61033461032f36600461482f565b610aef565b6040516102df91906148c2565b6102fb61034f3660046149f8565b611345565b610375610362366004614763565b6101116020526000908152604090205481565b6040519081526020016102df565b610375610391366004614763565b60009081526065602052604090206001015490565b6102fb6103b4366004614a93565b6115bd565b6103756101025481565b6102fb6103d1366004614ac3565b6115e8565b6103756103e436600461482f565b6101096020526000908152604090205481565b6102fb610405366004614ae5565b611651565b6102fb610418366004614baa565b6117e3565b6102fb61042b366004614a93565b611893565b60fb54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016102df565b6102fb611911565b61010154610443906001600160a01b031681565b6102fb610485366004614be0565b611928565b61049d61049836600461482f565b611abc565b6040516102df929190614c54565b61010054610443906001600160a01b031681565b60c95460ff166102d3565b6103756101045481565b6102fb6104e236600461482f565b611d27565b60fd54610443906001600160a01b031681565b6102fb61050836600461482f565b611d7d565b60ff54610443906001600160a01b031681565b61053361052e366004614763565b611dd3565b6040805163ffffffff90941684526001600160801b0390921660208401521515908201526060016102df565b6102fb611e18565b60fe54610443906001600160a01b031681565b6103756101035481565b6102fb610592366004614763565b611e2c565b6102d36105a5366004614a93565b611e3f565b6102fb6105b83660046149f8565b611e6a565b6105d06105cb36600461482f565b6120da565b6040516102df929190614d38565b610375600081565b6102fb6105f4366004614d74565b612240565b60fc54610443906001600160a01b031681565b61037561061a366004614763565b612268565b61063261062d3660046149f8565b612284565b6040516102df929190614d99565b61065361064e366004614db2565b61242c565b6040516102df9190614dde565b61010554610443906001600160a01b031681565b6102fb610682366004614ede565b612ac8565b6102fb612b6b565b6102fb61069d366004614f09565b612f13565b6102fb6106b0366004614a93565b613636565b6103106106c3366004614763565b61365c565b6106d061366d565b604080519384526020840192909252908201526060016102df565b6103756106f936600461482f565b61010a6020526000908152604090205481565b61053361071a366004614763565b6136b6565b60006001600160e01b03198216637965db0b60e01b148061075057506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061076281336136c7565b8160011415610825576101065484106107965760405162461bcd60e51b815260040161078d90614f8d565b60405180910390fd5b61010684815481106107aa576107aa614fb9565b60009182526020822060059091020181815560018101829055906107d16002830182614573565b6107df600383016000614594565b50600401805460ff1916905561010680548491908690811061080357610803614fb9565b9060005260206000209060050201818161081d919061533f565b9050506108fe565b81600214156108bd5761010d5484106108505760405162461bcd60e51b815260040161078d90614f8d565b61010d848154811061086457610864614fb9565b600091825260208220600590910201818155600181018290559061088b6002830182614573565b610899600383016000614594565b50600401805460ff1916905561010d80548491908690811061080357610803614fb9565b60405162461bcd60e51b81526020600482015260166024820152752bb937b7339031b7b73a3930b1ba103b32b939b4b7b760511b604482015260640161078d565b60005b61090e6060850185614fe4565b90508110156109d1576109526109276060860186614fe4565b8381811061093757610937614fb9565b61094d926020606090920201908101915061482f565b61372b565b6109bf576101086109666060860186614fe4565b8381811061097657610976614fb9565b61098c926020606090920201908101915061482f565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b806109c981615436565b915050610901565b5060408051858152602081018490527fcee63a270a35fbb9f1a65f72ecb9e98e9a56533b9eb3953f7f55a38d03b63359910160405180910390a150505050565b6101068181548110610a2257600080fd5b60009182526020909120600590910201805460018201546003830180546001600160801b038085169650600160801b909404909316939192610a63906151f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8f906151f8565b8015610adc5780601f10610ab157610100808354040283529160200191610adc565b820191906000526020600020905b815481529060010190602001808311610abf57829003601f168201915b5050506004909301549192505060ff1685565b610af76145ce565b610aff6145ce565b6101015460408051633a98ef3960e01b815290516000926001600160a01b031691633a98ef39916004808301926020929190829003018186803b158015610b4557600080fd5b505afa158015610b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7d9190615451565b61010154604051630cacd00160e11b81526001600160a01b03878116600483015290911690631959a0029060240160806040518083038186803b158015610bc357600080fd5b505afa158015610bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfb919061546a565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b158015610c4257600080fd5b505afa158015610c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7a9190615451565b610c849190615049565b610c8e91906154e5565b60fd546040516370a0823160e01b81526001600160a01b0387811660048301529293509116906370a082319060240160206040518083038186803b158015610cd557600080fd5b505afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d9190615451565b825260fd54604051630658574360e51b81526001600160a01b0386811660048301529091169063cb0ae8609060240160206040518083038186803b158015610d5457600080fd5b505afa158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190615451565b602083015260fe546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015610dd657600080fd5b505afa158015610dea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0e9190615451565b606083015260fd5460405163443cc59560e11b81526001600160a01b038681166004830152909116906388798b2a9060240160206040518083038186803b158015610e5857600080fd5b505afa158015610e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e909190615451565b608083015260fe546040516346ba7ddf60e01b81526001600160a01b038681166004830152909116906346ba7ddf9060240160206040518083038186803b158015610eda57600080fd5b505afa158015610eee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f129190615509565b6001600160801b031660a083015260fe54604051631cc7e15560e11b81526001600160a01b0386811660048301529091169063398fc2aa9060240160206040518083038186803b158015610f6557600080fd5b505afa158015610f79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9d9190615509565b6001600160801b031660c083015260fe54604051639936d52360e01b81526001600160a01b03868116600483015290911690639936d5239060240160206040518083038186803b158015610ff057600080fd5b505afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190615509565b6001600160801b031660e0830152610100820181905260fb546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b15801561108357600080fd5b505afa158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb9190615451565b61012083015260fd54604051637e59d48560e11b81526001600160a01b0386811660048301529091169063fcb3a90a9060240160206040518083038186803b15801561110657600080fd5b505afa15801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190615451565b6040830152610108546000906001600160401b0381111561116157611161614966565b6040519080825280602002602001820160405280156111ac57816020015b604080516060810182526000808252602080830182905292820152825260001990920191018161117f5790505b50905060005b610108548110156112b75761010881815481106111d1576111d1614fb9565b9060005260206000200160009054906101000a90046001600160a01b031682828151811061120157611201614fb9565b6020908102919091018101516001600160a01b039283169052908716600090815261010b9091526040812061010880549192918490811061124457611244614fb9565b60009182526020808320909101546001600160a01b0316835282019290925260400190205482516001600160801b039091169083908390811061128957611289614fb9565b60209081029190910101516001600160801b03909116604090910152806112af81615436565b9150506111b2565b5061014083018190526001600160a01b03851660009081526101096020526040812054819062015180906112eb9042615526565b6112f591906154e5565b905061010354610102548261130a9190615049565b1015611331576101025461131e9082615049565b6101035461132c9190615526565b611334565b60005b610160860152509295945050505050565b333b156113645760405162461bcd60e51b815260040161078d9061553d565b3332146113835760405162461bcd60e51b815260040161078d9061556b565b60c95460ff16156113a65760405162461bcd60e51b815260040161078d906155a2565b600260975414156113c95760405162461bcd60e51b815260040161078d906155cc565b600260975581516113ec5760405162461bcd60e51b815260040161078d90615603565b61010e5481106114395760405162461bcd60e51b815260206004820152601860248201527715dc9bdb99c81a5b99195e081bdd5d081bd988189bdd5b9960421b604482015260640161078d565b61010f5460ff16156114ec5781516101116000611458615460426154e5565b815260200190815260200160002060008282546114759190615645565b909155505061011054610111600061148f615460426154e5565b81526020019081526020016000205411156114ec5760405162461bcd60e51b815260206004820152601760248201527f436f6e747261637473206c696d69742072656163686564000000000000000000604482015260640161078d565b60006114f88383612284565b506101055460fb5491925061151c916001600160a01b039081169133911684613791565b60fe5461010e80546001600160a01b039092169163b963158d9186918690811061154857611548614fb9565b6000918252602090912001546040516001600160e01b031960e085901b168152611581929163ffffffff1690339060029060040161565d565b600060405180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505060016097555050505050565b6000828152606560205260409020600101546115d981336136c7565b6115e383836137fc565b505050565b60006115f481336136c7565b6113888211156116465760405162461bcd60e51b815260206004820152601e60248201527f496e636f72726563742076616c7565207769746864726177616c204665650000604482015260640161078d565b506101035561010255565b600054610100900460ff168061166a575060005460ff16155b6116865760405162461bcd60e51b815260040161078d9061569b565b600054610100900460ff161580156116a8576000805461ffff19166101011790555b6001600160a01b038a16158015906116c857506001600160a01b03891615155b80156116dc57506001600160a01b03881615155b80156116f057506001600160a01b03871615155b801561170457506001600160a01b03861615155b801561171857506001600160a01b03841615155b6117345760405162461bcd60e51b815260040161078d906156e9565b61173c613882565b6117446138ed565b61174f60003361394c565b60fb80546001600160a01b03199081166001600160a01b038c81169190911790925560fc805482168d841617905560fd805482168b841617905560fe805482168a841617905560ff8054821689841617905561010180548216878416179055610105805490911691851691909117905561010482905580156117d7576000805461ff00191690555b50505050505050505050565b60006117ef81336136c7565b826001141561184d5761010754841061181a5760405162461bcd60e51b815260040161078d90614f8d565b81610107858154811061182f5761182f614fb9565b9060005260206000200181816118459190615729565b90505061188d565b82600214156108bd5761010e5484106118785760405162461bcd60e51b815260040161078d90614f8d565b8161010e858154811061182f5761182f614fb9565b50505050565b6001600160a01b03811633146119035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161078d565b61190d8282613956565b5050565b600061191d81336136c7565b6119256139bd565b50565b600061193481336136c7565b816001141561198657610106805460018101825560009190915283906005027fc9ef9fceea91e87b2c84ea400a44fde78842aae8aa24cd4b502ce5fb4d91e63b0161197f828261533f565b50506119d1565b81600214156108bd5761010d805460018101825560009190915283906005027fd37d5aab611bd3c946977441ea77c3eceb623a7966962fbc75015048e8640bfb0161197f828261533f565b60005b6119e16060850185614fe4565b9050811015611a79576119fa6109276060860186614fe4565b611a6757610108611a0e6060860186614fe4565b83818110611a1e57611a1e614fb9565b611a34926020606090920201908101915061482f565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b80611a7181615436565b9150506119d4565b506101065460408051918252602082018490527f631d02c7a08d5bb170d4a353ae2ba5425cc79bdf10c0b1380b6b7b48c88774dc910160405180910390a1505050565b60fe54604051634b77b0bf60e01b81526001600160a01b038381166004830152606092839260009290911690634b77b0bf9060240160006040518083038186803b158015611b0957600080fd5b505afa158015611b1d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b45919081019061584f565b90506000805b8251811015611ba5574263ffffffff16838281518110611b6d57611b6d614fb9565b602002602001015160c0015163ffffffff161015611b935781611b8f81615436565b9250505b80611b9d81615436565b915050611b4b565b50806001600160401b03811115611bbe57611bbe614966565b604051908082528060200260200182016040528015611be7578160200160208202803683370190505b5061010e549094506001600160401b03811115611c0657611c06614966565b604051908082528060200260200182016040528015611c3957816020015b6060815260200190600190039081611c245790505b50925060005b8251811015611cd4574263ffffffff16838281518110611c6157611c61614fb9565b602002602001015160c0015163ffffffff161015611cc257828181518110611c8b57611c8b614fb9565b6020026020010151600001518583611ca2906159ec565b93508381518110611cb557611cb5614fb9565b6020026020010181815250505b80611ccc81615436565b915050611c3f565b5060005b61010e54811015611d1f57611ced8582612284565b9050848281518110611d0157611d01614fb9565b60200260200101819052508080611d1790615436565b915050611cd8565b505050915091565b6000611d3381336136c7565b6001600160a01b038216611d595760405162461bcd60e51b815260040161078d906156e9565b5061010580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d8981336136c7565b6001600160a01b038216611daf5760405162461bcd60e51b815260040161078d906156e9565b5061010180546001600160a01b0319166001600160a01b0392909216919091179055565b6101078181548110611de457600080fd5b60009182526020909120015463ffffffff8116915064010000000081046001600160801b031690600160a01b900460ff1683565b6000611e2481336136c7565b611925613a50565b6000611e3881336136c7565b5061010455565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b333b15611e895760405162461bcd60e51b815260040161078d9061553d565b333214611ea85760405162461bcd60e51b815260040161078d9061556b565b60c95460ff1615611ecb5760405162461bcd60e51b815260040161078d906155a2565b60026097541415611eee5760405162461bcd60e51b815260040161078d906155cc565b60026097558151611f115760405162461bcd60e51b815260040161078d90615603565b610107548110611f5e5760405162461bcd60e51b815260206004820152601860248201527715dc9bdb99c81a5b99195e081bdd5d081bd988189bdd5b9960421b604482015260640161078d565b6101078181548110611f7257611f72614fb9565b600091825260209091200154600160a01b900460ff16611fd45760405162461bcd60e51b815260206004820152601a60248201527f53656c656374656420636f6e74726163742064697361626c6564000000000000604482015260640161078d565b60006101078281548110611fea57611fea614fb9565b600091825260208220015484516401000000009091046001600160801b031692506120159083615049565b6101055460fb54919250612038916001600160a01b039081169133911684613791565b60fe5461010780546001600160a01b039092169163b963158d9187918790811061206457612064614fb9565b6000918252602090912001546040516001600160e01b031960e085901b16815261209d929163ffffffff1690339060019060040161565d565b600060405180830381600087803b1580156120b757600080fd5b505af11580156120cb573d6000803e3d6000fd5b50506001609755505050505050565b6060806000610108805490506001600160401b038111156120fd576120fd614966565b604051908082528060200260200182016040528015612126578160200160208202803683370190505b50905060005b81518110156121d5576001600160a01b038516600090815261010b6020526040812061010880549192918490811061216657612166614fb9565b60009182526020808320909101546001600160a01b0316835282019290925260400190205482516001600160801b03909116908390839081106121ab576121ab614fb9565b6001600160801b0390921660209283029190910190910152806121cd81615436565b91505061212c565b50610108818180548060200260200160405190810160405280929190818152602001828054801561222f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612211575b505050505091509250925050915091565b600061224c81336136c7565b506101109190915561010f805460ff1916911515919091179055565b60008160011461227b5761010d54610750565b50506101065490565b60006060600061010e848154811061229e5761229e614fb9565b60009182526020909120015485516401000000009091046001600160801b031691506001600160401b038111156122d7576122d7614966565b604051908082528060200260200182016040528015612300578160200160208202803683370190505b5060fe5460405163f3bef6d160e01b815291935060009182916001600160a01b03169063f3bef6d190612337908a90600401615a03565b60006040518083038186803b15801561234f57600080fd5b505afa158015612363573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261238b9190810190615a16565b9150915060005b845181101561240257670de0b6b3a76400008282815181106123b6576123b6614fb9565b6020026020010151856123c99190615049565b6123d391906154e5565b8582815181106123e5576123e5614fb9565b6020908102919091010152806123fa81615436565b915050612392565b50670de0b6b3a76400006124168385615049565b61242091906154e5565b94505050509250929050565b60606000826001146124415761010d54612446565b610106545b6001600160401b0381111561245d5761245d614966565b60405190808252806020026020018201604052801561249657816020015b61248361462f565b81526020019060019003908161247b5790505b50905060006001600160a01b0385166124b05760006124b9565b6124b985613aa8565b905060005b8251811015612abe5760006001600160a01b0387166124de5760006124e9565b6124e9878388613c31565b905060006001600160a01b038816612502576000612682565b866001146125c85761010d838154811061251e5761251e614fb9565b600091825260209091206005909102015460fe54604051631cc7e15560e11b81526001600160a01b038b811660048301526001600160801b03909316929091169063398fc2aa9060240160206040518083038186803b15801561258057600080fd5b505afa158015612594573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b89190615509565b6001600160801b03161015612682565b61010683815481106125dc576125dc614fb9565b600091825260209091206005909102015460fe546040516346ba7ddf60e01b81526001600160a01b038b811660048301526001600160801b0390931692909116906346ba7ddf9060240160206040518083038186803b15801561263e57600080fd5b505afa158015612652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126769190615509565b6001600160801b031610155b90508285848151811061269757612697614fb9565b602090810291909101015152600187146126d25761010d83815481106126bf576126bf614fb9565b90600052602060002090600502016126f5565b61010683815481106126e6576126e6614fb9565b90600052602060002090600502015b6040805160c08101825282546001600160801b038082168352600160801b909104166020808301919091526001840154828401526002840180548451818402810184019095528085529294936060860193909260009084015b828210156127b1576000848152602090819020604080516060810182526002860290920180546001600160a01b031683526001908101546001600160801b0380821685870152600160801b9091041691830191909152908352909201910161274e565b5050505081526020016003820180546127c9906151f8565b80601f01602080910402602001604051908101604052809291908181526020018280546127f5906151f8565b80156128425780601f1061281757610100808354040283529160200191612842565b820191906000526020600020905b81548152906001019060200180831161282557829003601f168201915b50505091835250506004919091015460ff161515602090910152855186908590811061287057612870614fb9565b6020026020010151602001819052508385848151811061289257612892614fb9565b60200260200101516040019015159081151581525050818584815181106128bb576128bb614fb9565b60200260200101516060019015159081151581525050808584815181106128e4576128e4614fb9565b602090810291909101015190151560809091015260005b85848151811061290d5761290d614fb9565b6020026020010151602001516060015151811015612aa85785848151811061293757612937614fb9565b60200260200101516020015160600151818151811061295857612958614fb9565b6020026020010151604001516001600160801b03166000146129b85785848151811061298657612986614fb9565b6020026020010151602001516060015181815181106129a7576129a7614fb9565b602002602001015160400151612a47565b612a478685815181106129cd576129cd614fb9565b6020026020010151602001516060015182815181106129ee576129ee614fb9565b602002602001015160000151878681518110612a0c57612a0c614fb9565b602002602001015160200151606001518381518110612a2d57612a2d614fb9565b6020026020010151602001516001600160801b0316613e3c565b868581518110612a5957612a59614fb9565b602002602001015160200151606001518281518110612a7a57612a7a614fb9565b60209081029190910101516001600160801b0390911660409091015280612aa081615436565b9150506128fb565b5050508080612ab690615436565b9150506124be565b5090949350505050565b6000612ad481336136c7565b8160011415612b2357610107805460018101825560009190915283907f47c4908e245f386bfc1825973249847f4053a761ddb4880ad63c323a7b5a2a2501612b1c8282615729565b5050505050565b81600214156108bd5761010e805460018101825560009190915283907f44731785622d53a842eeb261a70df6f2b61b9624656157b6168597f0656f480501612b1c8282615729565b333b15612b8a5760405162461bcd60e51b815260040161078d9061553d565b333214612ba95760405162461bcd60e51b815260040161078d9061556b565b60c95460ff1615612bcc5760405162461bcd60e51b815260040161078d906155a2565b60026097541415612bef5760405162461bcd60e51b815260040161078d906155cc565b60026097553360009081526101096020526040902054612c485760405162461bcd60e51b815260206004820152601460248201527315da5d1a191c985dc81b9bdd08185b1b1bddd95960621b604482015260640161078d565b336000908152610109602052604081205481906201518090612c6a9042615526565b612c7491906154e5565b9050610103546101025482612c899190615049565b1015612cb05761010254612c9d9082615049565b61010354612cab9190615526565b612cb3565b60005b610108549092506000906001600160401b03811115612cd457612cd4614966565b604051908082528060200260200182016040528015612d1f57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181612cf25790505b50905060005b61010854811015612ebd5760006101088281548110612d4657612d46614fb9565b600091825260208083209091015433835261010b825260408084206001600160a01b039092168085529190925291205484519192506001600160801b0316908290859085908110612d9957612d99614fb9565b6020908102919091018101516001600160a01b03928316905233600090815261010b82526040808220938616825292909152205484516001600160801b0390911690859085908110612ded57612ded614fb9565b6020908102919091018101516001600160801b0392831660409182015233600090815261010b83528181206001600160a01b0387168252909252902080546001600160801b0319169055811615612ea8576000612710612e56886001600160801b038516615049565b612e6091906154e5565b61010554909150612e7e906001600160a01b03858116911683613ecf565b612ea633612e95836001600160801b038616615526565b6001600160a01b0386169190613ecf565b505b50508080612eb590615436565b915050612d25565b50336000818152610109602052604080822091909155517faf6e0176ae225a07601b69dccf63f1a378b0e587350a12c6a9e6bfc9b02ef90e90612f01908490615ab2565b60405180910390a25050600160975550565b333b15612f325760405162461bcd60e51b815260040161078d9061553d565b333214612f515760405162461bcd60e51b815260040161078d9061556b565b60c95460ff1615612f745760405162461bcd60e51b815260040161078d906155a2565b60026097541415612f975760405162461bcd60e51b815260040161078d906155cc565b60026097556040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a0810191909152816001141561318757610106548510612ff85760405162461bcd60e51b815260040161078d90614f8d565b610106858154811061300c5761300c614fb9565b600091825260208083206040805160c081018252600590940290910180546001600160801b038082168652600160801b90910416848401526001810154848301526002810180548351818602810186019094528084529495919460608701949192909184015b828210156130d5576000848152602090819020604080516060810182526002860290920180546001600160a01b031683526001908101546001600160801b0380821685870152600160801b90910416918301919091529083529092019101613072565b5050505081526020016003820180546130ed906151f8565b80601f0160208091040260200160405190810160405280929190818152602001828054613119906151f8565b80156131665780601f1061313b57610100808354040283529160200191613166565b820191906000526020600020905b81548152906001019060200180831161314957829003601f168201915b50505091835250506004919091015460ff16151560209091015290506131c6565b81600214156108bd5761010d5485106131b25760405162461bcd60e51b815260040161078d90614f8d565b61010d858154811061300c5761300c614fb9565b8060a0015161320a5760405162461bcd60e51b815260206004820152601060248201526f11d85b59481a5cc8191a5cd8589b195960821b604482015260640161078d565b61321333613aa8565b61325f5760405162461bcd60e51b815260206004820152601b60248201527f436865636b2062757320616e6420706c61796572732066616c6c730000000000604482015260640161078d565b61326a338684613c31565b6132b65760405162461bcd60e51b815260206004820152601860248201527f4e656564206d6f7265207374616b6520696e20706f6f6c730000000000000000604482015260640161078d565b33600090815261010a60205260409020546132df5733600090815261010a602052604090204290555b6000826001146132f05760006132f3565b60015b60fe54610104549192506000916001600160a01b0390911690635c9557a290889088906133209042615645565b86338a6040518763ffffffff1660e01b815260040161334496959493929190615afb565b602060405180830381600087803b15801561335e57600080fd5b505af1158015613372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133969190615509565b905082600001516001600160801b0316816001600160801b031610156133f55760405162461bcd60e51b8152602060048201526014602482015273139bdd08195b9bdd59da0814d148185b5bdd5b9d60621b604482015260640161078d565b60006134018886613eff565b905060008460600151516001600160401b0381111561342257613422614966565b60405190808252806020026020018201604052801561344b578160200160208202803683370190505b50905060008560600151516001600160401b0381111561346d5761346d614966565b604051908082528060200260200182016040528015613496578160200160208202803683370190505b50905082156135df5760005b8660600151518110156135d357866060015181815181106134c5576134c5614fb9565b6020026020010151604001516001600160801b031660001461350857866060015181815181106134f7576134f7614fb9565b602002602001015160400151613543565b6135438760600151828151811061352157613521614fb9565b60200260200101516000015188606001518381518110612a2d57612a2d614fb9565b82828151811061355557613555614fb9565b60200260200101906001600160801b031690816001600160801b0316815250508660600151818151811061358b5761358b614fb9565b6020026020010151600001518382815181106135a9576135a9614fb9565b6001600160a01b0390921660209283029190910190910152806135cb81615436565b9150506134a2565b506135df338383613fbc565b89336001600160a01b03167fabfaafab54493bb5ccb64ab32e33c0ff490f320bd9e6e2b7c374ed734c48876f85858560405161361d93929190615b65565b60405180910390a3505060016097555050505050505050565b60008281526065602052604090206001015461365281336136c7565b6115e38383613956565b61010d8181548110610a2257600080fd5b6101105460008061011181613684615460426154e5565b8152602001908152602001600020549150615460426136a39190615b9c565b6136af90615460615526565b9050909192565b61010e8181548110611de457600080fd5b6136d18282611e3f565b61190d576136e9816001600160a01b0316601461411e565b6136f483602061411e565b604051602001613705929190615bb0565b60408051601f198184030181529082905262461bcd60e51b825261078d91600401615c25565b6000805b6101085481101561378857610108818154811061374e5761374e614fb9565b6000918252602090912001546001600160a01b03848116911614156137765750600192915050565b8061378081615436565b91505061372f565b50600092915050565b6040516001600160a01b038085166024830152831660448201526064810182905261188d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526142b9565b6138068282611e3f565b61190d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561383e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600054610100900460ff168061389b575060005460ff16155b6138b75760405162461bcd60e51b815260040161078d9061569b565b600054610100900460ff161580156138d9576000805461ffff19166101011790555b8015611925576000805461ff001916905550565b600054610100900460ff1680613906575060005460ff16155b6139225760405162461bcd60e51b815260040161078d9061569b565b600054610100900460ff16158015613944576000805461ffff19166101011790555b6138d961438b565b61190d82826137fc565b6139608282611e3f565b1561190d5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60c95460ff16613a065760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161078d565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60c95460ff1615613a735760405162461bcd60e51b815260040161078d906155a2565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613a333390565b60fd5460405163443cc59560e11b81526001600160a01b03838116600483015260009216906388798b2a9060240160206040518083038186803b158015613aee57600080fd5b505afa158015613b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b269190615451565b15801590610750575060fe546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b158015613b7457600080fd5b505afa158015613b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bac9190615451565b60fd5460405163443cc59560e11b81526001600160a01b038581166004830152909116906388798b2a9060240160206040518083038186803b158015613bf157600080fd5b505afa158015613c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c299190615451565b101592915050565b60008061010160009054906101000a90046001600160a01b03166001600160a01b0316633a98ef396040518163ffffffff1660e01b815260040160206040518083038186803b158015613c8357600080fd5b505afa158015613c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cbb9190615451565b61010154604051630cacd00160e11b81526001600160a01b03888116600483015290911690631959a0029060240160806040518083038186803b158015613d0157600080fd5b505afa158015613d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d39919061546a565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b158015613d8057600080fd5b505afa158015613d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613db89190615451565b613dc29190615049565b613dcc91906154e5565b9050806001841415613e18576101068581548110613dec57613dec614fb9565b6000918252602090912060059091020154600160801b90046001600160801b031611159150613e359050565b83600214156108bd5761010d8581548110613dec57613dec614fb9565b9392505050565b60ff5460fc54604051632321bc7960e21b81526001600160a01b0391821660048201526024810184905284821660448201526000929190911690638c86f1e49060640160206040518083038186803b158015613e9757600080fd5b505afa158015613eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e359190615451565b6040516001600160a01b0383166024820152604481018290526115e390849063a9059cbb60e01b906064016137c5565b60008082600114613f355761010d8481548110613f1e57613f1e614fb9565b906000526020600020906005020160010154613f5c565b6101068481548110613f4957613f49614fb9565b9060005260206000209060050201600101545b90506000612710613f6e600143615526565b405a6040805160208101939093528201526060016040516020818303038152906040528051906020012060001c613fa59190615b9c565b613fb0906001615645565b91909110949350505050565b80518251146140035760405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40c2e4e4c2f2e640d8cadccee8d606b1b604482015260640161078d565b6001600160a01b0383166000908152610109602052604090205461403e576001600160a01b0383166000908152610109602052604090204290555b60005b825181101561188d5781818151811061405c5761405c614fb9565b602002602001015161010b6000866001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061409e5761409e614fb9565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282829054906101000a90046001600160801b03166140e79190615c38565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550808061411690615436565b915050614041565b6060600061412d836002615049565b614138906002615645565b6001600160401b0381111561414f5761414f614966565b6040519080825280601f01601f191660200182016040528015614179576020820181803683370190505b509050600360fc1b8160008151811061419457614194614fb9565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106141c3576141c3614fb9565b60200101906001600160f81b031916908160001a90535060006141e7846002615049565b6141f2906001615645565b90505b600181111561426a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061422657614226614fb9565b1a60f81b82828151811061423c5761423c614fb9565b60200101906001600160f81b031916908160001a90535060049490941c93614263816159ec565b90506141f5565b508315613e355760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161078d565b600061430e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166143fb9092919063ffffffff16565b8051909150156115e3578080602001905181019061432c9190615c63565b6115e35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161078d565b600054610100900460ff16806143a4575060005460ff16155b6143c05760405162461bcd60e51b815260040161078d9061569b565b600054610100900460ff161580156143e2576000805461ffff19166101011790555b60016097558015611925576000805461ff001916905550565b606061440a8484600085614412565b949350505050565b6060824710156144735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161078d565b843b6144c15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161078d565b600080866001600160a01b031685876040516144dd9190615c80565b60006040518083038185875af1925050503d806000811461451a576040519150601f19603f3d011682016040523d82523d6000602084013e61451f565b606091505b509150915061452f82828661453a565b979650505050505050565b60608315614549575081613e35565b8251156145595782518084602001fd5b8160405162461bcd60e51b815260040161078d9190615c25565b50805460008255600202906000526020600020908101906119259190614693565b5080546145a0906151f8565b6000825580601f106145b0575050565b601f01602090049060005260206000209081019061192591906146bd565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001600081525090565b6040518060a00160405280600081526020016146786040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a081019190915290565b81526000602082018190526040820181905260609091015290565b5b808211156146b95780546001600160a01b031916815560006001820155600201614694565b5090565b5b808211156146b957600081556001016146be565b6000602082840312156146e457600080fd5b81356001600160e01b031981168114613e3557600080fd5b600060c0828403121561470e57600080fd5b50919050565b60008060006060848603121561472957600080fd5b8335925060208401356001600160401b0381111561474657600080fd5b614752868287016146fc565b925050604084013590509250925092565b60006020828403121561477557600080fd5b5035919050565b60005b8381101561479757818101518382015260200161477f565b8381111561188d5750506000910152565b600081518084526147c081602086016020860161477c565b601f01601f19169290920160200192915050565b60006001600160801b03808816835280871660208401525084604083015260a0606083015261480660a08301856147a8565b905082151560808301529695505050505050565b6001600160a01b038116811461192557600080fd5b60006020828403121561484157600080fd5b8135613e358161481a565b80516001600160a01b031682526020808201516001600160801b0390811691840191909152604091820151169082015260600190565b600081518084526020808501945080840160005b838110156148b7576148a987835161484c565b965090820190600101614896565b509495945050505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e083015161010081818501528085015191505061012081818501528085015191505061014081818501528085015191505061018061016081818601526149566101a0860184614882565b9501519301929092525090919050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b038111828210171561499f5761499f614966565b60405290565b604051601f8201601f191681016001600160401b03811182821017156149cd576149cd614966565b604052919050565b60006001600160401b038211156149ee576149ee614966565b5060051b60200190565b60008060408385031215614a0b57600080fd5b82356001600160401b03811115614a2157600080fd5b8301601f81018513614a3257600080fd5b80356020614a47614a42836149d5565b6149a5565b82815260059290921b83018101918181019088841115614a6657600080fd5b938201935b83851015614a8457843582529382019390820190614a6b565b98969091013596505050505050565b60008060408385031215614aa657600080fd5b823591506020830135614ab88161481a565b809150509250929050565b60008060408385031215614ad657600080fd5b50508035926020909101359150565b60008060008060008060008060006101208a8c031215614b0457600080fd5b8935614b0f8161481a565b985060208a0135614b1f8161481a565b975060408a0135614b2f8161481a565b965060608a0135614b3f8161481a565b955060808a0135614b4f8161481a565b945060a08a0135614b5f8161481a565b935060c08a0135614b6f8161481a565b925060e08a0135614b7f8161481a565b809250506101008a013590509295985092959850929598565b60006060828403121561470e57600080fd5b600080600060a08486031215614bbf57600080fd5b8335925060208401359150614bd78560408601614b98565b90509250925092565b60008060408385031215614bf357600080fd5b82356001600160401b03811115614c0957600080fd5b614c15858286016146fc565b95602094909401359450505050565b600081518084526020808501945080840160005b838110156148b757815187529582019590820190600101614c38565b604081526000614c676040830185614c24565b6020838203818501528185518084528284019150828160051b85010183880160005b83811015614cb757601f19878403018552614ca5838351614c24565b94860194925090850190600101614c89565b50909998505050505050505050565b600081518084526020808501945080840160005b838110156148b75781516001600160a01b031687529582019590820190600101614cda565b600081518084526020808501945080840160005b838110156148b75781516001600160801b031687529582019590820190600101614d13565b604081526000614d4b6040830185614cc6565b8281036020840152614d5d8185614cff565b95945050505050565b801515811461192557600080fd5b60008060408385031215614d8757600080fd5b823591506020830135614ab881614d66565b82815260406020820152600061440a6040830184614c24565b60008060408385031215614dc557600080fd5b8235614dd08161481a565b946020939093013593505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015614ed057603f19898403018552815160a08151855288820151818a8701526001600160801b0380825116838801528a82015160c0828216818a01528b84015160e08a015260609250828401519150806101008a015250614e6d610160890182614882565b9050608080840151609f198a8403016101208b0152614e8c83826147a8565b949095015115156101408a0152858c015115158c8a015282860151151592890192909252509283015115159290950191909152509386019390860190600101614e05565b509098975050505050505050565b60008060808385031215614ef157600080fd5b614efb8484614b98565b946060939093013593505050565b60008060008060608587031215614f1f57600080fd5b8435935060208501356001600160401b0380821115614f3d57600080fd5b818701915087601f830112614f5157600080fd5b813581811115614f6057600080fd5b8860208260051b8501011115614f7557600080fd5b95986020929092019750949560400135945092505050565b602080825260129082015271125b99195e081bdd5d081bd988189bdd5b9960721b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160801b038116811461192557600080fd5b6000808335601e19843603018112614ffb57600080fd5b8301803591506001600160401b0382111561501557600080fd5b602001915060608102360382131561502c57600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561506357615063615033565b500290565b81356150738161481a565b81546001600160a01b0319166001600160a01b03919091161781556001810160208301356150a081614fcf565b81546001600160801b0319166001600160801b0382161782555060408301356150c881614fcf565b81546001600160801b0316608082901b6001600160801b03191617825561188d565b6801000000000000000083111561510357615103614966565b805483825580841015615175576001600160ff1b03600181831181161561512c5761512c615033565b81861181161561513e5761513e615033565b60008481526020812090925086821b81019084831b015b80821015615170578382558383830155600282019150615155565b505050505b5060008181526020812083915b858110156151aa576151948383615068565b6060929092019160029190910190600101615182565b505050505050565b6000808335601e198436030181126151c957600080fd5b8301803591506001600160401b038211156151e357600080fd5b60200191503681900382131561502c57600080fd5b600181811c9082168061520c57607f821691505b6020821081141561470e57634e487b7160e01b600052602260045260246000fd5b601f8211156115e357600081815260208120601f850160051c810160208610156152545750805b601f850160051c820191505b818110156151aa57828155600101615260565b6001600160401b0383111561528a5761528a614966565b61529e8361529883546151f8565b8361522d565b6000601f8411600181146152d257600085156152ba5750838201355b600019600387901b1c1916600186901b178355612b1c565b600083815260209020601f19861690835b8281101561530357868501358255602094850194600190920191016152e3565b50868210156153205760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000813561075081614d66565b813561534a81614fcf565b81546001600160801b0319166001600160801b03821617825550602082013561537281614fcf565b81546001600160801b0316608082901b6001600160801b03191617825550604082013560018201556060820135601e198336030181126153b157600080fd5b820180356001600160401b038111156153c957600080fd5b6020820191506060810236038213156153e157600080fd5b6153ef8183600286016150ea565b50506153fe60808301836151b2565b61540c818360038601615273565b505061190d61541d60a08401615332565b6004830160ff1981541660ff8315151681178255505050565b600060001982141561544a5761544a615033565b5060010190565b60006020828403121561546357600080fd5b5051919050565b60006080828403121561547c57600080fd5b604051608081018181106001600160401b038211171561549e5761549e614966565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b634e487b7160e01b600052601260045260246000fd5b6000826154f4576154f46154cf565b500490565b805161550481614fcf565b919050565b60006020828403121561551b57600080fd5b8151613e3581614fcf565b60008282101561553857615538615033565b500390565b60208082526014908201527310dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604082015260600190565b6020808252601a908201527f50726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526022908201527f43616e7420627920636f6e74726163747320776974686f757420746f6b656e73604082015261125960f21b606082015260800190565b6000821982111561565857615658615033565b500190565b6080815260006156706080830187614c24565b63ffffffff959095166020830152506001600160a01b03929092166040830152606090910152919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b602080825260149082015273416464726573732063616e74206265207a65726f60601b604082015260600190565b63ffffffff8116811461192557600080fd5b813561573481615717565b63ffffffff8116905081548163ffffffff198216178355602084013561575981614fcf565b73ffffffffffffffffffffffffffffffff0000000060209190911b166001600160a01b03198216831781178455604085013561579481614d66565b6001600160a81b0319929092169092179190911790151560a01b60ff60a01b1617905550565b805160ff8116811461550457600080fd5b80516155048161481a565b805161550481615717565b805161550481614d66565b600082601f8301126157fd57600080fd5b81516001600160401b0381111561581657615816614966565b615829601f8201601f19166020016149a5565b81815284602083860101111561583e57600080fd5b61440a82602083016020870161477c565b6000602080838503121561586257600080fd5b82516001600160401b038082111561587957600080fd5b818501915085601f83011261588d57600080fd5b815161589b614a42826149d5565b81815260059190911b830184019084810190888311156158ba57600080fd5b8585015b838110156159df578051858111156158d557600080fd5b8601610180818c03601f190112156158ec57600080fd5b6158f461497c565b888201518152615906604083016157ba565b89820152615916606083016157cb565b6040820152615927608083016154f9565b606082015261593860a083016154f9565b608082015261594960c083016157d6565b60a082015261595a60e083016157d6565b60c082015261010061596d8184016157d6565b60e08301526101206159808185016157d6565b8284015261014091506159948285016157e1565b9083015261016083810151898111156159ac57600080fd5b6159ba8f8d838801016157ec565b83850152506159cc61018085016157e1565b90830152508452509186019186016158be565b5098975050505050505050565b6000816159fb576159fb615033565b506000190190565b602081526000613e356020830184614c24565b60008060408385031215615a2957600080fd5b825191506020808401516001600160401b03811115615a4757600080fd5b8401601f81018613615a5857600080fd5b8051615a66614a42826149d5565b81815260059190911b82018301908381019088831115615a8557600080fd5b928401925b82841015615aa357835182529284019290840190615a8a565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015615aef57615ae183855161484c565b938501939250600101615ace565b50909695505050505050565b60a0808252810186905260006001600160fb1b03871115615b1b57600080fd5b8660051b808960c0850137600090830160c00190815263ffffffff9690961660208301525092151560408401526001600160a01b0391909116606083015260809091015292915050565b8315158152606060208201526000615b806060830185614cc6565b8281036040840152615b928185614cff565b9695505050505050565b600082615bab57615bab6154cf565b500690565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615be881601785016020880161477c565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615c1981602884016020880161477c565b01602801949350505050565b602081526000613e3560208301846147a8565b60006001600160801b03808316818516808303821115615c5a57615c5a615033565b01949350505050565b600060208284031215615c7557600080fd5b8151613e3581614d66565b60008251615c9281846020870161477c565b919091019291505056fea26469706673582212208faa7ad11276f1f3ede024693d06d6979e15adecebc4911412d79270d89a982264736f6c63430008090033