0 txs
27 calls
constructor
No constructor.
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DEPLOYER_ROLE
viewfunction DEPLOYER_ROLE() view returns (bytes32)
getArtifactAddresses
viewfunction getArtifactAddresses() view returns (address[])
getArtifactByAddress
viewfunction getArtifactByAddress(address artifactAddress) view returns (tuple)
getArtifactsAmount
viewfunction getArtifactsAmount() view returns (uint256)
getEOMultiFeedAdapterImplementation
viewfunction getEOMultiFeedAdapterImplementation() view returns (address)
getEOPendlePTFeedLinearDiscountImplementation
viewfunction getEOPendlePTFeedLinearDiscountImplementation() view returns (address)
getEOPendlePTFeedTWAPImplementation
viewfunction getEOPendlePTFeedTWAPImplementation() view returns (address)
getEOSpectraPTFeedImplementation
viewfunction getEOSpectraPTFeedImplementation() view returns (address)
getMorphoFactory
viewfunction getMorphoFactory() view returns (address)
getPendlePTOracle
viewfunction getPendlePTOracle() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addArtifact
nonpayablefunction addArtifact(address artifactAddress, string desc, uint8 artifactType, address deployer)
createEOMultiFeedAdapter
nonpayablefunction createEOMultiFeedAdapter(tuple[] baseFeeds, tuple[] quoteFeeds, uint8 outputDecimals, string description) returns (address)
createMorphoOracle
nonpayablefunction createMorphoOracle(address baseVault, address baseFeed1, address baseFeed2, address quoteFeed1, uint8 baseTokenDecimals, uint8 quoteTokenDecimals, string desc) returns (address)
createPendlePTFeedLinearDiscount
nonpayablefunction createPendlePTFeedLinearDiscount(address ptToken, string desc, uint256 baseDiscountPerYear) returns (address)
createPendlePTFeedTWAP
nonpayablefunction createPendlePTFeedTWAP(address ptMarket, string desc, uint32 twapDuration, uint8 twapType) returns (address)
createSpectraPTFeed
nonpayablefunction createSpectraPTFeed(address ptToken, string desc, uint256 baseDiscountPerYear, uint8 discountType) returns (address)
deleteArtifact
nonpayablefunction deleteArtifact(address artifactAddress)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address eoPendlePTFeedTWAPImplementation, address eoPendlePTFeedLinearDiscountImplementation, address eoSpectraPTFeedImplementation, address eoMultiFeedAdapterImplementation, address morphoFactory, address ptOracle, address owner, address deployer)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setEOMultiFeedAdapterImplementation
nonpayablefunction setEOMultiFeedAdapterImplementation(address eoMultiFeedAdapterImplementation)
setEOPendlePTFeedLinearDiscountImplementation
nonpayablefunction setEOPendlePTFeedLinearDiscountImplementation(address eoPendlePTFeedLinearDiscountImplementation)
setEOPendlePTFeedTWAPImplementation
nonpayablefunction setEOPendlePTFeedTWAPImplementation(address eoPendlePTFeedTWAPImplementation)
setEOSpectraPTFeedImplementation
nonpayablefunction setEOSpectraPTFeedImplementation(address eoSpectraPTFeedImplementation)
setMorphoFactory
nonpayablefunction setMorphoFactory(address morphoFactory)
setPendlePTOracle
nonpayablefunction setPendlePTOracle(address pendlePTOracle)
events
EOMultiFeedAdapterImplementationSet
event EOMultiFeedAdapterImplementationSet(address indexed eoMultiFeedAdapterImplementation)
EOPendlePTFeedLinearDiscountImplementationSet
event EOPendlePTFeedLinearDiscountImplementationSet(address indexed eoPendlePTFeedLinearDiscountImplementation)
EOPendlePTFeedTWAPImplementationSet
event EOPendlePTFeedTWAPImplementationSet(address indexed eoPendlePTFeedTWAPImplementation)
EOSpectraPTFeedImplementationSet
event EOSpectraPTFeedImplementationSet(address indexed eoSpectraPTFeedImplementation)
Initialized
event Initialized(uint64 version)
MorphoFactorySet
event MorphoFactorySet(address indexed morphoFactory)
MorphoOracleCreated
event MorphoOracleCreated(address indexed oracle, address deployer)
MultiFeedAdapterCreated
event MultiFeedAdapterCreated(address indexed feed, address deployer)
PendlePTLinearDiscountFeedCreated
event PendlePTLinearDiscountFeedCreated(address indexed feed, address deployer)
PendlePTOracleSet
event PendlePTOracleSet(address indexed ptOracle)
PendlePTTWAPFeedCreated
event PendlePTTWAPFeedCreated(address indexed feed, uint8 twapType, address deployer)
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)
SpectraPTFeedCreated
event SpectraPTFeedCreated(address indexed feed, uint8 discountType, address deployer)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
DeployerZeroAddress
error DeployerZeroAddress()
EOMultiFeedAdapterImplementationZeroAddress
error EOMultiFeedAdapterImplementationZeroAddress()
EOPendlePTFeedLinearDiscountImplementationZeroAddress
error EOPendlePTFeedLinearDiscountImplementationZeroAddress()
EOPendlePTFeedTWAPImplementationZeroAddress
error EOPendlePTFeedTWAPImplementationZeroAddress()
EOSpectraPTFeedImplementationZeroAddress
error EOSpectraPTFeedImplementationZeroAddress()
ERC1167FailedCreateClone
error ERC1167FailedCreateClone()
InvalidInitialization
error InvalidInitialization()
MorphoFactoryZeroAddress
error MorphoFactoryZeroAddress()
NotInitializing
error NotInitializing()
OwnerZeroAddress
error OwnerZeroAddress()
PendlePTOracleZeroAddress
error PendlePTOracleZeroAddress()
creation bytecode
0x6080806040523460155761292b908161001a8239f35b5f80fdfe6080604081815260049182361015610015575f80fd5b5f925f3560e01c91826301ffc9a714611ab9575081630baed9e9146118fb57816319943ae4146116e5578163248a9ca31461169c5781632f2ff15d1461167457816336568abe1461160a57816343217c59146115e15781634a0772aa146115ad5781635c251be51461157957816366ff912c146114dc578163670c3bdd146114a957816380dc4b8b1461147557816383cb26fe1461145157816383e369fc1461142d5781638525e2ee1461140957816386bacdb8146113435781638a29e2de146110905781638f5173b614610dcf57816391d1485414610d5e578163a217fddf14610d44578163b105964314610d1b578163b208514b14610b90578163b95558d914610b72578163bd445dbd14610b49578163cd8e798214610b15578163d547741f14610aba578163d671449f1461069b578163d7546bae1461034a578163ecd002611461030f578163f85890da146101ae575063fdcc5f0f14610177575f80fd5b346101aa57816003193601126101aa5760209073ffffffffffffffffffffffffffffffffffffffff600854169051908152f35b5080fd5b8383346101aa5760606003193601126101aa576101c9611b56565b9160243567ffffffffffffffff81116101aa576101e99036908601611c49565b906101f2611e52565b73ffffffffffffffffffffffffffffffffffffffff93846006541680156102e75761021c90611f93565b9585871695863b156102e3578551927f8dac9bbc00000000000000000000000000000000000000000000000000000000845216908201526060602482015281818061026a6064820187611c9f565b6044356044830152038183895af180156102d9576102c2575b50506020936102bc91847f2dfc3469dcf10b589544c2aac0192c99266145f6dc03b1f53dc770b01614df38878651338152a23391612034565b51908152f35b6102cc8291611be2565b6102d65780610283565b80fd5b84513d84823e3d90fd5b8380fd5b8685517f08b6256b000000000000000000000000000000000000000000000000000000008152fd5b5050346101aa57816003193601126101aa57602090517ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c8152f35b9190503461066f5760031960808136011261066f5767ffffffffffffffff92803584811161066f5761037f9036908301611cc4565b9360243581811161066f576103979036908401611cc4565b6044359360ff851680950361066f5760643583811161066f576103bd9036908601611c49565b946103c6611e52565b73ffffffffffffffffffffffffffffffffffffffff80600854168015610673576103ef90611f93565b1697883b1561066f5761046361043e925f9461044e8b5197889687967ffc8636be00000000000000000000000000000000000000000000000000000000885260808d8901526084880190611df1565b9083878303016024880152611df1565b91604485015283820301606484015288611c9f565b0381838a5af1801561066557610652575b50835195338752857f25cb6ab4d676eacf0a1b262c7d414e841460d951d330b13c1ff14cc2350bb48660208099a28451936104ae85611c0a565b8452868401936002855285810192338452878352600289528683209151805191821161063f576104de8354611dad565b601f8111610606575b508990601f83116001146105a157918061051992600195948792610596575b50505f198260011b9260031b1c19161790565b81555b01935192808410156105835750507fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008554935160081b16931691161717905561057c826127d1565b5051908152f35b906021602492634e487b7160e01b835252fd5b015190505f80610506565b8385528a85209190601f198416865b8d8282106105f05750509160019594929183879593106105d8575b505050811b01815561051c565b01515f1960f88460031b161c191690555f80806105cb565b60018596829396860151815501950193016105b0565b61062f908486528b8620601f850160051c8101918d8610610635575b601f0160051c019061201e565b5f6104e7565b9091508190610622565b602484604188634e487b7160e01b835252fd5b61065d919650611be2565b5f945f610474565b85513d5f823e3d90fd5b5f80fd5b8689517f770a5553000000000000000000000000000000000000000000000000000000008152fd5b823461066f5760e060031936011261066f576106b5611b56565b906106be611b9c565b916106c7611bbf565b936106d0611b79565b60843560ff811680910361066f5760a4359560ff871680970361066f5767ffffffffffffffff9460c43586811161066f5761070e9036908701611c49565b97610717611e52565b73ffffffffffffffffffffffffffffffffffffffff93845f5416928315610a92578516938415610a865789517f313ce5670000000000000000000000000000000000000000000000000000000081526020818a81895afa8015610a7c575f90610a3f575b60ff915016604d8111610a2c579b8680925f9e600a0a5b8d51987fb32cddf4000000000000000000000000000000000000000000000000000000008a528c8a0152602489015216604487015216606485015260848401528960a484015283600195600160c48601521660e48401528961010484015261012483015288610144830152816101648160209b8c945af1908115610a22575f916109ec575b50169484519061082682611c0a565b8152868101936003855285820192338452875f5260028952865f20925180519283116109d9576108568454611dad565b601f81116109ab575b508991601f84116001146109415750918061089192600195945f926109365750505f198260011b9260031b1c19161790565b81555b019251918083101561092357507fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008554935160081b1693169116171790556108f3826127d1565b50817f94db49514f0cf5d266b56d1f8d565491766c8a518dd70f1ae36b66f3b72816e6848351338152a251908152f35b602190634e487b7160e01b5f525260245ffd5b015190508b80610506565b9190601f198416855f528b5f20935f905b8d8383106109935750505091600195949291838795931061097b575b505050811b018155610894565b01515f1960f88460031b161c191690558a808061096e565b84860151875595810195948501949190910190610952565b6109d390855f528b5f20601f860160051c8101918d871061063557601f0160051c019061201e565b8a61085f565b604186634e487b7160e01b5f525260245ffd5b90508781813d8311610a1b575b610a038183611c26565b8101031261066f5751818116810361066f5788610817565b503d6109f9565b86513d5f823e3d90fd5b601189634e487b7160e01b5f525260245ffd5b506020813d602011610a74575b81610a5960209383611c26565b8101031261066f575160ff8116810361066f5760ff9061077b565b3d9150610a4c565b8b513d5f823e3d90fd5b5f9b8680926001610792565b878a517fa681d23d000000000000000000000000000000000000000000000000000000008152fd5b823461066f578060031936011261066f57610b139135610b0e6001610add611b9c565b93835f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020525f200154611f52565b612468565b005b823461066f575f60031936011261066f5760209073ffffffffffffffffffffffffffffffffffffffff600554169051908152f35b3461066f57602060031936011261066f57610b13610b65611b56565b610b6d611ee4565b6126bc565b823461066f575f60031936011261066f576020906003549051908152f35b823461066f5760208060031936011261066f57610bab611b56565b5f838051610bb881611c0a565b606081528285820152015273ffffffffffffffffffffffffffffffffffffffff8091165f5260028252825f2092805193610bf185611c0a565b81515f8254610bff81611dad565b90818452600190886001821691825f14610cdb575050600114610c99575b505090610c2f81600194930382611c26565b8652015490610c6a84860194610c4860ff851687611de5565b848388019460081c168452606083519782895251918801526080870190611c9f565b93519086821015610c8657858097500152511660608301520390f35b602187634e487b7160e01b5f525260245ffd5b848892959493505f52815f20945f915b818310610cc4575093945091925090820101610c2f82610c1d565b865485840185015295860195899390920191610ca9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168187015292151560051b85019092019250610c2f9150839050610c1d565b3461066f57602060031936011261066f57610b13610d37611b56565b610d3f611ee4565b612722565b823461066f575f60031936011261066f57602090515f8152f35b823461066f578060031936011261066f57602091610d7a611b9c565b90355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800835273ffffffffffffffffffffffffffffffffffffffff825f2091165f52825260ff815f20541690519015158152f35b823461066f57608060031936011261066f57610de9611b56565b906024359267ffffffffffffffff9384811161066f57610e0c9036908301611c49565b906064359460018087101561066f57610e23611e52565b73ffffffffffffffffffffffffffffffffffffffff958660075416801561106857610e4e8891611f93565b1696873b1561066f578651917f90db69670000000000000000000000000000000000000000000000000000000083521684820152608060248201525f8180610e996084820189611c9f565b6044356044830152610eae606483018d611da0565b0381838b5af18015610a2257611059575b50610ecc85518098611da0565b857ff937fc89bf034e068f1e3a97131790de63f3dbdd4e919120271bd817e463e3c586602099338b820152a2845193610f0485611c0a565b84528684019381855285810192338452875f5260028952865f20915180519182116109d957610f338354611dad565b601f811161102b575b508990601f8311600114610fcb57610f6992915f91836109365750505f198260011b9260031b1c19161790565b81555b019251918083101561092357507fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008554935160081b16931691161717905561057c826127d1565b8291601f1986941691855f528c5f20928d5f905b8282106110145750508411610ffc575b505050811b018155610f6c565b01515f1960f88460031b161c191690558a8080610fef565b83850151865589979095019493840193018e610fdf565b61105390845f528b5f20601f850160051c8101918d861061063557601f0160051c019061201e565b8a610f3c565b61106290611be2565b87610ebf565b8487517fe89b35bb000000000000000000000000000000000000000000000000000000008152fd5b90503461066f5761010060031936011261066f576110ac611b56565b906110b5611b9c565b6110bd611bbf565b6110c5611b79565b916084359473ffffffffffffffffffffffffffffffffffffffff95868116810361066f5760a43590878216820361066f5760c435978089169889810361066f5760e4359182169889830361066f578b997ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009b60ff8d54809d1c16159b8c67ffffffffffffffff82168015918261133b575b506001149081611331575b159081611328575b50611300578e8e828f60017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000060ff96161783556112cb575b5054901c16156112a3571561127b57156112545750936111f16111f6946111ec610d3f98956111e6610b6d966111e08b6111fb9f9e9c6111e0906121cd565b506122a8565b50612526565b61258a565b612656565b6125f0565b61120157005b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d291817fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff602093541690555160018152a1005b8b517f12cd6dbf000000000000000000000000000000000000000000000000000000008152fd5b508b517f12c44af2000000000000000000000000000000000000000000000000000000008152fd5b828e517fd7e6bcf8000000000000000000000000000000000000000000000000000000008152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000016680100000000000000011781555f6111a1565b838f517ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b9050155f611169565b303b159150611161565b91508e611156565b823461066f575f60031936011261066f5780519081600354908181526020809101809260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b905f5b8181106113f557505050846113a4910385611c26565b825181815293518185018190528493840192915f5b8281106113c857505050500390f35b835173ffffffffffffffffffffffffffffffffffffffff16855286955093810193928101926001016113b9565b82548452928401926001928301920161138e565b3461066f57602060031936011261066f57610b13611425611b56565b6111f1611ee4565b3461066f57602060031936011261066f57610b13611449611b56565b6111f6611ee4565b3461066f57602060031936011261066f57610b1361146d611b56565b6111ec611ee4565b823461066f575f60031936011261066f5760209073ffffffffffffffffffffffffffffffffffffffff600654169051908152f35b823461066f575f60031936011261066f5760209073ffffffffffffffffffffffffffffffffffffffff5f54169051908152f35b823461066f57602060031936011261066f57610b13905f600173ffffffffffffffffffffffffffffffffffffffff611512611b56565b61151a611ee4565b1692838352600260205282206115308154611dad565b8061153e575b50015561283f565b601f8111831461155357508281555b85611536565b8390828252611570601f60208420920160051c820185830161201e565b8183555561154d565b823461066f575f60031936011261066f5760209073ffffffffffffffffffffffffffffffffffffffff600754169051908152f35b823461066f575f60031936011261066f5760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b3461066f57602060031936011261066f57610b136115fd611b56565b611605611ee4565b612526565b823461066f578060031936011261066f57611623611b9c565b903373ffffffffffffffffffffffffffffffffffffffff83160361164c5750610b139135612468565b9050517f6697b232000000000000000000000000000000000000000000000000000000008152fd5b823461066f578060031936011261066f57610b1391356116976001610add611b9c565b6123a6565b823461066f57602060031936011261066f57602091355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680082526001815f2001549051908152f35b823461066f57608060031936011261066f576116ff611b56565b67ffffffffffffffff9060243582811161066f576117209036908601611c49565b604435928584101561066f57611734611b79565b61173c611ee4565b85519261174884611c0a565b835260209061175a8285019687611de5565b8684019473ffffffffffffffffffffffffffffffffffffffff80921686521695865f52600282525f20925180519283116118e8576117988454611dad565b601f81116118ba575b5081601f8411600114611852575091806117d292600195945f926118475750505f198260011b9260031b1c19161790565b81555b019151908482101561183457610b1394507fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008554935160081b1693169116171790556127d1565b602185634e487b7160e01b5f525260245ffd5b015190508980610506565b9190601f198416855f52835f20935f905b8282106118a257505091600195949291838795931061188a575b505050811b0181556117d5565b01515f1960f88460031b161c1916905588808061187d565b80600186978294978701518155019601940190611863565b6118e290855f52835f20601f860160051c81019185871061063557601f0160051c019061201e565b886117a1565b604188634e487b7160e01b5f525260245ffd5b90503461066f57608060031936011261066f57611916611b56565b60243567ffffffffffffffff811161066f576119359036908401611c49565b6044359163ffffffff831680930361066f5760643590600282101561066f5761195c611e52565b73ffffffffffffffffffffffffffffffffffffffff80600554168015611a9157816001541615611a695761198f90611f93565b9481861696826001541691883b1561066f575f938a5195869485947f05ca7e2a00000000000000000000000000000000000000000000000000000000865285015216602483015260a060448301526119ea60a4830188611c9f565b9060648301526119f986611d82565b856084830152038183895af18015610a22577f15ce7d3879fe7d7f8f648de3b1db0e4161a6379299190e2786c831014ec1a9688760209896946102bc96948994611a5a575b50815190611a4b81611d82565b8152338a820152a23391612034565b611a6390611be2565b8a611a3e565b8688517ff2d708dc000000000000000000000000000000000000000000000000000000008152fd5b8688517f3780d3fe000000000000000000000000000000000000000000000000000000008152fd5b903461066f57602060031936011261066f5735907fffffffff00000000000000000000000000000000000000000000000000000000821680920361066f57817f7965db0b0000000000000000000000000000000000000000000000000000000060209314908115611b2c575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483611b25565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361066f57565b6064359073ffffffffffffffffffffffffffffffffffffffff8216820361066f57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361066f57565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361066f57565b67ffffffffffffffff8111611bf657604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff821117611bf657604052565b90601f601f19910116810190811067ffffffffffffffff821117611bf657604052565b81601f8201121561066f5780359067ffffffffffffffff8211611bf65760405192611c7e6020601f19601f8601160185611c26565b8284526020838301011161066f57815f926020809301838601378301015290565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b81601f8201121561066f5767ffffffffffffffff9060208135838111611bf657604093845195611cf9848460051b0188611c26565b828752838088019360061b8601019481861161066f578401925b858410611d24575050505050505090565b868483031261066f5786519087820182811085821117611bf65788528435600281101561066f578252858501359073ffffffffffffffffffffffffffffffffffffffff8216820361066f57828792838b950152815201930192611d13565b60021115611d8c57565b634e487b7160e01b5f52602160045260245ffd5b906001821015611d8c5752565b90600182811c92168015611ddb575b6020831014611dc757565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611dbc565b6004821015611d8c5752565b9081518082526020808093019301915f5b828110611e10575050505090565b9091929382604060019273ffffffffffffffffffffffffffffffffffffffff8389518051611e3d81611d82565b84520151168382015201950193929101611e02565b335f9081527f8f7e9a8734279607aeaac474f24949ddc99eae25c0da72edcf5ad21022be2c9e60205260409020547ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c9060ff1615611ead5750565b604490604051907fe2517d3f0000000000000000000000000000000000000000000000000000000082523360048301526024820152fd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff1615611f1c57565b60446040517fe2517d3f0000000000000000000000000000000000000000000000000000000081523360048201525f6024820152fd5b805f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260405f20335f5260205260ff60405f20541615611ead5750565b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b17602052603760095ff09073ffffffffffffffffffffffffffffffffffffffff821615611ff457565b60046040517fc2f868f4000000000000000000000000000000000000000000000000000000008152fd5b818110612029575050565b5f815560010161201e565b916040519161204283611c0a565b8252602091828101915f8352604082019473ffffffffffffffffffffffffffffffffffffffff80921686521692835f526002815260405f2091519081519167ffffffffffffffff8311611bf6576120998454611dad565b601f811161219f575b5081601f8411600114612137575091806120d392600195945f926105965750505f198260011b9260031b1c19161790565b81555b0190516004811015611d8c57612134937fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008554935160081b1693169116171790556127d1565b50565b9190601f198416855f52835f20935f905b82821061218757505091600195949291838795931061216f575b505050811b0181556120d6565b01515f1960f88460031b161c191690555f8080612162565b80600186978294978701518155019601940190612148565b6121c790855f52835f20601f860160051c81019185871061063557601f0160051c019061201e565b5f6120a2565b73ffffffffffffffffffffffffffffffffffffffff165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020547f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009060ff166122a2575f805260205260405f20815f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905533905f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b73ffffffffffffffffffffffffffffffffffffffff165f8181527f8f7e9a8734279607aeaac474f24949ddc99eae25c0da72edcf5ad21022be2c9e60205260409020547ffc425f2263d0df187444b70e47283d622c70181c5baebb1306a01edba1ce184c91907f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009060ff1661239f57825f5260205260405f20815f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b90815f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268008060205273ffffffffffffffffffffffffffffffffffffffff60405f20921691825f5260205260ff60405f205416155f1461239f57825f5260205260405f20815f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b90815f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268008060205273ffffffffffffffffffffffffffffffffffffffff60405f20921691825f5260205260ff60405f2054165f1461239f57825f5260205260405f20815f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f557f617370f36178428dc875efb4aa5e95dbb46606559302417e0b4475ba443b7e055f80a2565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001557f068219f19fc412d19bac599fa894ef21d81187fc5fb5295836dbe550a0fa782d5f80a2565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060075416176007557fa073081e856a1645796380f42d2376db80bbf7a74c26c5727bac142518be55a75f80a2565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060055416176005557f0a8c19bc7c0b127e3883b70addea4575458158d29c8b8e4c5e9c3d459b4a043f5f80a2565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557f14fdc83e80828ef3a3a379fb06f66a1f3cb4a78ab7531bbfb6da8593e8b666b95f80a2565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fb70589d81e15282f77f73e27ba4c9484193ed1c8de2abc7de3124445ca3d5f155f80a2565b6003548110156127bd5760035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600460205260405f2054155f1461283a5760035468010000000000000000811015611bf65761282361280d826001859401600355612788565b81939154905f199060031b92831b921b19161790565b9055600354905f52600460205260405f2055600190565b505f90565b805f526004908160205260405f20548015155f1461239f575f199081810181811161290b57600354908382019182116128f8578181036128c5575b50505060035480156128b25781019061289282612788565b909182549160031b1b191690556003555f526020525f6040812055600190565b603184634e487b7160e01b5f525260245ffd5b6128e36128d461280d93612788565b90549060031b1c928392612788565b90555f528360205260405f20555f808061287a565b601186634e487b7160e01b5f525260245ffd5b601185634e487b7160e01b5f525260245ffdfea164736f6c6343000819000a