0 txs
0 calls
constructor
No constructor.
functions
claimed
viewfunction claimed(address, address) view returns (uint256)
config
viewfunction config() view returns (address creator, uint64 startTime, uint32 duration)
epoch
viewfunction epoch() view returns (uint64)
getRoleAccounts
viewfunction getRoleAccounts(bytes32 role) view returns (address[] accounts)
getTokens
viewfunction getTokens() view returns (address[])
gracePeriod
viewfunction gracePeriod() view returns (uint64)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
messageBus
viewfunction messageBus() view returns (address)
numRoleAccounts
viewfunction numRoleAccounts(bytes32 role) view returns (uint256)
owner
viewfunction owner() view returns (address)
roleAccounts
viewfunction roleAccounts(bytes32 role, uint256) view returns (address accounts)
roles
viewfunction roles(bytes32 role, address account) view returns (bool)
ROOT_UPDATER_ROLE
viewfunction ROOT_UPDATER_ROLE() view returns (bytes32)
submissionAddress
viewfunction submissionAddress() view returns (address)
submissionChainId
viewfunction submissionChainId() view returns (uint64)
tokenClaimedRewards
viewfunction tokenClaimedRewards(address) view returns (uint256)
topRoot
viewfunction topRoot() view returns (bytes32)
viewClaimedRewards
viewfunction viewClaimedRewards(address earner) view returns (tuple[])
claim
nonpayablefunction claim(address earner, uint256[] cumulativeAmounts, uint64 _epoch, bytes32[] proof)
claimWithRecipient
nonpayablefunction claimWithRecipient(address to, uint256[] cumulativeAmounts, uint64 _epoch, bytes32[] proof)
executeMessage
nonpayablefunction executeMessage(address _sender, uint64 _srcChainId, bytes _message, address) returns (uint8)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
grantRoles
nonpayablefunction grantRoles(bytes32 role, address[] accounts)
init
nonpayablefunction init(tuple cfg, address owner, address root_updater, address _messageBus, uint64 _submissionChainId, address _submissionAddress)
refund
nonpayablefunction refund()
renounceRole
nonpayablefunction renounceRole(bytes32 role)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
revokeRoles
nonpayablefunction revokeRoles(bytes32 role, address[] accounts)
setGracePeriod
nonpayablefunction setGracePeriod(uint64 _gracePeriod)
setMessageBus
nonpayablefunction setMessageBus(address _messageBus)
setSubmissionContract
nonpayablefunction setSubmissionContract(uint64 _submissionChainId, address _submissionAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateRoot
nonpayablefunction updateRoot(uint64 _epoch, bytes32 _topRoot)
events
GracePeriodUpdated
event GracePeriodUpdated(uint64 gracePeriod)
MessageBusUpdated
event MessageBusUpdated(address messageBus)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardsClaimed
event RewardsClaimed(address indexed earner, uint256[] newAmount, uint256[] cumulativeAmounts)
RoleGranted
event RoleGranted(bytes32 role, address account)
RoleRevoked
event RoleRevoked(bytes32 role, address account)
SubmissionContractUpdated
event SubmissionContractUpdated(uint64 submissionChainId, address submissionAddress)
TopRootUpdated
event TopRootUpdated(uint64 indexed epoch, bytes32 topRoot)
errors
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608080604052346073575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360038054600160a01b600160e01b0319166176a760a91b1790556126c890816100788239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630c9cbf0e1461176d5780630ec693ea14611710578063196f0f62146116a25780631b4fc38b146116855780632f2ff15d1461163f5780633d2339b1146116185780633fd36a3d1461154a578063547cad12146114b757806355a5133b146113fa578063590e1ae31461117f57806364e93a9f14610b1b5780636d88ec2c14610afd57806379502c5514610aae5780638bb9c5bf14610a915780638da5cb5b14610a5f578063900cf0cf14610a3857806391d14854146101845780639c649fdf146107f8578063a06db7dc146107ce578063a1a227fa1461079b578063a1b5ff0814610771578063aa6ca80814610756578063ac5bc061146105a7578063bc1bf14814610572578063c9daddad146104b8578063d547741f14610472578063d9ab2c5c14610438578063deb9a3a2146103ca578063e1ed0a8214610340578063ebc4524f146102fb578063f2fde38b14610215578063f6443091146101df5763f8fc08b914610184575f80fd5b346101db5760406003193601126101db5761019d6117fe565b6004355f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b5f80fd5b346101db575f6003193601126101db57602073ffffffffffffffffffffffffffffffffffffffff600a5460401c16604051908152f35b346101db5760206003193601126101db5761022e6117db565b61025073ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b73ffffffffffffffffffffffffffffffffffffffff8116156102775761027590612629565b005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b346101db5760206003193601126101db5773ffffffffffffffffffffffffffffffffffffffff6103296117db565b165f526007602052602060405f2054604051908152f35b346101db5760206003193601126101db576004355f52600260205260405f206040519081602082549182815201915f5260205f20905f5b81811061039e5761039a8561038e818703826118a2565b60405191829182611a6d565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201610377565b346101db576103d8366118fb565b6103fa73ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b5f5b8151811015610275578061043273ffffffffffffffffffffffffffffffffffffffff61042a60019486611b21565b511685611f70565b016103fc565b346101db575f6003193601126101db5760206040517fe844ed9e40aeb388cb97d2ef796e81de635718f440751efb46753791698f6bde8152f35b346101db5760406003193601126101db5761027561048e6117fe565b6104b073ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b600435611c75565b346101db5760406003193601126101db576104d161199d565b335f9081527fb144758eeb56710eff6a145d8babeeaa31da464f00a418b8dabebb1e3bbca10e602052604090205460ff16156105145761027590602435906125c3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f756e617574686f72697a656420726f6c650000000000000000000000000000006044820152fd5b346101db576102756105a0610598610589366119e5565b94969390929591953691611b78565b923691611b78565b92336121f9565b346101db5760206003193601126101db576105c06117db565b6105c8611bc4565b908151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061060f6105f9856118e3565b9461060760405196876118a2565b8086526118e3565b015f5b8181106107335750509073ffffffffffffffffffffffffffffffffffffffff5f9116905b82518110156106cc578073ffffffffffffffffffffffffffffffffffffffff61066160019386611b21565b5116835f52600660205260405f2073ffffffffffffffffffffffffffffffffffffffff8061068f8589611b21565b5116165f5260205260405f2054604051916106a983611886565b825260208201526106ba8287611b21565b526106c58186611b21565b5001610636565b836040518091602082016020835281518091526020604084019201905f5b8181106106f8575050500390f35b8251805173ffffffffffffffffffffffffffffffffffffffff16855260209081015181860152869550604090940193909201916001016106ea565b60209060405161074281611886565b5f81525f8382015282828801015201610612565b346101db575f6003193601126101db5761039a61038e611bc4565b346101db5760206003193601126101db576004355f526002602052602060405f2054604051908152f35b346101db575f6003193601126101db57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b346101db575f6003193601126101db57602067ffffffffffffffff60035460a01c16604051908152f35b346101db5760806003193601126101db576108116117db565b60243567ffffffffffffffff81168091036101db576044359167ffffffffffffffff83116101db57366023840112156101db57826004013567ffffffffffffffff81116101db578301913660248401116101db5761086d611821565b5073ffffffffffffffffffffffffffffffffffffffff6003541633036109da57600a549067ffffffffffffffff82160361097c5773ffffffffffffffffffffffffffffffffffffffff809160401c1691160361091e57604090829003126101db57602481013567ffffffffffffffff811681036101db5760446109139201359061090e67ffffffffffffffff6008541667ffffffffffffffff831611612161565b6125c3565b602060405160018152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f696e76616c696420736f7572636520636f6e74726163740000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c696420736f7572636520636861696e0000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f63616c6c6572206973206e6f74206d65737361676520627573000000000000006044820152fd5b346101db575f6003193601126101db57602067ffffffffffffffff60085416604051908152f35b346101db575f6003193601126101db57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101db5760206003193601126101db5761027533600435611c75565b346101db575f6003193601126101db5760606004546040519073ffffffffffffffffffffffffffffffffffffffff8116825267ffffffffffffffff8160a01c16602083015260e01c6040820152f35b346101db57610275610b14610598610589366119e5565b92806121f9565b346101db5760c06003193601126101db5760043567ffffffffffffffff81116101db578036039060806003198301126101db57610b566117fe565b916044359073ffffffffffffffffffffffffffffffffffffffff8216928383036101db57610b82611821565b926084359467ffffffffffffffff86168096036101db5760a4359673ffffffffffffffffffffffffffffffffffffffff881688036101db5773ffffffffffffffffffffffffffffffffffffffff5f541661112157610bdf90612629565b610c0173ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b5f8181527fb144758eeb56710eff6a145d8babeeaa31da464f00a418b8dabebb1e3bbca10e602052604090205460ff166110c3577fe844ed9e40aeb388cb97d2ef796e81de635718f440751efb46753791698f6bde5f52600260205260405f2090815468010000000000000000811015611096577f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f393610cac826040956001610cd895018155611844565b90919073ffffffffffffffffffffffffffffffffffffffff8084549260031b9316831b921b1916179055565b7fe844ed9e40aeb388cb97d2ef796e81de635718f440751efb46753791698f6bde5f526001602052815f20815f52602052815f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790558151907fe844ed9e40aeb388cb97d2ef796e81de635718f440751efb46753791698f6bde82526020820152a173ffffffffffffffffffffffffffffffffffffffff610d8282600401611b57565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455602481013567ffffffffffffffff811681036101db577fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffff00000000000000000000000000000000000000006004549260a01b16911617600455604481013563ffffffff811681036101db577bffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffff000000000000000000000000000000000000000000000000000000006004549260e01b169116176004557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd606482013592018212156101db570160048101359067ffffffffffffffff82116101db576024018160061b360381136101db576801000000000000000082116110965760055482600555808310610fe4575b5060055f5260205f205f915b838310610f8257600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600a80547fffffffff00000000000000000000000000000000000000000000000000000000168717604089901b7bffffffffffffffffffffffffffffffffffffffff000000000000000016179055005b600260408273ffffffffffffffffffffffffffffffffffffffff610fa7600195611b57565b167fffffffffffffffffffffffff000000000000000000000000000000000000000086541617855560208101358486015501920192019190610eeb565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168103611069577f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831683036110695760055f5260205f209060011b8101908360011b015b8181106110585750610edf565b5f808255600182015560020161104b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f616c72656164792068617320726f6c65000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e657220616c7265616479207365740000000000000000000000000000006044820152fd5b346101db575f6003193601126101db576040516080810181811067ffffffffffffffff8211176110965760405260045473ffffffffffffffffffffffffffffffffffffffff81168252602082019067ffffffffffffffff8160a01c168252604083019060e01c8152600554916111f4836118e3565b9261120260405194856118a2565b80845260055f9081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0602086015b8383106113b757878767ffffffffffffffff6112716112638a63ffffffff848c60608901978852511691511690611b35565b8260035460a01c1690611b35565b16421115611359575f5b81518051821015610275576112a58273ffffffffffffffffffffffffffffffffffffffff92611b21565b5151169073ffffffffffffffffffffffffffffffffffffffff84511691604051907f70a08231000000000000000000000000000000000000000000000000000000008252306004830152602082602481845afa91821561134e575f9261131a575b509060019361131492612082565b0161127b565b91506020823d8211611346575b81611334602093836118a2565b810103126101db579051906001611306565b3d9150611327565b6040513d5f823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f746f6f20736f6f6e0000000000000000000000000000000000000000000000006044820152fd5b600260206001926040516113ca81611886565b73ffffffffffffffffffffffffffffffffffffffff86541681528486015483820152815201920192019190611231565b346101db5760206003193601126101db577f70270fb8dd97868919b2c758596ceef84c7db4f21790f2619ca490067359ec96602061143661199d565b61145873ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b6003547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffff00000000000000000000000000000000000000008360a01b1691161760035567ffffffffffffffff60405191168152a1005b346101db5760206003193601126101db577f3f8223bcd8b3b875473e9f9e14e1ad075451a2b5ffd31591655da9a01516bf5e602073ffffffffffffffffffffffffffffffffffffffff6115086117db565b611516825f54163314611abc565b16807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355604051908152a1005b346101db5760406003193601126101db577f24230cee9a7f9fdea617f2c4dda21c6bae6dbf4a72c1fde0bab9a92f951b2ff1604061158661199d565b73ffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff6115ac6117fe565b926115bb835f54163314611abc565b1691600a54837fffffffff000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffff000000000000000084881b1692161717600a558351928352166020820152a1005b346101db575f6003193601126101db57602067ffffffffffffffff600a5416604051908152f35b346101db5760406003193601126101db5761027561165b6117fe565b61167d73ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b600435611f70565b346101db575f6003193601126101db576020600954604051908152f35b346101db576116b0366118fb565b6116d273ffffffffffffffffffffffffffffffffffffffff5f54163314611abc565b5f5b8151811015610275578061170a73ffffffffffffffffffffffffffffffffffffffff61170260019486611b21565b511685611c75565b016116d4565b346101db5760406003193601126101db576024356004355f52600260205260405f209081548110156101db5761175d73ffffffffffffffffffffffffffffffffffffffff91602093611844565b90549060031b1c16604051908152f35b346101db5760406003193601126101db576117866117db565b73ffffffffffffffffffffffffffffffffffffffff6117a36117fe565b91165f52600660205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101db57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101db57565b6064359073ffffffffffffffffffffffffffffffffffffffff821682036101db57565b8054821015611859575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6040810190811067ffffffffffffffff82111761109657604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761109657604052565b67ffffffffffffffff81116110965760051b60200190565b9060406003198301126101db57600435916024359067ffffffffffffffff82116101db57806023830112156101db57816004013590611939826118e3565b9261194760405194856118a2565b8284526024602085019360051b8201019182116101db57602401915b8183106119705750505090565b823573ffffffffffffffffffffffffffffffffffffffff811681036101db57815260209283019201611963565b6004359067ffffffffffffffff821682036101db57565b9181601f840112156101db5782359167ffffffffffffffff83116101db576020808501948460051b0101116101db57565b60806003198201126101db5760043573ffffffffffffffffffffffffffffffffffffffff811681036101db579160243567ffffffffffffffff81116101db5782611a31916004016119b4565b9290929160443567ffffffffffffffff811681036101db57916064359067ffffffffffffffff82116101db57611a69916004016119b4565b9091565b60206040818301928281528451809452019201905f5b818110611a905750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611a83565b15611ac357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b80518210156118595760209160051b010190565b9067ffffffffffffffff8091169116019067ffffffffffffffff821161106957565b3573ffffffffffffffffffffffffffffffffffffffff811681036101db5790565b929190611b84816118e3565b93611b9260405195866118a2565b602085838152019160051b81019283116101db57905b828210611bb457505050565b8135815260209182019101611ba8565b600554611bd0816118e3565b611bdd60405191826118a2565b8181527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611c0a836118e3565b013660208301375f5b82811015611c6f5760019060055f5273ffffffffffffffffffffffffffffffffffffffff81831b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0015416611c688285611b21565b5201611c13565b50905090565b90815f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205260ff60405f20541615611f1257815f52600260205260405f20908154927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8401938411611069575f5b8354811015611eb45773ffffffffffffffffffffffffffffffffffffffff611d0f8286611844565b90549060031b1c1673ffffffffffffffffffffffffffffffffffffffff841614611d3b57600101611ce7565b8481959293949510611e79575b50508254928315611e4c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a52940190611da28282611844565b73ffffffffffffffffffffffffffffffffffffffff82549160031b1b1916905555805f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055611e476040519283928390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b610cac73ffffffffffffffffffffffffffffffffffffffff611e9e611ead9488611844565b90549060031b1c169186611844565b5f80611d48565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f726f6c65206163636f756e74206e6f7420666f756e64000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f742068617320726f6c6500000000000000000000000000000000000000006044820152fd5b90815f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205260ff60405f2054166110c357815f52600260205260405f2091825492680100000000000000008410156110965782610cac85611ffb9360017f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f398018155611844565b805f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055611e476040519283928390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b916020915f916040519073ffffffffffffffffffffffffffffffffffffffff858301937fa9059cbb0000000000000000000000000000000000000000000000000000000085521660248301526044820152604481526120e26064826118a2565b519082855af11561134e575f513d612158575073ffffffffffffffffffffffffffffffffffffffff81163b155b6121165750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6001141561210f565b1561216857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f696e76616c69642065706f6368000000000000000000000000000000000000006044820152fd5b90602080835192838152019201905f5b8181106121e35750505090565b82518452602093840193909201916001016121d6565b93926122189095919567ffffffffffffffff8060085416911614612161565b612220611bc4565b9160405160208101907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff88169760601b16825260348101855160208701905f5b818110612597575050508184519160208601925f5b81811061257e5750506122c49250037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826118a2565b5190209460095495965f975b8651891015612312576122e38988611b21565b519081811015612301575f52602052600160405f205b9801976122d0565b905f52602052600160405f206122f9565b91949750929591945003612520578451947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0612366612350886118e3565b9761235e604051998a6118a2565b8089526118e3565b013660208801375f945f5b82518110156124655773ffffffffffffffffffffffffffffffffffffffff6123998285611b21565b51166123a58288611b21565b5190865f52600660205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f5260205260405f205480830392808411611069576123e9858b611b21565b51895f52600660205260405f2073ffffffffffffffffffffffffffffffffffffffff85165f5260205260405f205503612433575b509060019161242c828b611b21565b5201612371565b909750612441888683612082565b5f52600760205260405f20908154888101809111611069579091556001968761241d565b5095939294915050156124c2577f6a8d91c49594226b40d453d563914bd89c00f6859210b5b861b4647c1d87b867916124bd6124af926040519384936040855260408501906121c6565b9083820360208501526121c6565b0390a2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f20756e636c61696d656420726577617264730000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f766572696669636174696f6e206661696c6564000000000000000000000000006044820152fd5b845183526020948501948694509092019160010161228a565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101612275565b602067ffffffffffffffff7f67039b7f29c2d4367d3562c53c1d8bf1c9b99e22cb742b7a8c1c78940ae7cf66921692837fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000600854161760085580600955604051908152a2565b73ffffffffffffffffffffffffffffffffffffffff805f54921691827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a356fea264697066735822122092af997bc6b524faf82dd2f2a1e8786f363b43584ce755ab0f120fa57ece1ee864736f6c634300081d0033