0 txs
0 calls
constructor
constructor(uint32 _emissionStartTs, address _tokenomicsParams, address _vrsw, bool _enableVeVrsw)
functions
ALLOCATION_POINTS_FACTOR
viewfunction ALLOCATION_POINTS_FACTOR() view returns (uint256)
allocationPoints
viewfunction allocationPoints(address) view returns (uint256)
calculateTokensForPool
viewfunction calculateTokensForPool(address pool, address rewardToken) view returns (uint256)
currentEpochBalance
viewfunction currentEpochBalance() view returns (uint256)
emissionStartTs
viewfunction emissionStartTs() view returns (uint256)
epochDuration
viewfunction epochDuration() view returns (uint32)
epochPreparationTime
viewfunction epochPreparationTime() view returns (uint32)
getRewardTokens
viewfunction getRewardTokens(address pool) view returns (address[] rewardTokens)
nextEpochBalance
viewfunction nextEpochBalance() view returns (uint256)
nextEpochDuration
viewfunction nextEpochDuration() view returns (uint32)
nextEpochPreparationTime
viewfunction nextEpochPreparationTime() view returns (uint32)
owner
viewfunction owner() view returns (address)
partnerTokens
viewfunction partnerTokens(address, uint256) view returns (address)
partnerTokensInfo
viewfunction partnerTokensInfo(address, address) view returns (uint128 from, uint128 duration, uint128 amount, uint128 distributedAmount)
staker
viewfunction staker() view returns (address)
stakers
viewfunction stakers(address) view returns (uint128 totalAllocated, uint128 lastAvailable)
startEpochSupply
viewfunction startEpochSupply() view returns (uint256)
startEpochTime
viewfunction startEpochTime() view returns (uint32)
tokenomicsParams
viewfunction tokenomicsParams() view returns (address)
totalAllocationPoints
viewfunction totalAllocationPoints() view returns (uint256)
veVrsw
viewfunction veVrsw() view returns (address)
vrsw
viewfunction vrsw() view returns (address)
burnVeVrsw
nonpayablefunction burnVeVrsw(address from, uint256 amount)
distributePartnerToken
nonpayablefunction distributePartnerToken(address partnerToken, uint128 amount, address pool, uint128 from, uint128 duration)
mintVeVrsw
nonpayablefunction mintVeVrsw(address to, uint256 amount)
prepareForNextEpoch
nonpayablefunction prepareForNextEpoch(uint256 nextBalance)
renounceOwnership
nonpayablefunction renounceOwnership()
setAllocationPoints
nonpayablefunction setAllocationPoints(address[] _pools, uint256[] _allocationPoints)
setEpochParams
nonpayablefunction setEpochParams(uint32 _epochDuration, uint32 _epochPreparationTime)
setStaker
nonpayablefunction setStaker(address _newStaker)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferRewards
nonpayablefunction transferRewards(address to, address pool, address[] rewardTokens, uint256[] amounts)
triggerEpochTransition
nonpayablefunction triggerEpochTransition()
events
AllocationPointsChanged
event AllocationPointsChanged(address[] _pools, uint256[] _allocationPoints)
NewStaker
event NewStaker(address stakerAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PartnerRewards
event PartnerRewards(address indexed partnerToken, uint128 amount, address indexed pool, uint128 from, uint128 duration)
TransferRewards
event TransferRewards(address indexed to, address indexed pool, address indexed rewardToken, uint256 amount)
errors
No errors.
creation bytecode
0x610100346200028957601f620037b638819003918201601f1916830192916001600160401b0391828511848610176200028e578160809285926040978852833981010312620002895781519063ffffffff9182811680910362000289576200006a60208501620002a4565b9360606200007a878301620002a4565b910151918215158303620002895760008054336001600160a01b031982168117835589516001600160a01b0399939893929091908a167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08a80a388821615620002475750878416156200020f5760a05281608052600354916224e9ff1901908111620001fb576001600160401b0363ffffffff60801b011990911660809190911b63ffffffff60801b161766093a800024ea001760035560c05215620001f25783519061080780830191821183831017620001de57602091839162002faf833930815203019082f0908115620001d35750165b60e05251612cf59081620002ba8239608051818181610f1a0152611731015260a051816119dd015260c051818181610b0601528181610b7e01528181610c2501528181611ecb01526128c8015260e0518181816109a00152818161156c0152611b670152f35b8351903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b5090506200016d565b634e487b7160e01b86526011600452602486fd5b885162461bcd60e51b815260206004820152601160248201527076727377207a65726f206164647265737360781b6044820152606490fd5b62461bcd60e51b815260206004820152601d60248201527f746f6b656e6f6d696373506172616d73207a65726f20616464726573730000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620002895756fe6080604052600436101561001257600080fd5b6000803560e01c806201b0b614611dff5780631814a5b114611dba5780631893290714611c34578063198e278714611b8b5780632393b03c14611b1c578063318a678c14611ac95780634ff0876a14611a875780634ffcd51414611a0157806358d6b9e2146119925780635ebaf1db146119405780635f06363914611904578063657bab88146118bf578063657e3172146116b0578063715018a61461161457806388386c6e146114ff57806389bb0541146114a25780638da5cb5b146114515780639168ae72146113d4578063924f4cfd14610f3d578063925c3e4714610ee457806392954ad814610ea8578063933e0a5214610e45578063a29a43bb14610cca578063bbfae54614610c85578063cf690f3314610c49578063d356d82914610bda578063da50377714610a56578063db6c5c5514610932578063dd5fbc9a146108f6578063e027dcd314610340578063e3da68c1146102fc578063e7f3fbde146102c05763f2fde38b1461018757600080fd5b346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576101be612064565b6101c6612122565b73ffffffffffffffffffffffffffffffffffffffff80911690811561023957600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b80fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600554604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060035463ffffffff60405191831c168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5767ffffffffffffffff6004358181116108f2576103919036906004016120f1565b90916024359081116108ee576103ab9036906004016120f1565b6103b6939193612122565b808303610890576003546103d763ffffffff91828082169160801c166121a1565b16421015610883575b6103e8612c7c565b6005549073ffffffffffffffffffffffffffffffffffffffff600a5416876020604051610414816122d2565b828152015287915b86831061055d57505050620f424081116104ff57600555604051928060408501604086525260608401929086905b8082106104c25750505082820360208401528082527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116104be577f22f9223024615598c644235754c19669c1fc9de0143cc88bae338aca16affd5e93602092849260051b80928583013701030190a180f35b8480fd5b90919384359073ffffffffffffffffffffffffffffffffffffffff82168092036104fa5760208160019382935201950192019061044a565b600080fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f73756d206d757374206265206c657373207468616e20313030303030300000006044820152fd5b90919273ffffffffffffffffffffffffffffffffffffffff610588610583868a8a61271d565b61272d565b161580156107db575b1561077d5773ffffffffffffffffffffffffffffffffffffffff6105b9610583868a8a61271d565b16895260066020526106a760408a20604051906105d5826122d2565b546fffffffffffffffffffffffffffffffff8116825260801c602082015273ffffffffffffffffffffffffffffffffffffffff610616610583888c8c61271d565b168b52600760205261062d8460408d205483612c2b565b73ffffffffffffffffffffffffffffffffffffffff610650610583888c8c61271d565b168b526006602090815260408c208251929091015160801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b6106ec6106b585878b61271d565b3573ffffffffffffffffffffffffffffffffffffffff6106d9610583888c8c61271d565b168b52600760205260408b20549061225a565b9089828201928312911290801582169115161761075057610749909361071381878b61271d565b3573ffffffffffffffffffffffffffffffffffffffff610737610583848c8c61271d565b168b52600760205260408b20556126f0565b919061041c565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6f6e65206f66206c7020746f6b656e73206973206e6f742076616c69640000006044820152fd5b506107ea61058385898961271d565b73ffffffffffffffffffffffffffffffffffffffff604051917ff6c57861000000000000000000000000000000000000000000000000000000008352166004820152602081602481875afa908115610878578a91610849575b50610591565b61086b915060203d602011610871575b61086381836122ee565b810190612414565b38610843565b503d610859565b6040513d8c823e3d90fd5b61088b612aac565b6103e0565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6c656e67746873206469666665720000000000000000000000000000000000006044820152fd5b8380fd5b8280fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600454604051908152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd578061096b612064565b6024359061097a8215156127d7565b73ffffffffffffffffffffffffffffffffffffffff61099e81600a5416331461274e565b7f00000000000000000000000000000000000000000000000000000000000000001691826109cb57505050f35b823b15610a51576040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201529082908290604490829084905af18015610a4657610a365750f35b610a3f90612273565b6102bd5780f35b6040513d84823e3d90fd5b505050fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57600435610a91612122565b610acf60035463ffffffff90610ac082610ab2818416828560801c166121a1565b1692839260201c16426121e8565b10159081610bd0575b506121f5565b610adb6002548261225a565b90600255818113600014610b2e57610b2b90303373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016612398565b80f35b818112610b39575080f35b7f80000000000000000000000000000000000000000000000000000000000000008114610ba357610b2b9082033373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661232f565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9050421038610ac9565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600154604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460601c16604051908152f35b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57610d02612064565b610d0a612122565b73ffffffffffffffffffffffffffffffffffffffff809116908115610de757600a54908116610d8957817ffef374abf45e2e3ec7bf325aef6e240bfbc166fd230c511d058f061af7106aea927fffffffffffffffffffffffff00000000000000000000000000000000000000006020931617600a55604051908152a180f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b65722063616e20626520736574206f6e6365000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57604060209173ffffffffffffffffffffffffffffffffffffffff610e97612064565b168152600783522054604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600254604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102bd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57610f75612064565b60249081356fffffffffffffffffffffffffffffffff8082168092036104fa576044359373ffffffffffffffffffffffffffffffffffffffff8086168096036104fa57606435918383168093036104fa57608435938085168095036104fa57610fdc612122565b851561137657841561131857871580156112ab575b1561124d57878952602092600984528060408b20981697886000528452604060002060405190611020826122b6565b600181549185831684528784019260801c835201549084821692604081019284845260801c9360608201908582528295811580611245575b156111f65750505050505050604051611070816122b6565b85815286858201528760408201528a606082015292898b526008855260408b20805491680100000000000000008310156111cb5750926111ad926110e28360609a989660017fae717a754e0fc3148b6520cdf21835b5e65288f4ed010add7cb8e58c6e28becc9d9b99960181556120aa565b819291549060031b918d831b921b19161790555b8a8c52600984526040808d2060008c8152908652208251838601517fffffffffffffffffffffffffffffffff0000000000000000000000000000000090841660801b81169184166fffffffffffffffffffffffffffffffff169190911782559289916001019383604083015116908554161784550151166fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b6111b98430338a612398565b6040519384528301526040820152a380f35b8c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8b99506111ad97509a8895938d9b99937fae717a754e0fc3148b6520cdf21835b5e65288f4ed010add7cb8e58c6e28becc9f9d9460609f958f989561123a916127b3565b1690525252526110f6565b508015611058565b606482600c604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152fd5b5081602084600a5416604051928380927ff6c578610000000000000000000000000000000000000000000000000000000082528d60048301525afa908115610878578a916112fa575b50610ff1565b611312915060203d81116108715761086381836122ee565b386112f4565b6064826019604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f6475726174696f6e206d75737420626520706f736974697665000000000000006044820152fd5b6064826017604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f616d6f756e74206d75737420626520706f7369746976650000000000000000006044820152fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576040809173ffffffffffffffffffffffffffffffffffffffff611425612064565b168152600660205220548151906fffffffffffffffffffffffffffffffff8116825260801c6020820152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576114f76003546114ee63ffffffff91828082169160801c166121a1565b164210156121f5565b610b2b612aac565b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57611537612064565b816024356115468115156127d7565b73ffffffffffffffffffffffffffffffffffffffff61156a81600a5416331461274e565b7f00000000000000000000000000000000000000000000000000000000000000001680611595578280f35b803b156108f2576040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff94909416600485015260248401919091528290604490829084905af18015610a4657611605575b8181808280f35b61160e90612273565b386115fe565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5761164b612122565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102bd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576116e8612064565b6116f0612087565b67ffffffffffffffff916044358381116104be576117129036906004016120f1565b90936064359081116118bb5761172c9036906004016120f1565b9190917f0000000000000000000000000000000000000000000000000000000000000000421061185d5773ffffffffffffffffffffffffffffffffffffffff9061177b82600a5416331461274e565b60035461179563ffffffff91828082169160801c166121a1565b16421015611850575b875b8381106117ab578880f35b808084868b6117be6117cd96888c61271d565b356117d2575b505050506126f0565b6117a0565b6117f7936117e3926105839261271d565b16886117f084878b61271d565b359161232f565b61180561058382878c61271d565b8461181183868a61271d565b35916040519283521690858a16907fca452eb39a809ba852514ba2158d35d26a6c977f44cddecee9986f781e7ce4d56020888c1692a48084868b6117c4565b611858612aac565b61179e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f746f6f206561726c7900000000000000000000000000000000000000000000006044820152fd5b8580fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460401c16604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020604051620f42408152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57611a39612064565b6024359173ffffffffffffffffffffffffffffffffffffffff80921681526008602052604081209081548410156102bd5750602092611a77916120aa565b9190546040519260031b1c168152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035416604051908152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020611b14611b06612064565b611b0e612087565b906128ad565b604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576040608091611bc8612064565b611bd0612087565b9073ffffffffffffffffffffffffffffffffffffffff80911683526009602052838320911682526020522060018154910154604051916fffffffffffffffffffffffffffffffff908181168452841c602084015281166040830152821c6060820152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5760043563ffffffff8082168083036108ee576024359182168083036104be57611c8b612122565b80151580611db1575b15611d53571015611cf5577fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6bffffffff00000000000000006fffffffff0000000000000000000000006003549360601b169360401b169116171760035580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f7072657061726174696f6e54696d65203e3d2065706f63684475726174696f6e6044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6d7573742062652067726561746572207468616e207a65726f000000000000006044820152fd5b50811515611c94565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460801c16604051908152f35b50346102bd576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126120605773ffffffffffffffffffffffffffffffffffffffff9081611e4f612064565b16908184526008908181526040852054946001958681019384821161203357611e90611e7a8661283c565b95611e8860405197886122ee565b80875261283c565b957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085870197013688378551156120065787989698959493957f0000000000000000000000000000000000000000000000000000000000000000168952865b83811115611f365750505050604051948186019282875251809352604086019693905b838210611f1f5786880387f35b845181168852968201969382019390850190611f12565b81879596979a989a52828652604085207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820190828211611fd95790611f7b916120aa565b9054908851831015611fac5760031b1c8916600582901b8801870152611fa0906126f0565b98969895949395611eef565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b5080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104fa57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036104fa57565b80548210156120c25760005260206000200190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9181601f840112156104fa5782359167ffffffffffffffff83116104fa576020808501948460051b0101116104fa57565b73ffffffffffffffffffffffffffffffffffffffff60005416330361214357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b91909163ffffffff808094169116019182116121b957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116121b957565b156121fc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f546f6f206561726c7900000000000000000000000000000000000000000000006044820152fd5b818103929160001380158285131691841216176121b957565b67ffffffffffffffff811161228757604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761228757604052565b6040810190811067ffffffffffffffff82111761228757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761228757604052565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff929092166024830152604480830193909352918152612396916123916064836122ee565b61242c565b565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff841117612287576123969260405261242c565b908160209103126104fa575180151581036104fa5790565b73ffffffffffffffffffffffffffffffffffffffff909291921691604051612453816122d2565b6020918282527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564838301526000808285829451910182895af13d156125c2573d9567ffffffffffffffff8711612595576124ec949596604051906124de887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836122ee565b81528093873d92013e6125ce565b805190816124f957505050565b8280612509938301019101612414565b156125115750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6124ec93949591506060915b9192901561264957508151156125e2575090565b3b156125eb5790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b82519091501561265c5750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b8481106126d9575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201612698565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146121b95760010190565b91908110156120c25760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036104fa5790565b1561275557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152fd5b9190916fffffffffffffffffffffffffffffffff808094169116019182116121b957565b156127de57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7a65726f20616d6f756e740000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116122875760051b60200190565b919082039182116121b957565b818102929181159184041417156121b957565b811561287e570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9073ffffffffffffffffffffffffffffffffffffffff9081167f0000000000000000000000000000000000000000000000000000000000000000821681036129f3575060035463ffffffff90818160801c16908281168361290e82856121a1565b1642106129e1576129709361296a9260401c811680156129d75761294c90925b612947612940600454600154906121e8565b9642612854565b612854565b911690818110156129cd57612965905b60025490612861565b612874565b906121e8565b915b16908160005260066020526129c860406000209160405192612993846122d2565b54936fffffffffffffffffffffffffffffffff94858116855260801c6020850152600052600760205260406000205483612c2b565b511690565b506129658161295c565b5061294c8261292e565b505050506129ed612c7c565b91612972565b91612a749260609260009216825260096020526040822090825260205260408120604051612a20816122b6565b8154906fffffffffffffffffffffffffffffffff918281169081835260801c90600160208401958387520154928484169384604083015260801c9788910152804210600014612a77575050505050906121e8565b90565b9061296a95612a8a612a9b949342612854565b905080821015612aa4575090612861565b91511690612874565b905090612861565b6003805473ffffffff000000000000000000000000000000009063ffffffff9180612ade848416858560801c166121a1565b60801b16927fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff92848482161790818755600190612b1e82546004546121e8565b9687600455846002549485855560401c169182612bfd575b5050508654838160601c16612bc3575b506000600255865495838760801c1693871692612b6384866121e8565b421015612bac575b505090815b612b82575b505060801b169116179055565b9091612b8e82826121e8565b4210612ba65781612b9e916121e8565b919081612b70565b91612b75565b612bb5916121e8565b600455600081553880612b6b565b7fffffffffffffffffffffffffffffffff00000000ffffffff00000000ffffffff67ffffffff000000008260401c16911617875538612b46565b7fffffffffffffffffffffffff00000000ffffffff00000000ffffffff000000001617178755388080612b36565b91620f42409192612c69612c7460208301956fffffffffffffffffffffffffffffffff958693849283612c61818c51168a612854565b911690612861565b0416828451166127b3565b169052169052565b612a7460045461296a60035463ffffffff612c9c818360801c1642612854565b91169081811015612cb557612965905b60015490612861565b5061296581612cac56fea26469706673582212205d277779fd513826fe65f3250a128aafa2fd55a3659de13800995d813e1b8cd164736f6c6343000812003360a03461007757601f61080738819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b0381168103610077576080526040516107749081610093823960805181818160d2015281816103d2015261059f0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816306fdde03146105c357508063075461721461055457806318160ddd14610517578063313ce567146104dd57806340c10f191461037957806370a082311461031857806395d89b411461026257639dc29fac1461007c57600080fd5b3461025e57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576100b26106b1565b6024359073ffffffffffffffffffffffffffffffffffffffff906100f9827f00000000000000000000000000000000000000000000000000000000000000001633146106d9565b169182156101db5782845283602052848420549082821061015857508184957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936020938688528785520381872055816001540360015551908152a380f35b60849060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602360248201527f7665565253573a206275726e20616d6f756e7420657863656564732062616c6160448201527f6e636500000000000000000000000000000000000000000000000000000000006064820152fd5b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602260248201527f7665565253573a206275726e2066726f6d20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b5080fd5b50913461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e578051918183019083821067ffffffffffffffff8311176102ec57506102e893508152600682527f76655652535700000000000000000000000000000000000000000000000000006020830152519182918261064b565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b82843461025e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e578060209273ffffffffffffffffffffffffffffffffffffffff61036a6106b1565b16815280845220549051908152f35b5082346104d957807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d9576103b16106b1565b906024359173ffffffffffffffffffffffffffffffffffffffff906103f9827f00000000000000000000000000000000000000000000000000000000000000001633146106d9565b1692831561047d5760015490838201809211610451575084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260015585855284835280852082815401905551908152a380f35b8560116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602060248201527f7665565253573a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b8280fd5b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020905160128152f35b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020906001549051908152f35b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905083833461064857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610648578183019083821067ffffffffffffffff8311176102ec57506102e893508152601282527f566f74652d657363726f776564205652535700000000000000000000000000006020830152519182918261064b565b80fd5b60208082528251818301819052939260005b85811061069d575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b81810183015184820160400152820161065d565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036106d457565b600080fd5b156106e057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f7665565253573a206f6e6c79206d696e746572000000000000000000000000006044820152fdfea2646970667358221220519fa7d1837a4cb88782cc8e3a8a5c243576e24389ad9e57464719f2051cc12064736f6c634300081200330000000000000000000000000000000000000000000000000000000064fb255c0000000000000000000000007106fba37cd79eff07ae662e729d08fcf8ed9c74000000000000000000000000a70de8592cd98edc01988d68b5b5bb3cc593fe880000000000000000000000000000000000000000000000000000000000000001