29 txs
111 calls
constructor
constructor(address _systemRegistry, address _rewardToken, address _mainReward, uint256 _newRewardRatio, uint256 _duration)
functions
accessController
viewfunction accessController() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
canTokenBeRecovered
purefunction canTokenBeRecovered(address) pure returns (bool)
CONTRACT_VERSION
viewfunction CONTRACT_VERSION() view returns (uint256)
currentRewards
viewfunction currentRewards() view returns (uint256)
duration
viewfunction duration() view returns (uint256)
earned
viewfunction earned(address account) view returns (uint256)
historicalRewards
viewfunction historicalRewards() view returns (uint256)
isWhitelisted
viewfunction isWhitelisted(address wallet) view returns (bool)
lastTimeRewardApplicable
viewfunction lastTimeRewardApplicable() view returns (uint256)
lastUpdateTime
viewfunction lastUpdateTime() view returns (uint256)
mainReward
viewfunction mainReward() view returns (address)
MINIMUM_RECOVER_DURATION
viewfunction MINIMUM_RECOVER_DURATION() view returns (uint256)
newRewardRatio
viewfunction newRewardRatio() view returns (uint256)
periodFinish
viewfunction periodFinish() view returns (uint256)
queuedRewards
viewfunction queuedRewards() view returns (uint256)
rewardPerToken
viewfunction rewardPerToken() view returns (uint256)
rewardPerTokenStored
viewfunction rewardPerTokenStored() view returns (uint256)
rewardRate
viewfunction rewardRate() view returns (uint256)
rewards
viewfunction rewards(address) view returns (uint256)
rewardToken
viewfunction rewardToken() view returns (address)
tokeLockDuration
viewfunction tokeLockDuration() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
userRewardPerTokenPaid
viewfunction userRewardPerTokenPaid(address) view returns (uint256)
whitelistedAddresses
viewfunction whitelistedAddresses(address) view returns (bool)
addToWhitelist
nonpayablefunction addToWhitelist(address wallet)
getReward
nonpayablefunction getReward()
getReward
nonpayablefunction getReward(address account, address recipient)
queueNewRewards
nonpayablefunction queueNewRewards(uint256 newRewards)
recover
nonpayablefunction recover(address token, address recipient)
removeFromWhitelist
nonpayablefunction removeFromWhitelist(address wallet)
setTokeLockDuration
nonpayablefunction setTokeLockDuration(uint256 _tokeLockDuration)
stake
nonpayablefunction stake(address account, uint256 amount)
withdraw
nonpayablefunction withdraw(address account, uint256 amount)
events
AddedToWhitelist
event AddedToWhitelist(address indexed wallet)
QueuedRewardsUpdated
event QueuedRewardsUpdated(uint256 startingQueuedRewards, uint256 startingNewRewards, uint256 queuedRewards)
Recovered
event Recovered(address token, address recipient, uint256 amount)
RemovedFromWhitelist
event RemovedFromWhitelist(address indexed wallet)
RewardAdded
event RewardAdded(uint256 reward, uint256 rewardRate, uint256 lastUpdateTime, uint256 periodFinish, uint256 historicalRewards)
RewardPaid
event RewardPaid(address indexed user, address indexed recipient, uint256 reward)
Staked
event Staked(address indexed user, uint256 amount)
TokeLockDurationUpdated
event TokeLockDurationUpdated(uint256 newDuration)
UserRewardUpdated
event UserRewardUpdated(address indexed user, uint256 amount, uint256 rewardPerTokenStored, uint256 lastUpdateTime)
Withdrawn
event Withdrawn(address indexed user, uint256 amount)
errors
AccessDenied
error AccessDenied()
AssetNotAllowed
error AssetNotAllowed(address token)
InvalidAddress
error InvalidAddress(address addr)
InvalidParam
error InvalidParam(string paramName)
ItemExists
error ItemExists()
ItemNotFound
error ItemNotFound()
MainRewardOnly
error MainRewardOnly()
RecoverDurationPending
error RecoverDurationPending()
StakingDurationTooShort
error StakingDurationTooShort()
UndefinedAddress
error UndefinedAddress()
ZeroAddress
error ZeroAddress(string paramName)
ZeroAmount
error ZeroAmount()
creation bytecode
0x61016060405234801562000011575f80fd5b50604051620028563803806200285683398101604081905262000034916200036e565b848483837fa47a074c17809038854a0fb42d6591760e74f35d1ed1df67983bd28471ae2267846001600160a01b031663bc43cbaf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000096573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000bc9190620003cf565b6001600160a01b038116620000e457604051630cbe126f60e11b815260040160405180910390fd5b6001600160a01b031660805260408051808201909152600c81526b2fb932bbb0b9322a37b5b2b760a11b602082015262000120908590620002de565b6200015382604051806040016040528060098152602001682fb23ab930ba34b7b760b91b8152506200030e60201b60201c565b6200018c836040518060400160405280600f81526020016e5f6e6577526577617264526174696f60881b8152506200030e60201b60201c565b620001c1816040518060400160405280600b81526020016a5f726577617264526f6c6560a81b8152506200033360201b60201c565b6001600160a01b0385811660e08190526040516316bfae7f60e31b815291861660048301529063b5fd73f890602401602060405180830381865afa1580156200020c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002329190620003f4565b6200027457604051634389d5ab60e01b815260206004820152600c60248201526b2fb932bbb0b9322a37b5b2b760a11b60448201526064015b60405180910390fd5b6001600160a01b039093166101005260c09190915260a05261012052506001600b908155604080518082019091529081526a17db585a5b94995dd85c9960aa1b6020820152620002c6908490620002de565b50506001600160a01b03166101405250620004639050565b6001600160a01b0382166200030a578060405163eac0d38960e01b81526004016200026b919062000415565b5050565b815f036200030a5780604051634389d5ab60e01b81526004016200026b919062000415565b816200030a5780604051634389d5ab60e01b81526004016200026b919062000415565b6001600160a01b03811681146200036b575f80fd5b50565b5f805f805f60a0868803121562000383575f80fd5b8551620003908162000356565b6020870151909550620003a38162000356565b6040870151909450620003b68162000356565b6060870151608090970151959894975095949392505050565b5f60208284031215620003e0575f80fd5b8151620003ed8162000356565b9392505050565b5f6020828403121562000405575f80fd5b81518015158114620003ed575f80fd5b5f602080835283518060208501525f5b81811015620004435785810183015185820160400152820162000425565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a05160c05160e051610100516101205161014051612300620005565f395f818161044c015281816107fb01528181610d6d01528181610e0401528181610fdb015261121d01525f818161055201528181610e9201526110a801525f81816104b501528181610a1101528181610bb2015281816118f6015261199601525f818161061a015281816106bf015281816117da015261185a01525f8181610346015261097f01525f818161027c0152818161091b015281816113d6015261142e01525f81816103fc0152818161058101528181610a7c01528181610ec1015281816110d701526112bf01526123005ff3fe608060405234801561000f575f80fd5b50600436106101fc575f3560e01c80637b0a47ee11610114578063c8f33c91116100a9578063e43252d711610079578063e43252d714610477578063ebe2b12b1461048a578063ee495fb614610492578063f3fef3a31461049d578063f7c618c1146104b0575f80fd5b8063c8f33c9114610436578063cd3daf9d1461043f578063d83062b414610447578063df136d651461046e575f80fd5b8063901a7d53116100e4578063901a7d53146103c75780639a8c1c70146103d0578063adc9772e146103e4578063bc43cbaf146103f7575f80fd5b80637b0a47ee1461038457806380faa57d1461038d5780638ab1d681146103955780638b876347146103a8575f80fd5b80633af32abf11610195578063648bf77411610165578063648bf7741461031b5780636b0916951461032e5780636c8bcee8146103415780636f73a38f1461036857806370a0823114610371575f80fd5b80633af32abf146102cc5780633d18b912146102f7578063590a41f5146102ff57806363d38c3b14610312575f80fd5b806314d09249116101d057806314d092491461029e57806318160ddd146102b3578063262d3d6d146102bb57806338b90333146102c4575f80fd5b80628cc2621461020057806306c933d8146102265780630700037d146102585780630fb5a6b414610277575b5f80fd5b61021361020e366004612107565b6104d7565b6040519081526020015b60405180910390f35b610248610234366004612107565b600a6020525f908152604090205460ff1681565b604051901515815260200161021d565b610213610266366004612107565b60086020525f908152604090205481565b6102137f000000000000000000000000000000000000000000000000000000000000000081565b6102b16102ac366004612122565b610543565b005b6102136107f8565b61021360065481565b610213600181565b6102486102da366004612107565b6001600160a01b03165f908152600a602052604090205460ff1690565b6102b161087e565b6102b161030d366004612122565b61088a565b61021360045481565b6102b1610329366004612139565b610a3e565b6102b161033c366004612139565b610d5a565b6102137f000000000000000000000000000000000000000000000000000000000000000081565b61021360095481565b61021361037f366004612107565b610de3565b61021360015481565b610213610e6f565b6102b16103a3366004612107565b610e83565b6102136103b6366004612107565b60076020525f908152604090205481565b61021360055481565b6102486103de366004612107565b50600190565b6102b16103f2366004612170565b610fd0565b61041e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b61021360025481565b61021361102c565b61041e7f000000000000000000000000000000000000000000000000000000000000000081565b61021360035481565b6102b1610485366004612107565b611099565b6102135f5481565b6102136301e1338081565b6102b16104ab366004612170565b611212565b61041e7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381165f908152600860209081526040808320546007909252822054670de0b6b3a76400009061050c61102c565b61051691906121ae565b61051f85610de3565b61052991906121c1565b61053391906121d8565b61053d91906121f7565b92915050565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156105ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f2919061220a565b61060f57604051634ca8886760e01b815260040160405180910390fd5b81156107bc576106bd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663024d381b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610674573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106989190612229565b60405180604001604052806007815260200166616363546f6b6560c81b81525061126e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663024d381b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610719573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073d9190612229565b6001600160a01b0316635fec5c646040518163ffffffff1660e01b8152600401602060405180830381865afa158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c9190612244565b8210156107bc5760405163bcec4c5360e01b815260040160405180910390fd5b60098290556040518281527f62ff17080925adbeb90d914efe5f615d059f19c2e728740b500d1e84ba65989a9060200160405180910390a15050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108799190612244565b905090565b6108883333610d5a565b565b335f908152600a602052604090205460ff161580156108d057506108ce7f5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c1633611297565b155b156108ee57604051634ca8886760e01b815260040160405180910390fd5b600454816108fc82826121f7565b92505f5442106109185761090f83611331565b5f6004556109c1565b5f7f00000000000000000000000000000000000000000000000000000000000000005f5461094691906121ae565b61095090426121ae565b90505f8160015461096191906121c1565b90505f85610971836103e86121c1565b61097b91906121d8565b90507f00000000000000000000000000000000000000000000000000000000000000008110156109b7576109ae86611331565b5f6004556109bd565b60048690555b5050505b600454604080518481526020810184905280820192909252517fe4a19739e7048ef5e90c7a157e8fb37a6e90cb8de298625227540d2443b9769c9181900360600190a1610a396001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846114b5565b505050565b604051632474521560e21b81527f712b73613835f525c3c675d2245c737ba70afbd0b97264479c97d623f214159460048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610ac9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aed919061220a565b610b0a57604051634ca8886760e01b815260040160405180910390fd5b610b3183604051806040016040528060058152602001643a37b5b2b760d91b81525061126e565b610b5c82604051806040016040528060098152602001681c9958da5c1a595b9d60ba1b81525061126e565b306001600160a01b03831603610b9557604051634726455360e11b81526001600160a01b03831660048201526024015b60405180910390fd5b6301e13380600254610ba791906121f7565b42108015610be657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b15610c0457604051633d38b78360e01b815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610c8b57478015610c8557604080516001600160a01b038087168252851660208201529081018290527ffff3b3844276f57024e0b42afec1a37f75db36511e43819a4f2a63ab7862b6489060600160405180910390a1610c858382611520565b50505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ccf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf39190612244565b90508015610c8557604080516001600160a01b038087168252851660208201529081018290527ffff3b3844276f57024e0b42afec1a37f75db36511e43819a4f2a63ab7862b6489060600160405180910390a1610c856001600160a01b0385168483611635565b610d62611665565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610da45750336001600160a01b03831614155b15610dc257604051634ca8886760e01b815260040160405180910390fd5b610dcb826116be565b610dd58282611776565b610ddf6001600b55565b5050565b6040516370a0823160e01b81526001600160a01b0382811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610e4b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053d9190612244565b5f80544210610e7e57505f5490565b504290565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610f0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f32919061220a565b610f4f57604051634ca8886760e01b815260040160405180910390fd5b6001600160a01b0382165f908152600a602052604090205460ff16610f875760405163d3ed043d60e01b815260040160405180910390fd5b6001600160a01b0382165f818152600a6020526040808220805460ff19169055517fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df7579190a25050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110195760405163f1ca557d60e01b815260040160405180910390fd5b611022826116be565b610ddf8282611b02565b5f806110366107f8565b9050805f0361104757505060035490565b80600154600254611056610e6f565b61106091906121ae565b61106a91906121c1565b61107c90670de0b6b3a76400006121c1565b61108691906121d8565b60035461109391906121f7565b91505090565b604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015611124573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611148919061220a565b61116557604051634ca8886760e01b815260040160405180910390fd5b61118d82604051806040016040528060068152602001651dd85b1b195d60d21b81525061126e565b6001600160a01b0382165f908152600a602052604090205460ff16156111c657604051633e04f87160e01b815260040160405180910390fd5b6001600160a01b0382165f818152600a6020526040808220805460ff19166001179055517fa850ae9193f515cbae8d35e8925bd2be26627fc91bce650b8652ed254e9cab039190a25050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461125b5760405163f1ca557d60e01b815260040160405180910390fd5b611264826116be565b610ddf8282611b8e565b6001600160a01b038216610ddf578060405163eac0d38960e01b8152600401610b8c919061227d565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906391d1485490604401602060405180830381865afa158015611306573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132a919061220a565b9392505050565b8060065f82825461134291906121f7565b9091555061135090506107f8565b5f0361138f575f54600254101561138a576001546002545f5461137391906121ae565b61137d91906121c1565b61138790826121f7565b90505b6113c8565b5f544210156113c8575f425f546113a691906121ae565b90505f600154826113b791906121c1565b90506113c381846121f7565b925050505b6113d15f6116be565b6113fb7f0000000000000000000000000000000000000000000000000000000000000000826121d8565b600181905561141d57604051631f2a200560e01b815260040160405180910390fd5b6005819055426002819055611453907f0000000000000000000000000000000000000000000000000000000000000000906121f7565b5f819055600154600254600654604080518681526020810194909452830191909152606082019290925260808101919091527f8ce8cbe5f803930b0c6afe4640018bbfb02cbb5b0bfbe051b25a155201e80dac9060a00160405180910390a150565b6040516001600160a01b0380851660248301528316604482015260648101829052610c859085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611c1a565b804710156115705760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b8c565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146115b9576040519150601f19603f3d011682016040523d82523d5f602084013e6115be565b606091505b5050905080610a395760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b8c565b6040516001600160a01b038316602482015260448101829052610a3990849063a9059cbb60e01b906064016114e9565b6002600b54036116b75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b8c565b6002600b55565b5f6116c761102c565b6003556116d2610e6f565b60025560035415611721576001600160a01b03821615611721576116f5826104d7565b6001600160a01b0383165f90815260086020908152604080832084905560035460079092529091205590505b6003546002546040805184815260208101939093528201526001600160a01b038316907f469d38647ec007a9c93421468c92550d50fccc01ae12e149b1216aa9b0136fc7906060015b60405180910390a25050565b61179f82604051806040016040528060078152602001661858d8dbdd5b9d60ca1b81525061126e565b6117ca81604051806040016040528060098152602001681c9958da5c1a595b9d60ba1b81525061126e565b5f6117d4836104d7565b90505f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663024d381b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611834573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118589190612229565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f543bb0e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d89190612229565b91509150825f036118ea575050505050565b806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061192b5750600954155b156119c2576001600160a01b038086165f818152600860205260408082209190915551918616917f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e906119819087815260200190565b60405180910390a36119bd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611635565b611afb565b604051633f6e925b60e01b8152600481018490526001600160a01b03831690633f6e925b90602401602060405180830381865afa158015611a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a29919061220a565b15611afb576001600160a01b038086165f818152600860205260408082209190915551918616917f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e90611a7f9087815260200190565b60405180910390a3611a92818385611ceb565b600954604051637628a37d60e01b81526004810185905260248101919091526001600160a01b038581166044830152831690637628a37d906064015f604051808303815f87803b158015611ae4575f80fd5b505af1158015611af6573d5f803e3d5ffd5b505050505b5050505050565b611b2b82604051806040016040528060078152602001661858d8dbdd5b9d60ca1b81525061126e565b611b538160405180604001604052806006815260200165185b5bdd5b9d60d21b815250611d8c565b816001600160a01b03167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d8260405161176a91815260200190565b611bb782604051806040016040528060078152602001661858d8dbdd5b9d60ca1b81525061126e565b611bdf8160405180604001604052806006815260200165185b5bdd5b9d60d21b815250611d8c565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260405161176a91815260200190565b5f611c6e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611dae9092919063ffffffff16565b805190915015610a395780806020019051810190611c8c919061220a565b610a395760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b8c565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015611d38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5c9190612244565b90508015611d7857611d786001600160a01b0385168483611dc4565b610c856001600160a01b0385168484611ecd565b815f03610ddf5780604051634389d5ab60e01b8152600401610b8c919061227d565b6060611dbc84845f85611f7c565b949350505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015611e11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e359190612244565b905081811015611e995760405162461bcd60e51b815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e63652062604482015268656c6f77207a65726f60b81b6064820152608401610b8c565b6040516001600160a01b03841660248201528282036044820181905290611afb90869063095ea7b360e01b906064016114e9565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f91839186169063dd62ed3e90604401602060405180830381865afa158015611f1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612244565b611f4991906121f7565b6040516001600160a01b038516602482015260448101829052909150610c8590859063095ea7b360e01b906064016114e9565b606082471015611fdd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b8c565b5f80866001600160a01b03168587604051611ff891906122af565b5f6040518083038185875af1925050503d805f8114612032576040519150601f19603f3d011682016040523d82523d5f602084013e612037565b606091505b509150915061204887838387612053565b979650505050505050565b606083156120c15782515f036120ba576001600160a01b0385163b6120ba5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b8c565b5081611dbc565b611dbc83838151156120d65781518083602001fd5b8060405162461bcd60e51b8152600401610b8c919061227d565b6001600160a01b0381168114612104575f80fd5b50565b5f60208284031215612117575f80fd5b813561132a816120f0565b5f60208284031215612132575f80fd5b5035919050565b5f806040838503121561214a575f80fd5b8235612155816120f0565b91506020830135612165816120f0565b809150509250929050565b5f8060408385031215612181575f80fd5b823561218c816120f0565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561053d5761053d61219a565b808202811582820484141761053d5761053d61219a565b5f826121f257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561053d5761053d61219a565b5f6020828403121561221a575f80fd5b8151801515811461132a575f80fd5b5f60208284031215612239575f80fd5b815161132a816120f0565b5f60208284031215612254575f80fd5b5051919050565b5f5b8381101561227557818101518382015260200161225d565b50505f910152565b602081525f825180602084015261229b81604085016020870161225b565b601f01601f19169190910160400192915050565b5f82516122c081846020870161225b565b919091019291505056fea2646970667358221220eaa884121b6b4a8f092332a77d08da3a514f65d943f74297381410374c69569064736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa4285000000000000000000000000865377367054516e17014ccded1e7d814edc9ce4000000000000000000000000dc39c67b38ecda8a1974336c89b00f68667c91b7000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000127500