1 tx
5.6k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address _owner, address _spender) view returns (uint256)
allowances
viewfunction allowances(address, address) view returns (uint256)
averageStakedAmounts
viewfunction averageStakedAmounts(address) view returns (uint256)
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
balances
viewfunction balances(address) view returns (uint256)
bnGs
viewfunction bnGs() view returns (address)
bnRateCap
viewfunction bnRateCap() view returns (uint256)
bonusTracker
viewfunction bonusTracker() view returns (address)
claimable
viewfunction claimable(address _account) view returns (uint256)
claimableReward
viewfunction claimableReward(address) view returns (uint256)
cumulativeRewardPerToken
viewfunction cumulativeRewardPerToken() view returns (uint256)
cumulativeRewards
viewfunction cumulativeRewards(address) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
depositBalances
viewfunction depositBalances(address, address) view returns (uint256)
distributor
viewfunction distributor() view returns (address)
inactivePoints
viewfunction inactivePoints(address) view returns (uint256)
inPrivateClaimingMode
viewfunction inPrivateClaimingMode() view returns (bool)
inPrivateStakingMode
viewfunction inPrivateStakingMode() view returns (bool)
inPrivateTransferMode
viewfunction inPrivateTransferMode() view returns (bool)
isDepositToken
viewfunction isDepositToken(address) view returns (bool)
isHandler
viewfunction isHandler(address) view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
PRECISION
viewfunction PRECISION() view returns (uint256)
previousCumulatedRewardPerToken
viewfunction previousCumulatedRewardPerToken(address) view returns (uint256)
rewardToken
viewfunction rewardToken() view returns (address)
stakedAmounts
viewfunction stakedAmounts(address) view returns (uint256)
supportsInterface
purefunction supportsInterface(bytes4 interfaceId) pure returns (bool)
symbol
viewfunction symbol() view returns (string)
tokensPerInterval
viewfunction tokensPerInterval() view returns (uint256)
totalDepositSupply
viewfunction totalDepositSupply(address) view returns (uint256)
totalInactivePoints
viewfunction totalInactivePoints() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
approve
nonpayablefunction approve(address _spender, uint256 _amount) returns (bool)
claim
nonpayablefunction claim(address _receiver) returns (uint256)
claimForAccount
nonpayablefunction claimForAccount(address _account, address _receiver) returns (uint256)
initialize
nonpayablefunction initialize(string _name, string _symbol, address[] _depositTokens, address _distributor)
renounceOwnership
nonpayablefunction renounceOwnership()
setBonusLimit
nonpayablefunction setBonusLimit(uint256 _bnRateCap)
setDepositToken
nonpayablefunction setDepositToken(address _depositToken, bool _isDepositToken)
setHandler
nonpayablefunction setHandler(address _handler, bool _isActive)
setInPrivateClaimingMode
nonpayablefunction setInPrivateClaimingMode(bool _inPrivateClaimingMode)
setInPrivateStakingMode
nonpayablefunction setInPrivateStakingMode(bool _inPrivateStakingMode)
setInPrivateTransferMode
nonpayablefunction setInPrivateTransferMode(bool _inPrivateTransferMode)
stake
nonpayablefunction stake(address _depositToken, uint256 _amount)
stakeForAccount
nonpayablefunction stakeForAccount(address _fundingAccount, address _account, address _depositToken, uint256 _amount)
transfer
nonpayablefunction transfer(address _recipient, uint256 _amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address _sender, address _recipient, uint256 _amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unstake
nonpayablefunction unstake(address _depositToken, uint256 _amount)
unstakeForAccount
nonpayablefunction unstakeForAccount(address _account, address _depositToken, uint256 _amount, address _receiver)
updateRewards
nonpayablefunction updateRewards()
withdrawToken
nonpayablefunction withdrawToken(address _token, address _recipient, uint256 _amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Claim
event Claim(address indexed _account, uint256 _amount, address _receiver)
DepositTokenSet
event DepositTokenSet(address indexed _depositToken, bool _isDepositToken)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
RewardsUpdate
event RewardsUpdate(uint256 indexed _cumulativeRewardPerToken)
Stake
event Stake(address indexed _fundingAccount, address indexed _account, address indexed _depositToken, uint256 _amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unstake
event Unstake(address indexed _account, address indexed _depositToken, uint256 _amount, address indexed _receiver)
UserRewardsUpdate
event UserRewardsUpdate(address indexed _account, uint256 _claimableReward, uint256 _previousCumulatedRewardPerToken, uint256 _averageStakedAmount, uint256 _cumulativeReward)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060018055620000213362000027565b62000097565b600380546001600160a01b0319169055620000428162000045565b50565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612dcf80620000a76000396000f3fe608060405234801561001057600080fd5b506004361061035d5760003560e01c8063715018a6116101d3578063c2a672e011610104578063e9503425116100a2578063f5fc50761161007c578063f5fc507614610819578063f76033d314610822578063f7c618c114610836578063ffd582841461083e57600080fd5b8063e9503425146107bb578063f2fde38b146107db578063f5d9d63e146107ee57600080fd5b8063dd62ed3e116100de578063dd62ed3e1461074a578063dfbaefb114610783578063e30c397814610797578063e44b7558146107a857600080fd5b8063c2a672e014610710578063c5fa273014610723578063cc011f081461073757600080fd5b8063a318021711610171578063aaf5eb681161014b578063aaf5eb68146106b3578063adc9772e146106c7578063b89e45b3146106da578063bfe10928146106fd57600080fd5b8063a318021714610678578063a8d9362714610698578063a9059cbb146106a057600080fd5b80638a3573f1116101ad5780638a3573f1146106395780638da5cb5b1461064c57806395d89b411461065d5780639cb7de4b1461066557600080fd5b8063715018a614610616578063790b5a6c1461061e57806379ba50971461063157600080fd5b8063313ce567116102ad578063481a48ec1161024b57806355b6ed5c1161022557806355b6ed5c146105845780635a47a1a7146105af57806363e5d466146105c257806370a08231146105ed57600080fd5b8063481a48ec1461053157806352c9f95e14610544578063552ce1dc1461056457600080fd5b80633e158b0c116102875780633e158b0c146104d3578063402914f5146104db57806344a08411146104ee57806346ea87af1461050e57600080fd5b8063313ce567146104865780633792def3146104a05780633cd7f700146104c057600080fd5b806313e82e7a1161031a5780631df488e7116102f45780631df488e7146104375780631e83409a1461044057806323b872dd1461045357806327e235e31461046657600080fd5b806313e82e7a1461040857806318160ddd1461041b5780631d30d5bc1461042457600080fd5b806301e336671461036257806301ffc9a71461037757806306fdde031461039f578063095ea7b3146103b4578063098bf59d146103c757806310c1c103146103da575b600080fd5b6103756103703660046126fb565b610847565b005b61038a61038536600461273c565b610928565b60405190151581526020015b60405180910390f35b6103a761095f565b604051610396919061278a565b61038a6103c23660046127bd565b6109ed565b6103756103d53660046127e9565b610a03565b6103fa6103e836600461283c565b600f6020526000908152604090205481565b604051908152602001610396565b6103fa610416366004612859565b610a28565b6103fa600b5481565b6103756104323660046128a0565b610a4f565b6103fa60165481565b6103fa61044e36600461283c565b610a75565b61038a6104613660046126fb565b610acc565b6103fa61047436600461283c565b600c6020526000908152604090205481565b61048e601281565b60405160ff9091168152602001610396565b6103fa6104ae36600461283c565b60126020526000908152604090205481565b6103756104ce3660046128a0565b610b4b565b610375610b71565b6103fa6104e936600461283c565b610b8e565b6103fa6104fc36600461283c565b60116020526000908152604090205481565b61038a61051c36600461283c565b60076020526000908152604090205460ff1681565b61037561053f366004612974565b610d05565b6103fa61055236600461283c565b60186020526000908152604090205481565b6103fa61057236600461283c565b600a6020526000908152604090205481565b6103fa610592366004612859565b600d60209081526000928352604080842090915290825290205481565b6103756105bd3660046128a0565b611032565b6014546105d5906001600160a01b031681565b6040516001600160a01b039091168152602001610396565b6103fa6105fb36600461283c565b6001600160a01b03166000908152600c602052604090205490565b610375611058565b61037561062c366004612a7e565b61106a565b610375611086565b610375610647366004612acf565b611100565b6002546001600160a01b03166105d5565b6103a761110d565b610375610673366004612ae8565b61111a565b6103fa61068636600461283c565b60136020526000908152604090205481565b6103fa61114d565b61038a6106ae3660046127bd565b6111c0565b6103fa6c0c9f2c9cd04674edea4000000081565b6103756106d53660046127bd565b6111cd565b61038a6106e836600461283c565b60086020526000908152604090205460ff1681565b6006546105d5906001600160a01b031681565b61037561071e3660046127bd565b611218565b60065461038a90600160a81b900460ff1681565b6015546105d5906001600160a01b031681565b6103fa610758366004612859565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60065461038a90600160a01b900460ff1681565b6003546001600160a01b03166105d5565b6103756107b6366004612ae8565b611256565b6103fa6107c936600461283c565b60106020526000908152604090205481565b6103756107e936600461283c565b611289565b6103fa6107fc366004612859565b600960209081526000928352604080842090915290825290205481565b6103fa600e5481565b60065461038a90600160b01b900460ff1681565b6105d56112fa565b6103fa60175481565b61084f611368565b6001600160a01b038316610899576040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610893573d6000803e3d6000fd5b50505050565b80156108a5578061090d565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156108e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090d9190612b16565b90506109236001600160a01b03841683836113c2565b505050565b60006001600160e01b031982166303df7ecf60e21b148061095957506001600160e01b031982166301ffc9a760e01b145b92915050565b6004805461096c90612b2f565b80601f016020809104026020016040519081016040528092919081815260200182805461099890612b2f565b80156109e55780601f106109ba576101008083540402835291602001916109e5565b820191906000526020600020905b8154815290600101906020018083116109c857829003601f168201915b505050505081565b60006109fa338484611425565b50600192915050565b610a0b61155b565b610a136115b4565b610a1f84848484611613565b61089360018055565b6000610a3261155b565b610a3a6115b4565b610a448383611628565b905061095960018055565b610a57611368565b60068054911515600160a81b0260ff60a81b19909216919091179055565b6000610a7f61155b565b600654600160b01b900460ff1615610ab25760405162461bcd60e51b8152600401610aa990612b69565b60405180910390fd5b610abc3383611628565b9050610ac760018055565b919050565b3360009081526007602052604081205460ff1615610af757610aef8484846116bf565b506001610b44565b6001600160a01b0384166000908152600d60209081526040808320338452909152812054610b26908490612bc0565b9050610b33853383611425565b610b3e8585856116bf565b60019150505b9392505050565b610b53611368565b60068054911515600160b01b0260ff60b01b19909216919091179055565b610b7961155b565b610b836000611857565b610b8c60018055565b565b6001600160a01b038116600090815260186020908152604080832054600f9092528220548291610bbd91612bc0565b6001600160a01b038416600090815260106020526040812054919250829003610be7579392505050565b6000601754600b54610bf99190612bc0565b905060006c0c9f2c9cd04674edea40000000600660009054906101000a90046001600160a01b03166001600160a01b031663eded3fda6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190612b16565b610c8c9190612bd3565b90506000610c9a8383612bea565b600e54610ca79190612c0c565b6001600160a01b0388166000908152601160205260409020549091506c0c9f2c9cd04674edea4000000090610cdc9083612bc0565b610ce69087612bd3565b610cf09190612bea565b610cfa9085612c0c565b979650505050505050565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610aa9565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce33611bc2565b60408051808201909152601781527f47616d6d615377617020526576656e75652053686172650000000000000000006020820152600490610e0f9082612c6d565b5060408051808201909152600580825264666565475360d81b602083015290610e389082612c6d565b506127106016556006805462ffffff60a01b19166201010160a01b1790558251600214610ea75760405162461bcd60e51b815260206004820152601f60248201527f466565547261636b65723a20696e76616c696420746f6b656e207365747570006044820152606401610aa9565b60016008600085600081518110610ec057610ec0612d2d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600085600181518110610f1857610f18612d2d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555082600081518110610f6a57610f6a612d2d565b6020026020010151601460006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600181518110610fab57610fab612d2d565b6020908102919091010151601580546001600160a01b03199081166001600160a01b039384161790915560068054909116918416919091179055801561102b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b61103a611368565b60068054911515600160a01b0260ff60a01b19909216919091179055565b611060611368565b610b8c6000611bc2565b61107261155b565b61107a6115b4565b610a1f84848484611bdb565b60035433906001600160a01b031681146110f45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610aa9565b6110fd81611bc2565b50565b611108611368565b601655565b6005805461096c90612b2f565b611122611368565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6006546040805163a8d9362760e01b815290516000926001600160a01b03169163a8d936279160048083019260209291908290030181865afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612b16565b905090565b60006109fa3384846116bf565b6111d561155b565b600654600160a81b900460ff16156111ff5760405162461bcd60e51b8152600401610aa990612b69565b61120b33338484611bdb565b61121460018055565b5050565b61122061155b565b600654600160a81b900460ff161561124a5760405162461bcd60e51b8152600401610aa990612b69565b61120b33838333611613565b61125e611368565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b611291611368565b600380546001600160a01b0383166001600160a01b031990911681179091556112c26002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6006546040805163f7c618c160e01b815290516000926001600160a01b03169163f7c618c19160048083019260209291908290030181865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb9190612d43565b6002546001600160a01b03163314610b8c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610aa9565b6040516001600160a01b03831660248201526044810182905261092390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611bf0565b6001600160a01b0383166114905760405162461bcd60e51b815260206004820152602c60248201527f526577617264547261636b65723a20617070726f76652066726f6d207468652060448201526b7a65726f206164647265737360a01b6064820152608401610aa9565b6001600160a01b0382166114f95760405162461bcd60e51b815260206004820152602a60248201527f526577617264547261636b65723a20617070726f766520746f20746865207a65604482015269726f206164647265737360b01b6064820152608401610aa9565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6002600154036115ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610aa9565b6002600155565b3360009081526007602052604090205460ff16610b8c5760405162461bcd60e51b815260206004820152601860248201527f526577617264547261636b65723a20666f7262696464656e00000000000000006044820152606401610aa9565b61161f84848484611cc2565b61089384611f18565b600061163383611857565b6001600160a01b038316600090815260106020526040812080549190558015610b445761167383826116636112fa565b6001600160a01b031691906113c2565b604080518281526001600160a01b0385811660208301528616917fa8363d922dc171313585ca13972873c5732013dc819db64b51ba8b1aa1a1e3e2910160405180910390a29392505050565b6001600160a01b03831661172b5760405162461bcd60e51b815260206004820152602d60248201527f526577617264547261636b65723a207472616e736665722066726f6d2074686560448201526c207a65726f206164647265737360981b6064820152608401610aa9565b6001600160a01b0382166117955760405162461bcd60e51b815260206004820152602b60248201527f526577617264547261636b65723a207472616e7366657220746f20746865207a60448201526a65726f206164647265737360a81b6064820152608401610aa9565b600654600160a01b900460ff16156117af576117af6115b4565b6001600160a01b0383166000908152600c60205260409020546117d3908290612bc0565b6001600160a01b038085166000908152600c60205260408082209390935590841681522054611803908290612c0c565b6001600160a01b038084166000818152600c602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061154e9085815260200190565b6006546040805163e4fc6b6d60e01b815290516000926001600160a01b03169163e4fc6b6d916004808301926020929190829003018187875af11580156118a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c69190612b16565b90506000601754600b546118da9190612bc0565b600e5490915081158015906118ef5750600083115b15611928578161190c6c0c9f2c9cd04674edea4000000085612bd3565b6119169190612bea565b6119209082612c0c565b600e81905590505b806000036119365750505050565b60405181907f10adec45f820d71a76d6a53fed5b2098c57d74b8536337b3a65b744b8ae8021190600090a26001600160a01b03841615610893576001600160a01b038416600090815260186020908152604080832054600f90925282205461199e9190612bc0565b6001600160a01b038616600090815260116020526040812054919250906c0c9f2c9cd04674edea40000000906119d49085612bc0565b6119de9084612bd3565b6119e89190612bea565b6001600160a01b03871660009081526010602052604081205491925090611a10908390612c0c565b6001600160a01b03881660009081526010602090815260408083208490556011909152902085905590508015801590611a495750600083115b15611b47576001600160a01b03871660009081526012602052604081205490611a728483612c0c565b9050600081611a818688612bd3565b611a8b9190612bea565b6001600160a01b038b166000908152601360205260409020548390611ab1908690612bd3565b611abb9190612bea565b611ac59190612c0c565b6001600160a01b038b1660008181526013602090815260408083208590556012825280832087905560108252918290205482519081529081018b905290810183905260608101859052919250907fd559100998edc7a294bcfcc6e086ff747ff7d63ae47429676af7655d2eb831a29060800160405180910390a2505050611bb9565b6001600160a01b038716600081815260106020908152604080832054601383528184205460128452938290205482519182529281018990529081019290925260608201527fd559100998edc7a294bcfcc6e086ff747ff7d63ae47429676af7655d2eb831a29060800160405180910390a25b50505050505050565b600380546001600160a01b03191690556110fd81612031565b611be784848484612083565b61089383611f18565b6000611c45826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122849092919063ffffffff16565b8051909150156109235780806020019051810190611c639190612d60565b6109235760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610aa9565b60008211611d125760405162461bcd60e51b815260206004820152601e60248201527f526577617264547261636b65723a20696e76616c6964205f616d6f756e7400006044820152606401610aa9565b611d1b84611857565b6001600160a01b0384166000908152600f602052604090205482811015611d985760405162461bcd60e51b815260206004820152602b60248201527f526577617264547261636b65723a205f616d6f756e742065786365656473207360448201526a1d185ad959105b5bdd5b9d60aa1b6064820152608401610aa9565b611da28382612bc0565b6001600160a01b038087166000908152600f602090815260408083209490945560098152838220928816825291909152205483811015611e3a5760405162461bcd60e51b815260206004820152602d60248201527f526577617264547261636b65723a205f616d6f756e742065786365656473206460448201526c65706f73697442616c616e636560981b6064820152608401610aa9565b611e448482612bc0565b6001600160a01b038088166000908152600960209081526040808320938a16835292815282822093909355600a909252902054611e82908590612bc0565b6001600160a01b0386166000908152600a6020526040902055611ea5868561229b565b611eb96001600160a01b03861684866113c2565b826001600160a01b0316856001600160a01b0316876001600160a01b03167fc49e193c85695e3e46945609be3d6f07b236e398be4835e8164516253af02dd087604051611f0891815260200190565b60405180910390a4505050505050565b6001600160a01b0381811660009081526009602090815260408083206014548516845290915280822054601554909316825281205460165490919061271090611f619085612bd3565b611f6b9190612bea565b9050600081831115611f8457611f818284612bc0565b90505b6001600160a01b038516600090815260186020526040902054601754611fab908390612c0c565b611fb59190612bc0565b60179081556001600160a01b038616600090815260186020526040902082905554600b54101561102b5760405162461bcd60e51b815260206004820152602160248201527f466565547261636b65723a20536f6d657468696e672071756974652077726f6e6044820152606760f81b6064820152608401610aa9565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081116120d35760405162461bcd60e51b815260206004820152601e60248201527f526577617264547261636b65723a20696e76616c6964205f616d6f756e7400006044820152606401610aa9565b6001600160a01b03821660009081526008602052604090205460ff166121475760405162461bcd60e51b8152602060048201526024808201527f526577617264547261636b65723a20696e76616c6964205f6465706f7369745460448201526337b5b2b760e11b6064820152608401610aa9565b61215c6001600160a01b0383168530846123f5565b61216583611857565b6001600160a01b0383166000908152600f6020526040902054612189908290612c0c565b6001600160a01b038085166000908152600f60209081526040808320949094556009815283822092861682529190915220546121c6908290612c0c565b6001600160a01b038085166000908152600960209081526040808320938716835292815282822093909355600a909252902054612204908290612c0c565b6001600160a01b0383166000908152600a6020526040902055612227838261242d565b816001600160a01b0316836001600160a01b0316856001600160a01b03167fc5017594d2723c038bb216e5bcef3ac65910ade839c0e63253bf5b59efbf0fd78460405161227691815260200190565b60405180910390a450505050565b60606122938484600085612572565b949350505050565b6001600160a01b0382166123035760405162461bcd60e51b815260206004820152602960248201527f526577617264547261636b65723a206275726e2066726f6d20746865207a65726044820152686f206164647265737360b81b6064820152608401610aa9565b6001600160a01b0382166000908152600c6020526040902054612327908290612bc0565b6001600160a01b0383166000908152600c6020526040902055600b5461234e908290612bc0565b600b556006546040805163135cbf5960e11b815290516001600160a01b03909216916326b97eb29160048082019260009290919082900301818387803b15801561239757600080fd5b505af11580156123ab573d6000803e3d6000fd5b5050604051838152600092506001600160a01b03851691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526108939085906323b872dd60e01b906084016113ee565b6001600160a01b0382166124935760405162461bcd60e51b815260206004820152602760248201527f526577617264547261636b65723a206d696e7420746f20746865207a65726f206044820152666164647265737360c81b6064820152608401610aa9565b80600b546124a19190612c0c565b600b556001600160a01b0382166000908152600c60205260409020546124c8908290612c0c565b6001600160a01b038084166000908152600c602052604080822093909355600654835163135cbf5960e11b815293519216926326b97eb2926004808301939282900301818387803b15801561251c57600080fd5b505af1158015612530573d6000803e3d6000fd5b50506040518381526001600160a01b0385169250600091507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016123e9565b6060824710156125d35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610aa9565b600080866001600160a01b031685876040516125ef9190612d7d565b60006040518083038185875af1925050503d806000811461262c576040519150601f19603f3d011682016040523d82523d6000602084013e612631565b606091505b5091509150610cfa87838387606083156126ac5782516000036126a5576001600160a01b0385163b6126a55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa9565b5081612293565b61229383838151156126c15781518083602001fd5b8060405162461bcd60e51b8152600401610aa9919061278a565b6001600160a01b03811681146110fd57600080fd5b8035610ac7816126db565b60008060006060848603121561271057600080fd5b833561271b816126db565b9250602084013561272b816126db565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b81356001600160e01b031981168114610b4457600080fd5b60005b83811015612781578181015183820152602001612769565b50506000910152565b60208152600082518060208401526127a9816040850160208701612766565b601f01601f19169190910160400192915050565b600080604083850312156127d057600080fd5b82356127db816126db565b946020939093013593505050565b600080600080608085870312156127ff57600080fd5b843561280a816126db565b9350602085013561281a816126db565b9250604085013591506060850135612831816126db565b939692955090935050565b60006020828403121561284e57600080fd5b8135610b44816126db565b6000806040838503121561286c57600080fd5b8235612877816126db565b91506020830135612887816126db565b809150509250929050565b80151581146110fd57600080fd5b6000602082840312156128b257600080fd5b8135610b4481612892565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156128fc576128fc6128bd565b604052919050565b600082601f83011261291557600080fd5b813567ffffffffffffffff81111561292f5761292f6128bd565b612942601f8201601f19166020016128d3565b81815284602083860101111561295757600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561298a57600080fd5b843567ffffffffffffffff808211156129a257600080fd5b6129ae88838901612904565b95506020915081870135818111156129c557600080fd5b6129d189828a01612904565b9550506040870135818111156129e657600080fd5b8701601f810189136129f757600080fd5b803582811115612a0957612a096128bd565b8060051b9250612a1a8484016128d3565b818152928201840192848101908b851115612a3457600080fd5b928501925b84841015612a5e5783359250612a4e836126db565b8282529285019290850190612a39565b809750505050505050612a73606086016126f0565b905092959194509250565b60008060008060808587031215612a9457600080fd5b8435612a9f816126db565b93506020850135612aaf816126db565b92506040850135612abf816126db565b9396929550929360600135925050565b600060208284031215612ae157600080fd5b5035919050565b60008060408385031215612afb57600080fd5b8235612b06816126db565b9150602083013561288781612892565b600060208284031215612b2857600080fd5b5051919050565b600181811c90821680612b4357607f821691505b602082108103612b6357634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f526577617264547261636b65723a20616374696f6e206e6f7420656e61626c656040820152601960fa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561095957610959612baa565b808202811582820484141761095957610959612baa565b600082612c0757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561095957610959612baa565b601f82111561092357600081815260208120601f850160051c81016020861015612c465750805b601f850160051c820191505b81811015612c6557828155600101612c52565b505050505050565b815167ffffffffffffffff811115612c8757612c876128bd565b612c9b81612c958454612b2f565b84612c1f565b602080601f831160018114612cd05760008415612cb85750858301515b600019600386901b1c1916600185901b178555612c65565b600085815260208120601f198616915b82811015612cff57888601518255948401946001909101908401612ce0565b5085821015612d1d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612d5557600080fd5b8151610b44816126db565b600060208284031215612d7257600080fd5b8151610b4481612892565b60008251612d8f818460208701612766565b919091019291505056fea2646970667358221220b01b9dfc1db6c43213ab139dcb2f7e9ee37b88d7b78cdff9260a522da9df39ae64736f6c63430008150033