357 txs
378 calls
constructor
constructor(address _inferno, address _flux, address _titanX, address _bnb, address _fluxStaking, address _titanXStakingManager, (address v3Router, address v3Factory, address positionManager, address owner) _state, uint24 _stakingCooldown, uint32 _startTimestamp, uint256 _firstStakeMin)
functions
bnb
viewfunction bnb() view returns (address)
buyActionStates
viewfunction buyActionStates(address inputToken) view returns (uint32 lastCallTs, uint32 intervalBetween, uint128 swapCap, uint64 incentive)
flux
viewfunction flux() view returns (address)
fluxStaking
viewfunction fluxStaking() view returns (address)
getTwapAmountV3
viewfunction getTwapAmountV3(address tokenIn, address tokenOut, uint256 amount) view returns (uint256 twapAmount, uint224 slippage)
inferno
viewfunction inferno() view returns (address)
owner
viewfunction owner() view returns (address)
positionManager
viewfunction positionManager() view returns (address)
positions
viewfunction positions() view returns (uint256[])
slippageAdmin
viewfunction slippageAdmin() view returns (address)
slippageConfigs
viewfunction slippageConfigs(address pool) view returns (uint224 slippage, uint32 twapLookback)
state
viewfunction state() view returns (uint24 stakingCooldown, uint32 lastStakeTs, uint16 lastStakingPosition, uint256 minStakeAmount, uint256 maxStakeAmount, bool privateMode, uint256 incentive)
titanX
viewfunction titanX() view returns (address)
v3Factory
viewfunction v3Factory() view returns (address)
v3Router
viewfunction v3Router() view returns (address)
batchUnstake
nonpayablefunction batchUnstake(uint160[] _ids)
buyFlux
nonpayablefunction buyFlux(uint32 _deadline)
buyinferno
nonpayablefunction buyinferno(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(uint160[] _ids)
renounceOwnership
nonpayablefunction renounceOwnership()
stake
nonpayablefunction stake() returns (uint96 id)
togglePrivateMode
nonpayablefunction togglePrivateMode(bool _state)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BuyAction
event BuyAction(address indexed inputToken, address indexed outputToken, uint256 indexed outputAmount)
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()
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
0x6101a0604052348015610010575f5ffd5b50604051613f1b380380613f1b83398101604081905261002f916105fe565b8383828280606001515f6001600160a01b0316816001600160a01b03160361007057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61007981610545565b50805161008581610594565b602082015161009381610594565b82604001516001600160a01b031660a0816001600160a01b031681525050825f01516001600160a01b03166080816001600160a01b03168152505082602001516001600160a01b031660c0816001600160a01b031681525050826060015160015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505050508160035f015f6101000a81548162ffffff021916908362ffffff160217905550806003600101819055505f19600360020181905550662386f26fc100006001600160401b0316600360040181905550505050876001600160a01b031660e0816001600160a01b031681525050886001600160a01b0316610120816001600160a01b031681525050866001600160a01b0316610140816001600160a01b031681525050846001600160a01b0316610160816001600160a01b031681525050662386f26fc10000600360040181905550856001600160a01b0316610180816001600160a01b031681525050896001600160a01b0316610100816001600160a01b031681525050610120516001600160a01b031663095ea7b3610180515f196040518363ffffffff1660e01b81526004016102669291906001600160a01b03929092168252602082015260400190565b6020604051808303815f875af1158015610282573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a6919061072c565b505f60405180608001604052808462014f286102c29190610752565b63ffffffff16815260200161025863ffffffff1681526020016001600160801b0380168152602001662386f26fc100006001600160401b031681525090506b045f819903189913c300000081604001906001600160801b031690816001600160801b03168152505066354a6ba7a1800081606001906001600160401b031690816001600160401b0316815250508060085f60e0516001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816001600160801b0302191690836001600160801b031602179055506060820151815f0160186101000a8154816001600160401b0302191690836001600160401b031602179055509050506b016c010f23fae029adc0000081604001906001600160801b031690816001600160801b031681525050668e1bc9bf04000081606001906001600160401b031690816001600160401b0316815250508060085f610100516001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a81548163ffffffff021916908363ffffffff1602179055506020820151815f0160046101000a81548163ffffffff021916908363ffffffff1602179055506040820151815f0160086101000a8154816001600160801b0302191690836001600160801b031602179055506060820151815f0160186101000a8154816001600160401b0302191690836001600160401b031602179055509050505050505050505050505050610780565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166105bb576040516359c662df60e11b815260040160405180910390fd5b50565b80516001600160a01b03811681146105d4575f5ffd5b919050565b805162ffffff811681146105d4575f5ffd5b805163ffffffff811681146105d4575f5ffd5b5f5f5f5f5f5f5f5f5f5f8a8c036101a0811215610619575f5ffd5b6106228c6105be565b9a5061063060208d016105be565b995061063e60408d016105be565b985061064c60608d016105be565b975061065a60808d016105be565b965061066860a08d016105be565b9550608060bf198201121561067b575f5ffd5b50604051608081016001600160401b03811182821017156106aa57634e487b7160e01b5f52604160045260245ffd5b6040526106b960c08d016105be565b81526106c760e08d016105be565b60208201526106d96101008d016105be565b60408201526106eb6101208d016105be565b606082015293506106ff6101408c016105d9565b925061070e6101608c016105eb565b91505f6101808c01519050809150509295989b9194979a5092959850565b5f6020828403121561073c575f5ffd5b8151801515811461074b575f5ffd5b9392505050565b63ffffffff818116838216019081111561077a57634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e05161010051610120516101405161016051610180516136646108b75f395f81816101da015281816107db0152818161080a0152818161097b0152818161109b015281816111ca0152818161173e01526118f901525f6124a101525f8181610300015261256f01525f81816102a0015281816106860152818161090401528181610b8201528181610d38015281816117b7015261199c01525f818161032701528181610b2f01528181610b610152610c0c01525f818161060901528181610bb901528181610beb0152818161112c0152818161123c0152818161185001528181611a42015281816123fd0152818161247201528181612540015261260f01525f81816103900152610f1601525f61036901525f818161021e0152818161273f015261286401526136645ff3fe608060405234801561000f575f5ffd5b50600436106101d1575f3560e01c80637c887c59116100fe578063beb1e79d1161009e578063e121ce411161006e578063e121ce4114610583578063f1127f1a146105de578063f2fde38b146105f1578063f9119bbd14610604575f5ffd5b8063beb1e79d14610423578063c19d93fb14610453578063c86a41f7146104dc578063dd924acd14610570575f5ffd5b80639f47f048116100d95780639f47f048146103d5578063ad70b444146103e8578063ba5b7982146103fb578063be6c161414610410575f5ffd5b80637c887c591461038b5780638da5cb5b146103b257806395f78392146103c2575f5ffd5b8063453e944f1161017457806351f293261161014457806351f2932614610322578063715018a614610349578063774c2f5f14610351578063791b98bc14610364575f5ffd5b8063453e944f146102c2578063457c7afa146102d557806346e7f330146102e857806349a876e4146102fb575f5ffd5b80632c192066116101af5780632c192066146102555780633a237aa0146102685780633a4b66f11461027b57806343b971661461029b575f5ffd5b8063015be141146101d55780630dc91306146102195780631910ba5114610240575b5f5ffd5b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b61025361024e366004612afa565b61062b565b005b610253610263366004612b2c565b610643565b6001546101fc906001600160a01b031681565b610283610678565b6040516001600160601b039091168152602001610210565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102536102d0366004612b52565b610a9d565b6102536102e3366004612b81565b610ab8565b6102536102f6366004612b9c565b610aed565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b610253610b0f565b61025361035f366004612bcf565b610b22565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b03166101fc565b6102536103d0366004612bcf565b610bac565b6102536103e3366004612bea565b610c31565b6102536103f6366004612ccb565b610cce565b610403610de7565b6040516102109190612d5f565b61025361041e366004612db5565b610df8565b610436610431366004612e40565b610f0e565b604080519283526001600160e01b03909116602083015201610210565b6003546004546005546006546007546104939462ffffff8116946301000000820463ffffffff1694600160381b90920461ffff1693909260ff9091169087565b6040805162ffffff909816885263ffffffff909616602088015261ffff909416948601949094526060850191909152608084015290151560a083015260c082015260e001610210565b6105316104ea366004612b81565b60086020525f908152604090205463ffffffff80821691640100000000810490911690600160401b81046001600160801b031690600160c01b90046001600160401b031684565b6040805163ffffffff95861681529490931660208501526001600160801b03909116918301919091526001600160401b03166060820152608001610210565b61025361057e366004612afa565b61106c565b6105ba610591366004612b81565b60026020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610210565b6102536105ec366004612ccb565b611084565b6102536105ff366004612b81565b6112e5565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b610633611327565b8061063d81611353565b50600555565b61064b611327565b6001600160401b038116670de0b6b3a76400006106688282611373565b50506001600160401b0316600755565b5f61068161139f565b60035f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156106f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071a9190612e7e565b9050816002015481111561072f575060028101545b5f61073f826003600401546113eb565b905061074b8183612ea9565b83549092506301000000900463ffffffff1615158061076e575082600101548210155b61078b57604051632792526560e21b815260040160405180910390fd5b825462ffffff8116906107ab906301000000900463ffffffff1642612ea9565b1015806107bc575082600101548210155b6107d957604051632792526560e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b9598bf67f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b1724b466040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610865573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108899190612ebc565b6040516001600160e01b031960e084901b16815263ffffffff9190911660048201526001600160a01b03851660248201526044015f604051808303815f87803b1580156108d4575f5ffd5b505af11580156108e6573d5f5f3e3d5ffd5b505060405163a9059cbb60e01b8152336004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063a9059cbb91506044016020604051808303815f875af1158015610954573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109789190612ed7565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166317d70f7c6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156109d6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fa9190612ef2565b935081846001600160601b03167feafbca5d1297b7d933756ac62fa891874ff03e66cc07967b3740b3ebe2ac338260405160405180910390a3610a4760096001600160601b038616611416565b50825466ffffffff000000191663010000004263ffffffff160217808455600160381b900461ffff16836007610a7c83612f18565b91906101000a81548161ffff021916908361ffff1602179055505050505090565b610aa5611327565b6006805460ff1916911515919091179055565b80610ac28161142a565b610aca611327565b50600180546001600160a01b0319166001600160a01b0392909216919091179055565b610af5611327565b6003805462ffffff191662ffffff92909216919091179055565b610b17611327565b610b205f611451565b565b610b2a6114a0565b610b537f00000000000000000000000000000000000000000000000000000000000000006114cb565b610b5c81611353565b610ba77f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084611533565b505050565b610bb46114a0565b610bdd7f00000000000000000000000000000000000000000000000000000000000000006114cb565b610be681611353565b610ba77f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084611533565b8063ffffffff16610c4181611353565b610c496116ca565b670de0b6b3a76400006001600160e01b0384161115610c7b576040516338fd8f3960e21b815260040160405180910390fd5b506040805180820182526001600160e01b03938416815263ffffffff92831660208083019182526001600160a01b039096165f90815260029096529190942093519051909116600160e01b029116179055565b610cd661139f565b60035f805b8351816001600160a01b03161015610d3557610d198385836001600160a01b031681518110610d0c57610d0c612f38565b6020026020010151611709565b610d239083612f4c565b9150610d2e81612f5f565b9050610cdb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb33610d75846003600401546113eb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610dbd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de19190612ed7565b50505050565b6060610df36009611a77565b905090565b60608101516001600160401b0316670de0b6b3a7640000610e198282611373565b826020015163ffffffff16610e2d81611353565b83604001516001600160801b0316610e4481611353565b610e4c611327565b6001600160a01b0386165f90815260086020526040902054855163ffffffff908116911614610e79575f5ffd5b5050506001600160a01b039092165f908152600860209081526040918290208351815492850151938501516060909501516001600160401b03908116600160c01b026001600160c01b036001600160801b03909716600160401b029690961663ffffffff9586166401000000000267ffffffffffffffff19909516959092169490941792909217929092161791909117905550565b5f5f5f610f477f0000000000000000000000000000000000000000000000000000000000000000610f428888612710611a8a565b611af4565b6001600160a01b0381165f908152600260209081526040918290208251808401909352546001600160e01b0381168352600160e01b900463ffffffff1690820181905291925090158015610fa3575080516001600160e01b0316155b15610fe55760405180604001604052806702c68af0bb140000670de0b6b3a7640000610fcf9190612f81565b6001600160401b03168152600f60209091015290505b5f8160200151603c610ff79190612fa0565b90505f61100384611bda565b90508163ffffffff168163ffffffff1610156110325760405163c15607ef60e01b815260040160405180910390fd5b5f61103d8584611d92565b5090505f61104a82611fc7565b85519750905061105c818a8d8d6122e2565b9750505050505050935093915050565b611074611327565b8061107e81611353565b50600455565b60405163367b97ef60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636cf72fde906110d0908490600401613002565b6020604051808303815f875af11580156110ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111109190612e7e565b61111981611353565b61112161139f565b5f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166370a08231306040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611194573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b89190612e7e565b60405163024ff33160e21b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063093fccc4906112099086903090600401613014565b5f604051808303815f87803b158015611220575f5ffd5b505af1158015611232573d5f5f3e3d5ffd5b50505050610ba7817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a082316112703090565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156112b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d69190612e7e565b6112e09190612ea9565b6123b8565b6112ed611327565b6001600160a01b03811661131b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61132481611451565b50565b5f546001600160a01b03163314610b205760405163118cdaa760e01b8152336004820152602401611312565b805f0361132457604051635a53a6e960e01b815260040160405180910390fd5b818181811015610de15760405163f5c38b6160e01b815260048101929092526024820152604401611312565b60065460ff1615806113ce57505f546001600160a01b03163314806113ce57506001546001600160a01b031633145b610b2057604051634b9cde0d60e11b815260040160405180910390fd5b5f815f190483118202156114065763c4c5d7f55f526004601cfd5b50670de0b6b3a764000091020490565b5f61142183836126ce565b90505b92915050565b6001600160a01b038116611324576040516359c662df60e11b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b333b1580156114ae57503233145b610b2057604051639f8129d160e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa15801561150f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114249190612e7e565b6001600160a01b0383165f908152600860205260408120805463ffffffff80821691611569916401000000009091041642612ea9565b101561158857604051637b22948960e01b815260040160405180910390fd5b5f611592866114cb565b8254909150600160401b90046001600160801b03168111156115c257508054600160401b90046001600160801b03165b81545f906115e1908390600160c01b90046001600160401b03166113eb565b90506115ed8183612ea9565b91506115fb8787848861271a565b60405163a9059cbb60e01b8152336004820152602481018390529094506001600160a01b0388169063a9059cbb906044016020604051808303815f875af1158015611648573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166c9190612ed7565b5083866001600160a01b0316886001600160a01b03167f089c02e97a69a4f00ded600e029a273a5729f89d2373fee461bd4c6021d96fb060405160405180910390a45050805463ffffffff19164263ffffffff161790559392505050565b6001546001600160a01b03163314806116ec57505f546001600160a01b031633145b610b20576040516322a6b32160e21b815260040160405180910390fd5b5f816001600160a01b031661171d81611353565b6040516330979fdf60e11b81526001600160a01b0384811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063612f3fbe906024016080604051808303815f875af1158015611786573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117aa919061303d565b90505f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166370a08231306040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561181f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118439190612e7e565b90505f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166370a08231306040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156118b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118dc9190612e7e565b9050826060015163ffffffff165f1461197c576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663d5c0b44e87306040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044015f604051808303815f87803b158015611965575f5ffd5b505af1158015611977573d5f5f3e3d5ffd5b505050505b61199060096001600160a01b0388166128e5565b50816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166370a08231306040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611a04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a289190612e7e565b611a329190612ea9565b9450611a6d816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166370a0823130611270565b5050505092915050565b60605f611a83836128f0565b9392505050565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b03161115611ac4579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b5f81602001516001600160a01b0316825f01516001600160a01b031610611b19575f5ffd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b5f5f5f836001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015611c19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3d91906130b5565b5050509350935050505f8161ffff1611611c7e5760405162461bcd60e51b81526020600482015260026024820152614e4960f01b6044820152606401611312565b5f806001600160a01b03861663252c09d784611c9b87600161314d565b611ca5919061317b565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401608060405180830381865afa158015611ce2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d0691906131af565b93505050915080611d7e5760405163252c09d760e01b81525f60048201526001600160a01b0387169063252c09d790602401608060405180830381865afa158015611d53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7791906131af565b5091935050505b611d888242613207565b9695505050505050565b5f5f8263ffffffff165f03611dce5760405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606401611312565b6040805160028082526060820183525f9260208301908036833701905050905083815f81518110611e0157611e01612f38565b602002602001019063ffffffff16908163ffffffff16815250505f81600181518110611e2f57611e2f612f38565b602002602001019063ffffffff16908163ffffffff16815250505f5f866001600160a01b031663883bdbfd846040518263ffffffff1660e01b8152600401611e779190613223565b5f60405180830381865afa158015611e91573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611eb891908101906132ce565b915091505f825f81518110611ecf57611ecf612f38565b602002602001015183600181518110611eea57611eea612f38565b6020026020010151611efc9190613391565b90505f825f81518110611f1157611f11612f38565b602002602001015183600181518110611f2c57611f2c612f38565b6020026020010151611f3e91906133be565b905063ffffffff8816611f5181846133dd565b97505f8360060b128015611f705750611f6a8184613419565b60060b15155b15611f835787611f7f8161343a565b9850505b63ffffffff8916640100000000600160c01b03602084901b16611fad6001600160a01b038361345b565b611fb7919061348c565b9750505050505050509250929050565b5f5f5f8360020b12611fdc578260020b611fe3565b8260020b5f035b9050620d89e8811115612009576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361201e57600160801b612030565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612064576ffff97272373d413259a46990580e213a0260801c5b6004821615612083576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156120a2576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156120c1576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156120e0576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156120ff576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561211e576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561213e576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561215e576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561217e576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561219e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156121be576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156121de576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156121fe576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561221e576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561223f576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561225f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561227e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561229b576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156122ba57805f19816122b6576122b6613167565b0490505b6401000000008106156122ce5760016122d0565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b03861611612355575f61230f60026001600160a01b03881661359d565b9050826001600160a01b0316846001600160a01b03161061233e57612339600160c01b8683612949565b61234d565b61234d8186600160c01b612949565b9150506123b0565b5f61236e6001600160a01b03871680600160401b612949565b9050826001600160a01b0316846001600160a01b03161061239d57612398600160801b8683612949565b6123ac565b6123ac8186600160801b612949565b9150505b949350505050565b805f036123c25750565b5f6123d2826003600401546113eb565b90506123de8183612ea9565b60405163a9059cbb60e01b8152336004820152602481018390529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561244b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061246f9190612ed7565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000006124d18566b1a2bc2ec500006113eb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015612519573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061253d9190612ed7565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f00000000000000000000000000000000000000000000000000000000000000006125a08567063eb89da4ed00006113eb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156125e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260c9190612ed7565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7324bf5ce05f732381cbcb79966607977fc21b4a186126628566b1a2bc2ec500006113eb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156126aa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba79190612ed7565b5f81815260018301602052604081205461271357508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611424565b505f611424565b5f5f5f612728878787610f0e565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018990529294509092509088169063095ea7b3906044016020604051808303815f875af115801561279b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127bf9190612ed7565b506040805160a081019091526bffffffffffffffffffffffff19606089811b821660c084015261027160ec1b60d484015288901b1660d78201525f908060eb81016040516020818303038152906040528152602001306001600160a01b031681526020018663ffffffff16815260200187815260200161284885856001600160e01b03166113eb565b905260405163c04b8d5960e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c04b8d59906128999084906004016135ab565b6020604051808303815f875af11580156128b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d99190612e7e565b98975050505050505050565b5f61142183836129ff565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561293d57602002820191905f5260205f20905b815481526020019060010190808311612929575b50505050509050919050565b5f838302815f1985870982811083820303915050805f0361297d5783828161297357612973613167565b0492505050611a83565b808411612994576129946003851502601118612ae9565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f8181526001830160205260408120548015612ad9575f612a21600183612ea9565b85549091505f90612a3490600190612ea9565b9050808214612a93575f865f018281548110612a5257612a52612f38565b905f5260205f200154905080875f018481548110612a7257612a72612f38565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612aa457612aa461361a565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611424565b5f915050611424565b5092915050565b634e487b715f52806020526024601cfd5b5f60208284031215612b0a575f5ffd5b5035919050565b80356001600160401b0381168114612b27575f5ffd5b919050565b5f60208284031215612b3c575f5ffd5b61142182612b11565b8015158114611324575f5ffd5b5f60208284031215612b62575f5ffd5b8135611a8381612b45565b6001600160a01b0381168114611324575f5ffd5b5f60208284031215612b91575f5ffd5b8135611a8381612b6d565b5f60208284031215612bac575f5ffd5b813562ffffff81168114611a83575f5ffd5b63ffffffff81168114611324575f5ffd5b5f60208284031215612bdf575f5ffd5b8135611a8381612bbe565b5f5f5f60608486031215612bfc575f5ffd5b8335612c0781612b6d565b925060208401356001600160e01b0381168114612c22575f5ffd5b91506040840135612c3281612bbe565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715612c7357612c73612c3d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612ca157612ca1612c3d565b604052919050565b5f6001600160401b03821115612cc157612cc1612c3d565b5060051b60200190565b5f60208284031215612cdb575f5ffd5b81356001600160401b03811115612cf0575f5ffd5b8201601f81018413612d00575f5ffd5b8035612d13612d0e82612ca9565b612c79565b8082825260208201915060208360051b850101925086831115612d34575f5ffd5b6020840193505b82841015611d88578335612d4e81612b6d565b825260209384019390910190612d3b565b602080825282518282018190525f918401906040840190835b81811015612d96578351835260209384019390920191600101612d78565b509095945050505050565b6001600160801b0381168114611324575f5ffd5b5f5f82840360a0811215612dc7575f5ffd5b8335612dd281612b6d565b92506080601f1982011215612de5575f5ffd5b50612dee612c51565b6020840135612dfc81612bbe565b81526040840135612e0c81612bbe565b60208201526060840135612e1f81612da1565b6040820152612e3060808501612b11565b6060820152809150509250929050565b5f5f5f60608486031215612e52575f5ffd5b8335612e5d81612b6d565b92506020840135612e6d81612b6d565b929592945050506040919091013590565b5f60208284031215612e8e575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561142457611424612e95565b5f60208284031215612ecc575f5ffd5b8151611a8381612bbe565b5f60208284031215612ee7575f5ffd5b8151611a8381612b45565b5f60208284031215612f02575f5ffd5b81516001600160601b0381168114611a83575f5ffd5b5f61ffff821661ffff8103612f2f57612f2f612e95565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561142457611424612e95565b5f6001600160a01b0382166002600160a01b03198101612f2f57612f2f612e95565b6001600160401b03828116828216039081111561142457611424612e95565b63ffffffff8181168382160290811690818114612ae257612ae2612e95565b5f8151808452602084019350602083015f5b82811015612ff85781516001600160a01b0316865260209586019590910190600101612fd1565b5093949350505050565b602081525f6114216020830184612fbf565b604081525f6130266040830185612fbf565b905060018060a01b03831660208301529392505050565b5f608082840312801561304e575f5ffd5b50613057612c51565b825161306281612b6d565b8152602083015161307281612b6d565b6020820152604083015161308581612da1565b6040820152606083015161309881612bbe565b60608201529392505050565b805161ffff81168114612b27575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156130cb575f5ffd5b87516130d681612b6d565b8097505060208801518060020b81146130ed575f5ffd5b95506130fb604089016130a4565b9450613109606089016130a4565b9350613117608089016130a4565b925060a088015160ff8116811461312c575f5ffd5b60c089015190925061313d81612b45565b8091505092959891949750929550565b61ffff818116838216019081111561142457611424612e95565b634e487b7160e01b5f52601260045260245ffd5b5f61ffff83168061318e5761318e613167565b8061ffff84160691505092915050565b8051600681900b8114612b27575f5ffd5b5f5f5f5f608085870312156131c2575f5ffd5b84516131cd81612bbe565b93506131db6020860161319e565b925060408501516131eb81612b6d565b60608601519092506131fc81612b45565b939692955090935050565b63ffffffff828116828216039081111561142457611424612e95565b602080825282518282018190525f918401906040840190835b81811015612d9657835163ffffffff1683526020938401939092019160010161323c565b5f82601f83011261326f575f5ffd5b815161327d612d0e82612ca9565b8082825260208201915060208360051b86010192508583111561329e575f5ffd5b602085015b838110156132c45780516132b681612b6d565b8352602092830192016132a3565b5095945050505050565b5f5f604083850312156132df575f5ffd5b82516001600160401b038111156132f4575f5ffd5b8301601f81018513613304575f5ffd5b8051613312612d0e82612ca9565b8082825260208201915060208360051b850101925087831115613333575f5ffd5b6020840193505b8284101561335c5761334b8461319e565b82526020938401939091019061333a565b8095505050505060208301516001600160401b0381111561337b575f5ffd5b61338785828601613260565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff8213171561142457611424612e95565b6001600160a01b03828116828216039081111561142457611424612e95565b5f8160060b8360060b806133f3576133f3613167565b667fffffffffffff1982145f198214161561341057613410612e95565b90059392505050565b5f8260060b8061342b5761342b613167565b808360060b0791505092915050565b5f8160020b627fffff19810361345257613452612e95565b5f190192915050565b6001600160c01b0381811683821681810290921691818304811482151761348457613484612e95565b505092915050565b5f6001600160c01b038316806134a4576134a4613167565b6001600160c01b03929092169190910492915050565b6001815b60018411156134f5578085048111156134d9576134d9612e95565b60018416156134e757908102905b60019390931c9280026134be565b935093915050565b5f8261350b57506001611424565b8161351757505f611424565b816001811461352d576002811461353757613553565b6001915050611424565b60ff84111561354857613548612e95565b50506001821b611424565b5060208310610133831016604e8410600b8410161715613576575081810a611424565b6135825f1984846134ba565b805f190482111561359557613595612e95565b029392505050565b5f61142160ff8416836134fd565b602081525f825160a0602084015280518060c0850152806020830160e086015e5f60e0828601015260018060a01b0360208601511660408501526040850151606085015260608501516080850152608085015160a085015260e0601f19601f8301168501019250505092915050565b634e487b7160e01b5f52603160045260245ffdfea264697066735822122053243d5b6a7b00c952cde4fb17a46a37daaf55a1bb2e48feb41bb7e5a5ba6a8d64736f6c634300081b003300000000000000000000000000f116ac0c304c570daaa68fa6c30a86a04b5c5f000000000000000000000000bfde5ac4f5adb419a931a5bf64b0f3bb5a623d06000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b100000000000000000000000097ebd4f9ffcfe0cbc8f63a4e0b296fbb54f0a185000000000000000000000000d605a87187563c94c577a6e57e4a36ec8433b9ae0000000000000000000000006b59b8e9635909b7f0ff2c577bb15c936f32619a000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000008d40e3bb356a02a3a4dd6dba6cc890fd89675bda0000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000675db9900000000000000000000000000000000000000000372c7098cd8e12d56d000000