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 lastUpdated, uint256 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)
TransferRewards
event TransferRewards(address indexed to, address indexed pool, address indexed rewardToken, uint256 amount)
errors
No errors.
creation bytecode
0x610100346200029057601f620038ed38819003918201601f1916830192916001600160401b03918285118486101762000295578160809285926040978852833981010312620002905781519063ffffffff9182811680910362000290576200006a60208501620002ab565b9360606200007a878301620002ab565b910151918215158303620002905760008054336001600160a01b031982168117835589516001600160a01b0399939893929091908a167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08a80a3888216156200024e575087841615620002165760a05281608052600354916224e9ff190190811162000202576001600160401b0363ffffffff60801b011990911660809190911b63ffffffff60801b161766093a800024ea001760035560c05215620001f95783519061080780830191821183831017620001e5576020918391620030e6833930815203019082f0908115620001da5750165b60e05251612e259081620002c18239608051818181610f2e015281816118080152612d02015260a05181611a9b015260c051818181610b1a01528181610b9201528181610c3901528181611f890152612992015260e0518181816109b4015281816116420152611c250152f35b8351903d90823e3d90fd5b634e487b7160e01b84526041600452602484fd5b5090506200016d565b634e487b7160e01b86526011600452602486fd5b885162461bcd60e51b815260206004820152601160248201527076727377207a65726f206164647265737360781b6044820152606490fd5b62461bcd60e51b815260206004820152601d60248201527f746f6b656e6f6d696373506172616d73207a65726f20616464726573730000006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620002905756fe6080604052600436101561001257600080fd5b6000803560e01c806201b0b614611ebd5780631814a5b114611e785780631893290714611cf2578063198e278714611c495780632393b03c14611bda578063318a678c14611b875780634ff0876a14611b455780634ffcd51414611abf57806358d6b9e214611a505780635ebaf1db146119fe5780635f063639146119c2578063657bab881461197d578063657e317214611786578063715018a6146116ea57806388386c6e146115d557806389bb0541146115785780638da5cb5b146115275780639168ae721461149d578063924f4cfd14610f51578063925c3e4714610ef857806392954ad814610ebc578063933e0a5214610e59578063a29a43bb14610cde578063bbfae54614610c99578063cf690f3314610c5d578063d356d82914610bee578063da50377714610a6a578063db6c5c5514610946578063dd5fbc9a1461090a578063e027dcd314610340578063e3da68c1146102fc578063e7f3fbde146102c05763f2fde38b1461018757600080fd5b346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576101be612122565b6101c66121e0565b73ffffffffffffffffffffffffffffffffffffffff80911690811561023957600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b80fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600554604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060035463ffffffff60405191831c168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5767ffffffffffffffff600435818111610906576103919036906004016121af565b9091602435908111610902576103ab9036906004016121af565b6103b69391936121e0565b8083036108a4576003546103d763ffffffff91828082169160801c1661225f565b16421015610897575b6103e8612dac565b6005549073ffffffffffffffffffffffffffffffffffffffff600a5416876040805161041381612390565b828152826020820152015287915b86831061056257505050620f4240811161050457600555604051928060408501604086525260608401929086905b8082106104c75750505082820360208401528082527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81116104c3577f22f9223024615598c644235754c19669c1fc9de0143cc88bae338aca16affd5e93602092849260051b80928583013701030190a180f35b8480fd5b90919384359073ffffffffffffffffffffffffffffffffffffffff82168092036104ff5760208160019382935201950192019061044f565b600080fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f73756d206d757374206265206c657373207468616e20313030303030300000006044820152fd5b90919273ffffffffffffffffffffffffffffffffffffffff61058d610588868a8a6127e7565b6127f7565b161580156107ef575b156107915773ffffffffffffffffffffffffffffffffffffffff6105be610588868a8a6127e7565b1689526006602052604089206001604051916105d983612390565b80546fffffffffffffffffffffffffffffffff8116845260801c60208401520154604082015273ffffffffffffffffffffffffffffffffffffffff610622610588878b8b6127e7565b168a5260076020526106398360408c205483612cfe565b73ffffffffffffffffffffffffffffffffffffffff61065c610588878b8b6127e7565b168a52600660209081526040808c2083519284015160801b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff93909316929092178255909160019101519101556107006106c985878b6127e7565b3573ffffffffffffffffffffffffffffffffffffffff6106ed610588888c8c6127e7565b168b52600760205260408b205490612318565b908982820192831291129080158216911516176107645761075d909361072781878b6127e7565b3573ffffffffffffffffffffffffffffffffffffffff61074b610588848c8c6127e7565b168b52600760205260408b20556127ba565b9190610421565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6f6e65206f66206c7020746f6b656e73206973206e6f742076616c69640000006044820152fd5b506107fe6105888589896127e7565b73ffffffffffffffffffffffffffffffffffffffff604051917ff6c57861000000000000000000000000000000000000000000000000000000008352166004820152602081602481875afa90811561088c578a9161085d575b50610596565b61087f915060203d602011610885575b61087781836123ac565b8101906124d2565b38610857565b503d61086d565b6040513d8c823e3d90fd5b61089f612b7f565b6103e0565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6c656e67746873206469666665720000000000000000000000000000000000006044820152fd5b8380fd5b8280fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600454604051908152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd578061097f612122565b6024359061098e8215156128a1565b73ffffffffffffffffffffffffffffffffffffffff6109b281600a54163314612818565b7f00000000000000000000000000000000000000000000000000000000000000001691826109df57505050f35b823b15610a65576040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201529082908290604490829084905af18015610a5a57610a4a5750f35b610a5390612331565b6102bd5780f35b6040513d84823e3d90fd5b505050fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57600435610aa56121e0565b610ae360035463ffffffff90610ad482610ac6818416828560801c1661225f565b1692839260201c16426122a6565b10159081610be4575b506122b3565b610aef60025482612318565b90600255818113600014610b4257610b3f90303373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016612456565b80f35b818112610b4d575080f35b7f80000000000000000000000000000000000000000000000000000000000000008114610bb757610b3f9082033373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166123ed565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9050421038610add565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600154604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460601c16604051908152f35b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57610d16612122565b610d1e6121e0565b73ffffffffffffffffffffffffffffffffffffffff809116908115610dfb57600a54908116610d9d57817ffef374abf45e2e3ec7bf325aef6e240bfbc166fd230c511d058f061af7106aea927fffffffffffffffffffffffff00000000000000000000000000000000000000006020931617600a55604051908152a180f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f7374616b65722063616e20626520736574206f6e6365000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57604060209173ffffffffffffffffffffffffffffffffffffffff610eab612122565b168152600783522054604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020600254604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102bd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57610f89612122565b906024918235926fffffffffffffffffffffffffffffffff841684036104ff5773ffffffffffffffffffffffffffffffffffffffff9060443582811681036104ff576064356fffffffffffffffffffffffffffffffff811681036104ff576084356fffffffffffffffffffffffffffffffff811681036104ff5761100b6121e0565b6fffffffffffffffffffffffffffffffff88161561143f576fffffffffffffffffffffffffffffffff8116156113e157848316158015611367575b15611309578483168752600960205260408720858716600052602052604060002060405161107381612374565b60018254926fffffffffffffffffffffffffffffffff84168352602083019360801c84520154916fffffffffffffffffffffffffffffffff83166040830152606082018360801c815282936fffffffffffffffffffffffffffffffff811615806112fe575b156112b25750505050506fffffffffffffffffffffffffffffffff90816040519361110285612374565b1683521660208201526fffffffffffffffffffffffffffffffff871660408201528560608201529183821686526008602052604086208054916801000000000000000083101561128757509284610b3f979893611179846fffffffffffffffffffffffffffffffff97600161127b97018155612168565b81549060031b9084808c16831b921b19161790555b168852600960205260408820858716600052602052836060604060002092600183825116947fffffffffffffffffffffffffffffffff0000000000000000000000000000000095868254161781556112288560208501511682906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b019383604083015116908554161784550151166fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b16913091339116612456565b877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6fffffffffffffffffffffffffffffffff98508994958961127b98610b3f9e9f9a969594826112e886828098169060801c61287d565b169052168452169052604087871691015261118e565b508060801c156110d8565b606484600c604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152fd5b5083602086600a5416604051928380927ff6c578610000000000000000000000000000000000000000000000000000000082528a891660048301525afa9081156113d65788916113b8575b50611046565b6113d0915060203d81116108855761087781836123ac565b386113b2565b6040513d8a823e3d90fd5b6064846019604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f6475726174696f6e206d75737420626520706f736974697665000000000000006044820152fd5b6064846017604051917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401528201527f616d6f756e74206d75737420626520706f7369746976650000000000000000006044820152fd5b50346102bd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57604060609173ffffffffffffffffffffffffffffffffffffffff6114ef612122565b16815260066020522060018154910154604051916fffffffffffffffffffffffffffffffff8116835260801c60208301526040820152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576115cd6003546115c463ffffffff91828082169160801c1661225f565b164210156122b3565b610b3f612b7f565b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5761160d612122565b8160243561161c8115156128a1565b73ffffffffffffffffffffffffffffffffffffffff61164081600a54163314612818565b7f0000000000000000000000000000000000000000000000000000000000000000168061166b578280f35b803b15610906576040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff94909416600485015260248401919091528290604490829084905af18015610a5a576116db575b8181808280f35b6116e490612331565b386116d4565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576117216121e0565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102bd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576117be612122565b6117c6612145565b67ffffffffffffffff916044358381116104c3576117e89036906004016121af565b929093606435908111611979576118039036906004016121af565b9390937f0000000000000000000000000000000000000000000000000000000000000000421061191b5773ffffffffffffffffffffffffffffffffffffffff9161185283600a54163314612818565b60035461186c63ffffffff91828082169160801c1661225f565b1642101561190e575b93959282169382871693885b82811061188c578980f35b808888887fca452eb39a809ba852514ba2158d35d26a6c977f44cddecee9986f781e7ce4d560208a8f878c6118f3610588838f8f6119099f8e6118f9996118e7838a8e6118e06105886118ee988b8b6127e7565b16946127e7565b35916123ed565b6127e7565b986127e7565b35956040519687521694a46127ba565b611881565b611916612b7f565b611875565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f746f6f206561726c7900000000000000000000000000000000000000000000006044820152fd5b8580fd5b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460401c16604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020604051620f42408152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57611af7612122565b6024359173ffffffffffffffffffffffffffffffffffffffff80921681526008602052604081209081548410156102bd5750602092611b3591612168565b9190546040519260031b1c168152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035416604051908152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576020611bd2611bc4612122565b611bcc612145565b90612977565b604051908152f35b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd576040608091611c86612122565b611c8e612145565b9073ffffffffffffffffffffffffffffffffffffffff80911683526009602052838320911682526020522060018154910154604051916fffffffffffffffffffffffffffffffff908181168452841c602084015281166040830152821c6060820152f35b50346102bd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd5760043563ffffffff808216808303610902576024359182168083036104c357611d496121e0565b80151580611e6f575b15611e11571015611db3577fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6bffffffff00000000000000006fffffffff0000000000000000000000006003549360601b169360401b169116171760035580f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f7072657061726174696f6e54696d65203e3d2065706f63684475726174696f6e6044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f6d7573742062652067726561746572207468616e207a65726f000000000000006044820152fd5b50811515611d52565b50346102bd57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102bd57602063ffffffff60035460801c16604051908152f35b50346102bd576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261211e5773ffffffffffffffffffffffffffffffffffffffff9081611f0d612122565b1690818452600890818152604085205494600195868101938482116120f157611f4e611f3886612906565b95611f4660405197886123ac565b808752612906565b957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085870197013688378551156120c45787989698959493957f0000000000000000000000000000000000000000000000000000000000000000168952865b83811115611ff45750505050604051948186019282875251809352604086019693905b838210611fdd5786880387f35b845181168852968201969382019390850190611fd0565b81879596979a989a52828652604085207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820190828211612097579061203991612168565b905490885183101561206a5760031b1c8916600582901b880187015261205e906127ba565b98969895949395611fad565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b5080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104ff57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036104ff57565b80548210156121805760005260206000200190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9181601f840112156104ff5782359167ffffffffffffffff83116104ff576020808501948460051b0101116104ff57565b73ffffffffffffffffffffffffffffffffffffffff60005416330361220157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b91909163ffffffff8080941691160191821161227757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9190820180921161227757565b156122ba57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f546f6f206561726c7900000000000000000000000000000000000000000000006044820152fd5b8181039291600013801582851316918412161761227757565b67ffffffffffffffff811161234557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761234557604052565b6060810190811067ffffffffffffffff82111761234557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761234557604052565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff9290921660248301526044808301939093529181526124549161244f6064836123ac565b6124ea565b565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff84111761234557612454926040526124ea565b908160209103126104ff575180151581036104ff5790565b73ffffffffffffffffffffffffffffffffffffffff9092919216604051604081019367ffffffffffffffff9482811086821117612345576040526020928383527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564848401526000808386829551910182855af1903d1561268b573d96871161265e576125b5949596604051906125a7887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836123ac565b81528093873d92013e612698565b805190816125c257505050565b82806125d29383010191016124d2565b156125da5750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b91506125b5939495506060915b9192901561271357508151156126ac575090565b3b156126b55790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156127265750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b8481106127a3575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201612762565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122775760010190565b91908110156121805760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff811681036104ff5790565b1561281f57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f696e76616c6964207374616b65720000000000000000000000000000000000006044820152fd5b9190916fffffffffffffffffffffffffffffffff8080941691160191821161227757565b156128a857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f7a65726f20616d6f756e740000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116123455760051b60200190565b9190820391821161227757565b8181029291811591840414171561227757565b8115612948570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9073ffffffffffffffffffffffffffffffffffffffff9081167f000000000000000000000000000000000000000000000000000000000000000082168103612ac6575060035463ffffffff90818160801c1690828116836129d8828561225f565b164210612ab457612a3a93612a349260401c81168015612aaa57612a1690925b612a11612a0a600454600154906122a6565b964261291e565b61291e565b91169081811015612aa057612a2f905b6002549061292b565b61293e565b906122a6565b915b16806000526006602052612a9b60406000209260405192612a5c84612390565b60018554956fffffffffffffffffffffffffffffffff96878116875260801c602087015201546040850152600052600760205260406000205483612cfe565b511690565b50612a2f81612a26565b50612a16826129f8565b50505050612ac0612dac565b91612a3c565b91612b479260609260009216825260096020526040822090825260205260408120604051612af381612374565b8154906fffffffffffffffffffffffffffffffff918281169081835260801c90600160208401958387520154928484169384604083015260801c9788910152804210600014612b4a575050505050906122a6565b90565b90612a3495612b5d612b6e94934261291e565b905080821015612b7757509061292b565b9151169061293e565b90509061292b565b6003805473ffffffff000000000000000000000000000000009063ffffffff9180612bb1848416858560801c1661225f565b60801b16927fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff92848482161790818755600190612bf182546004546122a6565b9687600455846002549485855560401c169182612cd0575b5050508654838160601c16612c96575b506000600255865495838760801c1693871692612c3684866122a6565b421015612c7f575b505090815b612c55575b505060801b169116179055565b9091612c6182826122a6565b4210612c795781612c71916122a6565b919081612c43565b91612c48565b612c88916122a6565b600455600081553880612c3e565b7fffffffffffffffffffffffffffffffff00000000ffffffff00000000ffffffff67ffffffff000000008260401c16911617875538612c19565b7fffffffffffffffffffffffff00000000ffffffff00000000ffffffff000000001617178755388080612c09565b90917f00000000000000000000000000000000000000000000000000000000000000009060208301936fffffffffffffffffffffffffffffffff93848651168015159081612da2575b50612d66575b505050804211600014612d61575042169052565b169052565b84612d9681620f4240612d8b604086019683612d8389518b61291e565b91169061292b565b04168284511661287d565b16905252388080612d4d565b9050421138612d47565b612b47600454612a3460035463ffffffff612dcc818360801c164261291e565b91169081811015612de557612a2f905b6001549061292b565b50612a2f81612ddc56fea264697066735822122038cc5ccfdd64e9121096b22067842edbe5fe7761def08d09739d5dd8428b3ed964736f6c6343000812003360a03461007757601f61080738819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b0381168103610077576080526040516107749081610093823960805181818160d2015281816103d2015261059f0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816306fdde03146105c357508063075461721461055457806318160ddd14610517578063313ce567146104dd57806340c10f191461037957806370a082311461031857806395d89b411461026257639dc29fac1461007c57600080fd5b3461025e57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576100b26106b1565b6024359073ffffffffffffffffffffffffffffffffffffffff906100f9827f00000000000000000000000000000000000000000000000000000000000000001633146106d9565b169182156101db5782845283602052848420549082821061015857508184957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936020938688528785520381872055816001540360015551908152a380f35b60849060208751917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602360248201527f7665565253573a206275726e20616d6f756e7420657863656564732062616c6160448201527f6e636500000000000000000000000000000000000000000000000000000000006064820152fd5b60849060208651917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602260248201527f7665565253573a206275726e2066726f6d20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b5080fd5b50913461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e578051918183019083821067ffffffffffffffff8311176102ec57506102e893508152600682527f76655652535700000000000000000000000000000000000000000000000000006020830152519182918261064b565b0390f35b806041867f4e487b71000000000000000000000000000000000000000000000000000000006024945252fd5b82843461025e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e578060209273ffffffffffffffffffffffffffffffffffffffff61036a6106b1565b16815280845220549051908152f35b5082346104d957807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d9576103b16106b1565b906024359173ffffffffffffffffffffffffffffffffffffffff906103f9827f00000000000000000000000000000000000000000000000000000000000000001633146106d9565b1692831561047d5760015490838201809211610451575084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260015585855284835280852082815401905551908152a380f35b8560116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b602060649251917f08c379a0000000000000000000000000000000000000000000000000000000008352820152602060248201527f7665565253573a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b8280fd5b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020905160128152f35b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020906001549051908152f35b82843461025e57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025e576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905083833461064857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610648578183019083821067ffffffffffffffff8311176102ec57506102e893508152601282527f566f74652d657363726f776564205652535700000000000000000000000000006020830152519182918261064b565b80fd5b60208082528251818301819052939260005b85811061069d575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b81810183015184820160400152820161065d565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036106d457565b600080fd5b156106e057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f7665565253573a206f6e6c79206d696e746572000000000000000000000000006044820152fdfea2646970667358221220519fa7d1837a4cb88782cc8e3a8a5c243576e24389ad9e57464719f2051cc12064736f6c634300081200330000000000000000000000000000000000000000000000000000000064db31ac000000000000000000000000375f0e1d5c7d6c7980dfef5c831cb3295317f5d6000000000000000000000000a70de8592cd98edc01988d68b5b5bb3cc593fe880000000000000000000000000000000000000000000000000000000000000000