0 txs
0 calls
constructor
No constructor.
functions
access
viewfunction access() view returns (address)
affiliate
viewfunction affiliate() view returns (address)
checkCore
viewfunction checkCore(address core) view
checkOwner
viewfunction checkOwner(address owner_) view
claimTimeout
viewfunction claimTimeout() view returns (uint64)
cores
viewfunction cores(address) view returns (uint8 state, uint64 reinforcementAbility, uint64 reinforcementAbilityCombo, uint128 minBet, uint128 lockedLiquidity, uint128 lockedLiquidityCombo)
dataProvider
viewfunction dataProvider() view returns (address)
factory
viewfunction factory() view returns (address)
fees
viewfunction fees(uint256) view returns (uint64)
getLastDepositId
viewfunction getLastDepositId() view returns (uint48 depositId)
getLockedLiquidityLimit
viewfunction getLockedLiquidityLimit(address core) view returns (uint128 maxLiquidity, uint128 maxLiquidityCombo)
isDepositExists
viewfunction isDepositExists(uint256 depositId) view returns (bool)
legacyLP
viewfunction legacyLP() view returns (address)
minDepo
viewfunction minDepo() view returns (uint128)
owner
viewfunction owner() view returns (address)
relayer
viewfunction relayer() view returns (address)
rewards
viewfunction rewards(address) view returns (int128 amount, uint64 claimedAt)
token
viewfunction token() view returns (address)
vault
viewfunction vault() view returns (address)
viewPayout
viewfunction viewPayout(address core, uint256 tokenId) view returns (uint128)
withdrawAfter
viewfunction withdrawAfter(uint48) view returns (uint64)
withdrawTimeout
viewfunction withdrawTimeout() view returns (uint64)
addCore
nonpayablefunction addCore(address core)
addDeposit
nonpayablefunction addDeposit(uint128 amount) returns (uint48 depositId)
addDepositFor
nonpayablefunction addDepositFor(address account, uint128 amount) returns (uint48 depositId)
addReserve
nonpayablefunction addReserve(uint128 lockedReserve, uint128 finalReserve, uint48 depositId)
betOrder
nonpayablefunction betOrder(address core, tuple order, address betOwner, bytes data) returns (uint256[])
changeAffiliate
nonpayablefunction changeAffiliate(address newAffiliate)
changeClaimTimeout
nonpayablefunction changeClaimTimeout(uint64 newClaimTimeout)
changeDataProvider
nonpayablefunction changeDataProvider(address newDataProvider)
changeFee
nonpayablefunction changeFee(uint8 feeType, uint64 newFee)
changeLockedLiquidity
nonpayablefunction changeLockedLiquidity(int128 deltaReserve, bool isCombo)
changeMinDepo
nonpayablefunction changeMinDepo(uint128 newMinDepo)
changeWithdrawTimeout
nonpayablefunction changeWithdrawTimeout(uint64 newWithdrawTimeout)
checkAccess
nonpayablefunction checkAccess(address account, address target, bytes4 selector)
claimReward
nonpayablefunction claimReward() returns (uint128 claimedAmount)
initialize
nonpayablefunction initialize(address access_, address vault_, address dataProvider_, address affiliate_, uint128 minDepo_, uint64 daoFee, uint64 dataProviderFee, uint64 affiliateFee)
migrateDeposits
nonpayablefunction migrateDeposits(uint48[] oldDepositIds) returns (uint48 depositId)
renounceOwnership
nonpayablefunction renounceOwnership()
setLegacyLP
nonpayablefunction setLegacyLP(address legacyLP_)
setRelayer
nonpayablefunction setRelayer(address relayer_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateCoreSettings
nonpayablefunction updateCoreSettings(address core, uint8 state, uint64 reinforcementAbility, uint64 reinforcementAbilityCombo, uint128 minBet)
withdrawDeposit
nonpayablefunction withdrawDeposit(uint48 depositId, uint40 percent) returns (uint128 withdrawnAmount)
withdrawPayout
nonpayablefunction withdrawPayout(address core, uint256 tokenId) returns (uint128 amount)
withdrawPayouts
nonpayablefunction withdrawPayouts(address core, uint256[] tokenIds)
events
AffiliateChanged
event AffiliateChanged(address newAffilaite)
BettorWin
event BettorWin(address indexed core, address indexed bettor, uint256 tokenId, uint256 amount)
ClaimTimeoutChanged
event ClaimTimeoutChanged(uint64 newClaimTimeout)
CoreSettingsUpdated
event CoreSettingsUpdated(address indexed core, uint8 state, uint64 reinforcementAbility, uint64 reinforcementAbilityCombo, uint128 minBet)
DataProviderChanged
event DataProviderChanged(address newDataProvider)
DepositsMigrated
event DepositsMigrated(address indexed depositor, uint48 indexed depositId, uint48[] oldDepositIds)
FeeChanged
event FeeChanged(uint8 feeType, uint64 fee)
Initialized
event Initialized(uint64 version)
LegacyLPSet
event LegacyLPSet(address indexed legacyLP)
LiquidityAdded
event LiquidityAdded(address indexed account, uint48 indexed depositId, uint256 amount)
LiquidityRemoved
event LiquidityRemoved(address indexed account, uint48 indexed depositId, uint40 percent, uint256 amount)
MinDepoChanged
event MinDepoChanged(uint128 newMinDepo)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RelayerSet
event RelayerSet(address indexed relayer)
WithdrawTimeoutChanged
event WithdrawTimeoutChanged(uint64 newWithdrawTimeout)
errors
ClaimTimeout
error ClaimTimeout(uint64 waitTime)
CoreNotActive
error CoreNotActive()
IncorrectAmount
error IncorrectAmount()
IncorrectCoreState
error IncorrectCoreState()
IncorrectFee
error IncorrectFee()
IncorrectLegacyLP
error IncorrectLegacyLP()
IncorrectMinBet
error IncorrectMinBet()
IncorrectMinDepo
error IncorrectMinDepo()
IncorrectReinforcementAbility
error IncorrectReinforcementAbility()
IncorrectRelayer
error IncorrectRelayer()
InvalidInitialization
error InvalidInitialization()
LiquidityNotOwned
error LiquidityNotOwned()
LockedBetToken
error LockedBetToken(uint256 tokenId)
LockedLiquidityComboLimitReached
error LockedLiquidityComboLimitReached()
LockedLiquidityLimitReached
error LockedLiquidityLimitReached()
NotInitializing
error NotInitializing()
OnlyFactory
error OnlyFactory()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastError
error SafeCastError(uint8 to)
SmallBet
error SmallBet()
SmallDepo
error SmallDepo()
UnknownCore
error UnknownCore()
WithdrawalTimeout
error WithdrawalTimeout(uint64 waitTime)
creation bytecode
0x6080604052348015600f57600080fd5b50613d598061001f6000396000f3fe6080604052600436106102115760003560e01c80630700037d1461027757806307720b72146102e15780630e1da6c31461030e5780630f44a093146103425780631132b10214610364578063161d07701461039b578063204e4df5146103c857806323ebb4a4146103e857806325aa820b146104085780632703038d146104285780633060dbc614610448578063325ac4601461046857806337030c521461048857806345e05f43146104a85780634acc79ed146104c8578063512a7450146104e85780636396eb8d146105155780636548e9bc14610535578063710e71c014610555578063715018a61461059557806371907f17146105aa5780638164b4d6146105ca5780638406c079146105ea57806385ad32c41461060a5780638da5cb5b1461068a5780638e204f0a1461069f5780638e8dc736146106bf5780639207c4af146106df5780639aebfea7146106ff5780639c15d1a21461071f578063b334ed8614610746578063b88a802f14610766578063c26e1b441461077b578063c45a0155146107b1578063d2a382b2146107d1578063db1c8227146107f1578063dd9ea29914610811578063de7ad2d114610826578063e0e3671c14610846578063e148bff114610866578063e8e3e87b14610886578063f2fde38b146108a6578063f6ff5df3146108c6578063fbfa77cf146108f6578063fc0c546a14610916578063fdb985f11461093657600080fd5b366102725760405162461bcd60e51b815260206004820152602660248201527f5468697320636f6e747261637420646f6573206e6f7420616363657074207061604482015265796d656e747360d01b60648201526084015b60405180910390fd5b600080fd5b34801561028357600080fd5b506102ba610292366004612e18565b600860205260009081526040902054600f81900b90600160801b90046001600160401b031682565b60408051600f9390930b83526001600160401b039091166020830152015b60405180910390f35b3480156102ed57600080fd5b50600c54610301906001600160a01b031681565b6040516102d89190612e35565b34801561031a57600080fd5b5060055461033590600160801b90046001600160401b031681565b6040516102d89190612e49565b34801561034e57600080fd5b5061036261035d366004612e18565b610956565b005b34801561037057600080fd5b5061038461037f366004612ea8565b6109a8565b60405165ffffffffffff90911681526020016102d8565b3480156103a757600080fd5b506103bb6103b6366004612ee9565b610b9d565b6040516102d89190612f15565b3480156103d457600080fd5b506103bb6103e3366004612f3d565b610bbb565b3480156103f457600080fd5b50610362610403366004612fa4565b610ddb565b34801561041457600080fd5b506103bb610423366004612ee9565b610e7c565b34801561043457600080fd5b50610384610443366004612ff9565b610ef1565b34801561045457600080fd5b50610362610463366004613024565b610f03565b34801561047457600080fd5b50610362610483366004613058565b6110c2565b34801561049457600080fd5b506103626104a33660046130f9565b61143d565b3480156104b457600080fd5b50600a54610301906001600160a01b031681565b3480156104d457600080fd5b506103356104e3366004613144565b6116e4565b3480156104f457600080fd5b5061050861050336600461315d565b611717565b6040516102d89190613222565b34801561052157600080fd5b50610362610530366004613265565b611872565b34801561054157600080fd5b50610362610550366004612e18565b6118e5565b34801561056157600080fd5b50610575610570366004612e18565b611937565b604080516001600160801b039384168152929091166020830152016102d8565b3480156105a157600080fd5b50610362611a10565b3480156105b657600080fd5b50600154610301906001600160a01b031681565b3480156105d657600080fd5b506103626105e5366004612ff9565b611a24565b3480156105f657600080fd5b50600b54610301906001600160a01b031681565b34801561061657600080fd5b50610678610625366004612e18565b60066020526000908152604090208054600182015460029092015460ff8216926001600160401b036101008404811693600160481b900416916001600160801b0380831692600160801b90048116911686565b6040516102d8969594939291906132d8565b34801561069657600080fd5b50610301611aac565b3480156106ab57600080fd5b506103626106ba366004613324565b611ac7565b3480156106cb57600080fd5b506103626106da366004613391565b611c38565b3480156106eb57600080fd5b506005546103bb906001600160801b031681565b34801561070b57600080fd5b5061036261071a366004612e18565b611c90565b34801561072b57600080fd5b5060055461033590600160c01b90046001600160401b031681565b34801561075257600080fd5b50600454610301906001600160a01b031681565b34801561077257600080fd5b506103bb611d80565b34801561078757600080fd5b506103356107963660046133ac565b6009602052600090815260409020546001600160401b031681565b3480156107bd57600080fd5b50600054610301906001600160a01b031681565b3480156107dd57600080fd5b506103626107ec366004613391565b611e3a565b3480156107fd57600080fd5b5061036261080c366004612e18565b611e96565b34801561081d57600080fd5b50610384611ee9565b34801561083257600080fd5b50610362610841366004612e18565b611f5c565b34801561085257600080fd5b50610362610861366004612e18565b611f9d565b34801561087257600080fd5b506103846108813660046133c9565b611fd8565b34801561089257600080fd5b506103626108a13660046133f7565b611feb565b3480156108b257600080fd5b506103626108c1366004612e18565b612034565b3480156108d257600080fd5b506108e66108e1366004613144565b61206f565b60405190151581526020016102d8565b34801561090257600080fd5b50600254610301906001600160a01b031681565b34801561092257600080fd5b50600354610301906001600160a01b031681565b34801561094257600080fd5b50610362610951366004612e18565b6120dd565b61095e612130565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517fbb98960e7d4ab0a341381cf3730a0fed080abc80d07804165937d296ca9283e390600090a250565b600c546000906001600160a01b0316806109d557604051639ecfd25160e01b815260040160405180910390fd5b60008364e8d4a51000825b82811015610b3a57846001600160a01b03166323b872dd33308b8b86818110610a0b57610a0b61344b565b9050602002016020810190610a2091906133ac565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015265ffffffffffff166044820152606401600060405180830381600087803b158015610a7757600080fd5b505af1158015610a8b573d6000803e3d6000fd5b50505050846001600160a01b031663e7324cc2898984818110610ab057610ab061344b565b9050602002016020810190610ac591906133ac565b846040518363ffffffff1660e01b8152600401610ae3929190613461565b6020604051808303816000875af1158015610b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b269190613480565b610b3090856134b3565b93506001016109e0565b50610b453384612162565b94508465ffffffffffff16336001600160a01b03167f6ac4ca392afc4f0d60ef7136840bc628caaf165c476198682b838237e79a5c748989604051610b8b9291906134d2565b60405180910390a35050505092915050565b600082610ba981611f5c565b610bb38484612266565b949350505050565b65ffffffffffff821660009081526009602052604081205442906001600160401b03908116908216811115610c0e57610bf4828261351e565b604051633ca8f33960e11b81526004016102699190612e49565b6002546040516331a9108f60e11b815265ffffffffffff871660048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c82919061353d565b6001600160a01b0316336001600160a01b031614610cb357604051633ce20b5960e11b815260040160405180910390fd5b600554610cd090600160c01b90046001600160401b03168361355a565b65ffffffffffff86166000908152600960205260409081902080546001600160401b0319166001600160401b039390931692909217909155600254905163204e4df560e01b81526001600160a01b039091169063204e4df590610d399088908890600401613461565b6020604051808303816000875af1158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190613480565b6040805164ffffffffff871681526001600160801b038316602082015291945065ffffffffffff87169133917f92fd5808c98bd9f85340c15753ae3447d627777b36e045328b5cc389a4ffab77910160405180910390a3505092915050565b610de3612130565b806007836002811115610df857610df86132b2565b60038110610e0857610e0861344b565b600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b03160217905550610e3f6123fd565b7fe1fa3eb1a7d6742cc114a9e0bb7fea501c069f767320079521d8a45ef2b40bfb8282604051610e70929190613579565b60405180910390a15050565b600082610e8881611f5c565b604051632589867d60e01b8152600481018490526001600160a01b03851690632589867d90602401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613480565b6000610efd338361245d565b92915050565b33610f0d816124cd565b600083600f0b13156110aa57826000610f253361250b565b9050818160010160108282829054906101000a90046001600160801b0316610f4d91906134b3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508315610fbc57600281018054839190600090610f979084906001600160801b03166134b3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b600254604051632ba5f21160e11b81526001600160a01b039091169063574be42290610fec908590600401612f15565b600060405180830381600087803b15801561100657600080fd5b505af115801561101a573d6000803e3d6000fd5b5050505060008061102a33611937565b600185015491935091506001600160801b03808416600160801b90920416111561106757604051632556e04b60e21b815260040160405180910390fd5b858015611083575060028301546001600160801b038083169116115b156110a1576040516346b9cd3960e01b815260040160405180910390fd5b50505050505050565b6110bd336110b78561359e565b84612525565b505050565b60006110cc61262e565b805490915060ff600160401b82041615906001600160401b03166000811580156110f35750825b90506000826001600160401b0316600114801561110f5750303b155b90508115801561111d575080155b1561113b5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561116457845460ff60401b1916600160401b1785555b886001600160801b031660000361118e5760405163fa6bfc6d60e01b815260040160405180910390fd5b61119733612652565b336000806101000a8154816001600160a01b0302191690836001600160a01b031602179055508c600160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600260006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600460006101000a8154816001600160a01b0302191690836001600160a01b0316021790555089600a60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088600560006101000a8154816001600160801b0302191690836001600160801b031602179055508760076000600381106112955761129561344b565b600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b031602179055508660076001600381106112d9576112d961344b565b600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b0316021790555085600760026003811061131d5761131d61344b565b600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b0316021790555060008c6001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b0919061353d565b600380546001600160a01b0319166001600160a01b03831617905590506113da818e60001961265a565b6113e26123fd565b50831561142e57845460ff60401b191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061142590600190612e49565b60405180910390a15b50505050505050505050505050565b3361144781611f5c565b6000600860008060009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c3919061353d565b6001600160a01b03908116825260208083019390935260409182016000908120600454831682526008909452828120600a54909216815291909120919250906001600160801b0380881690871611156115e157600061152288886135c1565b90506115308282600261278b565b61153c8483600161278b565b6115488684600061278b565b61155291906134b3565b61155c91906134b3565b61156690826135c1565b600254604051632f2a6c7760e01b81526001600160801b038316600482015265ffffffffffff891660248201529192506001600160a01b031690632f2a6c7790604401600060405180830381600087803b1580156115c357600080fd5b505af11580156115d7573d6000803e3d6000fd5b50505050506116c9565b60006115ed87896135c1565b6001600160801b031611156116c957600061160887896135c1565b9050611616828260026127fa565b611622848360016127fa565b61162e868460006127fa565b61163891906134b3565b61164291906134b3565b61164c90826135c1565b600254604051630b25386360e21b81523060048201526001600160801b038316602482015265ffffffffffff891660448201529192506001600160a01b031690632c94e18c90606401600060405180830381600087803b1580156116af57600080fd5b505af11580156116c3573d6000803e3d6000fd5b50505050505b6001600160801b038716156110a1576110a133886000612525565b600781600381106116f457600080fd5b60049182820401919006600802915054906101000a90046001600160401b031681565b606085611723816124cd565b600b546001600160a01b0316331461174e57604051635e3ee8db60e11b815260040160405180910390fd5b60006117598861250b565b60010154604051637e610b9960e01b81526001600160801b0390911691506000906001600160a01b038a1690637e610b9990611799908b90600401613945565b600060405180830381865afa1580156117b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117de91908101906139c1565b5090506117ea81612836565b604051636cdb388f60e01b81526001600160a01b038a1690636cdb388f9061181e908b908b9087908c908c90600401613a7a565b6000604051808303816000875af115801561183d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118659190810190613aca565b9998505050505050505050565b600154604051636396eb8d60e01b81526001600160a01b03858116600483015284811660248301526001600160e01b03198416604483015290911690636396eb8d90606401600060405180830381600087803b1580156118d157600080fd5b505af11580156110a1573d6000803e3d6000fd5b6118ed612130565b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fb7041340e0c2a075059bf0488a71c767724be15dae8e737f8460007325e8d85790600090a250565b60008060006119458461250b565b90506119e0600260009054906101000a90046001600160a01b03166001600160a01b03166359bf5d396040518163ffffffff1660e01b8152600401602060405180830381865afa15801561199d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c19190613480565b825461010090046001600160401b0316906001600160801b0316612857565b8154909350611a0890600160481b90046001600160401b03166001600160801b038516612857565b915050915091565b611a18612130565b611a226000612873565b565b611a2c612130565b806001600160801b0316600003611a565760405163fa6bfc6d60e01b815260040160405180910390fd5b600580546001600160801b0319166001600160801b0383161790556040517f483032c7f41f1ba71455a09f574b92ba07ae933719975978f96f457d4c1c98d390611aa1908390612f15565b60405180910390a150565b600080611ab76128cf565b546001600160a01b031692915050565b611acf612130565b84611ad981611f5c565b816001600160801b0316600003611b035760405163cad66eef60e01b815260040160405180910390fd5b64e8d4a51000846001600160401b03161115611b325760405163c6e3629b60e01b815260040160405180910390fd5b6000856002811115611b4657611b466132b2565b03611b6457604051635b10d6dd60e01b815260040160405180910390fd5b6001600160a01b0386166000908152600660205260409020600180820180546001600160801b0319166001600160801b0386161790558154610100600160881b0319166101006001600160401b0388811691909102600160481b600160881b03191691909117600160481b91871691909102178083558791839160ff191690836002811115611bf557611bf56132b2565b0217905550866001600160a01b0316600080516020613d0483398151915287878787604051611c279493929190613b55565b60405180910390a250505050505050565b611c40612130565b600580546001600160c01b0316600160c01b6001600160401b038416021790556040517f527dd140711eb0a9177d62725055c7fe5eb62351eabf406fd3f80886ba57ea3090611aa1908390612e49565b6000546001600160a01b03163314611cbb57604051630636a15760e11b815260040160405180910390fd5b6000611cc68261250b565b600181810180546001600160801b03191690911790558054610100600160481b03191665e8d4a51000001781559050611d05600264e8d4a51000613b92565b815460016001600160401b0392909216600160481b0260ff191660ff600160481b03600160881b031990911617811782556001600160a01b03831690600080516020613d048339815191529064e8d4a51000611d62600282613b92565b6001604051611d749493929190613b55565b60405180910390a25050565b33600090815260086020526040812060055481546001600160401b03600160801b92839004811692611db492041642613bb4565b1015611dfb576005548154611de1916001600160401b03600160801b91829004811692919091041661355a565b6040516318789e3d60e21b81526004016102699190612e49565b8054600f0b6000811315611e355781546001600160c01b031916600160801b426001600160401b031602178255915081611e3533826128f3565b505090565b611e42612130565b60058054600160801b600160c01b031916600160801b6001600160401b038416021790556040517f27cd37fc700f6b98651e78d699d1bcc11b859e18a8ab4948c58dbfa51572e0c990611aa1908390612e49565b611e9e612130565b600480546001600160a01b0319166001600160a01b0383161790556040517f0a399af491b2850718a568553f7c18dbda624e511789ab3473b72a6a4d6d748b90611aa1908390612e35565b6002546040805163dd9ea29960e01b815290516000926001600160a01b03169163dd9ea2999160048083019260209291908290030181865afa158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f579190613bc7565b905090565b6000611f678261250b565b5460ff166002811115611f7c57611f7c6132b2565b03611f9a57604051632b3907cb60e21b815260040160405180910390fd5b50565b806001600160a01b0316611faf611aac565b6001600160a01b031614611f9a578060405163118cdaa760e01b81526004016102699190612e35565b6000611fe4838361245d565b9392505050565b82611ff581611f5c565b8160005b8181101561202c57612023868686848181106120175761201761344b565b90506020020135612266565b50600101611ff9565b505050505050565b61203c612130565b6001600160a01b038116612066576000604051631e4fbdf760e01b81526004016102699190612e35565b611f9a81612873565b60025460405163f6ff5df360e01b8152600481018390526000916001600160a01b03169063f6ff5df390602401602060405180830381865afa1580156120b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efd9190613be4565b6120e5612130565b600a80546001600160a01b0319166001600160a01b0383161790556040517fe19055046dfef573b2fa49ecf8a090264a874d696fa77fabec601b1c602e342a90611aa1908390612e35565b33612139611aac565b6001600160a01b031614611a22573360405163118cdaa760e01b81526004016102699190612e35565b6005546000906001600160801b039081169083161015612195576040516320d3137f60e01b815260040160405180910390fd5b6002546040516314d710db60e11b81526001600160a01b0385811660048301526001600160801b0385166024830152909116906329ae21b6906044016020604051808303816000875af11580156121f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122149190613bc7565b90508065ffffffffffff16836001600160a01b03167f04aea1979a2b879b0578efc9fb3e03cd6ae3bdc964f047e81f526ea2350967e5846040516122589190612f15565b60405180910390a392915050565b604051637e40cb6b60e11b81526004810182905260009081906001600160a01b0385169063fc8196d69060240160408051808303816000875af11580156122b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d59190613c01565b600b546040805163168cdda560e01b815290519295509293506001600160a01b03169163168cdda59160048083019260209291908290030181865afa158015612322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612346919061353d565b6001600160a01b0316816001600160a01b031614801561236b575061236b8184612917565b1561238c57604051631e02de7360e21b815260048101849052602401610269565b6001600160801b038216156123a5576123a581836128f3565b604080518481526001600160801b03841660208201526001600160a01b0380841692908716917f53df85a6d27721f38c9c99d095a4c565f68a5e74f22f17c711578461253cbef2910160405180910390a35092915050565b64e8d4a5100061240d60026129f3565b61241760016129f3565b61242160006129f3565b61242b919061355a565b612435919061355a565b6001600160401b03161115611a225760405163cd3cb2bb60e01b815260040160405180910390fd5b600061246882612836565b6124728383612162565b60055490915061249290600160c01b90046001600160401b03164261355a565b65ffffffffffff8216600090815260096020526040902080546001600160401b0319166001600160401b039290921691909117905592915050565b60016124d88261250b565b5460ff1660028111156124ed576124ed6132b2565b14611f9a57604051630324ec9560e41b815260040160405180910390fd5b6001600160a01b0316600090815260066020526040902090565b60006125308461250b565b9050828160010160108282829054906101000a90046001600160801b031661255891906135c1565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555081156125c7576002810180548491906000906125a29084906001600160801b03166135c1565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b600254604051620914fb60e71b81526001600160a01b039091169063048a7d80906125f6908690600401612f15565b600060405180830381600087803b15801561261057600080fd5b505af1158015612624573d6000803e3d6000fd5b5050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b61203c612a3f565b600080846001600160a01b031663095ea7b3858560405160240161267f929190613c30565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516126b89190613c49565b6000604051808303816000865af19150503d80600081146126f5576040519150601f19603f3d011682016040523d82523d6000602084013e6126fa565b606091505b50915091508180156127245750805115806127245750808060200190518101906127249190613be4565b6127845760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b6064820152608401610269565b5050505050565b6000806127988484612a64565b85549091506000906127ad90600f0b83612aa4565b8654909150829087906000906127c7908490600f0b613c78565b92506101000a8154816001600160801b030219169083600f0b6001600160801b0316021790555080925050509392505050565b6000806128078484612a64565b855490915060009061281c90600f0b83612ae2565b8654909150829087906000906127c7908490600f0b613ca5565b600354611f9a906001600160a01b031633306001600160801b038516612b10565b600064e8d4a510006128698385613cd2565b611fe49190613b92565b600061287d6128cf565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b600354612913906001600160a01b0316836001600160801b038416612c46565b5050565b6000806000846001600160a01b03168460405160240161293991815260200190565b60408051601f198184030181529181526020820180516001600160e01b031663f6aacfb160e01b1790525161296e9190613c49565b600060405180830381855afa9150503d80600081146129a9576040519150601f19603f3d011682016040523d82523d6000602084013e6129ae565b606091505b5091509150816129c357600092505050610efd565b60208151101580156129ea5750808060200190518101906129e49190613be4565b15156001145b95945050505050565b60006007826002811115612a0957612a096132b2565b60038110612a1957612a1961344b565b600491828204019190066008029054906101000a90046001600160401b03169050919050565b612a47612d72565b611a2257604051631afcd79f60e31b815260040160405180910390fd5b6000611fe4612a96612a91856001600160801b0316612a82866129f3565b6001600160401b031690612857565b612d8c565b6001600160801b0316612dbd565b60008083600f0b1215612adb576000612abd8385613c78565b9050600081600f0b13612ad1576000612ad3565b805b915050610efd565b5080610efd565b60008083600f0b12612b075781600f0b83600f0b13612b015782611fe4565b81611fe4565b50600092915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612b749190613c49565b6000604051808303816000865af19150503d8060008114612bb1576040519150601f19603f3d011682016040523d82523d6000602084013e612bb6565b606091505b5091509150818015612be0575080511580612be0575080806020019051810190612be09190613be4565b61202c5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b6064820152608401610269565b600080846001600160a01b031663a9059cbb8585604051602401612c6b929190613c30565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612ca49190613c49565b6000604051808303816000865af19150503d8060008114612ce1576040519150601f19603f3d011682016040523d82523d6000602084013e612ce6565b606091505b5091509150818015612d10575080511580612d10575080806020019051810190612d109190613be4565b6127845760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610269565b6000612d7c61262e565b54600160401b900460ff16919050565b60006001600160801b03821115612db9576003604051639b3137df60e01b81526004016102699190613ce9565b5090565b600060016001607f1b036001600160801b0383161115612db9576001604051639b3137df60e01b81526004016102699190613ce9565b6001600160a01b0381168114611f9a57600080fd5b8035612e1381612df3565b919050565b600060208284031215612e2a57600080fd5b8135611fe481612df3565b6001600160a01b0391909116815260200190565b6001600160401b0391909116815260200190565b60008083601f840112612e6f57600080fd5b5081356001600160401b03811115612e8657600080fd5b6020830191508360208260051b8501011115612ea157600080fd5b9250929050565b60008060208385031215612ebb57600080fd5b82356001600160401b03811115612ed157600080fd5b612edd85828601612e5d565b90969095509350505050565b60008060408385031215612efc57600080fd5b8235612f0781612df3565b946020939093013593505050565b6001600160801b0391909116815260200190565b65ffffffffffff81168114611f9a57600080fd5b60008060408385031215612f5057600080fd5b8235612f5b81612f29565b9150602083013564ffffffffff81168114612f7557600080fd5b809150509250929050565b60038110611f9a57600080fd5b80356001600160401b0381168114612e1357600080fd5b60008060408385031215612fb757600080fd5b8235612fc281612f80565b9150612fd060208401612f8d565b90509250929050565b6001600160801b0381168114611f9a57600080fd5b8035612e1381612fd9565b60006020828403121561300b57600080fd5b8135611fe481612fd9565b8015158114611f9a57600080fd5b6000806040838503121561303757600080fd5b823580600f0b811461304857600080fd5b91506020830135612f7581613016565b600080600080600080600080610100898b03121561307557600080fd5b883561308081612df3565b9750602089013561309081612df3565b965060408901356130a081612df3565b955060608901356130b081612df3565b945060808901356130c081612fd9565b93506130ce60a08a01612f8d565b92506130dc60c08a01612f8d565b91506130ea60e08a01612f8d565b90509295985092959890939650565b60008060006060848603121561310e57600080fd5b833561311981612fd9565b9250602084013561312981612fd9565b9150604084013561313981612f29565b809150509250925092565b60006020828403121561315657600080fd5b5035919050565b60008060008060006080868803121561317557600080fd5b853561318081612df3565b945060208601356001600160401b0381111561319b57600080fd5b860160e081890312156131ad57600080fd5b935060408601356131bd81612df3565b925060608601356001600160401b038111156131d857600080fd5b8601601f810188136131e957600080fd5b80356001600160401b038111156131ff57600080fd5b88602082840101111561321157600080fd5b959894975092955050506020019190565b602080825282518282018190526000918401906040840190835b8181101561325a57835183526020938401939092019160010161323c565b509095945050505050565b60008060006060848603121561327a57600080fd5b833561328581612df3565b9250602084013561329581612df3565b915060408401356001600160e01b03198116811461313957600080fd5b634e487b7160e01b600052602160045260246000fd5b60038110611f9a57611f9a6132b2565b60c081016132e5886132c8565b9681526001600160401b0395861660208201529390941660408401526001600160801b0391821660608401528116608083015290911660a09091015290565b600080600080600060a0868803121561333c57600080fd5b853561334781612df3565b9450602086013561335781612f80565b935061336560408701612f8d565b925061337360608701612f8d565b9150608086013561338381612fd9565b809150509295509295909350565b6000602082840312156133a357600080fd5b611fe482612f8d565b6000602082840312156133be57600080fd5b8135611fe481612f29565b600080604083850312156133dc57600080fd5b82356133e781612df3565b91506020830135612f7581612fd9565b60008060006040848603121561340c57600080fd5b833561341781612df3565b925060208401356001600160401b0381111561343257600080fd5b61343e86828701612e5d565b9497909650939450505050565b634e487b7160e01b600052603260045260246000fd5b65ffffffffffff92909216825264ffffffffff16602082015260400190565b60006020828403121561349257600080fd5b8151611fe481612fd9565b634e487b7160e01b600052601160045260246000fd5b6001600160801b038181168382160190811115610efd57610efd61349d565b6020808252810182905260008360408301825b858110156135145782356134f881612f29565b65ffffffffffff168252602092830192909101906001016134e5565b5095945050505050565b6001600160401b038281168282160390811115610efd57610efd61349d565b60006020828403121561354f57600080fd5b8151611fe481612df3565b6001600160401b038181168382160190811115610efd57610efd61349d565b60408101613586846132c8565b9281526001600160401b039190911660209091015290565b6000600f82900b6001607f1b81016135b8576135b861349d565b60000392915050565b6001600160801b038281168282160390811115610efd57610efd61349d565b6000808335601e198436030181126135f757600080fd5b83016020810192503590506001600160401b0381111561361657600080fd5b8060051b3603821315612ea157600080fd5b60028110611f9a57600080fd5b8035612e1381613628565b60028110611f9a57611f9a6132b2565b81835260208301925060008160005b8481101561369057813561367281612fd9565b6001600160801b03168652602095860195919091019060010161365f565b5093949350505050565b803560ff81168114612e1357600080fd5b60008383855260208501945060208460051b8201018360005b868110156137db57838303601f1901885281353687900360de190181126136ea57600080fd5b8601803584526020808201359085015260e08401604082013561370c81613628565b61371581613640565b604086015261372760608301836135e0565b60e06060880152918290529060009061010087015b8183101561376b576001600160401b0361375585612f8d565b168152602093840193600193909301920161373c565b61377860808601866135e0565b94509250878103608089015261378f818585613650565b93505050506137a060a08301612fee565b6001600160801b031660a08601526137ba60c0830161369a565b60ff1660c095909501949094525060209788019791909101906001016136c4565b50909695505050505050565b6137f081613640565b9052565b6000808335601e1984360301811261380b57600080fd5b83016020810192503590506001600160401b0381111561382a57600080fd5b803603821315612ea157600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000813561386f81612df3565b6001600160a01b0316835261388760208301836135e0565b60e0602086015261389c60e0860182846136ab565b9150506138ab60408401613635565b6138b860408601826137e7565b506138c560608401612e08565b6001600160a01b031660608501526138e060808401846137f4565b85830360808701526138f3838284613839565b9250505061390460a08401846137f4565b85830360a0870152613917838284613839565b9250505061392860c08401846137f4565b85830360c087015261393b838284613839565b9695505050505050565b602081526000611fe46020830184613862565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561399657613996613958565b604052919050565b60006001600160401b038211156139b7576139b7613958565b5060051b60200190565b600080604083850312156139d457600080fd5b82516139df81612fd9565b60208401519092506001600160401b038111156139fb57600080fd5b8301601f81018513613a0c57600080fd5b8051613a1f613a1a8261399e565b61396e565b8082825260208201915060208360051b850101925087831115613a4157600080fd5b6020840193505b82841015613a6c578351613a5b81612fd9565b825260209384019390910190613a48565b809450505050509250929050565b608081526000613a8d6080830188613862565b6001600160a01b03871660208401526001600160801b03861660408401528281036060840152613abe818587613839565b98975050505050505050565b600060208284031215613adc57600080fd5b81516001600160401b03811115613af257600080fd5b8201601f81018413613b0357600080fd5b8051613b11613a1a8261399e565b8082825260208201915060208360051b850101925086831115613b3357600080fd5b6020840193505b8284101561393b578351825260209384019390910190613b3a565b60808101613b62866132c8565b9481526001600160401b0393841660208201529190921660408201526001600160801b0390911660609091015290565b600082613baf57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610efd57610efd61349d565b600060208284031215613bd957600080fd5b8151611fe481612f29565b600060208284031215613bf657600080fd5b8151611fe481613016565b60008060408385031215613c1457600080fd5b8251613c1f81612df3565b6020840151909250612f7581612fd9565b6001600160a01b03929092168252602082015260400190565b6000825160005b81811015613c6a5760208186018101518583015201613c50565b506000920191825250919050565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715610efd57610efd61349d565b600f82810b9082900b0360016001607f1b0319811260016001607f1b0382131715610efd57610efd61349d565b8082028115828204841417610efd57610efd61349d565b6020810160048310613cfd57613cfd6132b2565b9190529056fe409d34c5c3fa91b16d292a3c8bcdc0a5f318230ff1928a71faa1b0d85034ff45a2646970667358221220339ee1fa7a8c9d1215ef9d0db92566bdd76a56d222480c8556c5600774a7ad6464736f6c634300081c0033