0 txs
1 call
constructor
constructor()
functions
evolved
viewfunction evolved() view returns (bool)
evolveLiquidity
viewfunction evolveLiquidity() view returns (uint256)
FACTORY
viewfunction FACTORY() view returns (address)
getReserves
viewfunction getReserves() view returns (uint112 reserveWETH, uint112 reserveRock, uint32 blockTimestampLast)
graduationFee
viewfunction graduationFee() view returns (uint256)
platformFee
viewfunction platformFee() view returns (uint256)
platformWallet
viewfunction platformWallet() view returns (address)
priceRockCumulativeLast
viewfunction priceRockCumulativeLast() view returns (uint256)
priceWETHCumulativeLast
viewfunction priceWETHCumulativeLast() view returns (uint256)
rock
viewfunction rock() view returns (address)
WETH
viewfunction WETH() view returns (address)
initializeAuthority
nonpayablefunction initializeAuthority(address initAuthority)
setup
nonpayablefunction setup(address initRouter, address initPositionManager, address initLiquidityLocker, address initFactoryV3, address initSwapRouter, address initWETH, address initRock, address initPlatformWallet, uint256 initPlatformFee, uint256 initEvolveLiquidity)
skim
nonpayablefunction skim(address to)
start
nonpayablefunction start()
swap
nonpayablefunction swap(uint256 amountIn, uint256 amountOut, bool wethIn, bool toUnwrap, address to) returns (uint256 amountInActual, uint256 amountOutActual, uint112 reserveWETH, uint112 reserveRock)
sync
nonpayablefunction sync()
events
InitializeAuthority
event InitializeAuthority(address authority)
Start
event Start(address indexed sender, uint256 amountWETH, uint256 amountRock)
Swap
event Swap(address indexed sender, address indexed to, uint256 amountIn, uint256 amountOut, bool wethIn)
Sync
event Sync(uint112 reserveWETH, uint112 reserveRock)
errors
CallerNotAuthority
error CallerNotAuthority()
CallerNotPendingAuthority
error CallerNotPendingAuthority()
FailedCall
error FailedCall()
Forbidden
error Forbidden()
InsufficientAmount
error InsufficientAmount()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InsufficientExchangeLiquidity
error InsufficientExchangeLiquidity()
InsufficientLiquidityMinted
error InsufficientLiquidityMinted()
InvalidAddress
error InvalidAddress()
InvalidAuthorityAssignment
error InvalidAuthorityAssignment()
InvalidReceiver
error InvalidReceiver()
K
error K()
Overflow
error Overflow()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TokenEvolved
error TokenEvolved()
creation bytecode
0x60a06040526729a2241af62c00006007556310e352d56007546305f5e100610027919061007b565b61003191906100a4565b6008556103e86007546046610046919061007b565b61005091906100a4565b60095534801561005e575f5ffd5b505f80546001600160a01b031916339081179091556080526100c3565b808202811582820484141761009e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826100be57634e487b7160e01b5f52601260045260245ffd5b500490565b608051612c556100e25f395f818161025501526108290152612c555ff3fe60806040526004361061010c575f3560e01c80638494ed61116100a1578063bc22593e11610071578063be9a655511610057578063be9a655514610370578063fa2af9da14610384578063fff6cae9146103a3575f5ffd5b8063bc22593e1461033c578063bc25cf7714610351575f5ffd5b80638494ed61146102c357806399fb809e146102e4578063ad5c464814610303578063b01388ea14610327575f5ffd5b806326232a2e116100dc57806326232a2e1461022f5780632dd31000146102445780636da6bad01461028f5780638120192c146102ae575f5ffd5b806302a4a890146101175780630902f1ac1461013f5780630d8d7f14146101b1578063135f0f85146101da575f5ffd5b3661011357005b5f5ffd5b348015610122575f5ffd5b5061012c600f5481565b6040519081526020015b60405180910390f35b34801561014a575f5ffd5b50600654604080516dffffffffffffffffffffffffffff80841682526e01000000000000000000000000000084041660208201527c010000000000000000000000000000000000000000000000000000000090920463ffffffff1690820152606001610136565b3480156101bc575f5ffd5b50600a546101ca9060ff1681565b6040519015158152602001610136565b3480156101e5575f5ffd5b506101f96101f436600461254c565b6103b7565b6040805194855260208501939093526dffffffffffffffffffffffffffff91821692840192909252166060820152608001610136565b34801561023a575f5ffd5b5061012c600d5481565b34801561024f575f5ffd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610136565b34801561029a575f5ffd5b50600b54610277906001600160a01b031681565b3480156102b9575f5ffd5b5061012c60095481565b3480156102ce575f5ffd5b506102e26102dd3660046125a7565b610827565b005b3480156102ef575f5ffd5b506102e26102fe366004612660565b610a66565b34801561030e575f5ffd5b50600a546102779061010090046001600160a01b031681565b348015610332575f5ffd5b5061012c600e5481565b348015610347575f5ffd5b5061012c60075481565b34801561035c575f5ffd5b506102e261036b366004612660565b610aac565b34801561037b575f5ffd5b506102e2610b96565b34801561038f575f5ffd5b50600c54610277906001600160a01b031681565b3480156103ae575f5ffd5b506102e2610cee565b5f5f5f5f6103c3610d7e565b6103cb610e04565b600a5460ff16156103ff576103ff7fb5dcde8c00000000000000000000000000000000000000000000000000000000610e3b565b88158061040a575087155b15610438576104387f5945ea5600000000000000000000000000000000000000000000000000000000610e3b565b600a546001600160a01b038681166101009092041614806104665750600b546001600160a01b038681169116145b15610494576104947f1e4ec46b00000000000000000000000000000000000000000000000000000000610e3b565b50506006546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165f8080891561051c57600b54600d546dffffffffffffffffffffffffffff861694506001600160a01b0390911692506103e8906104fc908e6126a8565b61050691906126ec565b9050610512818d6126ff565b96508a9550610574565b846dffffffffffffffffffffffffffff169250600a60019054906101000a90046001600160a01b031691506103e8600d548c61055891906126a8565b61056291906126ec565b8c97509050610571818c6126ff565b95505b828b11156105a5576105a57f713654fb00000000000000000000000000000000000000000000000000000000610e3b565b8815610632576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b03831690632e1a7d4d906024015f604051808303815f87803b158015610603575f5ffd5b505af1158015610615573d5f5f3e3d5ffd5b5061062d925050506001600160a01b03891687610e43565b610646565b6106466001600160a01b0383168988610f19565b600c54600a54610668916001600160a01b036101009092048216911683610f19565b5050505f5f610675610f8d565b91509150826dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff166106a591906126a8565b6106b290620f42406126a8565b6106bc82846126a8565b6106c990620f42406126a8565b10156106f8576106f87fa932492f00000000000000000000000000000000000000000000000000000000610e3b565b61070482828686611094565b600a546040516370a0823160e01b81523060048201529296509094505f935061010090046001600160a01b031691506370a0823190602401602060405180830381865afa158015610757573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077b9190612712565b905060075481106107c457600c54600954600a546107ac926001600160a01b03610100909204821692911690610f19565b6009546107b990826126ff565b90506107c481611374565b60408051868152602081018690528915158183015290516001600160a01b0388169133917f15df6b17ebbe8381abae058b80360eb98bd18ff544a05e3661ffbed247b47e689181900360600190a35061081b611cc0565b95509550955095915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610880576108807fee90c46800000000000000000000000000000000000000000000000000000000610e3b565b6001600160a01b038916158061089d57506001600160a01b038816155b806108af57506001600160a01b038716155b806108c157506001600160a01b038616155b806108d357506001600160a01b038516155b806108e557506001600160a01b038416155b806108f757506001600160a01b038316155b15610925576109257fe6c4247b00000000000000000000000000000000000000000000000000000000610e3b565b811580610930575080155b1561095e5761095e7f5945ea5600000000000000000000000000000000000000000000000000000000610e3b565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b038c8116919091179092556003805482168b84161790556004805482168a8416179055600580548216898416179055600a80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010089851602179055600b80548216878416179055600c8054909116918516919091179055600d82905560078190556310e352d5610a25826305f5e1006126a8565b610a2f91906126ec565b6008556007546103e890610a449060466126a8565b610a4e91906126ec565b600955610a5a8a611cea565b50505050505050505050565b5f546001600160a01b03163314610aa057610aa07f1c90b19100000000000000000000000000000000000000000000000000000000610e3b565b610aa981611cea565b50565b610ab4610d7e565b5f5f610abe610f8d565b915091505f5f610b1d6006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b509092509050610b5985610b416dffffffffffffffffffffffffffff8516876126ff565b600a5461010090046001600160a01b03169190610f19565b610b8a85610b776dffffffffffffffffffffffffffff8416866126ff565b600b546001600160a01b03169190610f19565b50505050610aa9611cc0565b610b9e610d7e565b610ba6610e04565b5f5f610bb0610f8d565b915091505f5f610c0f6006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5090925090505f610c306dffffffffffffffffffffffffffff8416866126ff565b90505f610c4d6dffffffffffffffffffffffffffff8416866126ff565b90505f610c62610c5d83856126a8565b611dc5565b9050805f03610c9457610c947fd226f9d400000000000000000000000000000000000000000000000000000000610e3b565b610ca087878787611094565b5050604080518481526020810184905233917f9bd12ff361235cfc00ce4754dc56d7091bb0a6a4db278a4e8b2f23d84a14c5d4910160405180910390a250505050505050610cec611cc0565b565b610cf6610d7e565b5f5f610d00610f8d565b915091505f5f610d5f6006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5091509150610d7084848484611094565b505050505050610cec611cc0565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610dd7576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cec60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90611f2a565b6001546001600160a01b03163314610cec57610cec7f35f3f298000000000000000000000000000000000000000000000000000000005b805f5260045ffd5b80471015610e8b576040517fcf479181000000000000000000000000000000000000000000000000000000008152476004820152602481018290526044015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610ed4576040519150601f19603f3d011682016040523d82523d5f602084013e610ed9565b606091505b5050905080610f14576040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040516001600160a01b03838116602483015260448201839052610f1491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611f31565b600854600a546040516370a0823160e01b81523060048201525f92839290916101009091046001600160a01b0316906370a0823190602401602060405180830381865afa158015610fe0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110049190612712565b61100e9190612729565b600b546040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa158015611055573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110799190612712565b61108e906a3c626448a0bfcccc9c0000612729565b90509091565b600a545f90819060ff16156110cc576110cc7fb5dcde8c00000000000000000000000000000000000000000000000000000000610e3b565b6dffffffffffffffffffffffffffff8611806110f557506dffffffffffffffffffffffffffff85115b15611123576111237f35278d1200000000000000000000000000000000000000000000000000000000610e3b565b5f6111336401000000004261273c565b6006549091505f9061116b907c0100000000000000000000000000000000000000000000000000000000900463ffffffff168361274f565b90505f8163ffffffff1611801561119157506dffffffffffffffffffffffffffff861615155b80156111ac57506dffffffffffffffffffffffffffff851615155b15611278578063ffffffff166111e9876111c588611fbc565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690611fec565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661121191906126a8565b600e5f8282546112219190612729565b909155505063ffffffff811661123a866111c589611fbc565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661126291906126a8565b600f5f8282546112729190612729565b90915550505b6006805463ffffffff84167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff8b81166e0100000000000000000000000000009081027fffffffff000000000000000000000000000000000000000000000000000000009095168e83161794909417918216831794859055604080519382169282169290921780845293909404909316602082018190529196509094507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505094509492505050565b600b546040516370a0823160e01b81523060048201525f91829182918291829182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ea9190612712565b600b54600a549192506001600160a01b03908116610100909204161061143457600b54600a546001600160a01b039182169161010090910416828961142f818361200e565b611458565b600a54600b546001600160a01b03610100909204821691168883611458818361200e565b60408051610160810182526001600160a01b03808816825286166020820152610bb891810191909152949a50929850909650945092505f9060608101603c6114c0817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761861276b565b6114ca91906127bf565b60020b8152602001603c806114fe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186127e5565b611508919061276b565b61151291906127bf565b600290810b825260208201889052604082018790525f6060830181905260808301523060a08301524260c09092019190915254600a549192506115679161010090046001600160a01b0390811691168a612037565b600b5f9054906101000a90046001600160a01b03166001600160a01b031663b1b3d3f66040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156115b3575f5ffd5b505af11580156115c5573d5f5f3e3d5ffd5b5050600254600b546115e693506001600160a01b0390811692501684612037565b600a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556002546040517f13ead5620000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301528881166024830152610bb860448301528581166064830152909116906313ead562906084016020604051808303815f875af115801561168b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116af9190612821565b506002546040517f883164560000000000000000000000000000000000000000000000000000000081525f916001600160a01b0316906388316456906116f990859060040161283c565b6080604051808303815f875af1158015611715573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117399190612900565b505060408051610140810182526002546001600160a01b0390811682526020808301869052600c54909116828401819052606083018190526080830181905260a08301525f1960c0830152606d60e083015282518084018452600781527f44454641554c54000000000000000000000000000000000000000000000000008183015261010083015282515f8082529181019093529394509150610120820190836117f3565b60608152602001906001900390816117de5790505b5090526002546003546040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260016024820152929350169063a22cb465906044015f604051808303815f87803b15801561185e575f5ffd5b505af1158015611870573d5f5f3e3d5ffd5b50506003546040517fa35a96b80000000000000000000000000000000000000000000000000000000081526001600160a01b03909116925063a35a96b891506118bd9084906004016129d8565b6020604051808303815f875af11580156118d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118fd9190612712565b50600a546040516370a0823160e01b81523060048201525f9161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015611949573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196d9190612712565b600b546040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156119b8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dc9190612712565b600554600a54919250611a019161010090046001600160a01b03908116911684612037565b600a54600b54604051610100909204606090811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660208501527e0bb80000000000000000000000000000000000000000000000000000000000603485015291901b1660378201525f90604b0160408051601f19818403018152608083018252808352600c546001600160a01b0390811660208501528383018790525f606085015260055492517fb858183f000000000000000000000000000000000000000000000000000000008152919450919091169063b858183f90611aea908490600401612ab4565b6020604051808303815f875af1158015611b06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612712565b5050600a546040516370a0823160e01b81523060048201526101009091046001600160a01b031691506370a0823190602401602060405180830381865afa158015611b77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9b9190612712565b91508115611c3957600a54600c546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101859052610100909204169063a9059cbb906044016020604051808303815f875af1158015611c13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c379190612b02565b505b8015611cb257600b546040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03909116906342966c68906024015f604051808303815f87803b158015611c9b575f5ffd5b505af1158015611cad573d5f5f3e3d5ffd5b505050505b505050505050505050505050565b610cec5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610dfe565b6001600160a01b038116611d2157611d217f12e6291100000000000000000000000000000000000000000000000000000000610e3b565b5f546001600160a01b031615611d59575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fac1f812621b6c406f47d89f077576cabc56e1309dc67429449723f66ad0dd2269060200160405180910390a150565b5f60018211611dd2575090565b8160017001000000000000000000000000000000008210611df85760809190911c9060401b5b680100000000000000008210611e135760409190911c9060201b5b6401000000008210611e2a5760209190911c9060101b5b620100008210611e3f5760109190911c9060081b5b6101008210611e535760089190911c9060041b5b60108210611e665760049190911c9060021b5b60048210611e725760011b5b600302600190811c90818581611e8a57611e8a6126bf565b048201901c90506001818581611ea257611ea26126bf565b048201901c90506001818581611eba57611eba6126bf565b048201901c90506001818581611ed257611ed26126bf565b048201901c90506001818581611eea57611eea6126bf565b048201901c90506001818581611f0257611f026126bf565b048201901c9050611f21818581611f1b57611f1b6126bf565b04821190565b90039392505050565b80825d5050565b5f5f60205f8451602086015f885af180611f50576040513d5f823e3d81fd5b50505f513d91508115611f67578060011415611f74565b6001600160a01b0384163b155b15611fb6576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610e82565b50505050565b5f611fe66e0100000000000000000000000000006dffffffffffffffffffffffffffff8416612b1d565b92915050565b5f6120076dffffffffffffffffffffffffffff831684612b9b565b9392505050565b5f61200761202461201f85856120f4565b61213b565b6c0100000000000000000000000061215b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526120b684826121d5565b611fb6576040516001600160a01b0384811660248301525f60448301526120ea91869182169063095ea7b390606401610f46565b611fb68482611f31565b5f815f03612100575f5ffd5b5f61210b848461221e565b90506f7fffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff82161115612007575f5ffd5b5f5f82600f0b121561214b575f5ffd5b611fe6604083600f0b901b6123a9565b5f815f0361216657505f5b5f83600f0b1215612175575f5ffd5b600f83900b6fffffffffffffffffffffffffffffffff8316810260401c90608084901c0277ffffffffffffffffffffffffffffffffffffffffffffffff8111156121bd575f5ffd5b60401b81198111156121cd575f5ffd5b019392505050565b5f5f5f5f60205f8651602088015f8a5af192503d91505f519050828015612214575081156122065780600114612214565b5f866001600160a01b03163b115b9695505050505050565b5f815f0361222a575f5ffd5b5f77ffffffffffffffffffffffffffffffffffffffffffffffff84116122655782604085901b8161225d5761225d6126bf565b04905061238d565b60c084811c640100000000811061227e576020918201911c5b620100008110612290576010918201911c5b61010081106122a1576008918201911c5b601081106122b1576004918201911c5b600481106122c1576002918201911c5b600281106122d0576001820191505b60bf820360018603901c6001018260ff0387901b816122f1576122f16126bf565b0492506fffffffffffffffffffffffffffffffff831115612310575f5ffd5b608085901c83026fffffffffffffffffffffffffffffffff8616840260c088901c604089901b82811015612345576001820391505b608084901b9290038281101561235c576001820391505b829003608084901c821461237257612372612bf2565b888181612381576123816126bf565b04870196505050505050505b6fffffffffffffffffffffffffffffffff811115612007575f5ffd5b5f815f036123b857505f919050565b81600170010000000000000000000000000000000082106123de5760809190911c9060401b5b6801000000000000000082106123f95760409190911c9060201b5b64010000000082106124105760209190911c9060101b5b6201000082106124255760109190911c9060081b5b61010082106124395760089190911c9060041b5b6010821061244c5760049190911c9060021b5b600882106124585760011b5b6001818581612469576124696126bf565b048201901c90506001818581612481576124816126bf565b048201901c90506001818581612499576124996126bf565b048201901c905060018185816124b1576124b16126bf565b048201901c905060018185816124c9576124c96126bf565b048201901c905060018185816124e1576124e16126bf565b048201901c905060018185816124f9576124f96126bf565b048201901c90505f818581612510576125106126bf565b0490508082106125205780612522565b815b95945050505050565b8015158114610aa9575f5ffd5b6001600160a01b0381168114610aa9575f5ffd5b5f5f5f5f5f60a08688031215612560575f5ffd5b853594506020860135935060408601356125798161252b565b925060608601356125898161252b565b9150608086013561259981612538565b809150509295509295909350565b5f5f5f5f5f5f5f5f5f5f6101408b8d0312156125c1575f5ffd5b8a356125cc81612538565b995060208b01356125dc81612538565b985060408b01356125ec81612538565b975060608b01356125fc81612538565b965060808b013561260c81612538565b955060a08b013561261c81612538565b945060c08b013561262c81612538565b935060e08b013561263c81612538565b999c989b509699959894979396509194610100810135936101209091013592509050565b5f60208284031215612670575f5ffd5b813561200781612538565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417611fe657611fe661267b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826126fa576126fa6126bf565b500490565b81810381811115611fe657611fe661267b565b5f60208284031215612722575f5ffd5b5051919050565b80820180821115611fe657611fe661267b565b5f8261274a5761274a6126bf565b500690565b63ffffffff8281168282160390811115611fe657611fe661267b565b5f8160020b8360020b80612781576127816126bf565b5f1981147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831416156127b6576127b661267b565b90059392505050565b5f8260020b8260020b028060020b91508082146127de576127de61267b565b5092915050565b5f8160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081036128195761281961267b565b5f0392915050565b5f60208284031215612831575f5ffd5b815161200781612538565b81516001600160a01b031681526101608101602083015161286860208401826001600160a01b03169052565b50604083015161287f604084018262ffffff169052565b506060830151612894606084018260020b9052565b5060808301516128a9608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516128f06101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f60808587031215612913575f5ffd5b845160208601519094506fffffffffffffffffffffffffffffffff8116811461293a575f5ffd5b6040860151606090960151949790965092505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b838110156129cc57601f198584030188526129b6838351612950565b602098890198909350919091019060010161299a565b50909695505050505050565b602081526129f26020820183516001600160a01b03169052565b602082015160408201525f6040830151612a1760608401826001600160a01b03169052565b5060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e083015260e0830151612a7761010084018261ffff169052565b50610100830151610140610120840152612a95610160840182612950565b9050610120840151601f1984830301610140850152612522828261297e565b602081525f825160806020840152612acf60a0840182612950565b90506001600160a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b5f60208284031215612b12575f5ffd5b81516120078161252b565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183021692508183048114821517612b9357612b9361267b565b505092915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff831680612bc857612bc86126bf565b807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84160491505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea26469706673582212202d51b21d98b8daffddf02d51384adc9842669919255dfbf01ca31b79200f8c6364736f6c634300081c0033