0 txs
0 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf() view returns (uint256)
balanceOfPool
viewfunction balanceOfPool() view returns (uint256 bal)
balanceOfWant
viewfunction balanceOfWant() view returns (uint256)
balancerVault
viewfunction balancerVault() view returns (address)
beefyFeeConfig
viewfunction beefyFeeConfig() view returns (address)
beefyFeeRecipient
viewfunction beefyFeeRecipient() view returns (address)
booster
viewfunction booster() view returns (address)
callReward
viewfunction callReward() view returns (uint256)
depositFee
viewfunction depositFee() view returns (uint256)
depositToken
viewfunction depositToken() view returns (address)
factory
viewfunction factory() view returns (address)
gauge
viewfunction gauge() view returns (address)
getAllFees
viewfunction getAllFees() view returns (tuple)
harvestOnDeposit
viewfunction harvestOnDeposit() view returns (bool)
keeper
viewfunction keeper() view returns (address)
lastHarvest
viewfunction lastHarvest() view returns (uint256)
lockDuration
viewfunction lockDuration() view returns (uint256)
lockedProfit
viewfunction lockedProfit() view returns (uint256)
minAmounts
viewfunction minAmounts(address) view returns (uint256)
minter
viewfunction minter() view returns (address)
native
viewfunction native() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pid
viewfunction pid() view returns (uint256)
rewardPool
viewfunction rewardPool() view returns (address)
rewards
viewfunction rewards(uint256) view returns (address)
rewardsAvailable
viewfunction rewardsAvailable() view returns (uint256)
rewardsLength
viewfunction rewardsLength() view returns (uint256)
strategist
viewfunction strategist() view returns (address)
stratName
purefunction stratName() pure returns (string)
swapper
viewfunction swapper() view returns (address)
totalLocked
viewfunction totalLocked() view returns (uint256)
vault
viewfunction vault() view returns (address)
want
viewfunction want() view returns (address)
withdrawFee
viewfunction withdrawFee() view returns (uint256)
addReward
nonpayablefunction addReward(address _token)
balancerJoin
nonpayablefunction balancerJoin(uint256 _amountIn) returns (uint256 bptAmountOut)
beforeDeposit
nonpayablefunction beforeDeposit()
claim
nonpayablefunction claim()
claim
nonpayablefunction claim(address[] _tokens, uint256[] _amounts, bytes32[][] _proofs)
deposit
nonpayablefunction deposit()
harvest
nonpayablefunction harvest()
harvest
nonpayablefunction harvest(address callFeeRecipient)
initialize
nonpayablefunction initialize(address _gauge, address _booster, address _balancerVault, uint256 _pid, address[] _rewards, tuple _commonAddresses)
panic
nonpayablefunction panic()
pause
nonpayablefunction pause()
removeReward
nonpayablefunction removeReward(uint256 i)
renounceOwnership
nonpayablefunction renounceOwnership()
resetRewards
nonpayablefunction resetRewards()
retireStrat
nonpayablefunction retireStrat()
setDepositToken
nonpayablefunction setDepositToken(address token)
setHarvestOnDeposit
nonpayablefunction setHarvestOnDeposit(bool _harvestOnDeposit)
setLockDuration
nonpayablefunction setLockDuration(uint256 _duration)
setPid
nonpayablefunction setPid(uint256 _pid, address _gauge, address _booster)
setRewardMinAmount
nonpayablefunction setRewardMinAmount(address token, uint256 minAmount)
setStrategist
nonpayablefunction setStrategist(address _strategist)
setSwapper
nonpayablefunction setSwapper(address _swapper)
setVault
nonpayablefunction setVault(address _vault)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
ChargedFees
event ChargedFees(uint256 callFees, uint256 beefyFees, uint256 strategistFees)
Deposit
event Deposit(uint256 tvl)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SetStrategist
event SetStrategist(address strategist)
SetSwapper
event SetSwapper(address swapper)
SetVault
event SetVault(address vault)
StratHarvest
event StratHarvest(address indexed harvester, uint256 wantHarvested, uint256 tvl)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(uint256 tvl)
errors
AddingLiquidityNotAllowed
error AddingLiquidityNotAllowed()
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
NotManager
error NotManager()
OnlyBalancerVault
error OnlyBalancerVault()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StrategyPaused
error StrategyPaused()
creation bytecode
0x608060405234801561001057600080fd5b506140d4806100206000396000f3fe6080604052600436106103a65760003560e01c80638456cb59116101e7578063bbb356d51161010d578063e7a7250a116100a0578063f2fde38b1161006f578063f2fde38b146109c2578063f301af42146109e2578063fb61778714610a02578063fbfa77cf14610a1757600080fd5b8063e7a7250a14610699578063e941fa7814610699578063f106845414610996578063f1a392da146109ac57600080fd5b8063c6def076116100dc578063c6def07614610921578063c7b9d53014610941578063c89039c514610961578063d0e30db01461098157600080fd5b8063bbb356d5146108b7578063c1a3d44c146108cc578063c45a0155146108e1578063c553173f1461090157600080fd5b80639c82f2a411610185578063aced166111610154578063aced16611461084b578063ad29f5da14610860578063b20feaaf14610875578063b73be3a51461089757600080fd5b80639c82f2a4146107c65780639c9b2e21146107e6578063a6f19c8414610806578063a7e9ca821461082b57600080fd5b80638e145459116101c15780638e1454591461076457806397fd323d146106995780639b9363a5146107795780639c5e52d51461079957600080fd5b80638456cb59146107175780638912cb8b1461072c5780638da5cb5b1461074657600080fd5b80634641257d116102cc578063573fef0a1161026a5780636817031b116102395780636817031b146106ad5780636b740cc8146106cd578063715018a6146106ed578063722713f71461070257600080fd5b8063573fef0a146106405780635c975abb1461065557806366666aa91461067957806367a527931461069957600080fd5b80634e71d92d116102a65780634e71d92d146105d35780634eb665af146105e85780635064010a14610608578063568914121461062a57600080fd5b80634641257d146105945780634700d305146105a95780634746fb55146105be57600080fd5b8063158274a5116103445780632e1a7d4d116103135780632e1a7d4d1461052a5780633f4ba83a1461054a5780634440cecd1461055f57806344b813961461057f57600080fd5b8063158274a5146104aa5780631f1fcd51146104ca5780631fe4a686146104ea5780632b3297f91461050a57600080fd5b80630e5c011e116103805780630e5c011e146104355780630e8fbb5a14610455578063115880861461047557806311b0b42d1461048a57600080fd5b806304554443146103b257806307546172146103db5780630c4ed7991461041357600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c860a25481565b6040519081526020015b60405180910390f35b3480156103e757600080fd5b5060d8546103fb906001600160a01b031681565b6040516001600160a01b0390911681526020016103d2565b34801561041f57600080fd5b5061043361042e366004613534565b610a37565b005b34801561044157600080fd5b50610433610450366004613534565b610a7f565b34801561046157600080fd5b5061043361047036600461355f565b610a8a565b34801561048157600080fd5b506103c8610abd565b34801561049657600080fd5b50609e546103fb906001600160a01b031681565b3480156104b657600080fd5b5060d9546103fb906001600160a01b031681565b3480156104d657600080fd5b50609d546103fb906001600160a01b031681565b3480156104f657600080fd5b50609c546103fb906001600160a01b031681565b34801561051657600080fd5b50609b546103fb906001600160a01b031681565b34801561053657600080fd5b5061043361054536600461357c565b610b71565b34801561055657600080fd5b50610433610c3b565b34801561056b57600080fd5b5061043361057a366004613595565b610c5d565b34801561058b57600080fd5b506103c8610d86565b3480156105a057600080fd5b50610433610dee565b3480156105b557600080fd5b50610433610df9565b3480156105ca57600080fd5b506103fb610e19565b3480156105df57600080fd5b50610433610e87565b3480156105f457600080fd5b5061043361060336600461357c565b610e8f565b34801561061457600080fd5b5061061d610e9c565b6040516103d29190613627565b34801561063657600080fd5b506103c860a15481565b34801561064c57600080fd5b50610433610ec0565b34801561066157600080fd5b5060655460ff165b60405190151581526020016103d2565b34801561068557600080fd5b5060d7546103fb906001600160a01b031681565b3480156106a557600080fd5b5060006103c8565b3480156106b957600080fd5b506104336106c8366004613534565b610f00565b3480156106d957600080fd5b506103c86106e836600461357c565b610f5d565b3480156106f957600080fd5b50610433611176565b34801561070e57600080fd5b506103c8611188565b34801561072357600080fd5b506104336111b6565b34801561073857600080fd5b5060a3546106699060ff1681565b34801561075257600080fd5b506033546001600160a01b03166103fb565b34801561077057600080fd5b506103fb6111c6565b34801561078557600080fd5b50610433610794366004613685565b611210565b3480156107a557600080fd5b506103c86107b4366004613534565b60986020526000908152604090205481565b3480156107d257600080fd5b506104336107e1366004613534565b6115f9565b3480156107f257600080fd5b50610433610801366004613534565b61164f565b34801561081257600080fd5b5060d5546103fb9061010090046001600160a01b031681565b34801561083757600080fd5b50610433610846366004613726565b611737565b34801561085757600080fd5b506103fb61175b565b34801561086c57600080fd5b506104336117a5565b34801561088157600080fd5b5061088a6117b9565b6040516103d29190613752565b3480156108a357600080fd5b506104336108b23660046137cf565b611857565b3480156108c357600080fd5b506097546103c8565b3480156108d857600080fd5b506103c8611927565b3480156108ed57600080fd5b506099546103fb906001600160a01b031681565b34801561090d57600080fd5b5061043361091c36600461357c565b611958565b34801561092d57600080fd5b5060d6546103fb906001600160a01b031681565b34801561094d57600080fd5b5061043361095c366004613534565b611a10565b34801561096d57600080fd5b50609f546103fb906001600160a01b031681565b34801561098d57600080fd5b50610433611aa6565b3480156109a257600080fd5b506103c860da5481565b3480156109b857600080fd5b506103c860a05481565b3480156109ce57600080fd5b506104336109dd366004613534565b611c15565b3480156109ee57600080fd5b506103fb6109fd36600461357c565b611c8b565b348015610a0e57600080fd5b50610433611cb5565b348015610a2357600080fd5b50609a546103fb906001600160a01b031681565b610a3f611d77565b6001600160a01b038116610a6057609f80546001600160a01b031916905550565b609f80546001600160a01b0319166001600160a01b0383161790555b50565b610a7c816000611dc9565b610a92611d77565b60a3805460ff191682151590811790915560ff1615610ab357600060a25550565b6201518060a25550565b60d55460009060ff1615610b3d5760d7546040516370a0823160e01b81523060048201526001600160a01b03909116906370a08231906024015b602060405180830381865afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190613868565b905090565b60d5546040516370a0823160e01b81523060048201526101009091046001600160a01b0316906370a0823190602401610af7565b609a546001600160a01b03163314610ba45760405162461bcd60e51b8152600401610b9b90613881565b60405180910390fd5b6000610bae611927565b905081811015610bd557610bca610bc582846138b7565b612014565b610bd2611927565b90505b81811115610be05750805b609a54609d54610bfd916001600160a01b039182169116836120c3565b7f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d610c26611188565b60405190815260200160405180910390a15050565b610c43611d77565b610c4b612122565b610c53612174565b610c5b611aa6565b565b610c656121e4565b610c6d61223e565b610c75612249565b60da8390556212d686198301610caa5760d58054610100600160a81b0319166101006001600160a01b03851602179055610d46565b60d65460da54604051631526fe2760e01b81526001600160a01b0390921691631526fe2791610cdf9160040190815260200190565b60c060405180830381865afa158015610cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2091906138da565b505060d780546001600160a01b0319166001600160a01b03929092169190911790555050505b6001600160a01b03811615610d715760d680546001600160a01b0319166001600160a01b0383161790555b610d79612174565b610d81611aa6565b505050565b600060a254600003610d985750600090565b600060a05442610da891906138b7565b9050600060a2548210610dbc576000610dca565b8160a254610dca91906138b7565b905060a2548160a154610ddd9190613961565b610de79190613978565b9250505090565b610c5b326000611dc9565b610e01611d77565b610e096111b6565b610e1161223e565b610c5b612249565b60995460408051634746fb5560e01b815290516000926001600160a01b031691634746fb559160048083019260209291908290030181865afa158015610e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b38919061399a565b610c5b6122b8565b610e97611d77565b60a255565b60408051808201909152600a81526942616c616e636572563360b01b602082015290565b60a35460ff1615610c5b57609a546001600160a01b03163314610ef55760405162461bcd60e51b8152600401610b9b90613881565b610c5b326001611dc9565b610f086121e4565b609a80546001600160a01b0319166001600160a01b0383169081179091556040519081527fd459c7242e23d490831b5676a611c4342d899d28f342d89ae80793e56a930f30906020015b60405180910390a150565b60d9546000906001600160a01b03163314610f8b5760405163249a7c6360e21b815260040160405180910390fd5b60dd5460ff16610fae57604051633eee08c760e01b815260040160405180910390fd5b600060dc546001600160401b03811115610fca57610fca6139b7565b604051908082528060200260200182016040528015610ff3578160200160208202803683370190505b509050828160db548151811061100b5761100b6139cd565b602090810291909101015260d954609f54611033916001600160a01b039182169116856123ee565b60d954609f546040516315afd40960e01b81526001600160a01b039182166004820152602481018690529116906315afd409906044016020604051808303816000875af1158015611088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ac9190613868565b5060d9546040805160c081018252609d546001600160a01b039081168252306020808401919091528284018690526000606084018190526001608085015284519182018552815260a083015291516312bca7b160e21b81529190921691634af29ec49161111c9190600401613a05565b6000604051808303816000875af115801561113b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111639190810190613b91565b5060dd805460ff19169055949350505050565b61117e6121e4565b610c5b6000612440565b6000611192610d86565b61119a610abd565b6111a2611927565b6111ac9190613c5a565b610b3891906138b7565b6111be611d77565b610e11612492565b60995460408051638e14545960e01b815290516000926001600160a01b031691638e1454599160048083019260209291908290030181865afa158015610e63573d6000803e3d6000fd5b600054610100900460ff16158080156112305750600054600160ff909116105b8061124a5750303b15801561124a575060005460ff166001145b6112ad5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b9b565b6000805460ff1916600117905580156112d0576000805461ff0019166101001790555b60d580546001600160a01b03808b1661010002610100600160a81b03199092169190911790915560d980548883166001600160a01b03199182161790915560d68054928a169290911691909117905560da8590556212d687851461133c5760d5805460ff191660011790555b60d55460ff16156113e35760d65460da54604051631526fe2760e01b81526001600160a01b0390921691631526fe279161137c9160040190815260200190565b60c060405180830381865afa158015611399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bd91906138da565b505060d780546001600160a01b0319166001600160a01b03929092169190911790555050505b60d55460ff166114855760d560019054906101000a90046001600160a01b03166001600160a01b03166339f4caba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611440573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611464919061399a565b60d880546001600160a01b0319166001600160a01b03929092169190911790555b6114d061149736849003840184613c6d565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506124cf92505050565b609d546040805163154d950160e31b815290516000926001600160a01b03169163aa6ca80891600480830192869291908290030181865afa158015611519573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115419190810190613cfa565b805160dc55905060005b815181101561159f57609f5482516001600160a01b0390911690839083908110611577576115776139cd565b60200260200101516001600160a01b0316036115975760db81905561159f565b60010161154b565b506115a8612174565b5080156115ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6116016121e4565b609b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f211f06c051495b535b79192c1a4531d819d569657ff4bd16daa8e9e5e6ed2bfd90602001610f52565b611657611d77565b609d546001600160a01b039081169082160361169d5760405162461bcd60e51b8152602060048201526005602482015264085dd85b9d60da1b6044820152606401610b9b565b609e546001600160a01b03908116908216036116e55760405162461bcd60e51b8152602060048201526007602482015266216e617469766560c81b6044820152606401610b9b565b609780546001810182556000919091527f354a83ed9988f79f6038d4c7a7dadbad8af32f4ad6df893e0e5807a1b1944ff90180546001600160a01b0319166001600160a01b0392909216919091179055565b61173f611d77565b6001600160a01b03909116600090815260986020526040902055565b6099546040805163aced166160e01b815290516000926001600160a01b03169163aced16619160048083019260209291908290030181865afa158015610e63573d6000803e3d6000fd5b6117ad611d77565b610c5b6097600061348e565b6117c16134ac565b60405180606001604052806117d4610e19565b604051639af608c960e01b81523060048201526001600160a01b039190911690639af608c990602401600060405180830381865afa15801561181a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118429190810190613d88565b81526020016000815260200160009052919050565b604080516001808252818301909252733ef3d8ba38ebe18db133cec108f4d14ce00dd9ae91600091906020808301908036833701905050905030816000815181106118a4576118a46139cd565b6001600160a01b0392831660209182029290920101526040516301c7ba5760e61b8152908316906371ee95c0906118eb9084908c908c908c908c908c908c90600401613f0b565b600060405180830381600087803b15801561190557600080fd5b505af1158015611919573d6000803e3d6000fd5b505050505050505050505050565b609d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401610af7565b611960611d77565b60978054611970906001906138b7565b81548110611980576119806139cd565b600091825260209091200154609780546001600160a01b0390921691839081106119ac576119ac6139cd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060978054806119eb576119eb613fc8565b600082815260209020810160001990810180546001600160a01b031916905501905550565b609c546001600160a01b03163314611a585760405162461bcd60e51b815260206004820152600b60248201526a085cdd1c985d1959da5cdd60aa1b6044820152606401610b9b565b609c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f46d58e3fa07bf19b1d27240f0e286b27e9f7c1b0d88933333fe833b60eec541290602001610f52565b60655460ff1680611b295750609960009054906101000a90046001600160a01b03166001600160a01b031663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b299190613fde565b80611ba557506099546001600160a01b031663de73a594611b48610e9c565b6040518263ffffffff1660e01b8152600401611b649190613627565b602060405180830381865afa158015611b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba59190613fde565b15611bc35760405163e628b94960e01b815260040160405180910390fd5b6000611bcd611927565b90508015610a7c57611bde81612644565b7f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e38426611c07611188565b604051908152602001610f52565b611c1d6121e4565b6001600160a01b038116611c825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9b565b610a7c81612440565b60978181548110611c9b57600080fd5b6000918252602090912001546001600160a01b0316905081565b609a546001600160a01b03163314611cdf5760405162461bcd60e51b8152600401610b9b90613881565b611ce761223e565b609d54609a546001600160a01b039182169163a9059cbb9116611d08611927565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190613fde565b6033546001600160a01b03163314801590611dab5750611d9561175b565b6001600160a01b0316336001600160a01b031614155b15610c5b5760405163607e454560e11b815260040160405180910390fd5b60655460ff1680611e4c5750609960009054906101000a90046001600160a01b03166001600160a01b031663f12d54d86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4c9190613fde565b80611ec857506099546001600160a01b031663de73a594611e6b610e9c565b6040518263ffffffff1660e01b8152600401611e879190613627565b602060405180830381865afa158015611ea4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec89190613fde565b15611ee65760405163e628b94960e01b815260040160405180910390fd5b611eee6122b8565b611ef661270f565b609e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f639190613868565b609e546001600160a01b0316600090815260986020526040902054909150811115610d8157611f9183612883565b611f99612aa0565b6000611fa3611927565b9050611fad610d86565b611fb79082613c5a565b60a1554260a05582611fcb57611fcb611aa6565b337f9bc239f1724cacfb88cb1d66a2dc437467699b68a8c90d7b63110cf4b6f9241082611ff6611188565b6040805192835260208301919091520160405180910390a250505050565b8015610a7c5760d55460ff161561208e5760d754604051636197390160e11b815260048101839052600060248201526001600160a01b039091169063c32e7202906044015b600060405180830381600087803b15801561207357600080fd5b505af1158015612087573d6000803e3d6000fd5b5050505050565b60d554604051632e1a7d4d60e01b8152600481018390526101009091046001600160a01b031690632e1a7d4d90602401612059565b6040516001600160a01b03838116602483015260448201839052610d8191859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612cf0565b61212a612d53565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60d5546000199060ff16156121a557609d5460d6546121a0916001600160a01b03908116911683612d9c565b6121c7565b609d5460d5546121c7916001600160a01b039081169161010090041683612d9c565b609e54609b54610a7c916001600160a01b03908116911683612d9c565b6033546001600160a01b03163314610c5b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b9b565b610c5b610bc5610abd565b60d55460ff161561227757609d5460d654612272916001600160a01b0390811691166000612d9c565b61229a565b609d5460d55461229a916001600160a01b03908116916101009004166000612d9c565b609e54609b54610c5b916001600160a01b0390811691166000612d9c565b60d55460ff161561232d5760d760009054906101000a90046001600160a01b03166001600160a01b0316633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561231357600080fd5b505af1158015612327573d6000803e3d6000fd5b50505050565b60d8546001600160a01b0316156123a55760d85460d5546040516335313c2160e11b81526001600160a01b0361010090920482166004820152911690636a62784290602401600060405180830381600087803b15801561238c57600080fd5b505af11580156123a0573d6000803e3d6000fd5b505050505b60d554604051634274debf60e11b81523060048201526101009091046001600160a01b0316906384e9bd7e90602401600060405180830381600087803b15801561231357600080fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610d81908490612e0f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61249a612ee1565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121573390565b600054610100900460ff166124f65760405162461bcd60e51b8152600401610b9b90613ffb565b6124fe612f27565b612506612f56565b8151609d80546001600160a01b03199081166001600160a01b039384161790915560408085015160998054841691851691821790556060860151609a805485169186169190911790556080860151609b8054851691861691909117905560a0860151609c805490941694169390931790915580516311b0b42d60e01b815290516311b0b42d916004818101926020929091908290030181865afa1580156125b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d5919061399a565b609e80546001600160a01b0319166001600160a01b039290921691909117905560005b815181101561262b57612623828281518110612616576126166139cd565b602002602001015161164f565b6001016125f8565b506126398260200151610a37565b50506201518060a255565b8015610a7c5760d55460ff16156126da5760d65460da546040516321d0683360e11b8152600481019190915260248101839052600160448201526001600160a01b03909116906343a0d066906064016020604051808303816000875af11580156126b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d69190613fde565b5050565b60d55460405163b6b55f2560e01b8152600481018390526101009091046001600160a01b03169063b6b55f2590602401612059565b60005b609754811015610a7c57600060978281548110612731576127316139cd565b6000918252602090912001546001600160a01b0316905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed1981016127d257609e60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b1580156127b457600080fd5b505af11580156127c8573d6000803e3d6000fd5b505050505061287a565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283d9190613868565b6001600160a01b03831660009081526098602052604090205490915081111561287857609e546128789083906001600160a01b031683612f85565b505b50600101612712565b600061288d610e19565b604051639af608c960e01b81523060048201526001600160a01b039190911690639af608c990602401600060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128fb9190810190613d88565b8051609e546040516370a0823160e01b8152306004820152929350600092670de0b6b3a764000092916001600160a01b0316906370a0823190602401602060405180830381865afa158015612954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129789190613868565b6129829190613961565b61298c9190613978565b90506000670de0b6b3a76400008360400151836129a99190613961565b6129b39190613978565b609e549091506129cd906001600160a01b031685836120c3565b6000670de0b6b3a76400008460200151846129e89190613961565b6129f29190613978565b9050612a126129ff6111c6565b609e546001600160a01b031690836120c3565b6000670de0b6b3a7640000856060015185612a2d9190613961565b612a379190613978565b609c54609e54919250612a57916001600160a01b039081169116836120c3565b60408051848152602081018490529081018290527fd255b592c7f268a73e534da5219a60ff911b4cf6daae21c7d20527dd657bd99a9060600160405180910390a1505050505050565b609e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0d9190613868565b609e54609f549192506001600160a01b03918216911614612bae57609b54609e54609f54604051630df791e560e41b81526001600160a01b03928316600482015290821660248201526044810184905291169063df791e50906064016020604051808303816000875af1158015612b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bac9190613868565b505b609d54609f546001600160a01b03908116911614610a7c57609f546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c339190613868565b60dd8054600160ff1990911617905560d95460408051602480820185905282518083039091018152604490910182526020810180516001600160e01b0316630d6e819960e31b17905290516348c8949160e01b81529293506001600160a01b03909116916348c8949191612ca991600401613627565b6000604051808303816000875af1158015612cc8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d819190810190614046565b6000612d056001600160a01b03841683613037565b90508051600014158015612d2a575080806020019051810190612d289190613fde565b155b15610d8157604051635274afe760e01b81526001600160a01b0384166004820152602401610b9b565b60655460ff16610c5b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b9b565b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b3906044016020604051808303816000875af1158015612deb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123279190613fde565b6000612e64826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661304e9092919063ffffffff16565b805190915015610d815780806020019051810190612e829190613fde565b610d815760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b9b565b60655460ff1615610c5b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610b9b565b600054610100900460ff16612f4e5760405162461bcd60e51b8152600401610b9b90613ffb565b610c5b613067565b600054610100900460ff16612f7d5760405162461bcd60e51b8152600401610b9b90613ffb565b610c5b613097565b816001600160a01b0316836001600160a01b031614610d8157609b54612fb8906001600160a01b038581169116836130ca565b609b54604051630df791e560e41b81526001600160a01b0385811660048301528481166024830152604482018490529091169063df791e50906064016020604051808303816000875af1158015613013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123279190613868565b60606130458383600061315a565b90505b92915050565b606061305d84846000856131f7565b90505b9392505050565b600054610100900460ff1661308e5760405162461bcd60e51b8152600401610b9b90613ffb565b610c5b33612440565b600054610100900460ff166130be5760405162461bcd60e51b8152600401610b9b90613ffb565b6065805460ff19169055565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261311b8482613328565b612327576040516001600160a01b0384811660248301526000604483015261315091869182169063095ea7b3906064016120f0565b6123278482612cf0565b60608147101561317f5760405163cd78605960e01b8152306004820152602401610b9b565b600080856001600160a01b0316848660405161319b9190614082565b60006040518083038185875af1925050503d80600081146131d8576040519150601f19603f3d011682016040523d82523d6000602084013e6131dd565b606091505b50915091506131ed8683836133d0565b9695505050505050565b6060824710156132585760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b9b565b6001600160a01b0385163b6132af5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b9b565b600080866001600160a01b031685876040516132cb9190614082565b60006040518083038185875af1925050503d8060008114613308576040519150601f19603f3d011682016040523d82523d6000602084013e61330d565b606091505b509150915061331d82828661342c565b979650505050505050565b6000806000846001600160a01b0316846040516133459190614082565b6000604051808303816000865af19150503d8060008114613382576040519150601f19603f3d011682016040523d82523d6000602084013e613387565b606091505b50915091508180156133b15750805115806133b15750808060200190518101906133b19190613fde565b80156133c757506000856001600160a01b03163b115b95945050505050565b6060826133e5576133e082613465565b613060565b81511580156133fc57506001600160a01b0384163b155b1561342557604051639996b31560e01b81526001600160a01b0385166004820152602401610b9b565b5080613060565b6060831561343b575081613060565b82511561344b5782518084602001fd5b8160405162461bcd60e51b8152600401610b9b9190613627565b8051156134755780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610a7c9190613506565b60405180606001604052806134f26040518060c0016040528060008152602001600081526020016000815260200160008152602001606081526020016000151581525090565b815260200160008152602001600081525090565b5b8082111561351b5760008155600101613507565b5090565b6001600160a01b0381168114610a7c57600080fd5b60006020828403121561354657600080fd5b81356130608161351f565b8015158114610a7c57600080fd5b60006020828403121561357157600080fd5b813561306081613551565b60006020828403121561358e57600080fd5b5035919050565b6000806000606084860312156135aa57600080fd5b8335925060208401356135bc8161351f565b915060408401356135cc8161351f565b809150509250925092565b60005b838110156135f25781810151838201526020016135da565b50506000910152565b600081518084526136138160208601602086016135d7565b601f01601f19169290920160200192915050565b60208152600061304560208301846135fb565b60008083601f84011261364c57600080fd5b5081356001600160401b0381111561366357600080fd5b6020830191508360208260051b850101111561367e57600080fd5b9250929050565b60008060008060008060008789036101608112156136a257600080fd5b88356136ad8161351f565b975060208901356136bd8161351f565b965060408901356136cd8161351f565b95506060890135945060808901356001600160401b038111156136ef57600080fd5b6136fb8b828c0161363a565b90955093505060c0609f198201121561371357600080fd5b5060a08801905092959891949750929550565b6000806040838503121561373957600080fd5b82356137448161351f565b946020939093013593505050565b60208152600082516060602084015280516080840152602081015160a0840152604081015160c0840152606081015160e0840152608081015160c06101008501526137a16101408501826135fb565b905060a082015115156101208501526020850151604085015260408501516060850152809250505092915050565b600080600080600080606087890312156137e857600080fd5b86356001600160401b03808211156137ff57600080fd5b61380b8a838b0161363a565b9098509650602089013591508082111561382457600080fd5b6138308a838b0161363a565b9096509450604089013591508082111561384957600080fd5b5061385689828a0161363a565b979a9699509497509295939492505050565b60006020828403121561387a57600080fd5b5051919050565b602080825260069082015265085d985d5b1d60d21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115613048576130486138a1565b80516138d581613551565b919050565b60008060008060008060c087890312156138f357600080fd5b86516138fe8161351f565b602088015190965061390f8161351f565b60408801519095506139208161351f565b60608801519094506139318161351f565b60808801519093506139428161351f565b60a088015190925061395381613551565b809150509295509295509295565b8082028115828204841417613048576130486138a1565b60008261399557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156139ac57600080fd5b81516130608161351f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60058110613a0157634e487b7160e01b600052602160045260246000fd5b9052565b602080825282516001600160a01b0390811683830152838201511660408084019190915283015160c06060840152805160e084018190526000929182019083906101008601905b80831015613a6c5783518252928401926001929092019190840190613a4c565b506060870151608087015260808701519350613a8b60a08701856139e3565b60a0870151868203601f190160c0880152935061331d81856135fb565b60405160c081016001600160401b0381118282101715613aca57613aca6139b7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613af857613af86139b7565b604052919050565b60006001600160401b03821115613b1957613b196139b7565b5060051b60200190565b60006001600160401b03831115613b3c57613b3c6139b7565b613b4f601f8401601f1916602001613ad0565b9050828152838383011115613b6357600080fd5b6130608360208301846135d7565b600082601f830112613b8257600080fd5b61304583835160208501613b23565b600080600060608486031215613ba657600080fd5b83516001600160401b0380821115613bbd57600080fd5b818601915086601f830112613bd157600080fd5b81516020613be6613be183613b00565b613ad0565b82815260059290921b8401810191818101908a841115613c0557600080fd5b948201945b83861015613c2357855182529482019490820190613c0a565b9189015160408a01519298509650909350505080821115613c4357600080fd5b50613c5086828701613b71565b9150509250925092565b80820180821115613048576130486138a1565b600060c08284031215613c7f57600080fd5b613c87613aa8565b8235613c928161351f565b81526020830135613ca28161351f565b60208201526040830135613cb58161351f565b60408201526060830135613cc88161351f565b60608201526080830135613cdb8161351f565b608082015260a0830135613cee8161351f565b60a08201529392505050565b60006020808385031215613d0d57600080fd5b82516001600160401b03811115613d2357600080fd5b8301601f81018513613d3457600080fd5b8051613d42613be182613b00565b81815260059190911b82018301908381019087831115613d6157600080fd5b928401925b8284101561331d578351613d798161351f565b82529284019290840190613d66565b600060208284031215613d9a57600080fd5b81516001600160401b0380821115613db157600080fd5b9083019060c08286031215613dc557600080fd5b613dcd613aa8565b82518152602083015160208201526040830151604082015260608301516060820152608083015182811115613e0157600080fd5b83019150601f82018613613e1457600080fd5b613e2386835160208501613b23565b6080820152613e3460a084016138ca565b60a082015295945050505050565b81835260006001600160fb1b03831115613e5b57600080fd5b8260051b80836020870137939093016020019392505050565b818352602080840193600091600585811b8301820185855b88811015613efd57858303601f19018a52813536899003601e19018112613eb257600080fd5b880185810190356001600160401b03811115613ecd57600080fd5b80861b3603821315613ede57600080fd5b613ee9858284613e42565b9b87019b9450505090840190600101613e8c565b509098975050505050505050565b6080808252885190820181905260009060209060a0840190828c01845b82811015613f4d5781516001600160a01b031684529284019290840190600101613f28565b505050838103828501528881528990820160005b8a811015613f8f578235613f748161351f565b6001600160a01b031682529183019190830190600101613f61565b508481036040860152613fa381898b613e42565b925050508281036060840152613fba818587613e74565b9a9950505050505050505050565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613ff057600080fd5b815161306081613551565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561405857600080fd5b81516001600160401b0381111561406e57600080fd5b61407a84828501613b71565b949350505050565b600082516140948184602087016135d7565b919091019291505056fea264697066735822122003f883b8ce31a55da24ceb98e2aecc62b74ae2f64651dca1626d221398baa2aa64736f6c63430008170033