0 txs
3 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
earned
viewfunction earned(address _account, address _rewardToken) view returns (uint256)
feeCollector
viewfunction feeCollector() view returns (address)
getPoolsLength
viewfunction getPoolsLength() view returns (uint256)
getRewardTokens
viewfunction getRewardTokens() view returns (address[])
isVotePool
viewfunction isVotePool(address) view returns (bool)
keeper
viewfunction keeper() view returns (address)
lastHarvest
viewfunction lastHarvest() view returns (uint256)
nativeZapper
viewfunction nativeZapper() view returns (address)
owner
viewfunction owner() view returns (address)
protocolFee
viewfunction protocolFee() view returns (uint256)
quo
viewfunction quo() view returns (address)
rewardPool
viewfunction rewardPool() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalWeight
viewfunction totalWeight() view returns (uint256)
votePools
viewfunction votePools(uint256) view returns (address)
voterProxy
viewfunction voterProxy() view returns (address)
votingWeights
viewfunction votingWeights(address) view returns (uint256)
deletePool
nonpayablefunction deletePool(address _lp)
getReward
nonpayablefunction getReward()
harvestManually
nonpayablefunction harvestManually(uint256 _epoch) returns (address[] _pools, address[][] rewardTokensList, uint256[][] earnedRewards)
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
setKeeper
nonpayablefunction setKeeper(address _keeper)
setParams
nonpayablefunction setParams(address _quo, address _thenaVoterProxy, address _rewardPool, address _nativeZapper, address _feeCollector)
stakeFor
nonpayablefunction stakeFor(address _for, uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateVote
nonpayablefunction updateVote()
updateWeight
nonpayablefunction updateWeight(address _lp, uint256 _weight)
updateWeights
nonpayablefunction updateWeights(address[] _lps, uint256[] _weights)
withdrawFor
nonpayablefunction withdrawFor(address _for, uint256 _amount)
events
KeeperUpdated
event KeeperUpdated(address _keeper)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PoolDeleted
event PoolDeleted(address _lp)
QuoHarvested
event QuoHarvested(uint256 _amount, uint256 _fee)
WeightUpdate
event WeightUpdate(address _lp, uint256 _weight)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613870806100206000396000f3fe6080604052600436106101e75760003560e01c80638310a9a911610102578063baa53e9711610095578063db518db211610064578063db518db214610506578063e789b14814610526578063f1a392da14610546578063f2fde38b1461055b576101ee565b8063baa53e971461049a578063c415b95c146104ba578063c4f59f9b146104cf578063ce883cdb146104f1576101ee565b80639776e94b116100d15780639776e94b1461043057806397b0f20514610450578063aced166114610470578063b0e21e8a14610485576101ee565b80638310a9a9146103dc5780638da5cb5b146103f1578063918f86741461040657806396c82e571461041b576101ee565b8063594aa9671161017a578063748747e611610149578063748747e61461035857806374c5ad4f146103785780638129fc1c14610398578063829f6fec146103ad576101ee565b8063594aa967146102f957806366666aa91461030e57806370a0823114610323578063715018a614610343576101ee565b80632ee40908116101b65780632ee40908146102775780633d18b912146102975780633edcd7bc146102ac578063493da753146102d9576101ee565b80630e82e52a146101f357806318160ddd1461020a5780631ba980b314610235578063211dc32d14610257576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861057b565b005b34801561021657600080fd5b5061021f6105b8565b60405161022c9190613784565b60405180910390f35b34801561024157600080fd5b5061024a61063a565b60405161022c91906130ba565b34801561026357600080fd5b5061021f610272366004612d0b565b610649565b34801561028357600080fd5b50610208610292366004612db3565b6106d5565b3480156102a357600080fd5b50610208610cca565b3480156102b857600080fd5b506102cc6102c7366004612cd3565b610d2e565b60405161022c9190613268565b3480156102e557600080fd5b5061021f6102f4366004612cd3565b610d43565b34801561030557600080fd5b5061024a610d55565b34801561031a57600080fd5b5061024a610d64565b34801561032f57600080fd5b5061021f61033e366004612cd3565b610d73565b34801561034f57600080fd5b50610208610df4565b34801561036457600080fd5b50610208610373366004612cd3565b610e73565b34801561038457600080fd5b50610208610393366004612ee3565b610efe565b3480156103a457600080fd5b50610208610fbc565b3480156103b957600080fd5b506103cd6103c8366004612ff9565b611047565b60405161022c9392919061313f565b3480156103e857600080fd5b5061024a61143f565b3480156103fd57600080fd5b5061024a61144e565b34801561041257600080fd5b5061021f61145d565b34801561042757600080fd5b5061021f611463565b34801561043c57600080fd5b5061020861044b366004612db3565b611469565b34801561045c57600080fd5b5061020861046b366004612cd3565b6114c4565b34801561047c57600080fd5b5061024a611777565b34801561049157600080fd5b5061021f611786565b3480156104a657600080fd5b5061024a6104b5366004612ff9565b61178c565b3480156104c657600080fd5b5061024a6117b3565b3480156104db57600080fd5b506104e46117c2565b60405161022c919061312c565b3480156104fd57600080fd5b5061021f611843565b34801561051257600080fd5b50610208610521366004612db3565b611849565b34801561053257600080fd5b50610208610541366004612d43565b611d4e565b34801561055257600080fd5b5061021f611ead565b34801561056757600080fd5b50610208610576366004612cd3565b611eb3565b6067546001600160a01b031633146105ae5760405162461bcd60e51b81526004016105a5906133f5565b60405180910390fd5b6105b6611f6a565b565b606a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156105fd57600080fd5b505afa158015610611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106359190613011565b905090565b6067546001600160a01b031681565b606a5460405163211dc32d60e01b81526000916001600160a01b03169063211dc32d9061067c90869086906004016130ce565b60206040518083038186803b15801561069457600080fd5b505afa1580156106a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cc9190613011565b90505b92915050565b6067546001600160a01b031633146106ff5760405162461bcd60e51b81526004016105a5906133f5565b60675460408051635cbeecf160e11b815290516000926001600160a01b03169163b97dd9e2916004808301926020929190829003018186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190613011565b905062093a80606e5482031115610c5957606754604051632a923f8b60e11b81526060916001600160a01b0316906355247f16906107be9030906004016130ba565b60006040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190612fa6565b905060005b8151811015610c51576067548251606091829182916001600160a01b03169063580da7089087908790811061084857fe5b6020026020010151336040518363ffffffff1660e01b815260040161086e92919061378d565b60006040518083038186803b15801561088657600080fd5b505afa15801561089a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108c29190810190612e11565b9250925092506000805b8351811015610b0a5760005b8482815181106108e457fe5b602002602001015151811015610b0157600085838151811061090257fe5b6020026020010151828151811061091557fe5b60200260200101519050600085848151811061092d57fe5b6020026020010151838151811061094057fe5b6020026020010151905060006001600160a01b0316826001600160a01b03161480610969575080155b15610975575050610af9565b6066546001600160a01b038381169116141561099e57610995858261209b565b94505050610af9565b6109a7826120c0565b15610a4c57606954606654604051631f6ab32960e11b8152610a45926001600160a01b0390811692633ed566529286926109ec928992911690849030906004016130e8565b6020604051808303818588803b158015610a0557600080fd5b505af1158015610a19573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3e9190613011565b869061209b565b9450610af6565b606954610a649083906001600160a01b0316836120e5565b606954606654604051631f6ab32960e11b8152610af3926001600160a01b0390811692633ed5665292610aa19288921690879030906004016130e8565b602060405180830381600087803b158015610abb57600080fd5b505af1158015610acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3e9190613011565b94505b50505b6001016108d8565b506001016108cc565b508015610c4157600080606d54118015610b2e57506068546001600160a01b031615155b15610b7457610b54612710610b4e84606d5461219690919063ffffffff16565b906121d0565b606854606654919250610b74916001600160a01b03908116911683612212565b7f6d85c6aea411c22567895f1381dc4a57a92c6b3b6edc5d4d108b88d16e26256b8282604051610ba59291906137a4565b60405180910390a1610bb78282612243565b606654606a54919350610bd7916001600160a01b039182169116846120e5565b606a546066546040516304d0c2c560e01b81526001600160a01b03928316926304d0c2c592610c0d929116908690600401613113565b600060405180830381600087803b158015610c2757600080fd5b505af1158015610c3b573d6000803e3d6000fd5b50505050505b5050600190920191506108179050565b5050606e8190555b606a546040516305dc812160e31b81526001600160a01b0390911690632ee4090890610c8b9086908690600401613113565b600060405180830381600087803b158015610ca557600080fd5b505af1158015610cb9573d6000803e3d6000fd5b50505050610cc5611f6a565b505050565b606a54604051630c00007b60e41b81526001600160a01b039091169063c00007b090610cfa9033906004016130ba565b600060405180830381600087803b158015610d1457600080fd5b505af1158015610d28573d6000803e3d6000fd5b50505050565b606f6020526000908152604090205460ff1681565b60706020526000908152604090205481565b6066546001600160a01b031681565b606a546001600160a01b031681565b606a546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610da49085906004016130ba565b60206040518083038186803b158015610dbc57600080fd5b505afa158015610dd0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cf9190613011565b610dfc612285565b6033546001600160a01b03908116911614610e295760405162461bcd60e51b81526004016105a590613542565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b610e7b612285565b6033546001600160a01b03908116911614610ea85760405162461bcd60e51b81526004016105a590613542565b606580546001600160a01b0319166001600160a01b0383161790556040517f0425bcd291db1d48816f2a98edc7ecaf6dd5c64b973d9e4b3b6b750763dc6c2e90610ef39083906130ba565b60405180910390a150565b610f0661144e565b6001600160a01b0316336001600160a01b03161480610f2f57506065546001600160a01b031633145b610f4b5760405162461bcd60e51b81526004016105a59061364e565b8051825114610f6c5760405162461bcd60e51b81526004016105a5906132a6565b60005b8251811015610cc5576000838281518110610f8657fe5b602002602001015190506000838381518110610f9e57fe5b60200260200101519050610fb28282612289565b5050600101610f6f565b600054610100900460ff1680610fd55750610fd5612476565b80610fe3575060005460ff16155b610fff5760405162461bcd60e51b81526004016105a5906134b3565b600054610100900460ff1615801561102a576000805460ff1961ff0019909116610100171660011790555b61103261247c565b8015611044576000805461ff00191690555b50565b6060806060611054612285565b6033546001600160a01b039081169116146110815760405162461bcd60e51b81526004016105a590613542565b606754604051630b01b4e160e31b81526001600160a01b039091169063580da708906110b3908790309060040161378d565b60006040518083038186803b1580156110cb57600080fd5b505afa1580156110df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111079190810190612e11565b6067546040516334987e9560e11b815293965091945092506001600160a01b031690636930fd2a9061113d908790600401613784565b600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b505050506000805b83518110156113065760005b84828151811061118b57fe5b6020026020010151518110156112fd5760008583815181106111a957fe5b602002602001015182815181106111bc57fe5b6020026020010151905060008584815181106111d457fe5b602002602001015183815181106111e757fe5b6020026020010151905060006001600160a01b0316826001600160a01b03161480611210575080155b1561121c5750506112f5565b6066546001600160a01b03838116911614156112455761123c858261209b565b945050506112f5565b61124e826120c0565b1561129a57606954606654604051631f6ab32960e11b8152611293926001600160a01b0390811692633ed566529286926109ec928992911690849030906004016130e8565b94506112f2565b6069546112b29083906001600160a01b0316836120e5565b606954606654604051631f6ab32960e11b81526112ef926001600160a01b0390811692633ed5665292610aa19288921690879030906004016130e8565b94505b50505b60010161117f565b50600101611173565b50801561143757600080606d5411801561132a57506068546001600160a01b031615155b1561136a5761134a612710610b4e84606d5461219690919063ffffffff16565b60685460665491925061136a916001600160a01b03908116911683612212565b7f6d85c6aea411c22567895f1381dc4a57a92c6b3b6edc5d4d108b88d16e26256b828260405161139b9291906137a4565b60405180910390a16113ad8282612243565b606654606a549193506113cd916001600160a01b039182169116846120e5565b606a546066546040516304d0c2c560e01b81526001600160a01b03928316926304d0c2c592611403929116908690600401613113565b600060405180830381600087803b15801561141d57600080fd5b505af1158015611431573d6000803e3d6000fd5b50505050505b509193909250565b6069546001600160a01b031681565b6033546001600160a01b031690565b61271081565b606c5481565b61147161144e565b6001600160a01b0316336001600160a01b0316148061149a57506065546001600160a01b031633145b6114b65760405162461bcd60e51b81526004016105a59061364e565b6114c08282612289565b5050565b6114cc612285565b6033546001600160a01b039081169116146114f95760405162461bcd60e51b81526004016105a590613542565b6001600160a01b0381166000908152606f602052604090205460ff166115315760405162461bcd60e51b81526004016105a5906132ff565b60405163b9a09fd560e01b8152600090733a1d0952809f4948d15ebce8d345962a282c4fcb9063b9a09fd59061156b9085906004016130ba565b60206040518083038186803b15801561158357600080fd5b505afa158015611597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bb9190612cef565b6001600160a01b031614156115e25760405162461bcd60e51b81526004016105a590613465565b6001600160a01b0381166000908152606f60205260409020805460ff19169055606b546060600019820167ffffffffffffffff8111801561162257600080fd5b5060405190808252806020026020018201604052801561164c578160200160208202803683370190505b5090506000805b838110156116f857846001600160a01b0316606b828154811061167257fe5b6000918252602090912001546001600160a01b0316141561169657600191506116f0565b606b81815481106116a357fe5b9060005260206000200160009054906101000a90046001600160a01b031683838303815181106116cf57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611653565b50815161170c90606b906020850190612ac4565b506001600160a01b03841660009081526070602052604081208054606c80549190910390555561173a611f6a565b7f830dfd6ccb35ca729ef74cbccaf90bcb698344910b951a9c242cf91eccf6beba8460405161176991906130ba565b60405180910390a150505050565b6065546001600160a01b031681565b606d5481565b606b818154811061179957fe5b6000918252602090912001546001600160a01b0316905081565b6068546001600160a01b031681565b606a546040805163c4f59f9b60e01b815290516060926001600160a01b03169163c4f59f9b916004808301926000929190829003018186803b15801561180757600080fd5b505afa15801561181b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106359190810190612dde565b606b5490565b6067546001600160a01b031633146118735760405162461bcd60e51b81526004016105a5906133f5565b60675460408051635cbeecf160e11b815290516000926001600160a01b03169163b97dd9e2916004808301926020929190829003018186803b1580156118b857600080fd5b505afa1580156118cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f09190613011565b905062093a80606e5482031115611d1c57606754604051632a923f8b60e11b81526060916001600160a01b0316906355247f16906119329030906004016130ba565b60006040518083038186803b15801561194a57600080fd5b505afa15801561195e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119869190810190612fa6565b905060005b8151811015611d14576067548251606091829182916001600160a01b03169063580da708908790879081106119bc57fe5b6020026020010151336040518363ffffffff1660e01b81526004016119e292919061378d565b60006040518083038186803b1580156119fa57600080fd5b505afa158015611a0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a369190810190612e11565b9250925092506000805b8351811015611bd35760005b848281518110611a5857fe5b602002602001015151811015611bca576000858381518110611a7657fe5b60200260200101518281518110611a8957fe5b602002602001015190506000858481518110611aa157fe5b60200260200101518381518110611ab457fe5b6020026020010151905060006001600160a01b0316826001600160a01b03161480611add575080155b15611ae9575050611bc2565b6066546001600160a01b0383811691161415611b1257611b09858261209b565b94505050611bc2565b611b1b826120c0565b15611b6757606954606654604051631f6ab32960e11b8152611b60926001600160a01b0390811692633ed566529286926109ec928992911690849030906004016130e8565b9450611bbf565b606954611b7f9083906001600160a01b0316836120e5565b606954606654604051631f6ab32960e11b8152611bbc926001600160a01b0390811692633ed5665292610aa19288921690879030906004016130e8565b94505b50505b600101611a4c565b50600101611a40565b508015611d0457600080606d54118015611bf757506068546001600160a01b031615155b15611c3757611c17612710610b4e84606d5461219690919063ffffffff16565b606854606654919250611c37916001600160a01b03908116911683612212565b7f6d85c6aea411c22567895f1381dc4a57a92c6b3b6edc5d4d108b88d16e26256b8282604051611c689291906137a4565b60405180910390a1611c7a8282612243565b606654606a54919350611c9a916001600160a01b039182169116846120e5565b606a546066546040516304d0c2c560e01b81526001600160a01b03928316926304d0c2c592611cd0929116908690600401613113565b600060405180830381600087803b158015611cea57600080fd5b505af1158015611cfe573d6000803e3d6000fd5b50505050505b50506001909201915061198b9050565b5050606e8190555b606a54604051636da8c6d960e11b81526001600160a01b039091169063db518db290610c8b9086908690600401613113565b611d56612285565b6033546001600160a01b03908116911614611d835760405162461bcd60e51b81526004016105a590613542565b6067546001600160a01b031615611dac5760405162461bcd60e51b81526004016105a5906133be565b6001600160a01b038516611dd25760405162461bcd60e51b81526004016105a59061375d565b6001600160a01b038316611df85760405162461bcd60e51b81526004016105a590613577565b6001600160a01b038216611e1e5760405162461bcd60e51b81526004016105a5906132cf565b6001600160a01b038116611e445760405162461bcd60e51b81526004016105a5906135a5565b606680546001600160a01b03199081166001600160a01b039788161790915560678054821695871695909517909455606980548516928616929092179091556068805484169185169190911790556101f4606d55606a8054909216921691909117905542606e55565b606e5481565b611ebb612285565b6033546001600160a01b03908116911614611ee85760405162461bcd60e51b81526004016105a590613542565b6001600160a01b038116611f0e5760405162461bcd60e51b81526004016105a590613325565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b606b5480156110445760608167ffffffffffffffff81118015611f8c57600080fd5b50604051908082528060200260200182016040528015611fb6578160200160208202803683370190505b50905060005b82811015612031576000606b8281548110611fd357fe5b6000918252602080832090910154606c546001600160a01b0390911680845260709092526040909220549092506120119190610b4e90612710612196565b83838151811061201d57fe5b602090810291909101015250600101611fbc565b506067546040516306f2c54560e11b81526001600160a01b0390911690630de58a8a9061206590606b908590600401613203565b600060405180830381600087803b15801561207f57600080fd5b505af1158015612093573d6000803e3d6000fd5b505050505050565b6000828201838110156106cc5760405162461bcd60e51b81526004016105a59061336b565b6001600160a01b03811673efefefefefefefefefefefefefefefefefefefef14919050565b604051636eb1769f60e11b815281906001600160a01b0385169063dd62ed3e9061211590309087906004016130ce565b60206040518083038186803b15801561212d57600080fd5b505afa158015612141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121659190613011565b1015610cc5576121806001600160a01b0384168360006124fa565b610cc56001600160a01b038416836000196124fa565b6000826121a5575060006106cf565b828202828482816121b257fe5b04146106cc5760405162461bcd60e51b81526004016105a590613501565b60006106cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125f4565b612224836001600160a01b03166120c0565b1561223857612233828261262d565b610cc5565b610cc58383836126a9565b60006106cc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612797565b3390565b6001600160a01b0382163014156122b25760405162461bcd60e51b81526004016105a5906133a2565b6001600160a01b0382166000908152606f602052604090205460ff166123e95760405163b9a09fd560e01b8152600090733a1d0952809f4948d15ebce8d345962a282c4fcb9063b9a09fd59061230c9086906004016130ba565b60206040518083038186803b15801561232457600080fd5b505afa158015612338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235c9190612cef565b6001600160a01b031614156123835760405162461bcd60e51b81526004016105a590613465565b6001600160a01b0382166000818152606f60205260408120805460ff19166001908117909155606b805491820181559091527fbd43cb8ece8cd1863bcd6082d65c5b0d25665b1ce17980f0da43c0ed545f98b40180546001600160a01b03191690911790555b6001600160a01b038216600090815260706020526040902054606c5461241a91839161241491612243565b9061209b565b606c556001600160a01b03821660009081526070602052604090819020829055517fbe8a0bfdbcaa516a8371824f85d831867f7faab1dbc60dbed04a63e2a25c618f9061246a9084908490613113565b60405180910390a15050565b303b1590565b600054610100900460ff16806124955750612495612476565b806124a3575060005460ff16155b6124bf5760405162461bcd60e51b81526004016105a5906134b3565b600054610100900460ff161580156124ea576000805460ff1961ff0019909116610100171660011790555b6124f26127c3565b61103261289d565b8015806125825750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e9061253090309086906004016130ce565b60206040518083038186803b15801561254857600080fd5b505afa15801561255c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125809190613011565b155b61259e5760405162461bcd60e51b81526004016105a590613707565b610cc58363095ea7b360e01b84846040516024016125bd929190613113565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261291e565b600081836126155760405162461bcd60e51b81526004016105a59190613273565b50600083858161262157fe5b049150505b9392505050565b6000826001600160a01b031682604051612646906130b7565b60006040518083038185875af1925050503d8060008114612683576040519150601f19603f3d011682016040523d82523d6000602084013e612688565b606091505b5050905080610cc55760405162461bcd60e51b81526004016105a5906135d5565b60006060846001600160a01b031663a9059cbb85856040516024016126cf929190613113565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612708919061309b565b6000604051808303816000865af19150503d8060008114612745576040519150601f19603f3d011682016040523d82523d6000602084013e61274a565b606091505b50915091508180156127745750805115806127745750808060200190518101906127749190612fd9565b6127905760405162461bcd60e51b81526004016105a590613670565b5050505050565b600081848411156127bb5760405162461bcd60e51b81526004016105a59190613273565b505050900390565b600054610100900460ff16806127dc57506127dc612476565b806127ea575060005460ff16155b6128065760405162461bcd60e51b81526004016105a5906134b3565b600054610100900460ff16158015612831576000805460ff1961ff0019909116610100171660011790555b600061283b612285565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015611044576000805461ff001916905550565b600054610100900460ff16806128b657506128b6612476565b806128c4575060005460ff16155b6128e05760405162461bcd60e51b81526004016105a5906134b3565b600054610100900460ff16158015611032576000805460ff1961ff0019909116610100171660011790558015611044576000805461ff001916905550565b6060612973826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129ad9092919063ffffffff16565b805190915015610cc557808060200190518101906129919190612fd9565b610cc55760405162461bcd60e51b81526004016105a5906136bd565b60606129bc84846000856129c4565b949350505050565b6060824710156129e65760405162461bcd60e51b81526004016105a59061341f565b6129ef85612a85565b612a0b5760405162461bcd60e51b81526004016105a590613617565b60006060866001600160a01b03168587604051612a28919061309b565b60006040518083038185875af1925050503d8060008114612a65576040519150601f19603f3d011682016040523d82523d6000602084013e612a6a565b606091505b5091509150612a7a828286612a8b565b979650505050505050565b3b151590565b60608315612a9a575081612626565b825115612aaa5782518084602001fd5b8160405162461bcd60e51b81526004016105a59190613273565b828054828255906000526020600020908101928215612b19579160200282015b82811115612b1957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612ae4565b50612b25929150612b29565b5090565b5b80821115612b255780546001600160a01b0319168155600101612b2a565b600082601f830112612b58578081fd5b8151612b6b612b66826137d9565b6137b2565b818152915060208083019084810181840286018201871015612b8c57600080fd5b60005b84811015612bb4578151612ba281613825565b84529282019290820190600101612b8f565b505050505092915050565b600082601f830112612bcf578081fd5b8151612bdd612b66826137d9565b818152915060208083019084810160005b84811015612bb457612c05888484518a0101612c75565b84529282019290820190600101612bee565b600082601f830112612c27578081fd5b8135612c35612b66826137d9565b818152915060208083019084810181840286018201871015612c5657600080fd5b60005b84811015612bb457813584529282019290820190600101612c59565b600082601f830112612c85578081fd5b8151612c93612b66826137d9565b818152915060208083019084810181840286018201871015612cb457600080fd5b60005b84811015612bb457815184529282019290820190600101612cb7565b600060208284031215612ce4578081fd5b81356106cc81613825565b600060208284031215612d00578081fd5b81516106cc81613825565b60008060408385031215612d1d578081fd5b8235612d2881613825565b91506020830135612d3881613825565b809150509250929050565b600080600080600060a08688031215612d5a578081fd5b8535612d6581613825565b94506020860135612d7581613825565b93506040860135612d8581613825565b92506060860135612d9581613825565b91506080860135612da581613825565b809150509295509295909350565b60008060408385031215612dc5578182fd5b8235612dd081613825565b946020939093013593505050565b600060208284031215612def578081fd5b815167ffffffffffffffff811115612e05578182fd5b6129bc84828501612b48565b600080600060608486031215612e25578283fd5b835167ffffffffffffffff80821115612e3c578485fd5b612e4887838801612b48565b9450602091508186015181811115612e5e578485fd5b8601601f81018813612e6e578485fd5b8051612e7c612b66826137d9565b81815284810190838601885b84811015612eb157612e9f8d898451890101612b48565b84529287019290870190600101612e88565b505060408a0151909750945050505080821115612ecc578283fd5b50612ed986828701612bbf565b9150509250925092565b60008060408385031215612ef5578182fd5b823567ffffffffffffffff80821115612f0c578384fd5b818501915085601f830112612f1f578384fd5b8135612f2d612b66826137d9565b80828252602080830192508086018a828387028901011115612f4d578889fd5b8896505b84871015612f78578035612f6481613825565b845260019690960195928101928101612f51565b509096508701359350505080821115612f8f578283fd5b50612f9c85828601612c17565b9150509250929050565b600060208284031215612fb7578081fd5b815167ffffffffffffffff811115612fcd578182fd5b6129bc84828501612c75565b600060208284031215612fea578081fd5b815180151581146106cc578182fd5b60006020828403121561300a578081fd5b5035919050565b600060208284031215613022578081fd5b5051919050565b6000815180845260208085019450808401835b838110156130615781516001600160a01b03168752958201959082019060010161303c565b509495945050505050565b6000815180845260208085019450808401835b838110156130615781518752958201959082019060010161307f565b600082516130ad8184602087016137f9565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b03929092168252602082015260400190565b6000602082526106cc6020830184613029565b6000606082526131526060830186613029565b6020838203818501528186516131688185613784565b91508193508281028201838901865b838110156131a157868303855261318f838351613029565b94860194925090850190600101613177565b50508681036040880152875180825284820195509250838302810184019150838801865b848110156131f357601f198385030187526131e184835161306c565b968601969350908501906001016131c5565b50919a9950505050505050505050565b6000604082016040835280855480835260608501915086845260209250828420845b8281101561324a5781546001600160a01b031684529284019260019182019101613225565b5050508381038285015261325e818661306c565b9695505050505050565b901515815260200190565b60006020825282518060208401526132928160408501602087016137f9565b601f01601f19169190910160400192915050565b6020808252600f908201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b604082015260600190565b602080825260169082015275696e76616c6964205f6e61746976655a61707065722160501b604082015260600190565b6020808252600c908201526b696e76616c6964205f6c702160a01b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252600290820152613f3f60f01b604082015260600190565b6020808252601c908201527f706172616d73206861766520616c7265616479206265656e2073657400000000604082015260600190565b60208082526010908201526f4f6e6c7920766f7465722070726f787960801b604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252602e908201527f506f6f6c2069732065697468657220696e76616c6964206f7220646f65736e2760408201526d742068617665206120676175676560901b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260149082015273696e76616c6964205f726577617264506f6f6c2160601b604082015260600190565b602080825260169082015275696e76616c6964205f666565436f6c6c6563746f722160501b604082015260600190565b60208082526022908201527f5472616e7366657248656c7065723a2053656e64696e6720455448206661696c604082015261195960f21b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526008908201526710b6b0b730b3b2b960c11b604082015260600190565b6020808252602d908201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260408201526c185b9cd9995c8819985a5b1959609a1b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b6020808252600d908201526c696e76616c6964205f71756f2160981b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156137d157600080fd5b604052919050565b600067ffffffffffffffff8211156137ef578081fd5b5060209081020190565b60005b838110156138145781810151838201526020016137fc565b83811115610d285750506000910152565b6001600160a01b038116811461104457600080fdfea2646970667358221220ccb314fa3e06a015b471eb66552c946246fea346a21f01b2f45690c44ac7595164736f6c634300060c0033