0 txs
0 calls
constructor
No constructor.
functions
decodeAndValidateReinitialize
purefunction decodeAndValidateReinitialize(bytes params) pure returns (bool)
dexVersion
purefunction dexVersion() pure returns (uint256)
farm
viewfunction farm() view returns (address)
initializationVersion
viewfunction initializationVersion() view returns (uint8)
liquidity
viewfunction liquidity(address user) view returns (uint256)
MIN_AMOUNT_OUT
viewfunction MIN_AMOUNT_OUT() view returns (uint256)
minRewardSwapAmount
viewfunction minRewardSwapAmount() view returns (uint256)
native
viewfunction native() view returns (address)
pendingRewards
viewfunction pendingRewards(address, address user) view returns (uint256)
rewardTokens
viewfunction rewardTokens(uint256) view returns (address)
rewardTokensCount
purefunction rewardTokensCount() pure returns (uint256)
rewardTokenType
viewfunction rewardTokenType(address) view returns (string)
sharePerTimeUnit
viewfunction sharePerTimeUnit(address) view returns (uint256)
stakingToken
viewfunction stakingToken() view returns (address)
stakingTokenApproveData
viewfunction stakingTokenApproveData(address to, uint256 amount) view returns (bytes data)
stakingTokenLiquidity
purefunction stakingTokenLiquidity(uint256 amount) pure returns (uint256)
stakingTokenTransferFromData
viewfunction stakingTokenTransferFromData(address from, address to, uint256 amount) view returns (bytes data)
stakingTokenType
viewfunction stakingTokenType() view returns (string)
swapsPathNativeToStakingToken
viewfunction swapsPathNativeToStakingToken(uint256 index) view returns (tuple)
swapsPathNativeToStakingTokenLength
viewfunction swapsPathNativeToStakingTokenLength() view returns (uint256)
swapsRewardTokenToNative
viewfunction swapsRewardTokenToNative(uint256 index) view returns (tuple)
swapsRewardTokenToNativeLength
viewfunction swapsRewardTokenToNativeLength() view returns (uint256)
swapsStakingTokenToNative
viewfunction swapsStakingTokenToNative(uint256 index) view returns (tuple)
swapsStakingTokenToNativeLength
viewfunction swapsStakingTokenToNativeLength() view returns (uint256)
timeUnit
purefunction timeUnit() pure returns (uint8)
universalRouter
viewfunction universalRouter() view returns (address)
vault
viewfunction vault() view returns (address)
deposit
nonpayablefunction deposit(uint256 nativeAmount) returns (uint256 stakingAmount)
depositConvertless
nonpayablefunction depositConvertless(uint256 stakingAmount, uint256 depositLiquidityAmount, uint256 feeLiquidityAmount, address feeRecipient, address residualsRecipient)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 stakingAmount, address recipient)
getAmountOutRewardTokenToNative
nonpayablefunction getAmountOutRewardTokenToNative(address token, uint256 amountIn) returns (uint256 nativeAmount)
getAmountOutStakingTokenToNative
nonpayablefunction getAmountOutStakingTokenToNative(uint256 amountIn) returns (uint256 nativeAmount)
harvest
nonpayablefunction harvest() returns (uint256 nativeAmount)
initialize
nonpayablefunction initialize(bytes params) returns (bool)
reinitialize
nonpayablefunction reinitialize(bytes params) returns (bool)
withdraw
nonpayablefunction withdraw(uint256 stakingAmount) returns (uint256 nativeAmount)
withdrawConvertless
nonpayablefunction withdrawConvertless(uint256 stakingAmount, address recipient)
events
Initialized
event Initialized(uint8 version)
errors
CallerIsNotVault
error CallerIsNotVault(address caller, address vault)
ContractNotInitialized
error ContractNotInitialized()
DecodeReinitializeDataFarmZero
error DecodeReinitializeDataFarmZero()
DecodeReinitializeDataUniversalRouterZero
error DecodeReinitializeDataUniversalRouterZero()
DepositConvertlessInvalidAmounts
error DepositConvertlessInvalidAmounts(uint256 stakingAmount, uint256 depositAmount, uint256 feeAmount)
ReinitializeMinRewardSwapAmountZero
error ReinitializeMinRewardSwapAmountZero()
ValidateSwapPathPathDisjoined
error ValidateSwapPathPathDisjoined((address tokenIn, address tokenOut)[])
ValidateSwapPathPathEndNotTokenOut
error ValidateSwapPathPathEndNotTokenOut((address tokenIn, address tokenOut)[], address tokenOut)
creation bytecode
0x6080806040523461001657612941908161001b8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f92833560e01c918263039fcd19146112f2575081630498a6981461128557816311b0b42d1461125c57816316a8e6bf1461123c57816324db06dc146112215781632e1a7d4d1461114d5781632f940c70146110a157816335a9e4df1461107857816335d43cf91461105957816336e9332d146110305781633c6a7f9b14610a2557816341538f4e14611011578163439fab9114610f3a5781634641257d14610e805781634d2ebb3114610de5578163522ea15714610d435781635799374414610d245781636ba9265114610ccf5781636caaf47214610c67578163717935a314610a6a57816372f702f314610a41578163780d9d2d14610a25578163795bd067146109ee5781637bb7bed1146109c45781637de0dd79146109a85781637fc58fb014610989578163809b5dc9146107eb57816380ac8228146107385781638195c818146106c25781638b14faf0146106a75781639ee6e3e0146105ca578163b6b55f251461046a578163b8c876b1146103a9578163c2b002131461038a578163d9f14c26146102b257508063f6f8333d146101e75763fbfa77cf146101b9575f80fd5b346101e357816003193601126101e3579054905160109190911c6001600160a01b03168152602090f35b5080fd5b5090346102af57806003193601126102af575080516005549091825f61020c84611540565b8083526020946001908682821691825f1461028d575050600114610250575b505061024c929161023d910385611403565b51928284938452830190611380565b0390f35b9085925060055f52825f20915f925b828410610275575050508201018161023d61022b565b8054848a01860152889550879490930192810161025f565b60ff19168682015292151560051b8501909201925083915061023d905061022b565b80fd5b8284346102af576102c236611441565b81549190601083901c6001600160a01b03163381900361036a575060ff8316600181019060ff82116103575784602094610335889561010060ff5f805160206128ac833981519152976103248b98838960081c1615908161034b575b506114c3565b16809561ffff1916171783556116b6565b805461ff00191690558351908152a15160018152f35b9050838316118d61031e565b634e487b7160e01b845260118752602484fd5b84516378f33bcf60e11b81529081906103869033838a01611526565b0390fd5b5050346101e357816003193601126101e3576020906009549051908152f35b90503461045357602036600319011261045357816103f5916103c9611333565b600254825484516393f1a40b60e01b81529586946001600160a01b0390931693859384939084016115a4565b03915afa90811561045e578391610413575b60208383519051908152f35b90508181813d8311610457575b61042a8183611403565b81010312610453576020809350825191610443836113cc565b805183520151838201525f610407565b8280fd5b503d610420565b505051903d90823e3d90fd5b9190503461045357602092836003193601126102af57805492803560ff8516156105bb576001600160a01b039460101c85163381900361059f57506001906104b9818784541630903390611db1565b600a54916104c683611607565b926104d387519485611403565b808452888401600a5f52895f208a5f925b84841061058157505050505050906104fd9130916122e2565b93610512858260075416836002541690611de0565b6002541690805490823b1561057d5790604484928387519586948593631c57762b60e31b85528401528960248401525af180156105735761055f575b50506105586120e8565b5051908152f35b61056982916113a5565b6102af578061054e565b83513d84823e3d90fd5b8380fd5b859160029161058f85611578565b8152019201920191908b906104e4565b84516378f33bcf60e11b81529081906103869033838701611526565b508251635079799360e01b8152fd5b9050346104535781600319360112610453578035906105e7611349565b9084549360ff85161561069a576001600160a01b039460101c85163381900361067e57509085918560025416918054833b1561067a57604485928385519687948593630441a3e760e41b85528401528a60248401525af1908115610671575061065d575b505061065a92600754166120c1565b80f35b610666906113a5565b61057d57835f61064b565b513d84823e3d90fd5b8480fd5b81516378f33bcf60e11b81529081906103869033838701611526565b51635079799360e01b8152fd5b5050346101e357816003193601126101e35751908152602090f35b905082346102af5760203660031901126102af57508035905f602084516106e8816113cc565b8281520152600954821015610725575060095f526107179060011b5f805160206128cc83398151915201611578565b610723825180926114a8565bf35b603290634e487b7160e01b5f525260245ffd5b8383346101e357806003193601126101e357602061078d93610758611333565b50610761611349565b6002548254855163cf4b55cb60e01b81529788946001600160a01b0390931693859384939084016115a4565b03915afa9182156107e057916107a8575b6020925051908152f35b90506020823d82116107d8575b816107c260209383611403565b810103126107d457602091519061079e565b5f80fd5b3d91506107b5565b9051903d90823e3d90fd5b919050346104535760a0366003190112610453576001600160a01b039160443590803560643560243586821682036107d4576084359587871687036107d457885460ff81161561097957889060101c1680330361095d575061085584896007541630903390611db1565b8582019485831161094a578486116109295790829161087f8b948b600754168c6002541690611de0565b8960025416815490803b156109255785928360449286519788958694631c57762b60e31b865285015260248401525af1908115610671575061090d575b5050836108cf946108f8575b50506120b4565b90816108e3575b836108df6120e8565b5080f35b6108f092600754166120c1565b5f80806108d6565b6109069187600754166120c1565b5f806108c8565b610916906113a5565b61092157865f6108bc565b8680fd5b8580fd5b868386606494519363578d236f60e01b855284015260248301526044820152fd5b601190634e487b7160e01b5f525260245ffd5b81516378f33bcf60e11b81529081906103869033838a01611526565b8151635079799360e01b81528690fd5b5050346101e357816003193601126101e357602090600c549051908152f35b5050346101e357816003193601126101e3576020905160068152f35b5050346101e35760203660031901126101e35760085490516001600160a01b039091168152602090f35b8284346102af5760203660031901126102af575460ff161561069a57610a1e60209235610a1961161e565b6121e3565b9051908152f35b5050346101e357816003193601126101e3576020905160018152f35b5050346101e357816003193601126101e35760075490516001600160a01b039091168152602090f35b839150346101e3576020928360031936011261045357610a88611333565b50600254815163acfb24b760e01b815293906001600160a01b039081169086868681855afa958615610c5d578396610c2e575b50845490845191631526fe2760e01b83528683015260a082602481865afa918215610c2457908892918592610b88575b5050015194858102958187041490151715610b75578584918451958680926317caf6f160e01b82525afa938415610573578294610b46575b508315610b335750505191048152f35b634e487b7160e01b825260129052602490fd5b9093508581813d8311610b6e575b610b5e8183611403565b810103126107d457519286610b23565b503d610b54565b601184634e487b7160e01b5f525260245ffd5b9150915060a0813d8211610c1c575b81610ba460a09383611403565b8101031261057d5784519160a083016001600160401b03811184821017610c095786528151908116810361067a5760808392610bfd928b95528481015185850152878101518885015260608101516060850152016115fa565b60808201528880610aeb565b604188634e487b7160e01b5f525260245ffd5b3d9150610b97565b85513d86823e3d90fd5b9095508681813d8311610c56575b610c468183611403565b810103126107d457519487610abb565b503d610c3c565b84513d85823e3d90fd5b905082346102af5760203660031901126102af57508035905f60208451610c8d816113cc565b8281520152600a548210156107255750600a5f526107179060011b7fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801611578565b905082346102af5760203660031901126102af57508035905f60208451610cf5816113cc565b8281520152600b548210156107255750600b5f526107179060011b5f805160206128ec83398151915201611578565b9190503461045357602036600319011261045357602092505190358152f35b905082346102af57826003193601126102af5760ff90610d61611333565b50541615610dd75750600b5490610d7782611607565b610d8382519182611403565b828152600b5f908152602093905f805160206128ec833981519152858085015b848410610db8575085610a1e602435876121e3565b600191600291610dc785611578565b8152019201920191908690610da3565b9051635079799360e01b8152fd5b8284346102af57602090816003193601126102af5750610e03611333565b50815191825f600654610e1581611540565b908184526001908682821691825f1461028d575050600114610e4357505061024c929161023d910385611403565b9085925060065f52825f20915f925b828410610e68575050508201018161023d61022b565b8054848a018601528895508794909301928101610e52565b905034610453578260031936011261045357825460ff811615610f2b576001600160a01b039060101c811633819003610f0f575083906002541691805490833b15610453576044908386519586948593631c57762b60e31b85528401528160248401525af1801561045e57610efb575b602082610a1e6120e8565b610f0583916113a5565b6101e35781610ef0565b83516378f33bcf60e11b81529081906103869033838701611526565b509051635079799360e01b8152fd5b5050346101e357602091610f4d36611441565b610faa82549160ff8360081c161592838094611004575b8015610fed575b610f74906114c3565b60ff198116600117855583610fdc575b50835462010000600160b01b0319163360101b62010000600160b01b03161784556116b6565b610fb7575b505160018152f35b61ff001981541690555f805160206128ac83398151915282825160018152a15f610faf565b61ffff19166101011784555f610f84565b50303b158015610f6b575060ff8116600114610f6b565b50600160ff821610610f64565b5050346101e357816003193601126101e357602090600a549051908152f35b5050346101e357816003193601126101e35760025490516001600160a01b039091168152602090f35b5050346101e357816003193601126101e357602090600b549051908152f35b5050346101e357816003193601126101e35760035490516001600160a01b039091168152602090f35b839150346101e357826003193601126101e3578035906110bf611349565b9083549460ff86161561069a576001600160a01b039560101c86163381900361067e5750856002541691805490833b156109215790604487928385519687948593630441a3e760e41b85528401528960248401525af19081156111445750611131575b5061065a9293600754166120c1565b9261113e61065a946113a5565b92611122565b513d86823e3d90fd5b90503461045357602036600319011261045357803592805460ff811615611211576001600160a01b039060101c8116338190036111f557506002541691805490833b156104535790604483928387519687948593630441a3e760e41b85528401528960248401525af19081156111ea575092610a1e916020946111db575b5033906111d661161e565b6122e2565b6111e4906113a5565b5f6111cb565b8351903d90823e3d90fd5b84516378f33bcf60e11b81529081906103869033838801611526565b8351635079799360e01b81528390fd5b5050346101e357602090610faf61123736611441565b612616565b5050346101e357816003193601126101e35760ff60209254169051908152f35b5050346101e357816003193601126101e35760015490516001600160a01b039091168152602090f35b5050346101e35760603660031901126101e35761024c906112a4611333565b906112e06112b0611349565b6112d283519485926323b872dd60e01b602085015260443591602485016115d8565b03601f198101845283611403565b51918291602083526020830190611380565b8490843461045357806003193601126104535761024c92506112e0826112d2611319611333565b63095ea7b360e01b602084015260248035919084016115bd565b600435906001600160a01b03821682036107d457565b602435906001600160a01b03821682036107d457565b5f5b8381106113705750505f910152565b8181015183820152602001611361565b906020916113998151809281855285808601910161135f565b601f01601f1916010190565b6001600160401b0381116113b857604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176113b857604052565b61010081019081106001600160401b038211176113b857604052565b601f909101601f19168101906001600160401b038211908210176113b857604052565b6001600160401b0381116113b857601f01601f191660200190565b60206003198201126107d4576004356001600160401b0381116107d457816023820112156107d45780600401359061147882611426565b926114866040519485611403565b828452602483830101116107d457815f92602460209301838601378301015290565b80516001600160a01b03908116835260209182015116910152565b156114ca57565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b6001600160a01b0391821681529116602082015260400190565b90600182811c9216801561156e575b602083101461155a57565b634e487b7160e01b5f52602260045260245ffd5b91607f169161154f565b90604051611585816113cc565b82546001600160a01b0390811682526001909301549092166020830152565b9081526001600160a01b03909116602082015260400190565b6001600160a01b039091168152602081019190915260400190565b6001600160a01b03918216815291166020820152604081019190915260600190565b519081151582036107d457565b6001600160401b0381116113b85760051b60200190565b6009549061162b82611607565b916116396040519384611403565b80835260095f90815260205f805160206128cc8339815191528186015b848410611664575050505050565b60028360019261167385611578565b815201920193019290611656565b80511561168e5760200190565b634e487b7160e01b5f52603260045260245ffd5b805182101561168e5760209160051b010190565b6040516311b0b42d60e01b8152602081600481335afa908115611da6575f91611d62575b50600180546001600160a01b0319166001600160a01b039092169182179055906117209061170790612616565b916117168160a08501516127c0565b60c08301516127c0565b60e0810191825115611d50578151600380546001600160a01b039283166001600160a01b0319918216179091556020840151600280549190931691161790556040820151600455606082015180519093906001600160401b0381116113b85761178a600554611540565b601f8111611d0e575b506020601f8211600114611ca75781929394955f92611c9c575b50508160011b915f199060031b1c1916176005555b608083015180519093906001600160401b0381116113b8576117e5600654611540565b601f8111611c39575b50602094601f8211600114611bd5579481929394955f92611bca575b50508160011b915f199060031b1c1916176006555b60a08101516001600160a01b039061183690611681565b51511660018060a01b0319600754161760075560018060a01b0361185d60c0830151611681565b51511660018060a01b0319600854161760085560a0810151908151600160401b928382116113b85760095482600955808310611b7e575b5060200160095f5260205f205f915b838310611b35575050505060c08101518051908382116113b857600b5482600b55808310611ae9575b50602001600b5f5260205f205f915b838310611aa0575050505060a001518051906118f682611607565b916119046040519384611403565b80835261191081611607565b601f19015f5b818110611a7d575090915f19830191508282115f5b848110611a1857505050505080519182116113b857600a5482600a558083106119b8575b50602001600a5f5260205f205f915b83831061196f575050505051600c55565b8051805183546001600160a01b03199081166001600160a01b0392831617855560209283015160018681018054909316919093161790559390930192600292909201910161195e565b6001600160ff1b038181168203611a045783168303611a0457600a5f5260205f209060011b8101908360011b015b8181106119f3575061194f565b5f80825560018201556002016119e6565b634e487b7160e01b5f52601160045260245ffd5b81611a045780611a34611a2e611a7893876120b4565b856116a2565b5160208101519051604051916001600160a01b039182169116611a56836113cc565b82526020820152611a6782896116a2565b52611a7281886116a2565b506121d5565b61192b565b602090604051611a8c816113cc565b5f81525f8382015282828801015201611916565b8051805183546001600160a01b03199081166001600160a01b039283161785556020928301516001868101805490931691909316179055939093019260029290920191016118db565b6001600160ff1b038181168203611a045783168303611a0457600b5f5260205f209060011b8101908360011b015b818110611b2457506118cc565b5f8082556001820155600201611b17565b8051805183546001600160a01b03199081166001600160a01b039283161785556020928301516001868101805490931691909316179055939093019260029290920191016118a3565b6001600160ff1b038181168203611a045783168303611a045760095f5260205f209060011b8101908360011b015b818110611bb95750611894565b5f8082556001820155600201611bac565b015190505f8061180a565b601f1982169560065f5260205f20915f5b888110611c2157508360019596979810611c09575b505050811b0160065561181f565b01515f1960f88460031b161c191690555f8080611bfb565b91926020600181928685015181550194019201611be6565b60065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f830160051c81019160208410611c92575b601f0160051c01905b818110611c8757506117ee565b5f8155600101611c7a565b9091508190611c71565b015190505f806117ad565b60055f5260205f20905f5b601f1984168110611cf6575060019394959683601f19811610611cde575b505050811b016005556117c2565b01515f1960f88460031b161c191690555f8080611cd0565b9091602060018192858b015181550193019101611cb2565b60055f5260205f20601f830160051c810160208410611d49575b601f830160051c82018110611d3e575050611793565b5f8155600101611d28565b5080611d28565b60405163d0f4339b60e01b8152600490fd5b6020813d602011611d9e575b81611d7b60209383611403565b810103126101e35751906001600160a01b03821682036102af57506117076116da565b3d9150611d6e565b6040513d5f823e3d90fd5b90611dd9906112d2611dde956040519586936323b872dd60e01b6020860152602485016115d8565b611f00565b565b929192604051916020830190611e1784611e0963095ea7b360e01b9889865284602484016115bd565b03601f198101865285611403565b83515f926001600160a01b039291858416918591829182855af190611e3a611fec565b82611ec6575b5081611ebb575b5015611e57575b50505050509050565b60405160208101979097521660248601526044808601829052855260808501906001600160401b03821186831017611ea75750611e9c9394611dd99160405282611f00565b805f80808080611e4e565b634e487b7160e01b81526041600452602490fd5b90503b15155f611e47565b80519192508115918215611ede575b5050905f611e40565b819250906020918101031261067a576020611ef991016115fa565b5f80611ed5565b604051611f5d916001600160a01b0316611f19826113cc565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1611f57611fec565b9161201b565b8051828115918215611fcd575b5050905015611f765750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b83809293500103126107d45781611fe491016115fa565b80825f611f6a565b3d15612016573d90611ffd82611426565b9161200b6040519384611403565b82523d5f602084013e565b606090565b9192901561207d575081511561202f575090565b3b156120385790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156120905750805190602001fd5b60405162461bcd60e51b815260206004820152908190610386906024830190611380565b91908203918211611a0457565b611dd9611dde93926112d260405194859263a9059cbb60e01b6020850152602484016115bd565b6008546040516370a0823160e01b81523060048201525f929160209184918390829060249082906001600160a01b03165afa9081156121ca57829161219d575b50600c5481101561213857505050565b909350600b5461214781611607565b926121556040519485611403565b818452600b865280862095908085015b838310612180575050505061217d92935033916122e2565b90565b60028260019261218f8b611578565b815201980192019196612165565b90508281813d83116121c3575b6121b48183611403565b810103126101e357515f612128565b503d6121aa565b6040513d84823e3d90fd5b5f198114611a045760010190565b80519192916001600160a01b0391826121fb82611681565b51515f198401929116838311611a04578461221b936020948591856116a2565b510151160361222b575b50505050565b5f5b83811061223b575b50612225565b61224581836116a2565b519683866003541698606488838184511693015116935f60409c8d519687958694635e1e632560e01b86526004860152602485015260448401525af19788156122d957505f976122aa575b5086156122a5576122a0906121d5565b61222d565b612235565b90968382813d83116122d2575b6122c18183611403565b810103126102af575051955f612290565b503d6122b7565b513d5f823e3d90fd5b5f939291806122f057505050565b6003548251919550919290916001600160a01b03908116919061231285611681565b515116835f19810111611a04576001600160a01b0360206123365f198701886116a2565b51015116036123455750505050565b9291905f935b8285106123585750612225565b9091929395835f19810111611a04575f198401870361252a57815b61237d88876116a2565b516020808201516040516370a0823160e01b81526001600160a01b03858116600483015290959116939185602481875afa948515611da6575f956124f6575b5082516123d590829089906001600160a01b0316611de0565b825160209384015160405163d5bcb9b560e01b81526001600160a01b039283166004820152908216602482015260448101929092525f606483018190529083166084830152909290839060a49082908a5af18015611da6576124bc575b6040516370a0823160e01b81526001600160a01b0390911660048201529160209150829060249082905afa908115611da6575f91612488575b5061247f91612479916120b4565b966121d5565b9392919061234b565b90506020813d6020116124b4575b816124a360209383611403565b810103126107d4575161247f61246b565b3d9150612496565b6020823d6020116124ee575b816124d560209383611403565b810103126107d4576124e86020926115fa565b50612432565b3d91506124c8565b9094506020813d602011612522575b8161251260209383611403565b810103126107d45751935f6123bc565b3d9150612505565b30612373565b51906001600160a01b03821682036107d457565b81601f820112156107d457805161255a81611426565b926125686040519485611403565b818452602082840101116107d45761217d916020808501910161135f565b9080601f830112156107d45781519160206125a084611607565b936040936125b085519687611403565b818652828087019260061b850101938185116107d4578301915b8483106125da5750505050505090565b85838303126107d45783869182516125f1816113cc565b6125fa86612530565b8152612607838701612530565b838201528152019201916125ca565b906040805192612625846113e7565b5f908185526020828187015282848701528260e060609788808201528860808201528860a08201528860c08201520152815182019080820190808484031261067a57838101516001600160401b03948582116109215701938493610100958691031261092557865195612697876113e7565b6126a2838601612530565b87526126af888601612530565b998388019a8b52808601518989015260808601518381116104535785856126d892890101612544565b9088015260a08501518281116101e35784846126f692880101612544565b608088015260c08501518281116101e357848461271592880101612586565b60a088015260e08501519182116102af5750906127359291840101612586565b60c0840152015160e0820152805190936001600160a01b039182161561276f5751161561275f5750565b516312cf72f160e01b8152600490fd5b8251635a44696160e01b8152600490fd5b9081518082526020808093019301915f5b82811061279f575050505090565b90919293826040826127b460019489516114a8565b01950193929101612791565b805190915f198201918211611a04576020906001600160a01b03908180846127e887896116a2565b51015116911680910361287b57505f90815b84811061280957505050505050565b818461281583896116a2565b51015116600182018083116128675761282f8491896116a2565b5151160361284557612840906121d5565b6127fa565b6040516324f4ea8160e21b815260048101859052806103866024820189612780565b634e487b7160e01b85526011600452602485fd5b604080516379eb145b60e11b815260048101919091529081906128a16044830188612780565b9060248301520390fdfe7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9a26469706673582212203ac7838faf8cf587c76942736bdc7933c7112d6a63633cf51d44175a649b811464736f6c63430008150033