0 txs
0 calls
constructor
constructor(address _vaultLens, address _reulToken, address _pythOracle, address _governance)
functions
aprAfterDebtChange
viewfunction aprAfterDebtChange(address _strategy, int256 _delta) view returns (uint256 _apr)
EUL_TOKEN
viewfunction EUL_TOKEN() view returns (address)
eVaultApr
viewfunction eVaultApr(address _eVault, int256 _delta) view returns (uint256 _apr)
getRewardCampaigns
viewfunction getRewardCampaigns(address _vault, address _rewardToken) view returns (tuple[])
getTokenUsdPrice
viewfunction getTokenUsdPrice(address _token) view returns (uint256 price)
getTrackedVaults
viewfunction getTrackedVaults() view returns (address[])
getVaultRewardTokens
viewfunction getVaultRewardTokens(address _vault) view returns (address[])
governance
viewfunction governance() view returns (address)
name
viewfunction name() view returns (string)
PYTH_ORACLE
viewfunction PYTH_ORACLE() view returns (address)
REUL_TOKEN
viewfunction REUL_TOKEN() view returns (address)
rewardUsdApr
viewfunction rewardUsdApr(address _eVault, int256 _delta) view returns (uint256 _usdApr)
tokenInfo
viewfunction tokenInfo(address) view returns (address priceFeed, bytes32 pythPriceFeedId, uint256 manualPrice, uint8 decimals)
addRewardCampaigns
nonpayablefunction addRewardCampaigns(address[] _vaults, address[] _rewardTokens, tuple[] _rewardCampaignsArr)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
reepStaleCampaigns
nonpayablefunction reepStaleCampaigns(address[] _vaults)
removeRewardCampaigns
nonpayablefunction removeRewardCampaigns(address[] _vaults, address[] _rewardTokens, tuple[] _rewardCampaignsArr)
setTokenInfo
nonpayablefunction setTokenInfo(address[] _tokens, tuple[] _tokenInfoArr)
transferGovernance
nonpayablefunction transferGovernance(address _newGovernance)
events
GovernanceTransferred
event GovernanceTransferred(address indexed previousGovernance, address indexed newGovernance)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
FailedCall
error FailedCall()
creation bytecode
0x61010060409080825234620001f05760808162002f4280380380916200002682856200026a565b833981010312620001f0576200003c816200028e565b9060206200004c8183016200028e565b6200006760606200005f8786016200028e565b94016200028e565b8551909490808701906001600160401b038211818310176200025657908752601981527f45756c657220537472617465677920417072204f7261636c65000000000000009084019081525f80546001600160a01b0319166001600160a01b039788169081178255919391907f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce808180a36001918254928084811c941680156200024b575b868510146200023757879484601f88961162000206575b505166ffffffffffffff19166032179055831660805260a08190528651636f307dc360e01b81529283916004918391165afa918215620001fc575f92620001ba575b505060c0521660e05251612c9e9081620002a4823960805181611f08015260a051818181610984015281816117af0152612a79015260c0518181816102d4015261187c015260e0518181816112dc01526124080152f35b90809250813d8311620001f4575b620001d481836200026a565b81010312620001f057620001e8906200028e565b5f8062000163565b5f80fd5b503d620001c8565b85513d5f823e3d90fd5b825f52601f865f20910160051c8101905b81811062000226575062000121565b5f81558a9750889650830162000217565b634e487b7160e01b5f52602260045260245ffd5b93607f16936200010a565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176200025657604052565b51906001600160a01b0382168203620001f05756fe604060808152600480361015610013575f80fd5b5f3560e01c908162593bcf1461146457816306fdde03146113005781630977e8111461129257816326123f65146111075781632d9e85bd1461100a57816347ec296e14610e9b578163496bbd5a14610e555781635aa6e67514610e0457816364a741c414610d70578163673a00e214610b4557816378528f49146109a85781638677c1e51461093a5781638cea05331461064f5781639b6cd66314610602578163ac9650d8146103a7578163b70bc3b5146102f8578163cd4fd7bd1461028a578163d38bfff41461017a575063f5dab711146100ed575f80fd5b346101765760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765760809073ffffffffffffffffffffffffffffffffffffffff908161013e6114a7565b165f526002602052805f20918254169160018101549160ff600360028401549301541692815194855260208501528301526060820152f35b5f80fd5b9050346101765760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176576101b36114a7565b906101bc61260d565b73ffffffffffffffffffffffffffffffffffffffff80921692831561022d5750505f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce805f80a3005b90602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600c60248201527f5a45524f204144445245535300000000000000000000000000000000000000006044820152fd5b8234610176575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8234610176576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765773ffffffffffffffffffffffffffffffffffffffff6103466114a7565b165f526006602052815f209180519182602085549182815201945f5260205f20915f905b8282106103905761038c8686610382828b038361154b565b51918291826116c3565b0390f35b83548752958601956001938401939091019061036a565b90503461017657602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765767ffffffffffffffff8135818111610176576103f990369084016115f0565b909285519285840191848310828411176105d657508187525f845261041d836118a7565b9461042a8851968761154b565b8386527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610457856118a7565b01875f5b8281106105c6575050505f5b8481106104e857888888825191808301818452825180915281858501958260051b8601019301915f955b82871061049e5785850386f35b9091929382806104d8837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a6001960301865288516115ad565b9601920196019592919092610491565b8060051b8201357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe183360301811215610176578201908135918483116101765789018236038113610176578a5f806105a1936105656105718f6001998f8e895195838794868601998a37840191858301938a85525193849161158c565b0103808452018261154b565b5190305af43d156105bd573d61059261058982611c99565b9351938461154b565b82523d5f8d84013e5b30612bc8565b6105ab828a611917565b526105b68189611917565b5001610467565b6060915061059b565b606082828b01015201889061045b565b6041907f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b823461017657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765760209061064861063f6114a7565b60243590611d56565b9051908152f35b823461017657602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765767ffffffffffffffff908335828111610176576106a490939293369086016115f0565b9390926106af61260d565b5f945b8086106106bb57005b73ffffffffffffffffffffffffffffffffffffffff806106e46106df89858a6119eb565b6119fb565b16956106fb875f52600560205260405f2054151590565b1561092d57865f5260068452855f2092835491610717836118a7565b926107248951948561154b565b808452610730816118a7565b957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080970136898701375f5b82811061090657505050905f915b83518310156108f2578461077e8486611917565b5116928a5f5260038852895f20845f528852895f20938454946107a0866118a7565b956107ad8d51978861154b565b808752896107ba826118a7565b01368c8901375f915f5b82811061085a575050508c5f5260038a528b5f20825f528a528b5f20905f5b81811061083c5750506001939495505415610802575b5001919061076a565b610815908c5f5260068a528b5f20612926565b508a5f5260068852895f20541561082d575b8d6107f9565b6108368b612800565b50610827565b8061085361084c6001938b611917565b5185612926565b50016107e3565b8d61086582846127eb565b90549060031b1c908160801c164211610882575b506001016107c4565b61088f858b969396611917565b527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108c35760018091019390610879565b50505060118f7f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b99935097505050600191505b0194936106b2565b8087610914600193856127eb565b90549060031b1c166109268289611917565b520161075c565b96905060019195506108fe565b8234610176575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b90503461017657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765767ffffffffffffffff908035828111610176576109f890369083016115f0565b6024949194926024359085821161017657366023830112156101765781810135958611610176576007903660248860071b8501011161017657610a3961260d565b610a44878514611986565b5f5b848110610a4f57005b87811015610b1a5780831b84019060846003878c610a876106df8673ffffffffffffffffffffffffffffffffffffffff9485946119eb565b165f526002806020528a5f2091610a9f8d88016119fb565b167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825560448601356001830155606486013590820155019201359160ff8316809303610176576001927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905501610a46565b866032837f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b90503461017657610b5536611621565b9592949093610b6261260d565b82811480610d67575b610b7490611986565b5f5b818110610b7f57005b610b8d6106df8284866119eb565b610b9b6106df83878b6119eb565b90610baf610baa848c8b611a1c565b611a41565b67ffffffffffffffff918282511660209384840151161115610d0b576fffffffffffffffffffffffffffffffff8d8301511615610caf5792610ca892610c928e93610c2c6001989773ffffffffffffffffffffffffffffffffffffffff80911696610c1988612b23565b50875f52600686525f2095168095612b76565b506fffffffffffffffffffffffffffffffff60407fffffffffffffffff000000000000000000000000000000000000000000000000835160c01b1677ffffffffffffffff00000000000000000000000000000000602085015160801b1617920151161790565b925f52600381528d5f20915f52528b5f20612b76565b5001610b76565b606489848f51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600b60248201527f7a65726f20616d6f756e740000000000000000000000000000000000000000006044820152fd5b606489848f51917f08c379a0000000000000000000000000000000000000000000000000000000008352820152600e60248201527f696e76616c69642074696d696e670000000000000000000000000000000000006044820152fd5b50808714610b6b565b8234610176575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176578051908183548082526020809201945f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b828210610ded5761038c8686610382828b038361154b565b835487529586019560019384019390910190610dd5565b8234610176575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765760209073ffffffffffffffffffffffffffffffffffffffff5f54169051908152f35b823461017657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017657602090610648610e926114a7565b60243590611ac6565b823461017657610eaa36611621565b9091610eb89693949661260d565b80871480611001575b610eca90611986565b5f5b878110610ed557005b80610ee66106df6001938b8b6119eb565b610ef46106df83868b6119eb565b610f6a610f05610baa85898b611a1c565b6fffffffffffffffffffffffffffffffff60407fffffffffffffffff000000000000000000000000000000000000000000000000835160c01b1677ffffffffffffffff00000000000000000000000000000000602085015160801b1617920151161790565b9173ffffffffffffffffffffffffffffffffffffffff80911692835f52610fa66003916020938385528c5f20951694855f5284528b5f20612926565b50835f528152885f20825f528152885f205415610fc7575b50505001610ecc565b825f52610fdb6006928383528a5f20612926565b50825f5252865f205415610ff1575b8080610fbe565b610ffa90612800565b5089610fea565b50868214610ec1565b823461017657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765773ffffffffffffffffffffffffffffffffffffffff60206110586114a7565b602435948451809481937ffbfa77cf000000000000000000000000000000000000000000000000000000008352165afa9081156110fd575f916110b7575b50806110b1846110ab60209661064895611d56565b92611ac6565b9061194c565b90506020813d6020116110f5575b816110d26020938361154b565b81010312610176576020926110b16110ec6106489361192b565b92505092611096565b3d91506110c5565b82513d5f823e3d90fd5b823461017657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101765761113e6114a7565b6024359073ffffffffffffffffffffffffffffffffffffffff9081831680930361017657165f52600360209160038352835f20905f528252825f2090815490611186826118a7565b926111938651948561154b565b8284527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06111c0846118a7565b01855f5b82811061127c575050505f5b83811061124557505050508251918083018184528251809152818585019301915f5b8281106111ff5785850386f35b8351805167ffffffffffffffff90811687528184015116868401528701516fffffffffffffffffffffffffffffffff1687860152606090940193928101926001016111f2565b80611260611255600193856127eb565b905490861b1c6125d1565b61126a8288611917565b526112758187611917565b50016111d0565b6112846118bf565b8282890101520186906111c4565b8234610176575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8234610176575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176578051905f90600191600154928360011c906001851694851561145a575b602095868410811461142e578388528794939291879082156113ee575050600114611393575b505061038c929161138491038561154b565b519282849384528301906115ad565b9085925060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f925b8284106113d65750505082010181611384611372565b8054848a0186015288955087949093019281016113c0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168682015292151560051b850190920192508391506113849050611372565b6022897f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b91607f169161134c565b82346101765760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610176576020906106486114a26114a7565b611796565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361017657565b6080810190811067ffffffffffffffff8211176114e657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff8211176114e657604052565b6040810190811067ffffffffffffffff8211176114e657604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176114e657604052565b5f5b83811061159d5750505f910152565b818101518382015260200161158e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936115e98151809281875287808801910161158c565b0116010190565b9181601f840112156101765782359167ffffffffffffffff8311610176576020808501948460051b01011161017657565b9060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126101765767ffffffffffffffff90600435828111610176578361166d916004016115f0565b939093926024358181116101765782611688916004016115f0565b939093926044359083821161017657806023830112156101765781600401359384116101765760246060850283010111610176576024019190565b60209060206040818301928281528551809452019301915f5b8281106116ea575050505090565b835173ffffffffffffffffffffffffffffffffffffffff16855293810193928101926001016116dc565b811561171e570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90604051611758816114ca565b606060ff6003839573ffffffffffffffffffffffffffffffffffffffff81541685526001810154602086015260028101546040860152015416910152565b73ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001682821614611875576118026118079173ffffffffffffffffffffffffffffffffffffffff165f52600260205260405f2090565b61174b565b9060408201518061186f5750815173ffffffffffffffffffffffffffffffffffffffff16908116611856575b506020015180611843575b505f90565b61184c906123b9565b801561183e575b90565b61185f90612276565b908161186b5790611833565b5090565b91505090565b50506118a07f0000000000000000000000000000000000000000000000000000000000000000611796565b6005900490565b67ffffffffffffffff81116114e65760051b60200190565b604051906118cc82611513565b5f6040838281528260208201520152565b8051156118ea5760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b80518210156118ea5760209160051b010190565b519073ffffffffffffffffffffffffffffffffffffffff8216820361017657565b9190820180921161195957565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b1561198d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6c656e677468206d69736d6174636800000000000000000000000000000000006044820152fd5b91908110156118ea5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036101765790565b91908110156118ea576060020190565b359067ffffffffffffffff8216820361017657565b606081360312610176576040805191611a5983611513565b611a6281611a2c565b8352611a7060208201611a2c565b602084015201356fffffffffffffffffffffffffffffffff8116810361017657604082015290565b9190915f838201938412911290801582169115161761195957565b8181029291811591840414171561195957565b9190915f9273ffffffffffffffffffffffffffffffffffffffff9182811691611afa835f52600560205260405f2054151590565b15611c9057604051907f38d52e0f0000000000000000000000000000000000000000000000000000000082526020918281600481885afa8015611c44575f90611c5a575b611b489150611796565b908115611c4f576040517f01e1d1140000000000000000000000000000000000000000000000000000000081528381600481895afa908115611c44575f91611c13575b5091611ba3611ba892670de0b6b3a764000094611a98565b611ab3565b04928315611c0957906006915f949394525260405f20915f938354935b848610611bd457505050505050565b909192939496611bfd6001916110b18786611bef8d886127eb565b90549060031b1c168861268b565b97019493929190611bc5565b505f955050505050565b9290508383813d8311611c3d575b611c2b818361154b565b81010312610176579151611ba3611b8b565b503d611c21565b6040513d5f823e3d90fd5b505f96505050505050565b508281813d8311611c89575b611c70818361154b565b8101031261017657611c84611b489161192b565b611b3e565b503d611c66565b505f9450505050565b67ffffffffffffffff81116114e657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610176578051611ce981611c99565b92611cf7604051948561154b565b8184526020828401011161017657611853916020808501910161158c565b519060ff8216820361017657565b9081518082526020808093019301915f5b828110611d42575050505090565b835185529381019392810192600101611d34565b9060405191611d648361152f565b600183526020368185013773ffffffffffffffffffffffffffffffffffffffff809116916040517f961be391000000000000000000000000000000000000000000000000000000008152602081600481875afa908115611c44575f9161221c575b50611dcf856118dd565b52611dd9846118dd565b517f8000000000000000000000000000000000000000000000000000000000000000821461195957815f03136121be57611e1c90611e16856118dd565b51611a98565b611e25846118dd565b5260405192611e338461152f565b60018452602036818601376040517f47bd3718000000000000000000000000000000000000000000000000000000008152602081600481875afa908115611c44575f91612186575b50905f93611ed49392611e8d876118dd565b52611f04604051968795869485947fd1dc6e3b0000000000000000000000000000000000000000000000000000000086526004860152606060248601526064850190611d23565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc848303016044850152611d23565b03917f0000000000000000000000000000000000000000000000000000000000000000165afa908115611c44575f91611f53575b506080611f4c81633b9aca009301516118dd565b5101510490565b90503d805f833e611f64818361154b565b602082828101031261017657815167ffffffffffffffff81116101765760c08184018385010312610176576040519060c0820182811067ffffffffffffffff8211176114e6576040528084015180151581036101765782526020818501015167ffffffffffffffff811161017657611fe3908486019083870101611cd3565b6020830152611ff660408286010161192b565b604083015261200960608286010161192b565b6060830152608080828601015167ffffffffffffffff81116101765782860101848601601f82011215610176578051612041816118a7565b9261204f604051948561154b565b8184526020840192878901602060a0850283010111610176579260208401935b602060a08502820101851061211a575050505050608083015260a081850101519067ffffffffffffffff82116101765784010191606083828601031261017657604051916120bc83611513565b6120c58461192b565b83526120d360208501611d15565b602084015260408401519267ffffffffffffffff841161017657612107608095611f4c958795633b9aca0099019101611cd3565b604082015260a082015293505050611f38565b60a0858a8c010312610176576040518060a081011067ffffffffffffffff60a0830111176114e65760a060208094838380950160405289518152828a01518382015260408a0151604082015260608a01516060820152878a01518882015281520196019592505061206f565b929190506020833d6020116121b6575b816121a36020938361154b565b810103126101765791519091905f611e7b565b3d9150612196565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f64656c746120746f6f20626967000000000000000000000000000000000000006044820152fd5b90506020813d602011612246575b816122376020938361154b565b8101031261017657515f611dc5565b3d915061222a565b519069ffffffffffffffffffff8216820361017657565b60ff16604d811161195957600a0a90565b604051907ffeaf968c00000000000000000000000000000000000000000000000000000000825260a08260048173ffffffffffffffffffffffffffffffffffffffff85165afa5f9281612356575b506122cf5750505f90565b5f821315612350576122e260ff91612720565b16601281101561230a576012039060ff82116119595761230461185392612265565b90611ab3565b601281111561186b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee019060ff82116119595761234a61185392612265565b90611714565b50505f90565b90925060a0813d60a01161239d575b8161237260a0938361154b565b81010312610176576123838161224e565b5061239560806020830151920161224e565b50915f6122c4565b3d9150612365565b63ffffffff16604d811161195957600a0a90565b801561183e57604051907f96834ad3000000000000000000000000000000000000000000000000000000008252600482015260808160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa5f9181612549575b5061243c57505f90565b8051908160070b905f821380159061253d575b6125365760400151915f8360030b92125f1461246c575050505f90565b67ffffffffffffffff16915f82121561251657507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000081146119595763ffffffff91905f0382168060128110156124d3575060120391821161195957612304611853926123a5565b60121015612510577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee019182116119595761234a611853926123a5565b50905090565b601263ffffffff91821601929150821161195957612304611853926123a5565b5050505f90565b5060608101511561244f565b9091506080813d6080116125c9575b816125656080938361154b565b81010312610176576040519061257a826114ca565b80518060070b8103610176578252602081015167ffffffffffffffff811681036101765760208301526040810151908160030b820361017657606091604084015201516060820152905f612432565b3d9150612558565b6fffffffffffffffffffffffffffffffff6125ea6118bf565b918060c01c835267ffffffffffffffff8160801c16602084015216604082015290565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361262d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21676f7665726e616e63650000000000000000000000000000000000000000006044820152fd5b92915f9361269883611796565b8015611c9057919073ffffffffffffffffffffffffffffffffffffffff8091165f52600390600360205260405f209085165f5260205260405f20925f948454945b8587106126e95750505050505050565b909192939495976127136001916110b18886886127068f896127eb565b90544293918d1b1c6129f6565b98019594939291906126d9565b602073ffffffffffffffffffffffffffffffffffffffff916004604051809481937f313ce567000000000000000000000000000000000000000000000000000000008352165afa5f918161277a575b506118535750600890565b9091506020813d6020116127ae575b816127966020938361154b565b81010312610176576127a790611d15565b905f61276f565b3d9150612789565b6004548110156118ea5760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b80548210156118ea575f5260205f2001905f90565b5f818152600560205260409020548015612350577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908181018181116119595760045490838201918211611959578181036128bd575b50505060045480156128905781019061286e826127b6565b909182549160031b1b191690556004555f5260056020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b6129106128cc6128db936127b6565b90549060031b1c9283926127b6565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90555f52600560205260405f20555f8080612856565b906001820191815f528260205260405f2054908115155f146129ee577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9182810181811161195957825490848201918211611959578181036129b9575b505050805480156128905782019161299b83836127eb565b909182549160031b1b19169055555f526020525f6040812055600190565b6129d96129c96128db93866127eb565b90549060031b1c928392866127eb565b90555f528460205260405f20555f8080612983565b505050505f90565b612a0390939192936125d1565b9267ffffffffffffffff91826020860151169080821190811591612b16575b50612b0c5782855116900382811161195957612ab9946fffffffffffffffffffffffffffffffff6040612a5d95611ba3941692015116611714565b9073ffffffffffffffffffffffffffffffffffffffff908116907f0000000000000000000000000000000000000000000000000000000000000000168114612afc575f52600260205261234a60ff600360405f20015416612265565b906301e1338091828102928184041481151715611959576a1a1601fc4ea7109e0000000291808304670de0b6b3a764000014901517156119595761185391611714565b50670de0b6b3a764000090611714565b5050505050505f90565b905083865116115f612a22565b805f52600560205260405f2054155f1461183e57600454680100000000000000008110156114e657612b5f6128db8260018594016004556127b6565b9055600454905f52600560205260405f2055600190565b6001810190825f528160205260405f2054155f14612536578054680100000000000000008110156114e657612bb56128db8260018794018555846127eb565b905554915f5260205260405f2055600190565b90612c075750805115612bdd57805190602001fd5b60046040517fd6bda275000000000000000000000000000000000000000000000000000000008152fd5b81511580612c5f575b612c18575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15612c1056fea2646970667358221220a85889d6e132e593b2875c594003be630554bfc2e46358068294a5c96d43631664736f6c63430008170033000000000000000000000000ccc8d18e40c439f5234042fbea0f4f1528f52f00000000000000000000000000e08e1f00d388e201e48842e53fa96195568e68130000000000000000000000008250f4af4b972684f7b336503e2d6dfedeb1487a000000000000000000000000787aba336583f4a1d4f8cbbfdffd49f3a38de665