0 txs
56 calls
constructor
No constructor.
functions
CONFIGURATOR_ROLE
viewfunction CONFIGURATOR_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getVersion
purefunction getVersion() pure returns (string)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MARKET_ROLE
viewfunction MARKET_ROLE() view returns (bytes32)
ORACLE_ROLE
viewfunction ORACLE_ROLE() view returns (bytes32)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
UPGRADER_ROLE
viewfunction UPGRADER_ROLE() view returns (bytes32)
VAULT_ROLE
viewfunction VAULT_ROLE() view returns (bytes32)
WHITELIST_ROLE
viewfunction WHITELIST_ROLE() view returns (bytes32)
acceptOwnership
nonpayablefunction acceptOwnership(address entity)
acceptPendingOracle
nonpayablefunction acceptPendingOracle(address aggregator, address asset)
batchSetSwitch
nonpayablefunction batchSetSwitch(address[] entities, bool state)
batchSetWhitelist
nonpayablefunction batchSetWhitelist(address whitelistManager, address[] contractAddresses, uint8 module, bool approved)
createMarket
nonpayablefunction createMarket(address factory, bytes32 gtKey, tuple deployParams, uint256 salt) returns (address market)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokePendingMinApy
nonpayablefunction revokePendingMinApy(address vault)
revokePendingOracle
nonpayablefunction revokePendingOracle(address aggregator, address asset)
revokePendingPool
nonpayablefunction revokePendingPool(address vault)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
revokeVaultPendingGuardian
nonpayablefunction revokeVaultPendingGuardian(address vault)
revokeVaultPendingMarket
nonpayablefunction revokeVaultPendingMarket(address vault, address market)
revokeVaultPendingTimelock
nonpayablefunction revokeVaultPendingTimelock(address vault)
setAdapterWhitelist
nonpayablefunction setAdapterWhitelist(address router, address adapter, bool isWhitelist)
setCuratorForVault
nonpayablefunction setCuratorForVault(address vault, address newCurator)
setGtImplement
nonpayablefunction setGtImplement(address factory, string gtImplementName, address gtImplement)
setIsAllocatorForVault
nonpayablefunction setIsAllocatorForVault(address vault, address allocator, bool isAllocator)
setSwitch
nonpayablefunction setSwitch(address entity, bool state)
submitPendingOracle
nonpayablefunction submitPendingOracle(address aggregator, address asset, tuple oracle)
submitPendingOracle
nonpayablefunction submitPendingOracle(address aggregator, address asset, tuple oracle)
submitVaultGuardian
nonpayablefunction submitVaultGuardian(address vault, address newGuardian)
transferOwnership
nonpayablefunction transferOwnership(address entity, address to)
updateGtConfig
nonpayablefunction updateGtConfig(address market, bytes configData)
updateMarketConfig
nonpayablefunction updateMarketConfig(address market, tuple newConfig)
updateOrderFeeRate
nonpayablefunction updateOrderFeeRate(address market, address order, tuple feeConfig)
upgradeSubContract
nonpayablefunction upgradeSubContract(address proxy, address newImplementation, bytes data)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
CannotRenounceRole
error CannotRenounceRole()
CannotRevokeDefaultAdminRole
error CannotRevokeDefaultAdminRole()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a08060405234602957306080526124fd908161002e8239608051818181611283015261136e0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80629045be14611c4657806301ffc9a714611bef57806307e2cea514611bb45780630d8e6e2c14611b6c5780630e35f5ff14611af75780630f1e44f314611a7d57806313182df71461197f5780631355614714611923578063198506f3146118ae578063248a9ca31461186e57806327e87808146117525780632f2ff15d1461170757806334ae51fe146115a057806336568abe146115765780633e27ec9b1461153b5780634f1ef2861461132f57806351710e45146112d757806352d1902d14611270578063550619131461121857806358b02166146111c0578063647e8c9d146110a05780636d4354211461102b57806376a98d2b14610eec5780637a997ab714610eb1578063848cfc2614610e3c57806391d1485414610de6578063941edd0614610c9557806397f4ef6814610c2057806398c4f1ac14610be5578063a217fddf14610bc9578063ad3cb1cc14610b7d578063ae2d8f6014610ac4578063b6b07b8e14610a43578063be2fa49f146109b2578063c4d66de814610860578063d240ef4b146107eb578063d547741f14610776578063d853015e1461073b578063dc496c201461043e578063df5a4c9414610322578063e63ab1e9146102e7578063f72c0d8b146102ac5763f777d7a8146101f2575f80fd5b3461026d57604036600319011261026d57806004356001600160a01b0381169081900361027b57610221611d48565b6102296120cb565b1561027e57803b1561027b57818091600460405180948193631fa5d41d60e11b83525af180156102705761025c57505080f35b8161026691611d86565b61026d5780f35b80fd5b6040513d84823e3d90fd5b50fd5b803b1561027b57818091600460405180948193638456cb5960e01b83525af180156102705761025c57505080f35b503461026d578060031936011261026d5760206040517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b503461026d578060031936011261026d5760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b503461026d5761010036600319011261026d578061033e611ce3565b610346611cf9565b9060c036604319011261043a5760405161035f81611d57565b610367611d0f565b8152610371611da7565b9260208201938452604082019060843582526060830160a4358152610394611dd0565b90608085019182526103a4611de3565b9560a086019687526103b4611f9e565b6001600160a01b031690813b1561043657604051637a3634a960e01b81526001600160a01b0394851660048201529551841660248701529651909216604485015291516064840152935160848301525163ffffffff90811660a4830152915190911660c4820152908290829060e490829084905af180156102705761025c5750f35b8880fd5b5050fd5b503461026d57608036600319011261026d57610458611ce3565b6044356001600160401b038111610737578060040161026060031983360301126107335761048461213a565b604051639ac2b52360e01b8152602480356004830152606090820152926001600160a01b036104b283611d25565b16606485015260248301356001600160a01b0381169081900361072f5760848501526001600160a01b036104e860448501611d25565b1660a48501526001600160a01b0361050260648501611d25565b1660c48501526001600160a01b0361051c60848501611d25565b1660e485015260a48301356001600160401b03811680910361072f5761010485015263ffffffff61054f60c48501611df6565b1661012485015263ffffffff61056760e48501611df6565b1661014485015263ffffffff6105806101048501611df6565b1661016485015263ffffffff6105996101248501611df6565b1661018485015263ffffffff6105b26101448501611df6565b166101a485015263ffffffff6105cb6101648501611df6565b166101c48501526001600160a01b036105e76101848501611d25565b166101e485015263ffffffff6106006101a48501611df6565b1661020485015263ffffffff6106196101c48501611df6565b166102248501526101e4830135928584151580950361026d57856106ae81959361069b839560209961024486015261024461069361067261065e610204870185611ede565b6102606102648b01526102c48a0191611f0f565b610680610224870185611ede565b898303606319016102848b015290611f0f565b930190611ede565b848303606319016102a486015290611f0f565b606435604483015203926001600160a01b03165af19081156102705782916106e5575b6040516001600160a01b0383168152602090f35b90506020813d602011610727575b8161070060209383611d86565b8101031261072357516001600160a01b038116810361072357602091505f6106d1565b5080fd5b3d91506106f3565b8580fd5b8380fd5b8280fd5b503461026d578060031936011261026d5760206040517f3b49a237fe2d18fa4d9642b8a0e065923cceb71b797783b619a030a61d848bf08152f35b503461026d57604036600319011261026d57600435610793611cf9565b906107be6107b9825f525f5160206124885f395f51905f52602052600160405f20015490565b6121a9565b336001600160a01b038316146107dc57906107d891612342565b5080f35b63334bd91960e11b8352600483fd5b503461026d57604036600319011261026d5780610806611ce3565b61080e611cf9565b90610817611f2f565b6001600160a01b031690813b1561043a57604051639d6b4a4560e01b81526001600160a01b0390911660048201529082908290602490829084905af180156102705761025c5750f35b503461026d57602036600319011261026d5761087a611ce3565b5f5160206124a85f395f51905f52549060ff8260401c1615916001600160401b038116801590816109aa575b60011490816109a0575b159081610997575b506109885767ffffffffffffffff1981166001175f5160206124a85f395f51905f52556108fc91908361095c575b506108ef6123de565b6108f76123de565b6121ef565b506109045780f35b68ff0000000000000000195f5160206124a85f395f51905f5254165f5160206124a85f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b68ffffffffffffffffff191668010000000000000001175f5160206124a85f395f51905f52555f6108e6565b63f92ee8a960e01b8452600484fd5b9050155f6108b8565b303b1591506108b0565b8491506108a6565b503461026d57604036600319011261026d57806109cd611ce3565b6024356001600160401b03811161043a576109ec903690600401611e58565b906109f561205c565b6001600160a01b0316803b1561043a5760405163347d568f60e21b8152602060048201529183918391829084908290610a32906024830190611cbf565b03925af180156102705761025c5750f35b503461026d57606036600319011261026d57806004356001600160a01b0381169081900361027b57610a73611cf9565b610a7b611d39565b610a8361213a565b823b15610abf57604051632f20734560e01b81526001600160a01b03909216600483015215156024820152908290829081838160448101610a32565b505050fd5b503461026d57606036600319011261026d5780610adf611ce3565b6024356001600160401b03811161043a573660238201121561043a57610b0f903690602481600401359101611e22565b610b17611d0f565b91610b2061213a565b6001600160a01b031690813b15610abf578391610b5c918360405180968195829463f05afa5d60e01b8452604060048501526044840190611cbf565b6001600160a01b03909116602483015203925af180156102705761025c5750f35b503461026d578060031936011261026d57610bc5604051610b9f604082611d86565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611cbf565b0390f35b503461026d578060031936011261026d57602090604051908152f35b503461026d578060031936011261026d5760206040517f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d9598152f35b503461026d57604036600319011261026d5780610c3b611ce3565b610c43611cf9565b90610c4c611f9e565b6001600160a01b031690813b1561043a576040516319f5958960e01b81526001600160a01b0390911660048201529082908290602490829084905af180156102705761025c5750f35b503461026d5761010036600319011261026d5780610cb1611ce3565b6024356001600160a01b038116919082900361043a5760c036604319011261043a5760405191610ce083611d57565b60443563ffffffff81168103610de25783526064359163ffffffff83168303610de25760208401928352610d12611dbd565b906040850191825260a43563ffffffff81168103610dde5760608601908152610d39611dd0565b9060808701918252610d49611de3565b9260a08801938452610d5961205c565b6001600160a01b031693843b1561043657889660405198899763358aa0eb60e01b895260048901525163ffffffff1660248801525163ffffffff1660448701525163ffffffff1660648601525163ffffffff1660848501525163ffffffff1660a48401525163ffffffff1660c483015281835a9260e493f180156102705761025c5750f35b8680fd5b8480fd5b503461026d57604036600319011261026d576040610e02611cf9565b9160043581525f5160206124885f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b503461026d57604036600319011261026d5780610e57611ce3565b610e5f611cf9565b90610e68611f2f565b6001600160a01b031690813b1561043a5760405163e34c721b60e01b81526001600160a01b0390911660048201529082908290602490829084905af180156102705761025c5750f35b503461026d578060031936011261026d5760206040517fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be67608152f35b503461026d57604036600319011261026d57806004356001600160401b03811161027b57610f1e903690600401611e76565b9190610f28611d48565b610f306120cb565b15610fb857815b838110610f45575050505080f35b6001600160a01b03610f60610f5b838786611ea6565b611eca565b16803b1561073357838091600460405180948193631fa5d41d60e11b83525af1908115610fad578491610f98575b5050600101610f37565b81610fa291611d86565b61073757825f610f8e565b6040513d86823e3d90fd5b815b838110610fc8575050505080f35b6001600160a01b03610fde610f5b838786611ea6565b16803b1561073357838091600460405180948193638456cb5960e01b83525af1908115610fad578491611016575b5050600101610fba565b8161102091611d86565b61073757825f61100c565b503461026d57604036600319011261026d5780611046611ce3565b61104e611cf9565b9061105761200d565b6001600160a01b031690813b1561043a5760405163f2fde38b60e01b81526001600160a01b0390911660048201529082908290602490829084905af180156102705761025c5750f35b503461026d5761012036600319011261026d57806110bc611ce3565b61010036602319011261027b576110d161205c565b6001600160a01b0316803b1561027b57604051631892944160e21b8152906024356001600160a01b03811690819003610abf5760048301526044356001600160401b038116809103610abf57602483015260643563ffffffff8116809103610abf57604483015260843563ffffffff8116809103610abf57606483015260a43563ffffffff8116809103610abf57608483015260c43563ffffffff8116809103610abf5760a483015260e43563ffffffff8116809103610abf5760c4830152610104359063ffffffff8216809203610abf5761010483858193819560e48401525af180156102705761025c5750f35b503461026d57602036600319011261026d57806111db611ce3565b6111e3611f2f565b6001600160a01b0316803b1561027b5781809160046040518094819363c9649aa960e01b83525af180156102705761025c5750f35b503461026d57602036600319011261026d5780611233611ce3565b61123b611f2f565b6001600160a01b0316803b1561027b578180916004604051809481936307b329df60e21b83525af180156102705761025c5750f35b503461026d578060031936011261026d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036112c85760206040515f5160206124685f395f51905f528152f35b63703e46dd60e11b8152600490fd5b503461026d57602036600319011261026d57806112f2611ce3565b6112fa61200d565b6001600160a01b0316803b1561027b578180916004604051809481936379ba509760e01b83525af180156102705761025c5750f35b50604036600319011261026d57611344611ce3565b906024356001600160401b03811161072357611364903690600401611e58565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611519575b5061150a576113a661200d565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa809585966114d6575b506113eb57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206124685f395f51905f5281036114c45750813b156114b2575f5160206124685f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2815183901561149857808360206107d895519101845af43d15611490573d9161147483611e07565b926114826040519485611d86565b83523d85602085013e612409565b606091612409565b505050346114a35780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611502575b816114f260209383611d86565b81010312610de25751945f6113d2565b3d91506114e5565b63703e46dd60e11b8252600482fd5b5f5160206124685f395f51905f52546001600160a01b0316141590505f611399565b503461026d578060031936011261026d5760206040517f395f08be531c0d7403cba7c5ffd2b57329184452bcebcd6a48299ebbbf39db6f8152f35b503461026d57604036600319011261026d57600490611593611cf9565b506370afd80760e11b8152fd5b503461026d57608036600319011261026d576004356001600160a01b038116919082900361026d576024356001600160401b038111610723576115e7903690600401611e76565b909260443560058110156107335760643590811515809203610de2577fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be676085525f5160206124885f395f51905f5260209081526040808720335f908152925290205460ff16156116d057823b15610de257604051637c0c263160e01b8152606060048201526064810185905260848101969094865b8181106116aa57505050918385818198819583976024840152604483015203925af180156102705761025c5750f35b909197602080600192838060a01b036116c28d611d25565b16815201990192910161167b565b63e2517d3f60e01b8552336004527fdc72ed553f2544c34465af23b847953efeb813428162d767f9ba5f4013be6760602452604485fd5b503461026d57604036600319011261026d576107d8600435611727611cf9565b9061174d6107b9825f525f5160206124885f395f51905f52602052600160405f20015490565b61229e565b503461026d57606036600319011261026d576004356001600160a01b038116919082900361026d57611782611cf9565b916044356001600160401b038111610737576117a2903690600401611e58565b927f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e383525f5160206124885f395f51905f526020526040832060018060a01b0333165f5260205260ff60405f20541615611837578293823b15610abf57610a329284928360405180968195829463278f794360e11b845260018060a01b03166004840152604060248401526044830190611cbf565b63e2517d3f60e01b8352336004527f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3602452604483fd5b503461026d57602036600319011261026d5760206118a66004355f525f5160206124885f395f51905f52602052600160405f20015490565b604051908152f35b503461026d57604036600319011261026d57806118c9611ce3565b6118d1611cf9565b906118da611f9e565b6001600160a01b031690813b1561043a5760405163102e79af60e21b81526001600160a01b0390911660048201529082908290602490829084905af180156102705761025c5750f35b503461026d57602036600319011261026d57806004356001600160a01b0381169081900361027b57611953611f2f565b803b1561027b578180916004604051809481936363f0438360e01b83525af180156102705761025c5750f35b503461026d5760a036600319011261026d57611999611ce3565b906119a2611cf9565b6060366043190112610723576040519260608401938085106001600160401b03861117611a695783946040526119d6611d0f565b81526119e0611da7565b92602082019384526119f0611dbd565b9260408301938452611a00611f9e565b6001600160a01b031690813b1561072f5760405163a0b4310960e01b81526001600160a01b03918216600482015292518116602484015293519093166044820152905163ffffffff1660648201529082908290608490829084905af180156102705761025c5750f35b634e487b7160e01b84526041600452602484fd5b503461026d57606036600319011261026d5780611a98611ce3565b611aa0611cf9565b611aa8611d39565b91611ab1611f2f565b6001600160a01b031691823b15610abf576040516358c9542560e11b81526001600160a01b03909216600483015215156024820152908290829081838160448101610a32565b503461026d57604036600319011261026d5780611b12611ce3565b611b1a611cf9565b90611b23611f2f565b6001600160a01b031690813b1561043a5760405163e90956cf60e01b81526001600160a01b0390911660048201529082908290602490829084905af180156102705761025c5750f35b503461026d578060031936011261026d57610bc5604051611b8e604082611d86565b60058152640322e302e360dc1b6020820152604051918291602083526020830190611cbf565b503461026d578060031936011261026d5760206040517f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef18152f35b503461026d57602036600319011261026d5760043563ffffffff60e01b811680910361072357602090637965db0b60e01b8114908115611c35575b506040519015158152f35b6301ffc9a760e01b14905082611c2a565b5034611cbb576020366003190112611cbb576004356001600160a01b03811690819003611cbb57611c75611f2f565b803b15611cbb575f80916004604051809481936386c058ed60e01b83525af18015611cb057611ca2575080f35b611cae91505f90611d86565b005b6040513d5f823e3d90fd5b5f80fd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b0382168203611cbb57565b602435906001600160a01b0382168203611cbb57565b604435906001600160a01b0382168203611cbb57565b35906001600160a01b0382168203611cbb57565b604435908115158203611cbb57565b602435908115158203611cbb57565b60c081019081106001600160401b03821117611d7257604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117611d7257604052565b606435906001600160a01b0382168203611cbb57565b6084359063ffffffff82168203611cbb57565b60c4359063ffffffff82168203611cbb57565b60e4359063ffffffff82168203611cbb57565b359063ffffffff82168203611cbb57565b6001600160401b038111611d7257601f01601f191660200190565b929192611e2e82611e07565b91611e3c6040519384611d86565b829481845281830111611cbb578281602093845f960137010152565b9080601f83011215611cbb57816020611e7393359101611e22565b90565b9181601f84011215611cbb578235916001600160401b038311611cbb576020808501948460051b010111611cbb57565b9190811015611eb65760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b0381168103611cbb5790565b9035601e1982360301811215611cbb5701602081359101916001600160401b038211611cbb578136038313611cbb57565b908060209392818452848401375f828201840152601f01601f1916010190565b335f9081527fa082ef6cf2c9f28dc83f4bda2c569305fa34bed6cff50d6bbc1bd98560ec0ebe602052604090205460ff1615611f6757565b63e2517d3f60e01b5f52336004527f31e0210044b4f6757ce6aa31f9c6e8d4896d24a755014887391a926c5224d95960245260445ffd5b335f9081527f0b45fb0a7d123af421db170fce034e3ce3a70e5f1150428004face1400c458f2602052604090205460ff1615611fd657565b63e2517d3f60e01b5f52336004527f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef160245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561204557565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527f4cb196788d36e873f40a57836610aa3788d78f92213caf5b14cbef3debc67d88602052604090205460ff161561209457565b63e2517d3f60e01b5f52336004527f3b49a237fe2d18fa4d9642b8a0e065923cceb71b797783b619a030a61d848bf060245260445ffd5b335f9081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561210357565b63e2517d3f60e01b5f52336004527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60245260445ffd5b335f9081527f39d1149e996200895cc6fe4e96a7f3ec55437d11db08dc08355f549a525399b4602052604090205460ff161561217257565b63e2517d3f60e01b5f52336004527f395f08be531c0d7403cba7c5ffd2b57329184452bcebcd6a48299ebbbf39db6f60245260445ffd5b5f8181525f5160206124885f395f51905f526020908152604080832033845290915290205460ff16156121d95750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16612299576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b5f8181525f5160206124885f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661233c575f8181525f5160206124885f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206124885f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561233c575f8181525f5160206124885f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f5160206124a85f395f51905f525460401c16156123fa57565b631afcd79f60e31b5f5260045ffd5b9061242d575080511561241e57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061245e575b61243e575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561243656fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204f65eba8df46ea649c559a3f0e4d9cb706b4f9447d1dbe46c261ef40593c9b6064736f6c634300081d0033