244 txs
290 calls
constructor
constructor((address blaze, address weth, address titanX, address inferno) _tokens, address _blazeStaking, address _bnb, uint32 _startTimestamp, address _titanXStakingManager, (address v3Router, address v3Factory, address positionManager, address owner) _state, uint24 _stakingCooldown, uint80 _firstStakeMin)
functions
blaze
viewfunction blaze() view returns (address)
blazeStaking
viewfunction blazeStaking() view returns (address)
buyActionStates
viewfunction buyActionStates(address inputToken) view returns (uint32 lastCallTs, uint32 intervalBetween, uint128 swapCap, uint64 incentive)
diamondHands
viewfunction diamondHands() view returns (address)
getTwapAmountV3
viewfunction getTwapAmountV3(address tokenIn, address tokenOut, uint256 amount) view returns (uint256 twapAmount, uint224 slippage)
owner
viewfunction owner() view returns (address)
positionManager
viewfunction positionManager() view returns (address)
slippageAdmin
viewfunction slippageAdmin() view returns (address)
slippageConfigs
viewfunction slippageConfigs(address pool) view returns (uint224 slippage, uint32 twapLookback)
startTimestamp
viewfunction startTimestamp() view returns (uint32)
state
viewfunction state() view returns (uint24 stakingCooldown, uint32 lastStakeTs, uint16 lastStakingPosition, uint256 minStakeAmount, uint256 maxStakeAmount, bool privateMode, uint256 incentive)
v3Factory
viewfunction v3Factory() view returns (address)
v3Router
viewfunction v3Router() view returns (address)
weth
viewfunction weth() view returns (address)
buyBlaze
nonpayablefunction buyBlaze(uint32 _deadline)
buyinferno
nonpayablefunction buyinferno(uint32 _deadline)
buyTitanX
nonpayablefunction buyTitanX(uint32 _deadline)
changeBuyActionState
nonpayablefunction changeBuyActionState(address _inputToken, tuple _s)
changeIncentive
nonpayablefunction changeIncentive(uint64 _incentive)
changeMaxStakeAmount
nonpayablefunction changeMaxStakeAmount(uint256 _newMaxStakeAmount)
changeMinStakeAmount
nonpayablefunction changeMinStakeAmount(uint256 _minStakeAmount)
changeSlippageAdmin
nonpayablefunction changeSlippageAdmin(address _new)
changeSlippageConfig
nonpayablefunction changeSlippageConfig(address pool, uint224 _newSlippage, uint32 _newLookBack)
changeStakingCooldown
nonpayablefunction changeStakingCooldown(uint24 _newCooldown)
claimRewards
nonpayablefunction claimRewards()
renounceOwnership
nonpayablefunction renounceOwnership()
stakeBlaze
nonpayablefunction stakeBlaze()
togglePrivateMode
nonpayablefunction togglePrivateMode(bool _state)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BuyAction
event BuyAction(address indexed inputToken, address indexed outputToken, uint256 indexed outputAmount)
Distribution
event Distribution(uint256 indexed ethAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Staked
event Staked(uint96 indexed _id, uint256 indexed _amount)
errors
Address0
error Address0()
Amount0
error Amount0()
CooldownNotPassed
error CooldownNotPassed()
Expired
error Expired()
GreaterThan
error GreaterThan(uint256 a, uint256 b)
IntervalWait
error IntervalWait()
InvalidPositionId
error InvalidPositionId()
NothingToClaim
error NothingToClaim()
OnlyEOA
error OnlyEOA()
OnlyPermissionedInPrivateMode
error OnlyPermissionedInPrivateMode()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SwapAction__OnlySlippageAdmin
error SwapAction__OnlySlippageAdmin()
SwapActions__InvalidSlippage
error SwapActions__InvalidSlippage()
SwapActions__Observations
error SwapActions__Observations()
T
error T()
creation bytecode
0x610200604052348015610010575f5ffd5b50604051613a11380380613a1183398101604081905261002f916107f7565b8282826001600160501b03168280606001515f6001600160a01b0316816001600160a01b03160361007957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610082816106cd565b50805161008e8161071c565b602082015161009c8161071c565b505060408101516001600160a01b0390811660a052815181166080526020820151811660c052606090910151600180546001600160a01b031916919092161790556003805462ffffff191662ffffff9390931692909217909155600455505f19600555662386f26fc1000060075587516101158161071c565b60208901516101238161071c565b8561012d8161071c565b60408b015161013b8161071c565b60608c01516101498161071c565b8a6101538161071c565b8c61015d8161071c565b8e606001516001600160a01b0316610120816001600160a01b0316815250508e602001516001600160a01b0316610160816001600160a01b0316815250508b63ffffffff166101808163ffffffff16815250508e5f01516001600160a01b031660e0816001600160a01b0316815250508a6001600160a01b03166101c0816001600160a01b0316815250508e604001516001600160a01b0316610100816001600160a01b0316815250508d6001600160a01b03166101a0816001600160a01b0316815250508c6001600160a01b03166101e0816001600160a01b0316815250506101a0516001600160a01b031663134802226040518163ffffffff1660e01b81526004016020604051808303815f875af115801561027d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a191906108ba565b6001600160a01b03166101405260408051608081019091525f90806102c98f62014f286108dc565b63ffffffff16815260200161025863ffffffff1681526020016001600160801b0380168152602001662386f26fc100006001600160401b031681525090506703782dace9d9000081604001906001600160801b031690816001600160801b0316815250508060085f610160516001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816001600160801b0302191690836001600160801b031602179055506060820151815f0160186101000a8154816001600160401b0302191690836001600160401b031602179055509050506b045f819903189913c300000081604001906001600160801b031690816001600160801b03168152505066354a6ba7a1800081606001906001600160401b031690816001600160401b0316815250508060085f610100516001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816001600160801b0302191690836001600160801b031602179055506060820151815f0160186101000a8154816001600160401b0302191690836001600160401b031602179055509050506b016c010f23fae029adc0000081604001906001600160801b031690816001600160801b031681525050666a94d74f43000081606001906001600160401b031690816001600160401b0316815250508060085f610120516001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816001600160801b0302191690836001600160801b031602179055506060820151815f0160186101000a8154816001600160401b0302191690836001600160401b0316021790555090505060e0516001600160a01b031663095ea7b36101a0515f196040518363ffffffff1660e01b81526004016106779291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015610693573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b7919061090a565b5050505050505050505050505050505050610929565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610743576040516359c662df60e11b815260040160405180910390fd5b50565b6001600160a01b0381168114610743575f5ffd5b805161076581610746565b919050565b5f6080828403121561077a575f5ffd5b604051608081016001600160401b03811182821017156107a857634e487b7160e01b5f52604160045260245ffd5b604052825190915081906107bb81610746565b81526107c96020840161075a565b60208201526107da6040840161075a565b60408201526107eb6060840161075a565b60608201525092915050565b5f5f5f5f5f5f5f5f6101c0898b03121561080f575f5ffd5b6108198a8a61076a565b9750608089015161082981610746565b60a08a015190975061083a81610746565b60c08a015190965063ffffffff81168114610853575f5ffd5b60e08a015190955061086481610746565b93506108748a6101008b0161076a565b925061018089015162ffffff8116811461088c575f5ffd5b6101a08a01519092506001600160501b03811681146108a9575f5ffd5b809150509295985092959890939650565b5f602082840312156108ca575f5ffd5b81516108d581610746565b9392505050565b63ffffffff818116838216019081111561090457634e487b7160e01b5f52601160045260245ffd5b92915050565b5f6020828403121561091a575f5ffd5b815180151581146108d5575f5ffd5b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051612fb6610a5b5f395f610d3701525f610c6901525f81816103c80152818161095601528181610eb801528181611064015261199a01525f81816107180152610c0d01525f81816101c40152818161033801528181610b8401528181610bb701526110d201525f81816103fb015281816109c701528181610f7c0152610ff501525f8181611264015281816115bf01526115f101525f8181610bd801528181610c4201528181610d0801528181610dd701528181611211015261124301525f818161079e015281816107e501528181610a50015261161201525f8181610475015261144401525f61044201525f818161024401528181612416015261253b0152612fb65ff3fe6080604052600436106101bd575f3560e01c8063791b98bc116100f2578063c19d93fb11610092578063e6fd48bc11610062578063e6fd48bc14610707578063f2bf27b31461074f578063f2fde38b1461076e578063f57d74d81461078d575f5ffd5b8063c19d93fb1461054c578063c86a41f7146105e1578063dd924acd14610681578063e121ce41146106a0575f5ffd5b806395f78392116100cd57806395f78392146104b35780639f47f048146104d2578063be6c1614146104f1578063beb1e79d14610510575f5ffd5b8063791b98bc146104315780637c887c59146104645780638da5cb5b14610497575f5ffd5b80633fc8cef31161015d57806346e7f3301161013857806346e7f330146103985780635b2ef37e146103b75780636925fd1f146103ea578063715018a61461041d575f5ffd5b80633fc8cef314610327578063453e944f1461035a578063457c7afa14610379575f5ffd5b80632c192066116101985780632c192066146102b657806330c93cef146102d5578063372500ab146102f45780633a237aa014610308575f5ffd5b80630dc91306146102335780631910ba51146102835780632b71d2dd146102a2575f5ffd5b3661022f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004015f604051808303818588803b15801561021b575f5ffd5b505af115801561022d573d5f5f3e3d5ffd5b005b5f5ffd5b34801561023e575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561028e575f5ffd5b5061022d61029d366004612683565b6107c0565b3480156102ad575f5ffd5b5061022d6107d8565b3480156102c1575f5ffd5b5061022d6102d03660046126b5565b610b42565b3480156102e0575f5ffd5b5061022d6102ef3660046126df565b610b77565b3480156102ff575f5ffd5b5061022d610e9d565b348015610313575f5ffd5b50600154610266906001600160a01b031681565b348015610332575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b348015610365575f5ffd5b5061022d610374366004612707565b61117f565b348015610384575f5ffd5b5061022d610393366004612736565b61119a565b3480156103a3575f5ffd5b5061022d6103b2366004612751565b6111cf565b3480156103c2575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f5575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b348015610428575f5ffd5b5061022d6111f1565b34801561043c575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b34801561046f575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b3480156104a2575f5ffd5b505f546001600160a01b0316610266565b3480156104be575f5ffd5b5061022d6104cd3660046126df565b611204565b3480156104dd575f5ffd5b5061022d6104ec366004612773565b611289565b3480156104fc575f5ffd5b5061022d61050b366004612832565b611326565b34801561051b575f5ffd5b5061052f61052a3660046128c8565b61143c565b604080519283526001600160e01b0390911660208301520161027a565b348015610557575f5ffd5b506003546004546005546006546007546105989462ffffff8116946301000000820463ffffffff1694600160381b90920461ffff1693909260ff9091169087565b6040805162ffffff909816885263ffffffff909616602088015261ffff909416948601949094526060850191909152608084015290151560a083015260c082015260e00161027a565b3480156105ec575f5ffd5b506106426105fb366004612736565b60086020525f908152604090205463ffffffff80821691640100000000810490911690600160401b81046001600160801b031690600160c01b90046001600160401b031684565b6040805163ffffffff95861681529490931660208501526001600160801b03909116918301919091526001600160401b0316606082015260800161027a565b34801561068c575f5ffd5b5061022d61069b366004612683565b61159a565b3480156106ab575f5ffd5b506106e36106ba366004612736565b60026020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff90911660208301520161027a565b348015610712575f5ffd5b5061073a7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161027a565b34801561075a575f5ffd5b5061022d6107693660046126df565b6115b2565b348015610779575f5ffd5b5061022d610788366004612736565b611637565b348015610798575f5ffd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b6107c8611679565b806107d2816116a5565b50600555565b6107e06116c5565b60035f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610855573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190612906565b9050816002015481111561088e575060028101545b5f61089e82600360040154611711565b90506108aa8183612931565b83549092506301000000900463ffffffff161515806108cd575082600101548210155b6108ea57604051632792526560e21b815260040160405180910390fd5b825462ffffff81169061090a906301000000900463ffffffff1642612931565b10158061091b575082600101548210155b61093857604051632792526560e21b815260040160405180910390fd5b6040516304010c0360e01b815260048101839052610b4860248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906304010c03906044015f604051808303815f87803b15801561099f575f5ffd5b505af11580156109b1573d5f5f3e3d5ffd5b5050505068d8d726b7177a8000008210610a34577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d11711a26040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610a1d575f5ffd5b505af1158015610a2f573d5f5f3e3d5ffd5b505050505b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610a9e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac29190612944565b50825482908490600790610ae090600160381b900461ffff1661295f565b825461ffff9182166101009390930a83810292021916179091556040517feafbca5d1297b7d933756ac62fa891874ff03e66cc07967b3740b3ebe2ac3382905f90a35050805466ffffffff000000191663010000004263ffffffff1602179055565b610b4a611679565b6001600160401b038116670de0b6b3a7640000610b67828261173c565b50506001600160401b0316600755565b610b7f611768565b610ba87f0000000000000000000000000000000000000000000000000000000000000000611793565b610bb1816116a5565b5f610bfd7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085611801565b905062910500610c3363ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642612931565b10610e98576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000610c998466b1a2bc2ec50000611711565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610ce1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d059190612944565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000610d688467063eb89da4ed0000611711565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610db0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd49190612944565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7324bf5ce05f732381cbcb79966607977fc21b4a18610e2a8466b1a2bc2ec50000611711565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610e72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e969190612944565b505b505050565b610ea56116c5565b610ead611998565b5f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663cf9a3361306040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303815f875af1158015610f21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f459190612906565b9050805f03610f67576040516312d37ee560e31b815260040160405180910390fd5b604051631847200f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063308e401e906024016020604051808303815f875af1158015610fca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fee9190612906565b15611062577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663372500ab6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561104b575f5ffd5b505af115801561105d573d5f5f3e3d5ffd5b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166360484f1b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156110ba575f5ffd5b505af11580156110cc573d5f5f3e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb3361110f84600360040154611711565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015611157573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117b9190612944565b5050565b611187611679565b6006805460ff1916911515919091179055565b806111a481611a02565b6111ac611679565b50600180546001600160a01b0319166001600160a01b0392909216919091179055565b6111d7611679565b6003805462ffffff191662ffffff92909216919091179055565b6111f9611679565b6112025f611a29565b565b61120c611768565b6112357f0000000000000000000000000000000000000000000000000000000000000000611793565b61123e816116a5565b610e987f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084611801565b8063ffffffff16611299816116a5565b6112a1611a78565b670de0b6b3a76400006001600160e01b03841611156112d3576040516338fd8f3960e21b815260040160405180910390fd5b506040805180820182526001600160e01b03938416815263ffffffff92831660208083019182526001600160a01b039096165f90815260029096529190942093519051909116600160e01b029116179055565b60608101516001600160401b0316670de0b6b3a7640000611347828261173c565b826020015163ffffffff1661135b816116a5565b83604001516001600160801b0316611372816116a5565b61137a611679565b6001600160a01b0386165f90815260086020526040902054855163ffffffff9081169116146113a7575f5ffd5b5050506001600160a01b039092165f908152600860209081526040918290208351815492850151938501516060909501516001600160401b03908116600160c01b026001600160c01b036001600160801b03909716600160401b029690961663ffffffff9586166401000000000267ffffffffffffffff19909516959092169490941792909217929092161791909117905550565b5f5f5f6114757f00000000000000000000000000000000000000000000000000000000000000006114708888612710611ab7565b611b2d565b6001600160a01b0381165f908152600260209081526040918290208251808401909352546001600160e01b0381168352600160e01b900463ffffffff16908201819052919250901580156114d1575080516001600160e01b0316155b156115135760405180604001604052806702c68af0bb140000670de0b6b3a76400006114fd919061297f565b6001600160401b03168152600f60209091015290505b5f8160200151603c611525919061299e565b90505f61153184611c13565b90508163ffffffff168163ffffffff1610156115605760405163c15607ef60e01b815260040160405180910390fd5b5f61156b8584611dcb565b5090505f61157882612000565b85519750905061158a818a8d8d61231b565b9750505050505050935093915050565b6115a2611679565b806115ac816116a5565b50600455565b6115ba611768565b6115e37f0000000000000000000000000000000000000000000000000000000000000000611793565b6115ec816116a5565b610e987f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084611801565b61163f611679565b6001600160a01b03811661166d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61167681611a29565b50565b5f546001600160a01b031633146112025760405163118cdaa760e01b8152336004820152602401611664565b805f0361167657604051635a53a6e960e01b815260040160405180910390fd5b60065460ff1615806116f457505f546001600160a01b03163314806116f457506001546001600160a01b031633145b61120257604051634b9cde0d60e11b815260040160405180910390fd5b5f815f1904831182021561172c5763c4c5d7f55f526004601cfd5b50670de0b6b3a764000091020490565b818181811015610e965760405163f5c38b6160e01b815260048101929092526024820152604401611664565b333b15801561177657503233145b61120257604051639f8129d160e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156117d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117fb9190612906565b92915050565b6001600160a01b0383165f908152600860205260408120805463ffffffff80821691611837916401000000009091041642612931565b101561185657604051637b22948960e01b815260040160405180910390fd5b5f61186086611793565b8254909150600160401b90046001600160801b031681111561189057508054600160401b90046001600160801b03165b81545f906118af908390600160c01b90046001600160401b0316611711565b90506118bb8183612931565b91506118c9878784886123f1565b60405163a9059cbb60e01b8152336004820152602481018390529094506001600160a01b0388169063a9059cbb906044016020604051808303815f875af1158015611916573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193a9190612944565b5083866001600160a01b0316886001600160a01b03167f089c02e97a69a4f00ded600e029a273a5729f89d2373fee461bd4c6021d96fb060405160405180910390a45050805463ffffffff19164263ffffffff161790559392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c36e60a96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156119f0575f5ffd5b505af1158015610e96573d5f5f3e3d5ffd5b6001600160a01b038116611676576040516359c662df60e11b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001546001600160a01b0316331480611a9a57505f546001600160a01b031633145b611202576040516322a6b32160e21b815260040160405180910390fd5b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611af1579192915b6040518060600160405280856001600160a01b03168152602001846001600160a01b031681526020018362ffffff1681525090505b9392505050565b5f81602001516001600160a01b0316825f01516001600160a01b031610611b52575f5ffd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b5f5f5f836001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015611c52573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c7691906129d5565b5050509350935050505f8161ffff1611611cb75760405162461bcd60e51b81526020600482015260026024820152614e4960f01b6044820152606401611664565b5f806001600160a01b03861663252c09d784611cd4876001612a6d565b611cde9190612a9b565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401608060405180830381865afa158015611d1b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3f9190612acf565b93505050915080611db75760405163252c09d760e01b81525f60048201526001600160a01b0387169063252c09d790602401608060405180830381865afa158015611d8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db09190612acf565b5091935050505b611dc18242612b27565b9695505050505050565b5f5f8263ffffffff165f03611e075760405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606401611664565b6040805160028082526060820183525f9260208301908036833701905050905083815f81518110611e3a57611e3a612b43565b602002602001019063ffffffff16908163ffffffff16815250505f81600181518110611e6857611e68612b43565b602002602001019063ffffffff16908163ffffffff16815250505f5f866001600160a01b031663883bdbfd846040518263ffffffff1660e01b8152600401611eb09190612b57565b5f60405180830381865afa158015611eca573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ef19190810190612c34565b915091505f825f81518110611f0857611f08612b43565b602002602001015183600181518110611f2357611f23612b43565b6020026020010151611f359190612cf7565b90505f825f81518110611f4a57611f4a612b43565b602002602001015183600181518110611f6557611f65612b43565b6020026020010151611f779190612d24565b905063ffffffff8816611f8a8184612d43565b97505f8360060b128015611fa95750611fa38184612d7f565b60060b15155b15611fbc5787611fb881612da0565b9850505b63ffffffff8916640100000000600160c01b03602084901b16611fe66001600160a01b0383612dc1565b611ff09190612df2565b9750505050505050509250929050565b5f5f5f8360020b12612015578260020b61201c565b8260020b5f035b9050620d89e8811115612042576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361205757600160801b612069565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561209d576ffff97272373d413259a46990580e213a0260801c5b60048216156120bc576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156120db576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156120fa576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612119576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612138576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612157576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612177576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612197576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156121b7576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156121d7576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156121f7576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612217576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612237576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612257576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612278576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612298576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156122b7576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156122d4576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156122f357805f19816122ef576122ef612a87565b0490505b640100000000810615612307576001612309565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b0386161161238e575f61234860026001600160a01b038816612f03565b9050826001600160a01b0316846001600160a01b03161061237757612372600160c01b86836125bc565b612386565b6123868186600160c01b6125bc565b9150506123e9565b5f6123a76001600160a01b03871680600160401b6125bc565b9050826001600160a01b0316846001600160a01b0316106123d6576123d1600160801b86836125bc565b6123e5565b6123e58186600160801b6125bc565b9150505b949350505050565b5f5f5f6123ff87878761143c565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018990529294509092509088169063095ea7b3906044016020604051808303815f875af1158015612472573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124969190612944565b506040805160a081019091526bffffffffffffffffffffffff19606089811b821660c084015261027160ec1b60d484015288901b1660d78201525f908060eb81016040516020818303038152906040528152602001306001600160a01b031681526020018663ffffffff16815260200187815260200161251f85856001600160e01b0316611711565b905260405163c04b8d5960e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c04b8d5990612570908490600401612f11565b6020604051808303815f875af115801561258c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b09190612906565b98975050505050505050565b5f838302815f1985870982811083820303915050805f036125f0578382816125e6576125e6612a87565b0492505050611b26565b808411612607576126076003851502601118612672565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b634e487b715f52806020526024601cfd5b5f60208284031215612693575f5ffd5b5035919050565b80356001600160401b03811681146126b0575f5ffd5b919050565b5f602082840312156126c5575f5ffd5b611b268261269a565b63ffffffff81168114611676575f5ffd5b5f602082840312156126ef575f5ffd5b8135611b26816126ce565b8015158114611676575f5ffd5b5f60208284031215612717575f5ffd5b8135611b26816126fa565b6001600160a01b0381168114611676575f5ffd5b5f60208284031215612746575f5ffd5b8135611b2681612722565b5f60208284031215612761575f5ffd5b813562ffffff81168114611b26575f5ffd5b5f5f5f60608486031215612785575f5ffd5b833561279081612722565b925060208401356001600160e01b03811681146127ab575f5ffd5b915060408401356127bb816126ce565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156127fc576127fc6127c6565b60405290565b604051601f8201601f191681016001600160401b038111828210171561282a5761282a6127c6565b604052919050565b5f5f82840360a0811215612844575f5ffd5b833561284f81612722565b92506080601f1982011215612862575f5ffd5b5061286b6127da565b6020840135612879816126ce565b81526040840135612889816126ce565b602082015260608401356001600160801b03811681146128a7575f5ffd5b60408201526128b86080850161269a565b6060820152809150509250929050565b5f5f5f606084860312156128da575f5ffd5b83356128e581612722565b925060208401356128f581612722565b929592945050506040919091013590565b5f60208284031215612916575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156117fb576117fb61291d565b5f60208284031215612954575f5ffd5b8151611b26816126fa565b5f61ffff821661ffff81036129765761297661291d565b60010192915050565b6001600160401b0382811682821603908111156117fb576117fb61291d565b63ffffffff81811683821602908116908181146129bd576129bd61291d565b5092915050565b805161ffff811681146126b0575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156129eb575f5ffd5b87516129f681612722565b8097505060208801518060020b8114612a0d575f5ffd5b9550612a1b604089016129c4565b9450612a29606089016129c4565b9350612a37608089016129c4565b925060a088015160ff81168114612a4c575f5ffd5b60c0890151909250612a5d816126fa565b8091505092959891949750929550565b61ffff81811683821601908111156117fb576117fb61291d565b634e487b7160e01b5f52601260045260245ffd5b5f61ffff831680612aae57612aae612a87565b8061ffff84160691505092915050565b8051600681900b81146126b0575f5ffd5b5f5f5f5f60808587031215612ae2575f5ffd5b8451612aed816126ce565b9350612afb60208601612abe565b92506040850151612b0b81612722565b6060860151909250612b1c816126fa565b939692955090935050565b63ffffffff82811682821603908111156117fb576117fb61291d565b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f918401906040840190835b81811015612b9457835163ffffffff16835260209384019390920191600101612b70565b509095945050505050565b5f6001600160401b03821115612bb757612bb76127c6565b5060051b60200190565b5f82601f830112612bd0575f5ffd5b8151612be3612bde82612b9f565b612802565b8082825260208201915060208360051b860101925085831115612c04575f5ffd5b602085015b83811015612c2a578051612c1c81612722565b835260209283019201612c09565b5095945050505050565b5f5f60408385031215612c45575f5ffd5b82516001600160401b03811115612c5a575f5ffd5b8301601f81018513612c6a575f5ffd5b8051612c78612bde82612b9f565b8082825260208201915060208360051b850101925087831115612c99575f5ffd5b6020840193505b82841015612cc257612cb184612abe565b825260209384019390910190612ca0565b8095505050505060208301516001600160401b03811115612ce1575f5ffd5b612ced85828601612bc1565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff821317156117fb576117fb61291d565b6001600160a01b0382811682821603908111156117fb576117fb61291d565b5f8160060b8360060b80612d5957612d59612a87565b667fffffffffffff1982145f1982141615612d7657612d7661291d565b90059392505050565b5f8260060b80612d9157612d91612a87565b808360060b0791505092915050565b5f8160020b627fffff198103612db857612db861291d565b5f190192915050565b6001600160c01b03818116838216818102909216918183048114821517612dea57612dea61291d565b505092915050565b5f6001600160c01b03831680612e0a57612e0a612a87565b6001600160c01b03929092169190910492915050565b6001815b6001841115612e5b57808504811115612e3f57612e3f61291d565b6001841615612e4d57908102905b60019390931c928002612e24565b935093915050565b5f82612e71575060016117fb565b81612e7d57505f6117fb565b8160018114612e935760028114612e9d57612eb9565b60019150506117fb565b60ff841115612eae57612eae61291d565b50506001821b6117fb565b5060208310610133831016604e8410600b8410161715612edc575081810a6117fb565b612ee85f198484612e20565b805f1904821115612efb57612efb61291d565b029392505050565b5f611b2660ff841683612e63565b602081525f825160a0602084015280518060c0850152806020830160e086015e5f60e0828601015260018060a01b0360208601511660408501526040850151606085015260608501516080850152608085015160a085015260e0601f19601f830116850101925050509291505056fea26469706673582212209fbc08e7bb8244badf76a1e409858d17cf41a5c2179afb39a016ddaf378e8ab964736f6c634300081b0033000000000000000000000000fcd7ccee4071aa4ecfac1683b7cc0afecaf42a36000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b100000000000000000000000000f116ac0c304c570daaa68fa6c30a86a04b5c5f000000000000000000000000bc0043bc5b0c394d9d05d49768f9548f8cf9587b00000000000000000000000097ebd4f9ffcfe0cbc8f63a4e0b296fbb54f0a18500000000000000000000000000000000000000000000000000000000675db9900000000000000000000000006b59b8e9635909b7f0ff2c577bb15c936f32619a000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000008d40e3bb356a02a3a4dd6dba6cc890fd89675bda0000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000010f0cf064dd59200000