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)
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[])
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)
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
0x608060405234801561001057600080fd5b50615b0180620000216000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c80637ae14a091161015c578063a98ad46c116100ce578063c885bc5811610087578063c885bc5814610622578063cd98ed2c1461062a578063d547741f1461063d578063e0da3e0214610650578063f9a7608914610663578063fc87ec461461068457600080fd5b8063a98ad46c14610594578063a9b66105146105a7578063bd312e55146105ba578063c48ff433146105db578063c5f956af146105fb578063c62d0f3c1461060f57600080fd5b80638bc7e8c4116101205780638bc7e8c4146105285780638d968fdc1461053257806391d1485414610545578063969a44ff146105585780639fcb44241461056b578063a217fddf1461058c57600080fd5b80637ae14a09146104a85780637dc0d1d0146104bb5780637f81a09e146104ce5780638456cb591461050d57806388850d5f1461051557600080fd5b806335cf386d1161020057806352d52659116101b957806352d5265914610438578063575a86b2146104595780635c975abb1461046d57806362ffc7ac146104785780636605bfda146104825780636d5c68221461049557600080fd5b806335cf386d146103b857806336568abe146103cb5780633bf186d0146103de5780633f4ba83a146104095780633f5679041461041157806345af669e1461042557600080fd5b8063248a9ca311610252578063248a9ca3146103235780632f2ff15d1461035457806333718b061461036757806333d2df3a1461037157806333ea44d614610384578063344dd6e4146103a557600080fd5b806301ffc9a71461028f578063087b5ce4146102b7578063117a5b90146102cc5780631959a002146102f05780631a326b7d14610310575b600080fd5b6102a261029d366004614526565b610697565b60405190151581526020015b60405180910390f35b6102ca6102c5366004614568565b6106ce565b005b6102df6102da3660046145b7565b610989565b6040516102ae959493929190614628565b6103036102fe366004614683565b610a67565b6040516102ae9190614716565b6102ca61031e36600461484c565b6112bd565b6103466103313660046145b7565b60009081526065602052604090206001015490565b6040519081526020016102ae565b6102ca6103623660046148e7565b611482565b6103466101025481565b6102ca61037f366004614917565b6114ad565b610346610392366004614683565b6101096020526000908152604090205481565b6102ca6103b3366004614939565b611516565b6102ca6103c63660046149fe565b6116a8565b6102ca6103d93660046148e7565b611758565b60fb546103f1906001600160a01b031681565b6040516001600160a01b0390911681526020016102ae565b6102ca6117d6565b610101546103f1906001600160a01b031681565b6102ca610433366004614a34565b6117ed565b61044b610446366004614683565b611981565b6040516102ae929190614aa8565b610100546103f1906001600160a01b031681565b60c95460ff166102a2565b6103466101045481565b6102ca610490366004614683565b611bec565b60fd546103f1906001600160a01b031681565b6102ca6104b6366004614683565b611c42565b60ff546103f1906001600160a01b031681565b6104e16104dc3660046145b7565b611c98565b6040805163ffffffff90941684526001600160801b0390921660208401521515908201526060016102ae565b6102ca611cdd565b60fe546103f1906001600160a01b031681565b6103466101035481565b6102ca6105403660046145b7565b611cf1565b6102a26105533660046148e7565b611d04565b6102ca61056636600461484c565b611d2f565b61057e610579366004614683565b611f9f565b6040516102ae929190614b8c565b610346600081565b60fc546103f1906001600160a01b031681565b6103466105b53660046145b7565b612105565b6105cd6105c836600461484c565b612121565b6040516102ae929190614bba565b6105ee6105e9366004614bd3565b6122c9565b6040516102ae9190614bff565b610105546103f1906001600160a01b031681565b6102ca61061d366004614cff565b612965565b6102ca612a08565b6102ca610638366004614d2a565b612db0565b6102ca61064b3660046148e7565b6134d3565b6102df61065e3660046145b7565b6134f9565b610346610671366004614683565b61010a6020526000908152604090205481565b6104e16106923660046145b7565b61350a565b60006001600160e01b03198216637965db0b60e01b14806106c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006106da813361351b565b816001141561079d5761010654841061070e5760405162461bcd60e51b815260040161070590614dae565b60405180910390fd5b610106848154811061072257610722614dda565b600091825260208220600590910201818155600181018290559061074960028301826143c7565b6107576003830160006143e8565b50600401805460ff1916905561010680548491908690811061077b5761077b614dda565b90600052602060002090600502018181610795919061516e565b905050610876565b81600214156108355761010d5484106107c85760405162461bcd60e51b815260040161070590614dae565b61010d84815481106107dc576107dc614dda565b600091825260208220600590910201818155600181018290559061080360028301826143c7565b6108116003830160006143e8565b50600401805460ff1916905561010d80548491908690811061077b5761077b614dda565b60405162461bcd60e51b81526020600482015260166024820152752bb937b7339031b7b73a3930b1ba103b32b939b4b7b760511b6044820152606401610705565b60005b6108866060850185614e05565b9050811015610949576108ca61089f6060860186614e05565b838181106108af576108af614dda565b6108c59260206060909202019081019150614683565b61357f565b610937576101086108de6060860186614e05565b838181106108ee576108ee614dda565b6109049260206060909202019081019150614683565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b8061094181615265565b915050610879565b5060408051858152602081018490527fcee63a270a35fbb9f1a65f72ecb9e98e9a56533b9eb3953f7f55a38d03b63359910160405180910390a150505050565b610106818154811061099a57600080fd5b60009182526020909120600590910201805460018201546003830180546001600160801b038085169650600160801b9094049093169391926109db90615019565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0790615019565b8015610a545780601f10610a2957610100808354040283529160200191610a54565b820191906000526020600020905b815481529060010190602001808311610a3757829003601f168201915b5050506004909301549192505060ff1685565b610a6f614422565b610a77614422565b6101015460408051633a98ef3960e01b815290516000926001600160a01b031691633a98ef39916004808301926020929190829003018186803b158015610abd57600080fd5b505afa158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190615280565b61010154604051630cacd00160e11b81526001600160a01b03878116600483015290911690631959a0029060240160806040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190615299565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b158015610bba57600080fd5b505afa158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf29190615280565b610bfc9190614e6a565b610c069190615314565b60fd546040516370a0823160e01b81526001600160a01b0387811660048301529293509116906370a082319060240160206040518083038186803b158015610c4d57600080fd5b505afa158015610c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c859190615280565b825260fd54604051630658574360e51b81526001600160a01b0386811660048301529091169063cb0ae8609060240160206040518083038186803b158015610ccc57600080fd5b505afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d049190615280565b602083015260fe546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015610d4e57600080fd5b505afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190615280565b606083015260fd5460405163443cc59560e11b81526001600160a01b038681166004830152909116906388798b2a9060240160206040518083038186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e089190615280565b608083015260fe546040516346ba7ddf60e01b81526001600160a01b038681166004830152909116906346ba7ddf9060240160206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190615338565b6001600160801b031660a083015260fe54604051631cc7e15560e11b81526001600160a01b0386811660048301529091169063398fc2aa9060240160206040518083038186803b158015610edd57600080fd5b505afa158015610ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f159190615338565b6001600160801b031660c083015260fe54604051639936d52360e01b81526001600160a01b03868116600483015290911690639936d5239060240160206040518083038186803b158015610f6857600080fd5b505afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa09190615338565b6001600160801b031660e0830152610100820181905260fb546040516370a0823160e01b81526001600160a01b038681166004830152909116906370a082319060240160206040518083038186803b158015610ffb57600080fd5b505afa15801561100f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110339190615280565b61012083015260fd54604051637e59d48560e11b81526001600160a01b0386811660048301529091169063fcb3a90a9060240160206040518083038186803b15801561107e57600080fd5b505afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b69190615280565b6040830152610108546000906001600160401b038111156110d9576110d96147ba565b60405190808252806020026020018201604052801561112457816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816110f75790505b50905060005b6101085481101561122f57610108818154811061114957611149614dda565b9060005260206000200160009054906101000a90046001600160a01b031682828151811061117957611179614dda565b6020908102919091018101516001600160a01b039283169052908716600090815261010b909152604081206101088054919291849081106111bc576111bc614dda565b60009182526020808320909101546001600160a01b0316835282019290925260400190205482516001600160801b039091169083908390811061120157611201614dda565b60209081029190910101516001600160801b039091166040909101528061122781615265565b91505061112a565b5061014083018190526001600160a01b03851660009081526101096020526040812054819062015180906112639042615355565b61126d9190615314565b90506101035461010254826112829190614e6a565b10156112a957610102546112969082614e6a565b610103546112a49190615355565b6112ac565b60005b610160860152509295945050505050565b333b156112dc5760405162461bcd60e51b81526004016107059061536c565b3332146112fb5760405162461bcd60e51b81526004016107059061539a565b60c95460ff161561131e5760405162461bcd60e51b8152600401610705906153d1565b600260975414156113415760405162461bcd60e51b8152600401610705906153fb565b600260975581516113645760405162461bcd60e51b815260040161070590615432565b61010e5481106113b15760405162461bcd60e51b815260206004820152601860248201527715dc9bdb99c81a5b99195e081bdd5d081bd988189bdd5b9960421b6044820152606401610705565b60006113bd8383612121565b506101055460fb549192506113e1916001600160a01b0390811691339116846135e5565b60fe5461010e80546001600160a01b039092169163b963158d9186918690811061140d5761140d614dda565b6000918252602090912001546040516001600160e01b031960e085901b168152611446929163ffffffff16903390600290600401615474565b600060405180830381600087803b15801561146057600080fd5b505af1158015611474573d6000803e3d6000fd5b505060016097555050505050565b60008281526065602052604090206001015461149e813361351b565b6114a88383613650565b505050565b60006114b9813361351b565b61138882111561150b5760405162461bcd60e51b815260206004820152601e60248201527f496e636f72726563742076616c7565207769746864726177616c2046656500006044820152606401610705565b506101035561010255565b600054610100900460ff168061152f575060005460ff16155b61154b5760405162461bcd60e51b8152600401610705906154b2565b600054610100900460ff1615801561156d576000805461ffff19166101011790555b6001600160a01b038a161580159061158d57506001600160a01b03891615155b80156115a157506001600160a01b03881615155b80156115b557506001600160a01b03871615155b80156115c957506001600160a01b03861615155b80156115dd57506001600160a01b03841615155b6115f95760405162461bcd60e51b815260040161070590615500565b6116016136d6565b611609613741565b6116146000336137a0565b60fb80546001600160a01b03199081166001600160a01b038c81169190911790925560fc805482168d841617905560fd805482168b841617905560fe805482168a841617905560ff80548216898416179055610101805482168784161790556101058054909116918516919091179055610104829055801561169c576000805461ff00191690555b50505050505050505050565b60006116b4813361351b565b8260011415611712576101075484106116df5760405162461bcd60e51b815260040161070590614dae565b8161010785815481106116f4576116f4614dda565b90600052602060002001818161170a9190615540565b905050611752565b82600214156108355761010e54841061173d5760405162461bcd60e51b815260040161070590614dae565b8161010e85815481106116f4576116f4614dda565b50505050565b6001600160a01b03811633146117c85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610705565b6117d282826137aa565b5050565b60006117e2813361351b565b6117ea613811565b50565b60006117f9813361351b565b816001141561184b57610106805460018101825560009190915283906005027fc9ef9fceea91e87b2c84ea400a44fde78842aae8aa24cd4b502ce5fb4d91e63b01611844828261516e565b5050611896565b81600214156108355761010d805460018101825560009190915283906005027fd37d5aab611bd3c946977441ea77c3eceb623a7966962fbc75015048e8640bfb01611844828261516e565b60005b6118a66060850185614e05565b905081101561193e576118bf61089f6060860186614e05565b61192c576101086118d36060860186614e05565b838181106118e3576118e3614dda565b6118f99260206060909202019081019150614683565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b8061193681615265565b915050611899565b506101065460408051918252602082018490527f631d02c7a08d5bb170d4a353ae2ba5425cc79bdf10c0b1380b6b7b48c88774dc910160405180910390a1505050565b60fe54604051634b77b0bf60e01b81526001600160a01b038381166004830152606092839260009290911690634b77b0bf9060240160006040518083038186803b1580156119ce57600080fd5b505afa1580156119e2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a0a9190810190615666565b90506000805b8251811015611a6a574263ffffffff16838281518110611a3257611a32614dda565b602002602001015160c0015163ffffffff161015611a585781611a5481615265565b9250505b80611a6281615265565b915050611a10565b50806001600160401b03811115611a8357611a836147ba565b604051908082528060200260200182016040528015611aac578160200160208202803683370190505b5061010e549094506001600160401b03811115611acb57611acb6147ba565b604051908082528060200260200182016040528015611afe57816020015b6060815260200190600190039081611ae95790505b50925060005b8251811015611b99574263ffffffff16838281518110611b2657611b26614dda565b602002602001015160c0015163ffffffff161015611b8757828181518110611b5057611b50614dda565b6020026020010151600001518583611b6790615803565b93508381518110611b7a57611b7a614dda565b6020026020010181815250505b80611b9181615265565b915050611b04565b5060005b61010e54811015611be457611bb28582612121565b9050848281518110611bc657611bc6614dda565b60200260200101819052508080611bdc90615265565b915050611b9d565b505050915091565b6000611bf8813361351b565b6001600160a01b038216611c1e5760405162461bcd60e51b815260040161070590615500565b5061010580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c4e813361351b565b6001600160a01b038216611c745760405162461bcd60e51b815260040161070590615500565b5061010180546001600160a01b0319166001600160a01b0392909216919091179055565b6101078181548110611ca957600080fd5b60009182526020909120015463ffffffff8116915064010000000081046001600160801b031690600160a01b900460ff1683565b6000611ce9813361351b565b6117ea6138a4565b6000611cfd813361351b565b5061010455565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b333b15611d4e5760405162461bcd60e51b81526004016107059061536c565b333214611d6d5760405162461bcd60e51b81526004016107059061539a565b60c95460ff1615611d905760405162461bcd60e51b8152600401610705906153d1565b60026097541415611db35760405162461bcd60e51b8152600401610705906153fb565b60026097558151611dd65760405162461bcd60e51b815260040161070590615432565b610107548110611e235760405162461bcd60e51b815260206004820152601860248201527715dc9bdb99c81a5b99195e081bdd5d081bd988189bdd5b9960421b6044820152606401610705565b6101078181548110611e3757611e37614dda565b600091825260209091200154600160a01b900460ff16611e995760405162461bcd60e51b815260206004820152601a60248201527f53656c656374656420636f6e74726163742064697361626c65640000000000006044820152606401610705565b60006101078281548110611eaf57611eaf614dda565b600091825260208220015484516401000000009091046001600160801b03169250611eda9083614e6a565b6101055460fb54919250611efd916001600160a01b0390811691339116846135e5565b60fe5461010780546001600160a01b039092169163b963158d91879187908110611f2957611f29614dda565b6000918252602090912001546040516001600160e01b031960e085901b168152611f62929163ffffffff16903390600190600401615474565b600060405180830381600087803b158015611f7c57600080fd5b505af1158015611f90573d6000803e3d6000fd5b50506001609755505050505050565b6060806000610108805490506001600160401b03811115611fc257611fc26147ba565b604051908082528060200260200182016040528015611feb578160200160208202803683370190505b50905060005b815181101561209a576001600160a01b038516600090815261010b6020526040812061010880549192918490811061202b5761202b614dda565b60009182526020808320909101546001600160a01b0316835282019290925260400190205482516001600160801b039091169083908390811061207057612070614dda565b6001600160801b03909216602092830291909101909101528061209281615265565b915050611ff1565b5061010881818054806020026020016040519081016040528092919081815260200182805480156120f457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120d6575b505050505091509250925050915091565b6000816001146121185761010d546106c8565b50506101065490565b60006060600061010e848154811061213b5761213b614dda565b60009182526020909120015485516401000000009091046001600160801b031691506001600160401b03811115612174576121746147ba565b60405190808252806020026020018201604052801561219d578160200160208202803683370190505b5060fe5460405163f3bef6d160e01b815291935060009182916001600160a01b03169063f3bef6d1906121d4908a9060040161581a565b60006040518083038186803b1580156121ec57600080fd5b505afa158015612200573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612228919081019061582d565b9150915060005b845181101561229f57670de0b6b3a764000082828151811061225357612253614dda565b6020026020010151856122669190614e6a565b6122709190615314565b85828151811061228257612282614dda565b60209081029190910101528061229781615265565b91505061222f565b50670de0b6b3a76400006122b38385614e6a565b6122bd9190615314565b94505050509250929050565b60606000826001146122de5761010d546122e3565b610106545b6001600160401b038111156122fa576122fa6147ba565b60405190808252806020026020018201604052801561233357816020015b612320614483565b8152602001906001900390816123185790505b50905060006001600160a01b03851661234d576000612356565b612356856138fc565b905060005b825181101561295b5760006001600160a01b03871661237b576000612386565b612386878388613a85565b905060006001600160a01b03881661239f57600061251f565b866001146124655761010d83815481106123bb576123bb614dda565b600091825260209091206005909102015460fe54604051631cc7e15560e11b81526001600160a01b038b811660048301526001600160801b03909316929091169063398fc2aa9060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190615338565b6001600160801b0316101561251f565b610106838154811061247957612479614dda565b600091825260209091206005909102015460fe546040516346ba7ddf60e01b81526001600160a01b038b811660048301526001600160801b0390931692909116906346ba7ddf9060240160206040518083038186803b1580156124db57600080fd5b505afa1580156124ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125139190615338565b6001600160801b031610155b90508285848151811061253457612534614dda565b6020908102919091010151526001871461256f5761010d838154811061255c5761255c614dda565b9060005260206000209060050201612592565b610106838154811061258357612583614dda565b90600052602060002090600502015b6040805160c08101825282546001600160801b038082168352600160801b909104166020808301919091526001840154828401526002840180548451818402810184019095528085529294936060860193909260009084015b8282101561264e576000848152602090819020604080516060810182526002860290920180546001600160a01b031683526001908101546001600160801b0380821685870152600160801b909104169183019190915290835290920191016125eb565b50505050815260200160038201805461266690615019565b80601f016020809104026020016040519081016040528092919081815260200182805461269290615019565b80156126df5780601f106126b4576101008083540402835291602001916126df565b820191906000526020600020905b8154815290600101906020018083116126c257829003601f168201915b50505091835250506004919091015460ff161515602090910152855186908590811061270d5761270d614dda565b6020026020010151602001819052508385848151811061272f5761272f614dda565b602002602001015160400190151590811515815250508185848151811061275857612758614dda565b602002602001015160600190151590811515815250508085848151811061278157612781614dda565b602090810291909101015190151560809091015260005b8584815181106127aa576127aa614dda565b6020026020010151602001516060015151811015612945578584815181106127d4576127d4614dda565b6020026020010151602001516060015181815181106127f5576127f5614dda565b6020026020010151604001516001600160801b03166000146128555785848151811061282357612823614dda565b60200260200101516020015160600151818151811061284457612844614dda565b6020026020010151604001516128e4565b6128e486858151811061286a5761286a614dda565b60200260200101516020015160600151828151811061288b5761288b614dda565b6020026020010151600001518786815181106128a9576128a9614dda565b6020026020010151602001516060015183815181106128ca576128ca614dda565b6020026020010151602001516001600160801b0316613c90565b8685815181106128f6576128f6614dda565b60200260200101516020015160600151828151811061291757612917614dda565b60209081029190910101516001600160801b039091166040909101528061293d81615265565b915050612798565b505050808061295390615265565b91505061235b565b5090949350505050565b6000612971813361351b565b81600114156129c057610107805460018101825560009190915283907f47c4908e245f386bfc1825973249847f4053a761ddb4880ad63c323a7b5a2a25016129b98282615540565b5050505050565b81600214156108355761010e805460018101825560009190915283907f44731785622d53a842eeb261a70df6f2b61b9624656157b6168597f0656f4805016129b98282615540565b333b15612a275760405162461bcd60e51b81526004016107059061536c565b333214612a465760405162461bcd60e51b81526004016107059061539a565b60c95460ff1615612a695760405162461bcd60e51b8152600401610705906153d1565b60026097541415612a8c5760405162461bcd60e51b8152600401610705906153fb565b60026097553360009081526101096020526040902054612ae55760405162461bcd60e51b815260206004820152601460248201527315da5d1a191c985dc81b9bdd08185b1b1bddd95960621b6044820152606401610705565b336000908152610109602052604081205481906201518090612b079042615355565b612b119190615314565b9050610103546101025482612b269190614e6a565b1015612b4d5761010254612b3a9082614e6a565b61010354612b489190615355565b612b50565b60005b610108549092506000906001600160401b03811115612b7157612b716147ba565b604051908082528060200260200182016040528015612bbc57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181612b8f5790505b50905060005b61010854811015612d5a5760006101088281548110612be357612be3614dda565b600091825260208083209091015433835261010b825260408084206001600160a01b039092168085529190925291205484519192506001600160801b0316908290859085908110612c3657612c36614dda565b6020908102919091018101516001600160a01b03928316905233600090815261010b82526040808220938616825292909152205484516001600160801b0390911690859085908110612c8a57612c8a614dda565b6020908102919091018101516001600160801b0392831660409182015233600090815261010b83528181206001600160a01b0387168252909252902080546001600160801b0319169055811615612d45576000612710612cf3886001600160801b038516614e6a565b612cfd9190615314565b61010554909150612d1b906001600160a01b03858116911683613d23565b612d4333612d32836001600160801b038616615355565b6001600160a01b0386169190613d23565b505b50508080612d5290615265565b915050612bc2565b50336000818152610109602052604080822091909155517faf6e0176ae225a07601b69dccf63f1a378b0e587350a12c6a9e6bfc9b02ef90e90612d9e9084906158c9565b60405180910390a25050600160975550565b333b15612dcf5760405162461bcd60e51b81526004016107059061536c565b333214612dee5760405162461bcd60e51b81526004016107059061539a565b60c95460ff1615612e115760405162461bcd60e51b8152600401610705906153d1565b60026097541415612e345760405162461bcd60e51b8152600401610705906153fb565b60026097556040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a0810191909152816001141561302457610106548510612e955760405162461bcd60e51b815260040161070590614dae565b6101068581548110612ea957612ea9614dda565b600091825260208083206040805160c081018252600590940290910180546001600160801b038082168652600160801b90910416848401526001810154848301526002810180548351818602810186019094528084529495919460608701949192909184015b82821015612f72576000848152602090819020604080516060810182526002860290920180546001600160a01b031683526001908101546001600160801b0380821685870152600160801b90910416918301919091529083529092019101612f0f565b505050508152602001600382018054612f8a90615019565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb690615019565b80156130035780601f10612fd857610100808354040283529160200191613003565b820191906000526020600020905b815481529060010190602001808311612fe657829003601f168201915b50505091835250506004919091015460ff1615156020909101529050613063565b81600214156108355761010d54851061304f5760405162461bcd60e51b815260040161070590614dae565b61010d8581548110612ea957612ea9614dda565b8060a001516130a75760405162461bcd60e51b815260206004820152601060248201526f11d85b59481a5cc8191a5cd8589b195960821b6044820152606401610705565b6130b0336138fc565b6130fc5760405162461bcd60e51b815260206004820152601b60248201527f436865636b2062757320616e6420706c61796572732066616c6c7300000000006044820152606401610705565b613107338684613a85565b6131535760405162461bcd60e51b815260206004820152601860248201527f4e656564206d6f7265207374616b6520696e20706f6f6c7300000000000000006044820152606401610705565b33600090815261010a602052604090205461317c5733600090815261010a602052604090204290555b60008260011461318d576000613190565b60015b60fe54610104549192506000916001600160a01b0390911690635c9557a290889088906131bd9042615912565b86338a6040518763ffffffff1660e01b81526004016131e19695949392919061592a565b602060405180830381600087803b1580156131fb57600080fd5b505af115801561320f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132339190615338565b905082600001516001600160801b0316816001600160801b031610156132925760405162461bcd60e51b8152602060048201526014602482015273139bdd08195b9bdd59da0814d148185b5bdd5b9d60621b6044820152606401610705565b600061329e8886613d53565b905060008460600151516001600160401b038111156132bf576132bf6147ba565b6040519080825280602002602001820160405280156132e8578160200160208202803683370190505b50905060008560600151516001600160401b0381111561330a5761330a6147ba565b604051908082528060200260200182016040528015613333578160200160208202803683370190505b509050821561347c5760005b866060015151811015613470578660600151818151811061336257613362614dda565b6020026020010151604001516001600160801b03166000146133a5578660600151818151811061339457613394614dda565b6020026020010151604001516133e0565b6133e0876060015182815181106133be576133be614dda565b602002602001015160000151886060015183815181106128ca576128ca614dda565b8282815181106133f2576133f2614dda565b60200260200101906001600160801b031690816001600160801b0316815250508660600151818151811061342857613428614dda565b60200260200101516000015183828151811061344657613446614dda565b6001600160a01b03909216602092830291909101909101528061346881615265565b91505061333f565b5061347c338383613e10565b89336001600160a01b03167fabfaafab54493bb5ccb64ab32e33c0ff490f320bd9e6e2b7c374ed734c48876f8585856040516134ba93929190615994565b60405180910390a3505060016097555050505050505050565b6000828152606560205260409020600101546134ef813361351b565b6114a883836137aa565b61010d818154811061099a57600080fd5b61010e8181548110611ca957600080fd5b6135258282611d04565b6117d25761353d816001600160a01b03166014613f72565b613548836020613f72565b6040516020016135599291906159cb565b60408051601f198184030181529082905262461bcd60e51b825261070591600401615a40565b6000805b610108548110156135dc5761010881815481106135a2576135a2614dda565b6000918252602090912001546001600160a01b03848116911614156135ca5750600192915050565b806135d481615265565b915050613583565b50600092915050565b6040516001600160a01b03808516602483015283166044820152606481018290526117529085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261410d565b61365a8282611d04565b6117d25760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556136923390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600054610100900460ff16806136ef575060005460ff16155b61370b5760405162461bcd60e51b8152600401610705906154b2565b600054610100900460ff1615801561372d576000805461ffff19166101011790555b80156117ea576000805461ff001916905550565b600054610100900460ff168061375a575060005460ff16155b6137765760405162461bcd60e51b8152600401610705906154b2565b600054610100900460ff16158015613798576000805461ffff19166101011790555b61372d6141df565b6117d28282613650565b6137b48282611d04565b156117d25760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60c95460ff1661385a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610705565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60c95460ff16156138c75760405162461bcd60e51b8152600401610705906153d1565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138873390565b60fd5460405163443cc59560e11b81526001600160a01b03838116600483015260009216906388798b2a9060240160206040518083038186803b15801561394257600080fd5b505afa158015613956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397a9190615280565b158015906106c8575060fe546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b1580156139c857600080fd5b505afa1580156139dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a009190615280565b60fd5460405163443cc59560e11b81526001600160a01b038581166004830152909116906388798b2a9060240160206040518083038186803b158015613a4557600080fd5b505afa158015613a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7d9190615280565b101592915050565b60008061010160009054906101000a90046001600160a01b03166001600160a01b0316633a98ef396040518163ffffffff1660e01b815260040160206040518083038186803b158015613ad757600080fd5b505afa158015613aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0f9190615280565b61010154604051630cacd00160e11b81526001600160a01b03888116600483015290911690631959a0029060240160806040518083038186803b158015613b5557600080fd5b505afa158015613b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8d9190615299565b51610101546040805163722713f760e01b815290516001600160a01b039092169163722713f791600480820192602092909190829003018186803b158015613bd457600080fd5b505afa158015613be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0c9190615280565b613c169190614e6a565b613c209190615314565b9050806001841415613c6c576101068581548110613c4057613c40614dda565b6000918252602090912060059091020154600160801b90046001600160801b031611159150613c899050565b83600214156108355761010d8581548110613c4057613c40614dda565b9392505050565b60ff5460fc54604051632321bc7960e21b81526001600160a01b0391821660048201526024810184905284821660448201526000929190911690638c86f1e49060640160206040518083038186803b158015613ceb57600080fd5b505afa158015613cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c899190615280565b6040516001600160a01b0383166024820152604481018290526114a890849063a9059cbb60e01b90606401613619565b60008082600114613d895761010d8481548110613d7257613d72614dda565b906000526020600020906005020160010154613db0565b6101068481548110613d9d57613d9d614dda565b9060005260206000209060050201600101545b90506000612710613dc2600143615355565b405a6040805160208101939093528201526060016040516020818303038152906040528051906020012060001c613df99190615a53565b613e04906001615912565b91909110949350505050565b8051825114613e575760405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40c2e4e4c2f2e640d8cadccee8d606b1b6044820152606401610705565b6001600160a01b03831660009081526101096020526040902054613e92576001600160a01b0383166000908152610109602052604090204290555b60005b825181101561175257818181518110613eb057613eb0614dda565b602002602001015161010b6000866001600160a01b03166001600160a01b031681526020019081526020016000206000858481518110613ef257613ef2614dda565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282829054906101000a90046001600160801b0316613f3b9190615a67565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508080613f6a90615265565b915050613e95565b60606000613f81836002614e6a565b613f8c906002615912565b6001600160401b03811115613fa357613fa36147ba565b6040519080825280601f01601f191660200182016040528015613fcd576020820181803683370190505b509050600360fc1b81600081518110613fe857613fe8614dda565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061401757614017614dda565b60200101906001600160f81b031916908160001a905350600061403b846002614e6a565b614046906001615912565b90505b60018111156140be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061407a5761407a614dda565b1a60f81b82828151811061409057614090614dda565b60200101906001600160f81b031916908160001a90535060049490941c936140b781615803565b9050614049565b508315613c895760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610705565b6000614162826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661424f9092919063ffffffff16565b8051909150156114a857808060200190518101906141809190615a92565b6114a85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610705565b600054610100900460ff16806141f8575060005460ff16155b6142145760405162461bcd60e51b8152600401610705906154b2565b600054610100900460ff16158015614236576000805461ffff19166101011790555b600160975580156117ea576000805461ff001916905550565b606061425e8484600085614266565b949350505050565b6060824710156142c75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610705565b843b6143155760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610705565b600080866001600160a01b031685876040516143319190615aaf565b60006040518083038185875af1925050503d806000811461436e576040519150601f19603f3d011682016040523d82523d6000602084013e614373565b606091505b509150915061438382828661438e565b979650505050505050565b6060831561439d575081613c89565b8251156143ad5782518084602001fd5b8160405162461bcd60e51b81526004016107059190615a40565b50805460008255600202906000526020600020908101906117ea91906144e7565b5080546143f490615019565b6000825580601f10614404575050565b601f0160209004906000526020600020908101906117ea9190614511565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001600081525090565b6040518060a00160405280600081526020016144cc6040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a081019190915290565b81526000602082018190526040820181905260609091015290565b5b8082111561450d5780546001600160a01b0319168155600060018201556002016144e8565b5090565b5b8082111561450d5760008155600101614512565b60006020828403121561453857600080fd5b81356001600160e01b031981168114613c8957600080fd5b600060c0828403121561456257600080fd5b50919050565b60008060006060848603121561457d57600080fd5b8335925060208401356001600160401b0381111561459a57600080fd5b6145a686828701614550565b925050604084013590509250925092565b6000602082840312156145c957600080fd5b5035919050565b60005b838110156145eb5781810151838201526020016145d3565b838111156117525750506000910152565b600081518084526146148160208601602086016145d0565b601f01601f19169290920160200192915050565b60006001600160801b03808816835280871660208401525084604083015260a0606083015261465a60a08301856145fc565b905082151560808301529695505050505050565b6001600160a01b03811681146117ea57600080fd5b60006020828403121561469557600080fd5b8135613c898161466e565b80516001600160a01b031682526020808201516001600160801b0390811691840191909152604091820151169082015260600190565b600081518084526020808501945080840160005b8381101561470b576146fd8783516146a0565b9650908201906001016146ea565b509495945050505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260c082015160e0820152600060e083015161010081818501528085015191505061012081818501528085015191505061014081818501528085015191505061018061016081818601526147aa6101a08601846146d6565b9501519301929092525090919050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156147f3576147f36147ba565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614821576148216147ba565b604052919050565b60006001600160401b03821115614842576148426147ba565b5060051b60200190565b6000806040838503121561485f57600080fd5b82356001600160401b0381111561487557600080fd5b8301601f8101851361488657600080fd5b8035602061489b61489683614829565b6147f9565b82815260059290921b830181019181810190888411156148ba57600080fd5b938201935b838510156148d8578435825293820193908201906148bf565b98969091013596505050505050565b600080604083850312156148fa57600080fd5b82359150602083013561490c8161466e565b809150509250929050565b6000806040838503121561492a57600080fd5b50508035926020909101359150565b60008060008060008060008060006101208a8c03121561495857600080fd5b89356149638161466e565b985060208a01356149738161466e565b975060408a01356149838161466e565b965060608a01356149938161466e565b955060808a01356149a38161466e565b945060a08a01356149b38161466e565b935060c08a01356149c38161466e565b925060e08a01356149d38161466e565b809250506101008a013590509295985092959850929598565b60006060828403121561456257600080fd5b600080600060a08486031215614a1357600080fd5b8335925060208401359150614a2b85604086016149ec565b90509250925092565b60008060408385031215614a4757600080fd5b82356001600160401b03811115614a5d57600080fd5b614a6985828601614550565b95602094909401359450505050565b600081518084526020808501945080840160005b8381101561470b57815187529582019590820190600101614a8c565b604081526000614abb6040830185614a78565b6020838203818501528185518084528284019150828160051b85010183880160005b83811015614b0b57601f19878403018552614af9838351614a78565b94860194925090850190600101614add565b50909998505050505050505050565b600081518084526020808501945080840160005b8381101561470b5781516001600160a01b031687529582019590820190600101614b2e565b600081518084526020808501945080840160005b8381101561470b5781516001600160801b031687529582019590820190600101614b67565b604081526000614b9f6040830185614b1a565b8281036020840152614bb18185614b53565b95945050505050565b82815260406020820152600061425e6040830184614a78565b60008060408385031215614be657600080fd5b8235614bf18161466e565b946020939093013593505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015614cf157603f19898403018552815160a08151855288820151818a8701526001600160801b0380825116838801528a82015160c0828216818a01528b84015160e08a015260609250828401519150806101008a015250614c8e6101608901826146d6565b9050608080840151609f198a8403016101208b0152614cad83826145fc565b949095015115156101408a0152858c015115158c8a015282860151151592890192909252509283015115159290950191909152509386019390860190600101614c26565b509098975050505050505050565b60008060808385031215614d1257600080fd5b614d1c84846149ec565b946060939093013593505050565b60008060008060608587031215614d4057600080fd5b8435935060208501356001600160401b0380821115614d5e57600080fd5b818701915087601f830112614d7257600080fd5b813581811115614d8157600080fd5b8860208260051b8501011115614d9657600080fd5b95986020929092019750949560400135945092505050565b602080825260129082015271125b99195e081bdd5d081bd988189bdd5b9960721b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160801b03811681146117ea57600080fd5b6000808335601e19843603018112614e1c57600080fd5b8301803591506001600160401b03821115614e3657600080fd5b6020019150606081023603821315614e4d57600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615614e8457614e84614e54565b500290565b8135614e948161466e565b81546001600160a01b0319166001600160a01b0391909116178155600181016020830135614ec181614df0565b81546001600160801b0319166001600160801b038216178255506040830135614ee981614df0565b81546001600160801b0316608082901b6001600160801b031916178255611752565b68010000000000000000831115614f2457614f246147ba565b805483825580841015614f96576001600160ff1b036001818311811615614f4d57614f4d614e54565b818611811615614f5f57614f5f614e54565b60008481526020812090925086821b81019084831b015b80821015614f91578382558383830155600282019150614f76565b505050505b5060008181526020812083915b85811015614fcb57614fb58383614e89565b6060929092019160029190910190600101614fa3565b505050505050565b6000808335601e19843603018112614fea57600080fd5b8301803591506001600160401b0382111561500457600080fd5b602001915036819003821315614e4d57600080fd5b600181811c9082168061502d57607f821691505b6020821081141561456257634e487b7160e01b600052602260045260246000fd5b601f8211156114a857600081815260208120601f850160051c810160208610156150755750805b601f850160051c820191505b81811015614fcb57828155600101615081565b6001600160401b038311156150ab576150ab6147ba565b6150bf836150b98354615019565b8361504e565b6000601f8411600181146150f357600085156150db5750838201355b600019600387901b1c1916600186901b1783556129b9565b600083815260209020601f19861690835b828110156151245786850135825560209485019460019092019101615104565b50868210156151415760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b80151581146117ea57600080fd5b600081356106c881615153565b813561517981614df0565b81546001600160801b0319166001600160801b0382161782555060208201356151a181614df0565b81546001600160801b0316608082901b6001600160801b03191617825550604082013560018201556060820135601e198336030181126151e057600080fd5b820180356001600160401b038111156151f857600080fd5b60208201915060608102360382131561521057600080fd5b61521e818360028601614f0b565b505061522d6080830183614fd3565b61523b818360038601615094565b50506117d261524c60a08401615161565b6004830160ff1981541660ff8315151681178255505050565b600060001982141561527957615279614e54565b5060010190565b60006020828403121561529257600080fd5b5051919050565b6000608082840312156152ab57600080fd5b604051608081018181106001600160401b03821117156152cd576152cd6147ba565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b634e487b7160e01b600052601260045260246000fd5b600082615323576153236152fe565b500490565b805161533381614df0565b919050565b60006020828403121561534a57600080fd5b8151613c8981614df0565b60008282101561536757615367614e54565b500390565b60208082526014908201527310dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604082015260600190565b6020808252601a908201527f50726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526022908201527f43616e7420627920636f6e74726163747320776974686f757420746f6b656e73604082015261125960f21b606082015260800190565b6080815260006154876080830187614a78565b63ffffffff959095166020830152506001600160a01b03929092166040830152606090910152919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b602080825260149082015273416464726573732063616e74206265207a65726f60601b604082015260600190565b63ffffffff811681146117ea57600080fd5b813561554b8161552e565b63ffffffff8116905081548163ffffffff198216178355602084013561557081614df0565b73ffffffffffffffffffffffffffffffff0000000060209190911b166001600160a01b0319821683178117845560408501356155ab81615153565b6001600160a81b0319929092169092179190911790151560a01b60ff60a01b1617905550565b805160ff8116811461533357600080fd5b80516153338161466e565b80516153338161552e565b805161533381615153565b600082601f83011261561457600080fd5b81516001600160401b0381111561562d5761562d6147ba565b615640601f8201601f19166020016147f9565b81815284602083860101111561565557600080fd5b61425e8260208301602087016145d0565b6000602080838503121561567957600080fd5b82516001600160401b038082111561569057600080fd5b818501915085601f8301126156a457600080fd5b81516156b261489682614829565b81815260059190911b830184019084810190888311156156d157600080fd5b8585015b838110156157f6578051858111156156ec57600080fd5b8601610180818c03601f1901121561570357600080fd5b61570b6147d0565b88820151815261571d604083016155d1565b8982015261572d606083016155e2565b604082015261573e60808301615328565b606082015261574f60a08301615328565b608082015261576060c083016155ed565b60a082015261577160e083016155ed565b60c08201526101006157848184016155ed565b60e08301526101206157978185016155ed565b8284015261014091506157ab8285016155f8565b9083015261016083810151898111156157c357600080fd5b6157d18f8d83880101615603565b83850152506157e361018085016155f8565b90830152508452509186019186016156d5565b5098975050505050505050565b60008161581257615812614e54565b506000190190565b602081526000613c896020830184614a78565b6000806040838503121561584057600080fd5b825191506020808401516001600160401b0381111561585e57600080fd5b8401601f8101861361586f57600080fd5b805161587d61489682614829565b81815260059190911b8201830190838101908883111561589c57600080fd5b928401925b828410156158ba578351825292840192908401906158a1565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015615906576158f88385516146a0565b9385019392506001016158e5565b50909695505050505050565b6000821982111561592557615925614e54565b500190565b60a0808252810186905260006001600160fb1b0387111561594a57600080fd5b8660051b808960c0850137600090830160c00190815263ffffffff9690961660208301525092151560408401526001600160a01b0391909116606083015260809091015292915050565b83151581526060602082015260006159af6060830185614b1a565b82810360408401526159c18185614b53565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615a038160178501602088016145d0565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615a348160288401602088016145d0565b01602801949350505050565b602081526000613c8960208301846145fc565b600082615a6257615a626152fe565b500690565b60006001600160801b03808316818516808303821115615a8957615a89614e54565b01949350505050565b600060208284031215615aa457600080fd5b8151613c8981615153565b60008251615ac18184602087016145d0565b919091019291505056fea26469706673582212203ab741bab2935fa9723796e34cbe24d2a5f67aa9696b5681389a501a4736dfc864736f6c63430008090033