0 txs
1 call
constructor
constructor()
functions
creator
viewfunction creator() view returns (address)
creatorReward
viewfunction creatorReward() view returns (uint256)
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 initCreator, 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
0x60a06040526729a2241af62c00006007556310e352d56007546305f5e100610027919061009a565b61003191906100c3565b6008556103e86007546046610046919061009a565b61005091906100c3565b6009556103e8600754601e610065919061009a565b61006f91906100c3565b600a5534801561007d575f5ffd5b505f80546001600160a01b031916339081179091556080526100e2565b80820281158282048414176100bd57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826100dd57634e487b7160e01b5f52601260045260245ffd5b500490565b608051612d556101015f395f81816102c00152610b4c0152612d555ff3fe608060405260043610610140575f3560e01c806399fb809e116100bb578063be9a655511610071578063d8fd1ed911610057578063d8fd1ed9146103d7578063fa2af9da146103ec578063fff6cae91461040b575f5ffd5b8063be9a6555146103a4578063c2f6c664146103b8575f5ffd5b8063b01388ea116100a1578063b01388ea1461035b578063bc22593e14610370578063bc25cf7714610385575f5ffd5b806399fb809e14610316578063ad5c464814610337575f5ffd5b8063135f0f85116101105780632dd31000116100f65780632dd31000146102af5780636da6bad0146102e25780638120192c14610301575f5ffd5b8063135f0f851461024557806326232a2e1461029a575f5ffd5b806302a4a8901461014b57806302d05d3f146101735780630902f1ac146101aa5780630d8d7f141461021c575f5ffd5b3661014757005b5f5ffd5b348015610156575f5ffd5b5061016060115481565b6040519081526020015b60405180910390f35b34801561017e575f5ffd5b50600d54610192906001600160a01b031681565b6040516001600160a01b03909116815260200161016a565b3480156101b5575f5ffd5b50600654604080516dffffffffffffffffffffffffffff80841682526e01000000000000000000000000000084041660208201527c010000000000000000000000000000000000000000000000000000000090920463ffffffff169082015260600161016a565b348015610227575f5ffd5b50600b546102359060ff1681565b604051901515815260200161016a565b348015610250575f5ffd5b5061026461025f366004612632565b61041f565b6040805194855260208501939093526dffffffffffffffffffffffffffff9182169284019290925216606082015260800161016a565b3480156102a5575f5ffd5b50610160600f5481565b3480156102ba575f5ffd5b506101927f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ed575f5ffd5b50600c54610192906001600160a01b031681565b34801561030c575f5ffd5b5061016060095481565b348015610321575f5ffd5b5061033561033036600461268d565b6108c2565b005b348015610342575f5ffd5b50600b546101929061010090046001600160a01b031681565b348015610366575f5ffd5b5061016060105481565b34801561037b575f5ffd5b5061016060075481565b348015610390575f5ffd5b5061033561039f36600461268d565b610908565b3480156103af575f5ffd5b506103356109f2565b3480156103c3575f5ffd5b506103356103d23660046126a8565b610b4a565b3480156103e2575f5ffd5b50610160600a5481565b3480156103f7575f5ffd5b50600e54610192906001600160a01b031681565b348015610416575f5ffd5b50610335610dc7565b5f5f5f5f61042b610e57565b610433610edd565b600b5460ff1615610467576104677fb5dcde8c00000000000000000000000000000000000000000000000000000000610f14565b881580610472575087155b156104a0576104a07f5945ea5600000000000000000000000000000000000000000000000000000000610f14565b600b546001600160a01b038681166101009092041614806104ce5750600c546001600160a01b038681169116145b156104fc576104fc7f1e4ec46b00000000000000000000000000000000000000000000000000000000610f14565b50506006546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165f8080891561058457600c54600f546dffffffffffffffffffffffffffff861694506001600160a01b0390911692506103e890610564908e61279f565b61056e91906127e3565b905061057a818d6127f6565b96508a95506105dc565b846dffffffffffffffffffffffffffff169250600b60019054906101000a90046001600160a01b031691506103e8600f548c6105c0919061279f565b6105ca91906127e3565b8c975090506105d9818c6127f6565b95505b828b111561060d5761060d7f713654fb00000000000000000000000000000000000000000000000000000000610f14565b881561069a576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b03831690632e1a7d4d906024015f604051808303815f87803b15801561066b575f5ffd5b505af115801561067d573d5f5f3e3d5ffd5b50610695925050506001600160a01b03891687610f1c565b6106ae565b6106ae6001600160a01b0383168988610ff2565b600e54600b546106d0916001600160a01b036101009092048216911683610ff2565b5050505f5f6106dd611066565b91509150826dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff1661070d919061279f565b61071a90620f424061279f565b610724828461279f565b61073190620f424061279f565b1015610760576107607fa932492f00000000000000000000000000000000000000000000000000000000610f14565b61076c8282868661116d565b600b546040516370a0823160e01b81523060048201529296509094505f935061010090046001600160a01b031691506370a0823190602401602060405180830381865afa1580156107bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e39190612809565b9050600754811061085f57600e54600954600b54610814926001600160a01b03610100909204821692911690610ff2565b600d54600a54600b5461083a926001600160a01b03610100909204821692911690610ff2565b600a5460095461084a9190612820565b61085490826127f6565b905061085f8161144d565b60408051868152602081018690528915158183015290516001600160a01b0388169133917f15df6b17ebbe8381abae058b80360eb98bd18ff544a05e3661ffbed247b47e689181900360600190a3506108b6611d99565b95509550955095915050565b5f546001600160a01b031633146108fc576108fc7f1c90b19100000000000000000000000000000000000000000000000000000000610f14565b61090581611dc3565b50565b610910610e57565b5f5f61091a611066565b915091505f5f6109796006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5090925090506109b58561099d6dffffffffffffffffffffffffffff8516876127f6565b600b5461010090046001600160a01b03169190610ff2565b6109e6856109d36dffffffffffffffffffffffffffff8416866127f6565b600c546001600160a01b03169190610ff2565b50505050610905611d99565b6109fa610e57565b610a02610edd565b5f5f610a0c611066565b915091505f5f610a6b6006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5090925090505f610a8c6dffffffffffffffffffffffffffff8416866127f6565b90505f610aa96dffffffffffffffffffffffffffff8416866127f6565b90505f610abe610ab9838561279f565b611e9e565b9050805f03610af057610af07fd226f9d400000000000000000000000000000000000000000000000000000000610f14565b610afc8787878761116d565b5050604080518481526020810184905233917f9bd12ff361235cfc00ce4754dc56d7091bb0a6a4db278a4e8b2f23d84a14c5d4910160405180910390a250505050505050610b48611d99565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ba357610ba37fee90c46800000000000000000000000000000000000000000000000000000000610f14565b6001600160a01b038b161580610bc057506001600160a01b038916155b80610bd257506001600160a01b038816155b80610be457506001600160a01b038716155b80610bf657506001600160a01b038616155b80610c0857506001600160a01b038516155b80610c1a57506001600160a01b038416155b80610c2c57506001600160a01b038316155b15610c5a57610c5a7fe6c4247b00000000000000000000000000000000000000000000000000000000610f14565b811580610c65575080155b15610c9357610c937f5945ea5600000000000000000000000000000000000000000000000000000000610f14565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b038e8116919091179092556002805482168c84161790556003805482168b84161790556004805482168a8416179055600580548216898416179055600b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010089851602179055600c80548216878416179055600e8054909116918516919091179055600f82905560078190556310e352d5610d66826305f5e10061279f565b610d7091906127e3565b6008556007546103e890610d8590604661279f565b610d8f91906127e3565b6009556007546103e890610da490601e61279f565b610dae91906127e3565b600a55610dba8a611dc3565b5050505050505050505050565b610dcf610e57565b5f5f610dd9611066565b915091505f5f610e386006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5091509150610e498484848461116d565b505050505050610b48611d99565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610eb0576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b4860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612003565b6001546001600160a01b03163314610b4857610b487f35f3f298000000000000000000000000000000000000000000000000000000005b805f5260045ffd5b80471015610f64576040517fcf479181000000000000000000000000000000000000000000000000000000008152476004820152602481018290526044015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610fad576040519150601f19603f3d011682016040523d82523d5f602084013e610fb2565b606091505b5050905080610fed576040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040516001600160a01b03838116602483015260448201839052610fed91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061200a565b600854600b546040516370a0823160e01b81523060048201525f92839290916101009091046001600160a01b0316906370a0823190602401602060405180830381865afa1580156110b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110dd9190612809565b6110e79190612820565b600c546040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa15801561112e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111529190612809565b611167906a3c626448a0bfcccc9c0000612820565b90509091565b600b545f90819060ff16156111a5576111a57fb5dcde8c00000000000000000000000000000000000000000000000000000000610f14565b6dffffffffffffffffffffffffffff8611806111ce57506dffffffffffffffffffffffffffff85115b156111fc576111fc7f35278d1200000000000000000000000000000000000000000000000000000000610f14565b5f61120c64010000000042612833565b6006549091505f90611244907c0100000000000000000000000000000000000000000000000000000000900463ffffffff1683612846565b90505f8163ffffffff1611801561126a57506dffffffffffffffffffffffffffff861615155b801561128557506dffffffffffffffffffffffffffff851615155b15611351578063ffffffff166112c28761129e88612095565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906120c5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166112ea919061279f565b60105f8282546112fa9190612820565b909155505063ffffffff81166113138661129e89612095565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661133b919061279f565b60115f82825461134b9190612820565b90915550505b6006805463ffffffff84167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff8b81166e0100000000000000000000000000009081027fffffffff000000000000000000000000000000000000000000000000000000009095168e83161794909417918216831794859055604080519382169282169290921780845293909404909316602082018190529196509094507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505094509492505050565b600c546040516370a0823160e01b81523060048201525f91829182918291829182916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561149f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c39190612809565b600c54600b549192506001600160a01b03908116610100909204161061150d57600c54600b546001600160a01b039182169161010090910416828961150881836120e7565b611531565b600b54600c546001600160a01b0361010090920482169116888361153181836120e7565b60408051610160810182526001600160a01b03808816825286166020820152610bb891810191909152949a50929850909650945092505f9060608101603c611599817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618612862565b6115a391906128b6565b60020b8152602001603c806115d77ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186128dc565b6115e19190612862565b6115eb91906128b6565b600290810b825260208201889052604082018790525f6060830181905260808301523060a08301524260c09092019190915254600b549192506116409161010090046001600160a01b0390811691168a612110565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663b1b3d3f66040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561168c575f5ffd5b505af115801561169e573d5f5f3e3d5ffd5b5050600254600c546116bf93506001600160a01b0390811692501684612110565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556002546040517f13ead5620000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301528881166024830152610bb860448301528581166064830152909116906313ead562906084016020604051808303815f875af1158015611764573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117889190612918565b506002546040517f883164560000000000000000000000000000000000000000000000000000000081525f916001600160a01b0316906388316456906117d2908590600401612933565b6080604051808303815f875af11580156117ee573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181291906129f7565b505060408051610140810182526002546001600160a01b0390811682526020808301869052600e54909116828401819052606083018190526080830181905260a08301525f1960c0830152606d60e083015282518084018452600781527f44454641554c54000000000000000000000000000000000000000000000000008183015261010083015282515f8082529181019093529394509150610120820190836118cc565b60608152602001906001900390816118b75790505b5090526002546003546040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260016024820152929350169063a22cb465906044015f604051808303815f87803b158015611937575f5ffd5b505af1158015611949573d5f5f3e3d5ffd5b50506003546040517fa35a96b80000000000000000000000000000000000000000000000000000000081526001600160a01b03909116925063a35a96b89150611996908490600401612acf565b6020604051808303815f875af11580156119b2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d69190612809565b50600b546040516370a0823160e01b81523060048201525f9161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015611a22573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a469190612809565b600c546040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611a91573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab59190612809565b600554600b54919250611ada9161010090046001600160a01b03908116911684612110565b600b54600c54604051610100909204606090811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660208501527e0bb80000000000000000000000000000000000000000000000000000000000603485015291901b1660378201525f90604b0160408051601f19818403018152608083018252808352600e546001600160a01b0390811660208501528383018790525f606085015260055492517fb858183f000000000000000000000000000000000000000000000000000000008152919450919091169063b858183f90611bc3908490600401612bb4565b6020604051808303815f875af1158015611bdf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c039190612809565b5050600b546040516370a0823160e01b81523060048201526101009091046001600160a01b031691506370a0823190602401602060405180830381865afa158015611c50573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c749190612809565b91508115611d1257600b54600e546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101859052610100909204169063a9059cbb906044016020604051808303815f875af1158015611cec573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d109190612c02565b505b8015611d8b57600c546040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03909116906342966c68906024015f604051808303815f87803b158015611d74575f5ffd5b505af1158015611d86573d5f5f3e3d5ffd5b505050505b505050505050505050505050565b610b485f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610ed7565b6001600160a01b038116611dfa57611dfa7f12e6291100000000000000000000000000000000000000000000000000000000610f14565b5f546001600160a01b031615611e32575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fac1f812621b6c406f47d89f077576cabc56e1309dc67429449723f66ad0dd2269060200160405180910390a150565b5f60018211611eab575090565b8160017001000000000000000000000000000000008210611ed15760809190911c9060401b5b680100000000000000008210611eec5760409190911c9060201b5b6401000000008210611f035760209190911c9060101b5b620100008210611f185760109190911c9060081b5b6101008210611f2c5760089190911c9060041b5b60108210611f3f5760049190911c9060021b5b60048210611f4b5760011b5b600302600190811c90818581611f6357611f636127b6565b048201901c90506001818581611f7b57611f7b6127b6565b048201901c90506001818581611f9357611f936127b6565b048201901c90506001818581611fab57611fab6127b6565b048201901c90506001818581611fc357611fc36127b6565b048201901c90506001818581611fdb57611fdb6127b6565b048201901c9050611ffa818581611ff457611ff46127b6565b04821190565b90039392505050565b80825d5050565b5f5f60205f8451602086015f885af180612029576040513d5f823e3d81fd5b50505f513d9150811561204057806001141561204d565b6001600160a01b0384163b155b1561208f576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610f5b565b50505050565b5f6120bf6e0100000000000000000000000000006dffffffffffffffffffffffffffff8416612c1d565b92915050565b5f6120e06dffffffffffffffffffffffffffff831684612c9b565b9392505050565b5f6120e06120fd6120f885856121cd565b612214565b6c01000000000000000000000000612234565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905261218f84826122ae565b61208f576040516001600160a01b0384811660248301525f60448301526121c391869182169063095ea7b39060640161101f565b61208f848261200a565b5f815f036121d9575f5ffd5b5f6121e484846122f7565b90506f7fffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff821611156120e0575f5ffd5b5f5f82600f0b1215612224575f5ffd5b6120bf604083600f0b901b612482565b5f815f0361223f57505f5b5f83600f0b121561224e575f5ffd5b600f83900b6fffffffffffffffffffffffffffffffff8316810260401c90608084901c0277ffffffffffffffffffffffffffffffffffffffffffffffff811115612296575f5ffd5b60401b81198111156122a6575f5ffd5b019392505050565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156122ed575081156122df57806001146122ed565b5f866001600160a01b03163b115b9695505050505050565b5f815f03612303575f5ffd5b5f77ffffffffffffffffffffffffffffffffffffffffffffffff841161233e5782604085901b81612336576123366127b6565b049050612466565b60c084811c6401000000008110612357576020918201911c5b620100008110612369576010918201911c5b610100811061237a576008918201911c5b6010811061238a576004918201911c5b6004811061239a576002918201911c5b600281106123a9576001820191505b60bf820360018603901c6001018260ff0387901b816123ca576123ca6127b6565b0492506fffffffffffffffffffffffffffffffff8311156123e9575f5ffd5b608085901c83026fffffffffffffffffffffffffffffffff8616840260c088901c604089901b8281101561241e576001820391505b608084901b92900382811015612435576001820391505b829003608084901c821461244b5761244b612cf2565b88818161245a5761245a6127b6565b04870196505050505050505b6fffffffffffffffffffffffffffffffff8111156120e0575f5ffd5b5f815f0361249157505f919050565b81600170010000000000000000000000000000000082106124b75760809190911c9060401b5b6801000000000000000082106124d25760409190911c9060201b5b64010000000082106124e95760209190911c9060101b5b6201000082106124fe5760109190911c9060081b5b61010082106125125760089190911c9060041b5b601082106125255760049190911c9060021b5b600882106125315760011b5b6001818581612542576125426127b6565b048201901c9050600181858161255a5761255a6127b6565b048201901c90506001818581612572576125726127b6565b048201901c9050600181858161258a5761258a6127b6565b048201901c905060018185816125a2576125a26127b6565b048201901c905060018185816125ba576125ba6127b6565b048201901c905060018185816125d2576125d26127b6565b048201901c90505f8185816125e9576125e96127b6565b0490508082106125f957806125fb565b815b93505050505b919050565b8015158114610905575f5ffd5b6001600160a01b0381168114610905575f5ffd5b803561260181612613565b5f5f5f5f5f60a08688031215612646575f5ffd5b8535945060208601359350604086013561265f81612606565b9250606086013561266f81612606565b9150608086013561267f81612613565b809150509295509295909350565b5f6020828403121561269d575f5ffd5b81356120e081612613565b5f5f5f5f5f5f5f5f5f5f5f6101608c8e0312156126c3575f5ffd5b8b356126ce81612613565b9a5060208c01356126de81612613565b995060408c01356126ee81612613565b985060608c01356126fe81612613565b975060808c013561270e81612613565b965060a08c013561271e81612613565b955060c08c013561272e81612613565b945061273c60e08d01612627565b935061274b6101008d01612627565b9a9d999c50979a969995989497509295919493610120830135935061014090920135919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176120bf576120bf612772565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826127f1576127f16127b6565b500490565b818103818111156120bf576120bf612772565b5f60208284031215612819575f5ffd5b5051919050565b808201808211156120bf576120bf612772565b5f82612841576128416127b6565b500690565b63ffffffff82811682821603908111156120bf576120bf612772565b5f8160020b8360020b80612878576128786127b6565b5f1981147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831416156128ad576128ad612772565b90059392505050565b5f8260020b8260020b028060020b91508082146128d5576128d5612772565b5092915050565b5f8160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810361291057612910612772565b5f0392915050565b5f60208284031215612928575f5ffd5b81516120e081612613565b81516001600160a01b031681526101608101602083015161295f60208401826001600160a01b03169052565b506040830151612976604084018262ffffff169052565b50606083015161298b606084018260020b9052565b5060808301516129a0608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516129e76101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f60808587031215612a0a575f5ffd5b845160208601519094506fffffffffffffffffffffffffffffffff81168114612a31575f5ffd5b6040860151606090960151949790965092505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b83811015612ac357601f19858403018852612aad838351612a47565b6020988901989093509190910190600101612a91565b50909695505050505050565b60208152612ae96020820183516001600160a01b03169052565b602082015160408201525f6040830151612b0e60608401826001600160a01b03169052565b5060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e083015260e0830151612b6e61010084018261ffff169052565b50610100830151610140610120840152612b8c610160840182612a47565b9050610120840151601f1984830301610140850152612bab8282612a75565b95945050505050565b602081525f825160806020840152612bcf60a0840182612a47565b90506001600160a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b5f60208284031215612c12575f5ffd5b81516120e081612606565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183021692508183048114821517612c9357612c93612772565b505092915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff831680612cc857612cc86127b6565b807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84160491505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea26469706673582212209d1af015bc500f0635d11c5567554e94e4833ebae5b2b49aac7f394b1d73f35064736f6c634300081c0033