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(address _user) view returns (uint256 totalLimit, uint256 contractsOnPeriod, uint256 userBoutOnPeriod, uint256 limitPerUser, 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 _contractsLimit, uint256 _limitContractsPerUser, uint256 _minStakeForContracts, 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
0x608060405234801561001057600080fd5b50615fee80620000216000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c80637ae14a0911610182578063a98ad46c116100e9578063c885bc58116100a2578063d547741f1161007c578063d547741f146106dd578063e0da3e02146106f0578063f9a7608914610703578063fc87ec461461072457600080fd5b8063c885bc5814610687578063ca9ae1731461068f578063cd98ed2c146106ca57600080fd5b8063a98ad46c146105f9578063a9b661051461060c578063bd312e551461061f578063c48ff43314610640578063c5f956af14610660578063c62d0f3c1461067457600080fd5b80638d968fdc1161013b5780638d968fdc1461058457806391d1485414610597578063969a44ff146105aa5780639b0068ae146105bd5780639fcb4424146105d0578063a217fddf146105f157600080fd5b80637ae14a09146104fa5780637dc0d1d01461050d5780637f81a09e146105205780638456cb591461055f57806388850d5f146105675780638bc7e8c41461057a57600080fd5b806335cf386d1161022657806352d52659116101df57806352d526591461048a578063575a86b2146104ab5780635c975abb146104bf57806362ffc7ac146104ca5780636605bfda146104d45780636d5c6822146104e757600080fd5b806335cf386d1461040a57806336568abe1461041d5780633bf186d0146104305780633f4ba83a1461045b5780633f5679041461046357806345af669e1461047757600080fd5b8063248a9ca311610278578063248a9ca3146103835780632f2ff15d146103a657806333718b06146103b957806333d2df3a146103c357806333ea44d6146103d6578063344dd6e4146103f757600080fd5b806301ffc9a7146102c0578063087b5ce4146102e8578063117a5b90146102fd5780631959a002146103215780631a326b7d146103415780631f89532b14610354575b600080fd5b6102d36102ce3660046149d2565b610737565b60405190151581526020015b60405180910390f35b6102fb6102f6366004614a14565b61076e565b005b61031061030b366004614a63565b610a29565b6040516102df959493929190614ad4565b61033461032f366004614b2f565b610b07565b6040516102df9190614bc2565b6102fb61034f366004614cf8565b61135d565b610375610362366004614a63565b6101116020526000908152604090205481565b6040519081526020016102df565b610375610391366004614a63565b60009081526065602052604090206001015490565b6102fb6103b4366004614d93565b611874565b6103756101025481565b6102fb6103d1366004614dc3565b61189f565b6103756103e4366004614b2f565b6101096020526000908152604090205481565b6102fb610405366004614de5565b611908565b6102fb610418366004614eaa565b611a9a565b6102fb61042b366004614d93565b611b4a565b60fb54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016102df565b6102fb611bc8565b61010154610443906001600160a01b031681565b6102fb610485366004614ee0565b611bdf565b61049d610498366004614b2f565b611d73565b6040516102df929190614f54565b61010054610443906001600160a01b031681565b60c95460ff166102d3565b6103756101045481565b6102fb6104e2366004614b2f565b611fde565b60fd54610443906001600160a01b031681565b6102fb610508366004614b2f565b612034565b60ff54610443906001600160a01b031681565b61053361052e366004614a63565b61208a565b6040805163ffffffff90941684526001600160801b0390921660208401521515908201526060016102df565b6102fb6120cf565b60fe54610443906001600160a01b031681565b6103756101035481565b6102fb610592366004614a63565b6120e3565b6102d36105a5366004614d93565b6120f6565b6102fb6105b8366004614cf8565b612121565b6102fb6105cb366004614fd4565b612391565b6105e36105de366004614b2f565b6123c4565b6040516102df929190615087565b610375600081565b60fc54610443906001600160a01b031681565b61037561061a366004614a63565b61252a565b61063261062d366004614cf8565b612546565b6040516102df9291906150b5565b61065361064e3660046150ce565b6126ee565b6040516102df91906150fa565b61010554610443906001600160a01b031681565b6102fb6106823660046151fa565b612d8a565b6102fb612e2d565b6106a261069d366004614b2f565b6131d5565b604080519586526020860194909452928401919091526060830152608082015260a0016102df565b6102fb6106d8366004615225565b613261565b6102fb6106eb366004614d93565b61397f565b6103106106fe366004614a63565b6139a5565b610375610711366004614b2f565b61010a6020526000908152604090205481565b610533610732366004614a63565b6139b6565b60006001600160e01b03198216637965db0b60e01b148061076857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061077a81336139c7565b816001141561083d576101065484106107ae5760405162461bcd60e51b81526004016107a5906152a9565b60405180910390fd5b61010684815481106107c2576107c26152d5565b60009182526020822060059091020181815560018101829055906107e96002830182614873565b6107f7600383016000614894565b50600401805460ff1916905561010680548491908690811061081b5761081b6152d5565b90600052602060002090600502018181610835919061565b565b905050610916565b81600214156108d55761010d5484106108685760405162461bcd60e51b81526004016107a5906152a9565b61010d848154811061087c5761087c6152d5565b60009182526020822060059091020181815560018101829055906108a36002830182614873565b6108b1600383016000614894565b50600401805460ff1916905561010d80548491908690811061081b5761081b6152d5565b60405162461bcd60e51b81526020600482015260166024820152752bb937b7339031b7b73a3930b1ba103b32b939b4b7b760511b60448201526064016107a5565b60005b6109266060850185615300565b90508110156109e95761096a61093f6060860186615300565b8381811061094f5761094f6152d5565b6109659260206060909202019081019150614b2f565b613a2b565b6109d75761010861097e6060860186615300565b8381811061098e5761098e6152d5565b6109a49260206060909202019081019150614b2f565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b806109e181615752565b915050610919565b5060408051858152602081018490527fcee63a270a35fbb9f1a65f72ecb9e98e9a56533b9eb3953f7f55a38d03b63359910160405180910390a150505050565b6101068181548110610a3a57600080fd5b60009182526020909120600590910201805460018201546003830180546001600160801b038085169650600160801b909404909316939192610a7b90615514565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa790615514565b8015610af45780601f10610ac957610100808354040283529160200191610af4565b820191906000526020600020905b815481529060010190602001808311610ad757829003601f168201915b5050506004909301549192505060ff1685565b610b0f6148ce565b610b176148ce565b6101015460408051633a98ef3960e01b815290516000926001600160a01b031691633a98ef39916004808301926020929190829003018186803b158015610b5d57600080fd5b505afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b95919061576d565b61010154604051630cacd00160e11b81526001600160a01b03878116600483015290911690631959a0029060240160806040518083038186803b158015610bdb57600080fd5b505afa158015610bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c139190615786565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b158015610c5a57600080fd5b505afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c92919061576d565b610c9c9190615365565b610ca69190615801565b60fd546040516370a0823160e01b81526001600160a01b0387811660048301529293509116906370a082319060240160206040518083038186803b158015610ced57600080fd5b505afa158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d25919061576d565b825260fd54604051630658574360e51b81526001600160a01b0386811660048301529091169063cb0ae8609060240160206040518083038186803b158015610d6c57600080fd5b505afa158015610d80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da4919061576d565b602083015260fe546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015610dee57600080fd5b505afa158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e26919061576d565b606083015260fd5460405163443cc59560e11b81526001600160a01b038681166004830152909116906388798b2a9060240160206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea8919061576d565b608083015260fe546040516346ba7ddf60e01b81526001600160a01b038681166004830152909116906346ba7ddf9060240160206040518083038186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190615825565b6001600160801b031660a083015260fe54604051631cc7e15560e11b81526001600160a01b0386811660048301529091169063398fc2aa9060240160206040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb59190615825565b6001600160801b031660c083015260fe54604051639936d52360e01b81526001600160a01b03868116600483015290911690639936d5239060240160206040518083038186803b15801561100857600080fd5b505afa15801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110409190615825565b6001600160801b031660e0830152610100820181905260fb546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b15801561109b57600080fd5b505afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d3919061576d565b61012083015260fd54604051637e59d48560e11b81526001600160a01b0386811660048301529091169063fcb3a90a9060240160206040518083038186803b15801561111e57600080fd5b505afa158015611132573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611156919061576d565b6040830152610108546000906001600160401b0381111561117957611179614c66565b6040519080825280602002602001820160405280156111c457816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816111975790505b50905060005b610108548110156112cf5761010881815481106111e9576111e96152d5565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110611219576112196152d5565b6020908102919091018101516001600160a01b039283169052908716600090815261010b9091526040812061010880549192918490811061125c5761125c6152d5565b60009182526020808320909101546001600160a01b0316835282019290925260400190205482516001600160801b03909116908390839081106112a1576112a16152d5565b60209081029190910101516001600160801b03909116604090910152806112c781615752565b9150506111ca565b5061014083018190526001600160a01b03851660009081526101096020526040812054819062015180906113039042615842565b61130d9190615801565b90506101035461010254826113229190615365565b101561134957610102546113369082615365565b610103546113449190615842565b61134c565b60005b610160860152509295945050505050565b333b1561137c5760405162461bcd60e51b81526004016107a590615859565b33321461139b5760405162461bcd60e51b81526004016107a590615887565b60c95460ff16156113be5760405162461bcd60e51b81526004016107a5906158be565b600260975414156113e15760405162461bcd60e51b81526004016107a5906158e8565b600260975581516114045760405162461bcd60e51b81526004016107a59061591f565b61010e5481106114515760405162461bcd60e51b815260206004820152601860248201527715dc9bdb99c81a5b99195e081bdd5d081bd988189bdd5b9960421b60448201526064016107a5565b61010f5460ff16156117a3578151610111600061147061546042615801565b8152602001908152602001600020600082825461148d9190615961565b9091555050815133600090815261011460205260408120906114b161546042615801565b815260200190815260200160002060008282546114ce9190615961565b90915550506101015460408051633a98ef3960e01b815290516000926001600160a01b031691633a98ef39916004808301926020929190829003018186803b15801561151957600080fd5b505afa15801561152d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611551919061576d565b61010154604051630cacd00160e11b81523360048201526001600160a01b0390911690631959a0029060240160806040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cd9190615786565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b15801561161457600080fd5b505afa158015611628573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164c919061576d565b6116569190615365565b6116609190615801565b61011054909150610111600061167861546042615801565b81526020019081526020016000205411156116d55760405162461bcd60e51b815260206004820152601760248201527f436f6e747261637473206c696d6974207265616368656400000000000000000060448201526064016107a5565b6101125433600090815261011460205260408120906116f661546042615801565b81526020019081526020016000205411156117535760405162461bcd60e51b815260206004820181905260248201527f436f6e747261637473206c696d6974207065722075736572207265616368656460448201526064016107a5565b610113548110156117a15760405162461bcd60e51b81526020600482015260186024820152774e656564206d6f7265207374616b6520696e20706f6f6c7360401b60448201526064016107a5565b505b60006117af8383612546565b506101055460fb549192506117d3916001600160a01b039081169133911684613a91565b60fe5461010e80546001600160a01b039092169163b963158d918691869081106117ff576117ff6152d5565b6000918252602090912001546040516001600160e01b031960e085901b168152611838929163ffffffff16903390600290600401615979565b600060405180830381600087803b15801561185257600080fd5b505af1158015611866573d6000803e3d6000fd5b505060016097555050505050565b60008281526065602052604090206001015461189081336139c7565b61189a8383613afc565b505050565b60006118ab81336139c7565b6113888211156118fd5760405162461bcd60e51b815260206004820152601e60248201527f496e636f72726563742076616c7565207769746864726177616c20466565000060448201526064016107a5565b506101035561010255565b600054610100900460ff1680611921575060005460ff16155b61193d5760405162461bcd60e51b81526004016107a5906159b7565b600054610100900460ff1615801561195f576000805461ffff19166101011790555b6001600160a01b038a161580159061197f57506001600160a01b03891615155b801561199357506001600160a01b03881615155b80156119a757506001600160a01b03871615155b80156119bb57506001600160a01b03861615155b80156119cf57506001600160a01b03841615155b6119eb5760405162461bcd60e51b81526004016107a590615a05565b6119f3613b82565b6119fb613bed565b611a06600033613c4c565b60fb80546001600160a01b03199081166001600160a01b038c81169190911790925560fc805482168d841617905560fd805482168b841617905560fe805482168a841617905560ff805482168984161790556101018054821687841617905561010580549091169185169190911790556101048290558015611a8e576000805461ff00191690555b50505050505050505050565b6000611aa681336139c7565b8260011415611b0457610107548410611ad15760405162461bcd60e51b81526004016107a5906152a9565b816101078581548110611ae657611ae66152d5565b906000526020600020018181611afc9190615a45565b905050611b44565b82600214156108d55761010e548410611b2f5760405162461bcd60e51b81526004016107a5906152a9565b8161010e8581548110611ae657611ae66152d5565b50505050565b6001600160a01b0381163314611bba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107a5565b611bc48282613c56565b5050565b6000611bd481336139c7565b611bdc613cbd565b50565b6000611beb81336139c7565b8160011415611c3d57610106805460018101825560009190915283906005027fc9ef9fceea91e87b2c84ea400a44fde78842aae8aa24cd4b502ce5fb4d91e63b01611c36828261565b565b5050611c88565b81600214156108d55761010d805460018101825560009190915283906005027fd37d5aab611bd3c946977441ea77c3eceb623a7966962fbc75015048e8640bfb01611c36828261565b565b60005b611c986060850185615300565b9050811015611d3057611cb161093f6060860186615300565b611d1e57610108611cc56060860186615300565b83818110611cd557611cd56152d5565b611ceb9260206060909202019081019150614b2f565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b80611d2881615752565b915050611c8b565b506101065460408051918252602082018490527f631d02c7a08d5bb170d4a353ae2ba5425cc79bdf10c0b1380b6b7b48c88774dc910160405180910390a1505050565b60fe54604051634b77b0bf60e01b81526001600160a01b038381166004830152606092839260009290911690634b77b0bf9060240160006040518083038186803b158015611dc057600080fd5b505afa158015611dd4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dfc9190810190615b6b565b90506000805b8251811015611e5c574263ffffffff16838281518110611e2457611e246152d5565b602002602001015160c0015163ffffffff161015611e4a5781611e4681615752565b9250505b80611e5481615752565b915050611e02565b50806001600160401b03811115611e7557611e75614c66565b604051908082528060200260200182016040528015611e9e578160200160208202803683370190505b5061010e549094506001600160401b03811115611ebd57611ebd614c66565b604051908082528060200260200182016040528015611ef057816020015b6060815260200190600190039081611edb5790505b50925060005b8251811015611f8b574263ffffffff16838281518110611f1857611f186152d5565b602002602001015160c0015163ffffffff161015611f7957828181518110611f4257611f426152d5565b6020026020010151600001518583611f5990615d08565b93508381518110611f6c57611f6c6152d5565b6020026020010181815250505b80611f8381615752565b915050611ef6565b5060005b61010e54811015611fd657611fa48582612546565b9050848281518110611fb857611fb86152d5565b60200260200101819052508080611fce90615752565b915050611f8f565b505050915091565b6000611fea81336139c7565b6001600160a01b0382166120105760405162461bcd60e51b81526004016107a590615a05565b5061010580546001600160a01b0319166001600160a01b0392909216919091179055565b600061204081336139c7565b6001600160a01b0382166120665760405162461bcd60e51b81526004016107a590615a05565b5061010180546001600160a01b0319166001600160a01b0392909216919091179055565b610107818154811061209b57600080fd5b60009182526020909120015463ffffffff8116915064010000000081046001600160801b031690600160a01b900460ff1683565b60006120db81336139c7565b611bdc613d50565b60006120ef81336139c7565b5061010455565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b333b156121405760405162461bcd60e51b81526004016107a590615859565b33321461215f5760405162461bcd60e51b81526004016107a590615887565b60c95460ff16156121825760405162461bcd60e51b81526004016107a5906158be565b600260975414156121a55760405162461bcd60e51b81526004016107a5906158e8565b600260975581516121c85760405162461bcd60e51b81526004016107a59061591f565b6101075481106122155760405162461bcd60e51b815260206004820152601860248201527715dc9bdb99c81a5b99195e081bdd5d081bd988189bdd5b9960421b60448201526064016107a5565b6101078181548110612229576122296152d5565b600091825260209091200154600160a01b900460ff1661228b5760405162461bcd60e51b815260206004820152601a60248201527f53656c656374656420636f6e74726163742064697361626c656400000000000060448201526064016107a5565b600061010782815481106122a1576122a16152d5565b600091825260208220015484516401000000009091046001600160801b031692506122cc9083615365565b6101055460fb549192506122ef916001600160a01b039081169133911684613a91565b60fe5461010780546001600160a01b039092169163b963158d9187918790811061231b5761231b6152d5565b6000918252602090912001546040516001600160e01b031960e085901b168152612354929163ffffffff16903390600190600401615979565b600060405180830381600087803b15801561236e57600080fd5b505af1158015612382573d6000803e3d6000fd5b50506001609755505050505050565b600061239d81336139c7565b5061011093909355610112919091556101135561010f805460ff1916911515919091179055565b6060806000610108805490506001600160401b038111156123e7576123e7614c66565b604051908082528060200260200182016040528015612410578160200160208202803683370190505b50905060005b81518110156124bf576001600160a01b038516600090815261010b60205260408120610108805491929184908110612450576124506152d5565b60009182526020808320909101546001600160a01b0316835282019290925260400190205482516001600160801b0390911690839083908110612495576124956152d5565b6001600160801b0390921660209283029190910190910152806124b781615752565b915050612416565b50610108818180548060200260200160405190810160405280929190818152602001828054801561251957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116124fb575b505050505091509250925050915091565b60008160011461253d5761010d54610768565b50506101065490565b60006060600061010e8481548110612560576125606152d5565b60009182526020909120015485516401000000009091046001600160801b031691506001600160401b0381111561259957612599614c66565b6040519080825280602002602001820160405280156125c2578160200160208202803683370190505b5060fe5460405163f3bef6d160e01b815291935060009182916001600160a01b03169063f3bef6d1906125f9908a90600401615d1f565b60006040518083038186803b15801561261157600080fd5b505afa158015612625573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261264d9190810190615d32565b9150915060005b84518110156126c457670de0b6b3a7640000828281518110612678576126786152d5565b60200260200101518561268b9190615365565b6126959190615801565b8582815181106126a7576126a76152d5565b6020908102919091010152806126bc81615752565b915050612654565b50670de0b6b3a76400006126d88385615365565b6126e29190615801565b94505050509250929050565b60606000826001146127035761010d54612708565b610106545b6001600160401b0381111561271f5761271f614c66565b60405190808252806020026020018201604052801561275857816020015b61274561492f565b81526020019060019003908161273d5790505b50905060006001600160a01b03851661277257600061277b565b61277b85613da8565b905060005b8251811015612d805760006001600160a01b0387166127a05760006127ab565b6127ab878388613f31565b905060006001600160a01b0388166127c4576000612944565b8660011461288a5761010d83815481106127e0576127e06152d5565b600091825260209091206005909102015460fe54604051631cc7e15560e11b81526001600160a01b038b811660048301526001600160801b03909316929091169063398fc2aa9060240160206040518083038186803b15801561284257600080fd5b505afa158015612856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287a9190615825565b6001600160801b03161015612944565b610106838154811061289e5761289e6152d5565b600091825260209091206005909102015460fe546040516346ba7ddf60e01b81526001600160a01b038b811660048301526001600160801b0390931692909116906346ba7ddf9060240160206040518083038186803b15801561290057600080fd5b505afa158015612914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129389190615825565b6001600160801b031610155b905082858481518110612959576129596152d5565b602090810291909101015152600187146129945761010d8381548110612981576129816152d5565b90600052602060002090600502016129b7565b61010683815481106129a8576129a86152d5565b90600052602060002090600502015b6040805160c08101825282546001600160801b038082168352600160801b909104166020808301919091526001840154828401526002840180548451818402810184019095528085529294936060860193909260009084015b82821015612a73576000848152602090819020604080516060810182526002860290920180546001600160a01b031683526001908101546001600160801b0380821685870152600160801b90910416918301919091529083529092019101612a10565b505050508152602001600382018054612a8b90615514565b80601f0160208091040260200160405190810160405280929190818152602001828054612ab790615514565b8015612b045780601f10612ad957610100808354040283529160200191612b04565b820191906000526020600020905b815481529060010190602001808311612ae757829003601f168201915b50505091835250506004919091015460ff1615156020909101528551869085908110612b3257612b326152d5565b60200260200101516020018190525083858481518110612b5457612b546152d5565b6020026020010151604001901515908115158152505081858481518110612b7d57612b7d6152d5565b6020026020010151606001901515908115158152505080858481518110612ba657612ba66152d5565b602090810291909101015190151560809091015260005b858481518110612bcf57612bcf6152d5565b6020026020010151602001516060015151811015612d6a57858481518110612bf957612bf96152d5565b602002602001015160200151606001518181518110612c1a57612c1a6152d5565b6020026020010151604001516001600160801b0316600014612c7a57858481518110612c4857612c486152d5565b602002602001015160200151606001518181518110612c6957612c696152d5565b602002602001015160400151612d09565b612d09868581518110612c8f57612c8f6152d5565b602002602001015160200151606001518281518110612cb057612cb06152d5565b602002602001015160000151878681518110612cce57612cce6152d5565b602002602001015160200151606001518381518110612cef57612cef6152d5565b6020026020010151602001516001600160801b031661413c565b868581518110612d1b57612d1b6152d5565b602002602001015160200151606001518281518110612d3c57612d3c6152d5565b60209081029190910101516001600160801b0390911660409091015280612d6281615752565b915050612bbd565b5050508080612d7890615752565b915050612780565b5090949350505050565b6000612d9681336139c7565b8160011415612de557610107805460018101825560009190915283907f47c4908e245f386bfc1825973249847f4053a761ddb4880ad63c323a7b5a2a2501612dde8282615a45565b5050505050565b81600214156108d55761010e805460018101825560009190915283907f44731785622d53a842eeb261a70df6f2b61b9624656157b6168597f0656f480501612dde8282615a45565b333b15612e4c5760405162461bcd60e51b81526004016107a590615859565b333214612e6b5760405162461bcd60e51b81526004016107a590615887565b60c95460ff1615612e8e5760405162461bcd60e51b81526004016107a5906158be565b60026097541415612eb15760405162461bcd60e51b81526004016107a5906158e8565b60026097553360009081526101096020526040902054612f0a5760405162461bcd60e51b815260206004820152601460248201527315da5d1a191c985dc81b9bdd08185b1b1bddd95960621b60448201526064016107a5565b336000908152610109602052604081205481906201518090612f2c9042615842565b612f369190615801565b9050610103546101025482612f4b9190615365565b1015612f725761010254612f5f9082615365565b61010354612f6d9190615842565b612f75565b60005b610108549092506000906001600160401b03811115612f9657612f96614c66565b604051908082528060200260200182016040528015612fe157816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181612fb45790505b50905060005b6101085481101561317f5760006101088281548110613008576130086152d5565b600091825260208083209091015433835261010b825260408084206001600160a01b039092168085529190925291205484519192506001600160801b031690829085908590811061305b5761305b6152d5565b6020908102919091018101516001600160a01b03928316905233600090815261010b82526040808220938616825292909152205484516001600160801b03909116908590859081106130af576130af6152d5565b6020908102919091018101516001600160801b0392831660409182015233600090815261010b83528181206001600160a01b0387168252909252902080546001600160801b031916905581161561316a576000612710613118886001600160801b038516615365565b6131229190615801565b61010554909150613140906001600160a01b038581169116836141cf565b61316833613157836001600160801b038616615842565b6001600160a01b03861691906141cf565b505b5050808061317790615752565b915050612fe7565b50336000818152610109602052604080822091909155517faf6e0176ae225a07601b69dccf63f1a378b0e587350a12c6a9e6bfc9b02ef90e906131c3908490615dce565b60405180910390a25050600160975550565b610110546000808080610111816131ee61546042615801565b81526020019081526020016000205493506154604261320d9190615e17565b61321990615460615842565b6001600160a01b03871660009081526101146020526040812091925061324161546042615801565b815260200190815260200160002054925061011254915091939590929450565b333b156132805760405162461bcd60e51b81526004016107a590615859565b33321461329f5760405162461bcd60e51b81526004016107a590615887565b60c95460ff16156132c25760405162461bcd60e51b81526004016107a5906158be565b600260975414156132e55760405162461bcd60e51b81526004016107a5906158e8565b60026097556040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a081019190915281600114156134d5576101065485106133465760405162461bcd60e51b81526004016107a5906152a9565b610106858154811061335a5761335a6152d5565b600091825260208083206040805160c081018252600590940290910180546001600160801b038082168652600160801b90910416848401526001810154848301526002810180548351818602810186019094528084529495919460608701949192909184015b82821015613423576000848152602090819020604080516060810182526002860290920180546001600160a01b031683526001908101546001600160801b0380821685870152600160801b909104169183019190915290835290920191016133c0565b50505050815260200160038201805461343b90615514565b80601f016020809104026020016040519081016040528092919081815260200182805461346790615514565b80156134b45780601f10613489576101008083540402835291602001916134b4565b820191906000526020600020905b81548152906001019060200180831161349757829003601f168201915b50505091835250506004919091015460ff1615156020909101529050613514565b81600214156108d55761010d5485106135005760405162461bcd60e51b81526004016107a5906152a9565b61010d858154811061335a5761335a6152d5565b8060a001516135585760405162461bcd60e51b815260206004820152601060248201526f11d85b59481a5cc8191a5cd8589b195960821b60448201526064016107a5565b61356133613da8565b6135ad5760405162461bcd60e51b815260206004820152601b60248201527f436865636b2062757320616e6420706c61796572732066616c6c73000000000060448201526064016107a5565b6135b8338684613f31565b6135ff5760405162461bcd60e51b81526020600482015260186024820152774e656564206d6f7265207374616b6520696e20706f6f6c7360401b60448201526064016107a5565b33600090815261010a60205260409020546136285733600090815261010a602052604090204290555b60008260011461363957600061363c565b60015b60fe54610104549192506000916001600160a01b0390911690635c9557a290889088906136699042615961565b86338a6040518763ffffffff1660e01b815260040161368d96959493929190615e2b565b602060405180830381600087803b1580156136a757600080fd5b505af11580156136bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136df9190615825565b905082600001516001600160801b0316816001600160801b0316101561373e5760405162461bcd60e51b8152602060048201526014602482015273139bdd08195b9bdd59da0814d148185b5bdd5b9d60621b60448201526064016107a5565b600061374a88866141ff565b905060008460600151516001600160401b0381111561376b5761376b614c66565b604051908082528060200260200182016040528015613794578160200160208202803683370190505b50905060008560600151516001600160401b038111156137b6576137b6614c66565b6040519080825280602002602001820160405280156137df578160200160208202803683370190505b50905082156139285760005b86606001515181101561391c578660600151818151811061380e5761380e6152d5565b6020026020010151604001516001600160801b03166000146138515786606001518181518110613840576138406152d5565b60200260200101516040015161388c565b61388c8760600151828151811061386a5761386a6152d5565b60200260200101516000015188606001518381518110612cef57612cef6152d5565b82828151811061389e5761389e6152d5565b60200260200101906001600160801b031690816001600160801b031681525050866060015181815181106138d4576138d46152d5565b6020026020010151600001518382815181106138f2576138f26152d5565b6001600160a01b03909216602092830291909101909101528061391481615752565b9150506137eb565b506139283383836142bc565b89336001600160a01b03167fabfaafab54493bb5ccb64ab32e33c0ff490f320bd9e6e2b7c374ed734c48876f85858560405161396693929190615e95565b60405180910390a3505060016097555050505050505050565b60008281526065602052604090206001015461399b81336139c7565b61189a8383613c56565b61010d8181548110610a3a57600080fd5b61010e818154811061209b57600080fd5b6139d182826120f6565b611bc4576139e9816001600160a01b0316601461441e565b6139f483602061441e565b604051602001613a05929190615ecc565b60408051601f198184030181529082905262461bcd60e51b82526107a591600401615f41565b6000805b61010854811015613a88576101088181548110613a4e57613a4e6152d5565b6000918252602090912001546001600160a01b0384811691161415613a765750600192915050565b80613a8081615752565b915050613a2f565b50600092915050565b6040516001600160a01b0380851660248301528316604482015260648101829052611b449085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526145b9565b613b0682826120f6565b611bc45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b3e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600054610100900460ff1680613b9b575060005460ff16155b613bb75760405162461bcd60e51b81526004016107a5906159b7565b600054610100900460ff16158015613bd9576000805461ffff19166101011790555b8015611bdc576000805461ff001916905550565b600054610100900460ff1680613c06575060005460ff16155b613c225760405162461bcd60e51b81526004016107a5906159b7565b600054610100900460ff16158015613c44576000805461ffff19166101011790555b613bd961468b565b611bc48282613afc565b613c6082826120f6565b15611bc45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60c95460ff16613d065760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107a5565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60c95460ff1615613d735760405162461bcd60e51b81526004016107a5906158be565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613d333390565b60fd5460405163443cc59560e11b81526001600160a01b03838116600483015260009216906388798b2a9060240160206040518083038186803b158015613dee57600080fd5b505afa158015613e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e26919061576d565b15801590610768575060fe546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b158015613e7457600080fd5b505afa158015613e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eac919061576d565b60fd5460405163443cc59560e11b81526001600160a01b038581166004830152909116906388798b2a9060240160206040518083038186803b158015613ef157600080fd5b505afa158015613f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f29919061576d565b101592915050565b60008061010160009054906101000a90046001600160a01b03166001600160a01b0316633a98ef396040518163ffffffff1660e01b815260040160206040518083038186803b158015613f8357600080fd5b505afa158015613f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fbb919061576d565b61010154604051630cacd00160e11b81526001600160a01b03888116600483015290911690631959a0029060240160806040518083038186803b15801561400157600080fd5b505afa158015614015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140399190615786565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b15801561408057600080fd5b505afa158015614094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b8919061576d565b6140c29190615365565b6140cc9190615801565b90508060018414156141185761010685815481106140ec576140ec6152d5565b6000918252602090912060059091020154600160801b90046001600160801b0316111591506141359050565b83600214156108d55761010d85815481106140ec576140ec6152d5565b9392505050565b60ff5460fc54604051632321bc7960e21b81526001600160a01b0391821660048201526024810184905284821660448201526000929190911690638c86f1e49060640160206040518083038186803b15801561419757600080fd5b505afa1580156141ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614135919061576d565b6040516001600160a01b03831660248201526044810182905261189a90849063a9059cbb60e01b90606401613ac5565b600080826001146142355761010d848154811061421e5761421e6152d5565b90600052602060002090600502016001015461425c565b6101068481548110614249576142496152d5565b9060005260206000209060050201600101545b9050600061271061426e600143615842565b405a6040805160208101939093528201526060016040516020818303038152906040528051906020012060001c6142a59190615e17565b6142b0906001615961565b91909110949350505050565b80518251146143035760405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40c2e4e4c2f2e640d8cadccee8d606b1b60448201526064016107a5565b6001600160a01b0383166000908152610109602052604090205461433e576001600160a01b0383166000908152610109602052604090204290555b60005b8251811015611b445781818151811061435c5761435c6152d5565b602002602001015161010b6000866001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061439e5761439e6152d5565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282829054906101000a90046001600160801b03166143e79190615f54565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550808061441690615752565b915050614341565b6060600061442d836002615365565b614438906002615961565b6001600160401b0381111561444f5761444f614c66565b6040519080825280601f01601f191660200182016040528015614479576020820181803683370190505b509050600360fc1b81600081518110614494576144946152d5565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106144c3576144c36152d5565b60200101906001600160f81b031916908160001a90535060006144e7846002615365565b6144f2906001615961565b90505b600181111561456a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110614526576145266152d5565b1a60f81b82828151811061453c5761453c6152d5565b60200101906001600160f81b031916908160001a90535060049490941c9361456381615d08565b90506144f5565b5083156141355760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107a5565b600061460e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166146fb9092919063ffffffff16565b80519091501561189a578080602001905181019061462c9190615f7f565b61189a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016107a5565b600054610100900460ff16806146a4575060005460ff16155b6146c05760405162461bcd60e51b81526004016107a5906159b7565b600054610100900460ff161580156146e2576000805461ffff19166101011790555b60016097558015611bdc576000805461ff001916905550565b606061470a8484600085614712565b949350505050565b6060824710156147735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016107a5565b843b6147c15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107a5565b600080866001600160a01b031685876040516147dd9190615f9c565b60006040518083038185875af1925050503d806000811461481a576040519150601f19603f3d011682016040523d82523d6000602084013e61481f565b606091505b509150915061482f82828661483a565b979650505050505050565b60608315614849575081614135565b8251156148595782518084602001fd5b8160405162461bcd60e51b81526004016107a59190615f41565b5080546000825560020290600052602060002090810190611bdc9190614993565b5080546148a090615514565b6000825580601f106148b0575050565b601f016020900490600052602060002090810190611bdc91906149bd565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001600081525090565b6040518060a00160405280600081526020016149786040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a081019190915290565b81526000602082018190526040820181905260609091015290565b5b808211156149b95780546001600160a01b031916815560006001820155600201614994565b5090565b5b808211156149b957600081556001016149be565b6000602082840312156149e457600080fd5b81356001600160e01b03198116811461413557600080fd5b600060c08284031215614a0e57600080fd5b50919050565b600080600060608486031215614a2957600080fd5b8335925060208401356001600160401b03811115614a4657600080fd5b614a52868287016149fc565b925050604084013590509250925092565b600060208284031215614a7557600080fd5b5035919050565b60005b83811015614a97578181015183820152602001614a7f565b83811115611b445750506000910152565b60008151808452614ac0816020860160208601614a7c565b601f01601f19169290920160200192915050565b60006001600160801b03808816835280871660208401525084604083015260a06060830152614b0660a0830185614aa8565b905082151560808301529695505050505050565b6001600160a01b0381168114611bdc57600080fd5b600060208284031215614b4157600080fd5b813561413581614b1a565b80516001600160a01b031682526020808201516001600160801b0390811691840191909152604091820151169082015260600190565b600081518084526020808501945080840160005b83811015614bb757614ba9878351614b4c565b965090820190600101614b96565b509495945050505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e08301516101008181850152808501519150506101208181850152808501519150506101408181850152808501519150506101806101608181860152614c566101a0860184614b82565b9501519301929092525090919050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614c9f57614c9f614c66565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614ccd57614ccd614c66565b604052919050565b60006001600160401b03821115614cee57614cee614c66565b5060051b60200190565b60008060408385031215614d0b57600080fd5b82356001600160401b03811115614d2157600080fd5b8301601f81018513614d3257600080fd5b80356020614d47614d4283614cd5565b614ca5565b82815260059290921b83018101918181019088841115614d6657600080fd5b938201935b83851015614d8457843582529382019390820190614d6b565b98969091013596505050505050565b60008060408385031215614da657600080fd5b823591506020830135614db881614b1a565b809150509250929050565b60008060408385031215614dd657600080fd5b50508035926020909101359150565b60008060008060008060008060006101208a8c031215614e0457600080fd5b8935614e0f81614b1a565b985060208a0135614e1f81614b1a565b975060408a0135614e2f81614b1a565b965060608a0135614e3f81614b1a565b955060808a0135614e4f81614b1a565b945060a08a0135614e5f81614b1a565b935060c08a0135614e6f81614b1a565b925060e08a0135614e7f81614b1a565b809250506101008a013590509295985092959850929598565b600060608284031215614a0e57600080fd5b600080600060a08486031215614ebf57600080fd5b8335925060208401359150614ed78560408601614e98565b90509250925092565b60008060408385031215614ef357600080fd5b82356001600160401b03811115614f0957600080fd5b614f15858286016149fc565b95602094909401359450505050565b600081518084526020808501945080840160005b83811015614bb757815187529582019590820190600101614f38565b604081526000614f676040830185614f24565b6020838203818501528185518084528284019150828160051b85010183880160005b83811015614fb757601f19878403018552614fa5838351614f24565b94860194925090850190600101614f89565b50909998505050505050505050565b8015158114611bdc57600080fd5b60008060008060808587031215614fea57600080fd5b843593506020850135925060408501359150606085013561500a81614fc6565b939692955090935050565b600081518084526020808501945080840160005b83811015614bb75781516001600160a01b031687529582019590820190600101615029565b600081518084526020808501945080840160005b83811015614bb75781516001600160801b031687529582019590820190600101615062565b60408152600061509a6040830185615015565b82810360208401526150ac818561504e565b95945050505050565b82815260406020820152600061470a6040830184614f24565b600080604083850312156150e157600080fd5b82356150ec81614b1a565b946020939093013593505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156151ec57603f19898403018552815160a08151855288820151818a8701526001600160801b0380825116838801528a82015160c0828216818a01528b84015160e08a015260609250828401519150806101008a015250615189610160890182614b82565b9050608080840151609f198a8403016101208b01526151a88382614aa8565b949095015115156101408a0152858c015115158c8a015282860151151592890192909252509283015115159290950191909152509386019390860190600101615121565b509098975050505050505050565b6000806080838503121561520d57600080fd5b6152178484614e98565b946060939093013593505050565b6000806000806060858703121561523b57600080fd5b8435935060208501356001600160401b038082111561525957600080fd5b818701915087601f83011261526d57600080fd5b81358181111561527c57600080fd5b8860208260051b850101111561529157600080fd5b95986020929092019750949560400135945092505050565b602080825260129082015271125b99195e081bdd5d081bd988189bdd5b9960721b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160801b0381168114611bdc57600080fd5b6000808335601e1984360301811261531757600080fd5b8301803591506001600160401b0382111561533157600080fd5b602001915060608102360382131561534857600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561537f5761537f61534f565b500290565b813561538f81614b1a565b81546001600160a01b0319166001600160a01b03919091161781556001810160208301356153bc816152eb565b81546001600160801b0319166001600160801b0382161782555060408301356153e4816152eb565b81546001600160801b0316608082901b6001600160801b031916178255611b44565b6801000000000000000083111561541f5761541f614c66565b805483825580841015615491576001600160ff1b0360018183118116156154485761544861534f565b81861181161561545a5761545a61534f565b60008481526020812090925086821b81019084831b015b8082101561548c578382558383830155600282019150615471565b505050505b5060008181526020812083915b858110156154c6576154b08383615384565b606092909201916002919091019060010161549e565b505050505050565b6000808335601e198436030181126154e557600080fd5b8301803591506001600160401b038211156154ff57600080fd5b60200191503681900382131561534857600080fd5b600181811c9082168061552857607f821691505b60208210811415614a0e57634e487b7160e01b600052602260045260246000fd5b601f82111561189a57600081815260208120601f850160051c810160208610156155705750805b601f850160051c820191505b818110156154c65782815560010161557c565b6001600160401b038311156155a6576155a6614c66565b6155ba836155b48354615514565b83615549565b6000601f8411600181146155ee57600085156155d65750838201355b600019600387901b1c1916600186901b178355612dde565b600083815260209020601f19861690835b8281101561561f57868501358255602094850194600190920191016155ff565b508682101561563c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000813561076881614fc6565b8135615666816152eb565b81546001600160801b0319166001600160801b03821617825550602082013561568e816152eb565b81546001600160801b0316608082901b6001600160801b03191617825550604082013560018201556060820135601e198336030181126156cd57600080fd5b820180356001600160401b038111156156e557600080fd5b6020820191506060810236038213156156fd57600080fd5b61570b818360028601615406565b505061571a60808301836154ce565b61572881836003860161558f565b5050611bc461573960a0840161564e565b6004830160ff1981541660ff8315151681178255505050565b60006000198214156157665761576661534f565b5060010190565b60006020828403121561577f57600080fd5b5051919050565b60006080828403121561579857600080fd5b604051608081018181106001600160401b03821117156157ba576157ba614c66565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b634e487b7160e01b600052601260045260246000fd5b600082615810576158106157eb565b500490565b8051615820816152eb565b919050565b60006020828403121561583757600080fd5b8151614135816152eb565b6000828210156158545761585461534f565b500390565b60208082526014908201527310dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604082015260600190565b6020808252601a908201527f50726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526022908201527f43616e7420627920636f6e74726163747320776974686f757420746f6b656e73604082015261125960f21b606082015260800190565b600082198211156159745761597461534f565b500190565b60808152600061598c6080830187614f24565b63ffffffff959095166020830152506001600160a01b03929092166040830152606090910152919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b602080825260149082015273416464726573732063616e74206265207a65726f60601b604082015260600190565b63ffffffff81168114611bdc57600080fd5b8135615a5081615a33565b63ffffffff8116905081548163ffffffff1982161783556020840135615a75816152eb565b73ffffffffffffffffffffffffffffffff0000000060209190911b166001600160a01b031982168317811784556040850135615ab081614fc6565b6001600160a81b0319929092169092179190911790151560a01b60ff60a01b1617905550565b805160ff8116811461582057600080fd5b805161582081614b1a565b805161582081615a33565b805161582081614fc6565b600082601f830112615b1957600080fd5b81516001600160401b03811115615b3257615b32614c66565b615b45601f8201601f1916602001614ca5565b818152846020838601011115615b5a57600080fd5b61470a826020830160208701614a7c565b60006020808385031215615b7e57600080fd5b82516001600160401b0380821115615b9557600080fd5b818501915085601f830112615ba957600080fd5b8151615bb7614d4282614cd5565b81815260059190911b83018401908481019088831115615bd657600080fd5b8585015b83811015615cfb57805185811115615bf157600080fd5b8601610180818c03601f19011215615c0857600080fd5b615c10614c7c565b888201518152615c2260408301615ad6565b89820152615c3260608301615ae7565b6040820152615c4360808301615815565b6060820152615c5460a08301615815565b6080820152615c6560c08301615af2565b60a0820152615c7660e08301615af2565b60c0820152610100615c89818401615af2565b60e0830152610120615c9c818501615af2565b828401526101409150615cb0828501615afd565b908301526101608381015189811115615cc857600080fd5b615cd68f8d83880101615b08565b8385015250615ce86101808501615afd565b9083015250845250918601918601615bda565b5098975050505050505050565b600081615d1757615d1761534f565b506000190190565b6020815260006141356020830184614f24565b60008060408385031215615d4557600080fd5b825191506020808401516001600160401b03811115615d6357600080fd5b8401601f81018613615d7457600080fd5b8051615d82614d4282614cd5565b81815260059190911b82018301908381019088831115615da157600080fd5b928401925b82841015615dbf57835182529284019290840190615da6565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015615e0b57615dfd838551614b4c565b938501939250600101615dea565b50909695505050505050565b600082615e2657615e266157eb565b500690565b60a0808252810186905260006001600160fb1b03871115615e4b57600080fd5b8660051b808960c0850137600090830160c00190815263ffffffff9690961660208301525092151560408401526001600160a01b0391909116606083015260809091015292915050565b8315158152606060208201526000615eb06060830185615015565b8281036040840152615ec2818561504e565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615f04816017850160208801614a7c565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615f35816028840160208801614a7c565b01602801949350505050565b6020815260006141356020830184614aa8565b60006001600160801b03808316818516808303821115615f7657615f7661534f565b01949350505050565b600060208284031215615f9157600080fd5b815161413581614fc6565b60008251615fae818460208701614a7c565b919091019291505056fea2646970667358221220158debb0b06ce5d6b760fe4999df483efc7c4a8fb06f8a010414310251823ae964736f6c63430008090033