2 txs
5 calls
constructor
constructor(address _pool, address _swapper, address _receiptToken, address _borrowToken, address _aaveAddressProvider, address _vPool, string _name)
functions
aaveAddressProvider
viewfunction aaveAddressProvider() view returns (address)
borrowToken
viewfunction borrowToken() view returns (address)
collateral
viewfunction collateral() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
feeCollector
viewfunction feeCollector() view returns (address)
governor
viewfunction governor() view returns (address)
isReservedToken
viewfunction isReservedToken(address _token) view returns (bool)
keepers
viewfunction keepers() view returns (address[])
maxBorrowLimit
viewfunction maxBorrowLimit() view returns (uint256)
minBorrowLimit
viewfunction minBorrowLimit() view returns (uint256)
NAME
viewfunction NAME() view returns (string)
pool
viewfunction pool() view returns (address)
receiptToken
viewfunction receiptToken() view returns (address)
slippage
viewfunction slippage() view returns (uint256)
swapper
viewfunction swapper() view returns (address)
token
viewfunction token() view returns (address)
tvl
viewfunction tvl() view returns (uint256)
vdToken
viewfunction vdToken() view returns (address)
VERSION
viewfunction VERSION() view returns (string)
vPool
viewfunction vPool() view returns (address)
wrappedCollateral
viewfunction wrappedCollateral() view returns (address)
addKeeper
nonpayablefunction addKeeper(address _keeperAddress)
approveToken
nonpayablefunction approveToken(uint256 _approvalAmount)
claimAndSwapRewards
nonpayablefunction claimAndSwapRewards(uint256 _minAmountOut) returns (uint256 _amountOut)
migrate
nonpayablefunction migrate(address _newStrategy)
rebalance
nonpayablefunction rebalance() returns (uint256 _profit, uint256 _loss, uint256 _payback)
removeKeeper
nonpayablefunction removeKeeper(address _keeperAddress)
swapToCollateral
nonpayablefunction swapToCollateral(address _tokenIn, uint256 _minAmountOut) returns (uint256 _amountOut)
sweep
nonpayablefunction sweep(address _fromToken)
updateBorrowLimit
nonpayablefunction updateBorrowLimit(uint256 _minBorrowLimit, uint256 _maxBorrowLimit)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
updateSlippage
nonpayablefunction updateSlippage(uint256 _newSlippage)
updateSwapper
nonpayablefunction updateSwapper(address _swapper)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
UpdatedBorrowLimit
event UpdatedBorrowLimit(uint256 previousMinBorrowLimit, uint256 newMinBorrowLimit, uint256 previousMaxBorrowLimit, uint256 newMaxBorrowLimit)
UpdatedFeeCollector
event UpdatedFeeCollector(address indexed previousFeeCollector, address indexed newFeeCollector)
UpdatedSlippage
event UpdatedSlippage(uint256 previousSlippage, uint256 newSlippage)
UpdatedSwapper
event UpdatedSwapper(address indexed oldSwapper, address indexed newSwapper)
errors
No errors.
creation bytecode
0x610100604052611b5860065561213460075561012c6008553480156200002457600080fd5b50604051620065fe380380620065fe8339810160408190526200004791620006ee565b8686868686858585856001600160a01b038316620000ac5760405162461bcd60e51b815260206004820152601460248201527f706f6f6c2d616464726573732d69732d7a65726f00000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620001045760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f0000000000000000006044820152606401620000a3565b600280546001600160a01b0319166001600160a01b0384811691909117909155831660a081905260408051637e062a3560e11b8152905163fc0c546a91600480820192602092909190829003018186803b1580156200016257600080fd5b505afa15801562000177573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019d91906200084f565b6001600160a01b03908116608052600080546001600160a01b031916918316919091179055620001e4620001ce3390565b6003620005a760201b6200204d1790919060201c565b620002265760405162461bcd60e51b81526020600482015260116024820152701859190b5ad9595c195c8b59985a5b1959607a1b6044820152606401620000a3565b505081516200023e9150600590602084019062000619565b506001600160a01b038216620002975760405162461bcd60e51b815260206004820152601760248201527f6164647265737350726f76696465722d69732d7a65726f0000000000000000006044820152606401620000a3565b608051600c80546001600160a01b0319166001600160a01b03928316908117909155604080516358b50cef60e11b81529051919287169163b16a19de91600480820192602092909190829003018186803b158015620002f557600080fd5b505afa1580156200030a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033091906200084f565b6001600160a01b031614620003885760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642d726563656970742d746f6b656e00000000000000000000006044820152606401620000a3565b600080836001600160a01b031663e860accb6040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c557600080fd5b505afa158015620003da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040091906200084f565b6040516334924edb60e21b81526001600160a01b038781166004830152919091169063d2493b6c9060240160606040518083038186803b1580156200044457600080fd5b505afa15801562000459573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047f919062000876565b600a80546001600160a01b03199081166001600160a01b0393841617909155600980548216998316998a179055600b8054909116938216939093179092555093841660c052505060408051637e062a3560e11b81529051939650918816945063fc0c546a935050600480820192602092909190829003018186803b1580156200050757600080fd5b505afa1580156200051c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200054291906200084f565b6001600160a01b0316146200058e5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a590b59dc9bddcb5c1bdbdb607a1b6044820152606401620000a3565b506001600160a01b031660e05250620009079350505050565b6000620005be836001600160a01b038416620005c7565b90505b92915050565b60008181526001830160205260408120546200061057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005c1565b506000620005c1565b8280546200062790620008ca565b90600052602060002090601f0160209004810192826200064b576000855562000696565b82601f106200066657805160ff191683800117855562000696565b8280016001018555821562000696579182015b828111156200069657825182559160200191906001019062000679565b50620006a4929150620006a8565b5090565b5b80821115620006a45760008155600101620006a9565b6001600160a01b0381168114620006d557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156200070a57600080fd5b87516200071781620006bf565b809750506020808901516200072c81620006bf565b60408a01519097506200073f81620006bf565b60608a01519096506200075281620006bf565b60808a01519095506200076581620006bf565b60a08a01519094506200077881620006bf565b60c08a01519093506001600160401b03808211156200079657600080fd5b818b0191508b601f830112620007ab57600080fd5b815181811115620007c057620007c0620006d8565b604051601f8201601f19908116603f01168101908382118183101715620007eb57620007eb620006d8565b816040528281528e868487010111156200080457600080fd5b600093505b8284101562000828578484018601518185018701529285019262000809565b828411156200083a5760008684830101525b80965050505050505092959891949750929550565b6000602082840312156200086257600080fd5b81516200086f81620006bf565b9392505050565b6000806000606084860312156200088c57600080fd5b83516200089981620006bf565b6020850151909350620008ac81620006bf565b6040850151909250620008bf81620006bf565b809150509250925092565b600181811c90821680620008df57607f821691505b602082108114156200090157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051615b5162000aad6000396000818161035f015281816122350152818161243f0152818161246d01528181613d0001528181613d7c01528181614a8001528181615098015281816151a401526151f101526000818161042001528181612284015281816125cf01528181612dec0152818161395801528181613a16015281816144a4015281816146660152614d890152600081816102ad0152818161077b015281816109f701528181610b2d01528181610cd501528181610e1c01528181610ef101528181610fa40152818161125f0152818161132c015281816115570152818161174601528181611e67015281816124c20152818161274f015281816129280152614d5f0152600081816103e60152818161047d015281816105d1015281816108770152818161091a01528181610d6201528181610dfa01528181610e6801528181610f24015281816110dc015281816114db0152818161193d01528181611a9701528181611b7c01528181611d4a01528181611d88015281816128450152818161299b015281816142760152614d3d0152615b516000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806390d675141161011a578063d3033c39116100ad578063ec78e8321161007c578063ec78e832146104b2578063ee330ee3146104c5578063fb7ee102146104d8578063fc0c546a146104eb578063ffa1ad74146104fc57600080fd5b8063d3033c3914610468578063d8dfeb451461047b578063e260d747146104a1578063e5328e06146104aa57600080fd5b8063c415b95c116100e9578063c415b95c14610408578063cdaabe411461041b578063ce5494bb14610442578063d2c35ce81461045557600080fd5b806390d67514146103a4578063951dc22c146103b7578063a3f4df7e146103cc578063b2016bd4146103e157600080fd5b80632b3297f91161019d5780634032b72b1161016c5780634032b72b14610311578063440d724814610324578063456dc17a146103475780636719578c1461035a5780637d7c2a1c1461038157600080fd5b80632b3297f9146102cf5780632e1a7d4d146102e25780633ac9fc11146102f55780633e032a3b1461030857600080fd5b80631026013a116101d95780631026013a1461026f57806314ae9f2e1461028257806315b0d4961461029557806316f0115b146102a857600080fd5b806301681a621461020b5780630181686c146102205780630ade00f21461023c5780630c340a2414610267575b600080fd5b61021e6102193660046153c0565b610520565b005b61022960075481565b6040519081526020015b60405180910390f35b600c5461024f906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b61024f610777565b61022961027d3660046153dd565b61080f565b61021e6102903660046153c0565b6109f5565b61021e6102a33660046153dd565b610b2b565b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b60025461024f906001600160a01b031681565b61021e6102f03660046153dd565b610cd2565b61021e6103033660046153dd565b610f4b565b61022960085481565b61021e61031f3660046153c0565b610fa2565b6103376103323660046153c0565b6110d8565b6040519015158152602001610233565b60095461024f906001600160a01b031681565b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b61038961115d565b60408051938452602084019290925290820152606001610233565b600a5461024f906001600160a01b031681565b6103bf6111c2565b604051610233919061543a565b6103d46111ce565b6040516102339190615479565b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b60015461024f906001600160a01b031681565b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b61021e6104503660046153c0565b61125c565b61021e6104633660046153c0565b611555565b61021e6104763660046153c0565b611744565b7f000000000000000000000000000000000000000000000000000000000000000061024f565b61022960065481565b610229611925565b60005461024f906001600160a01b031681565b6102296104d33660046154ac565b611a45565b61021e6104e63660046154d8565b611e65565b6000546001600160a01b031661024f565b6103d4604051806040016040528060058152602001641a9718971960d91b81525081565b61052d335b600390612069565b6105775760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064015b60405180910390fd5b6001546001600160a01b03166105cf5760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d6e6f742d7365740000000000000000000000604482015260640161056e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614156106515760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161056e565b61065a816110d8565b1561069e5760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161056e565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156106dc576001546106d9906001600160a01b03164761208b565b50565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b15801561071e57600080fd5b505afa158015610732573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075691906154fa565b600154909150610773906001600160a01b038481169116836121a9565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d257600080fd5b505afa1580156107e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080a9190615513565b905090565b600061081a33610525565b61085f5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161056e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156108c157600080fd5b505afa1580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f991906154fa565b9050610903612221565b6040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561096457600080fd5b505afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c91906154fa565b6109a69190615546565b9150828210156109ef5760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161056e565b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4e57600080fd5b505afa158015610a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a869190615513565b6001600160a01b0316336001600160a01b031614610ad45760405162461bcd60e51b815260206004820152601a6024820152600080516020615afc833981519152604482015260640161056e565b610adf600382612269565b6106d95760405162461bcd60e51b815260206004820152601460248201527f72656d6f76652d6b65657065722d6661696c6564000000000000000000000000604482015260640161056e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8457600080fd5b505afa158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc9190615513565b6001600160a01b0316336001600160a01b031614610c0a5760405162461bcd60e51b815260206004820152601a6024820152600080516020615afc833981519152604482015260640161056e565b612710811115610c4f5760405162461bcd60e51b815260206004820152601060248201526f696e76616c69642d736c69707061676560801b604482015260640161056e565b600854811415610c915760405162461bcd60e51b815260206004820152600d60248201526c73616d652d736c69707061676560981b604482015260640161056e565b60085460408051918252602082018390527f282c65286b5ce3db38b8527661b948d366f1642008bb1f38bfe820cad1003a42910160405180910390a1600855565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d4a5760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161056e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de491906154fa565b9050818110610e41576107736001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846121a9565b610e53610e4e8284615546565b61227e565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610eb257600080fd5b505afa158015610ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eea91906154fa565b90506107737f0000000000000000000000000000000000000000000000000000000000000000610f1a848461240e565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906121a9565b610f5433610525565b610f995760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161056e565b6106d981612424565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610ffb57600080fd5b505afa15801561100f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110339190615513565b6001600160a01b0316336001600160a01b0316146110815760405162461bcd60e51b815260206004820152601a6024820152600080516020615afc833981519152604482015260640161056e565b61108c60038261204d565b6106d95760405162461bcd60e51b815260206004820152601160248201527f6164642d6b65657065722d6661696c6564000000000000000000000000000000604482015260640161056e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061112757506000546001600160a01b038381169116145b8061113f5750600a546001600160a01b038381169116145b8061115757506009546001600160a01b038381169116145b92915050565b6000808061116a33610525565b6111af5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161056e565b6111b761249c565b925092509250909192565b606061080a6003612c71565b600580546111db9061555d565b80601f01602080910402602001604051908101604052809291908181526020018280546112079061555d565b80156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b505050505081565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146112d45760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161056e565b6001600160a01b03811661132a5760405162461bcd60e51b815260206004820152601c60248201527f6e65772d73747261746567792d616464726573732d69732d7a65726f00000000604482015260640161056e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c59190615513565b6001600160a01b03161461141b5760405162461bcd60e51b815260206004820152601660248201527f6e6f742d76616c69642d6e65772d737472617465677900000000000000000000604482015260640161056e565b61142481612c7e565b6000546040516370a0823160e01b81523060048201526114b89183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561146d57600080fd5b505afa158015611481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a591906154fa565b6000546001600160a01b031691906121a9565b6040516370a0823160e01b81523060048201526106d99082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561151d57600080fd5b505afa158015611531573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1a91906154fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156115ae57600080fd5b505afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190615513565b6001600160a01b0316336001600160a01b0316146116345760405162461bcd60e51b815260206004820152601a6024820152600080516020615afc833981519152604482015260640161056e565b6001600160a01b03811661168a5760405162461bcd60e51b815260206004820152601d60248201527f6665652d636f6c6c6563746f722d616464726573732d69732d7a65726f000000604482015260640161056e565b6001546001600160a01b03828116911614156116e85760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d69732d73616d650000000000000000000000604482015260640161056e565b6001546040516001600160a01b038084169216907f0f06062680f9bd68e786e9980d9bb03d73d5620fc3b345e417b6eacb310b970690600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561179d57600080fd5b505afa1580156117b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d59190615513565b6001600160a01b0316336001600160a01b0316146118235760405162461bcd60e51b815260206004820152601a6024820152600080516020615afc833981519152604482015260640161056e565b6001600160a01b0381166118795760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f000000000000000000604482015260640161056e565b6002546001600160a01b03828116911614156118c95760405162461bcd60e51b815260206004820152600f60248201526e737761707065722d69732d73616d6560881b604482015260640161056e565b6002546040516001600160a01b038084169216907f6c953b7ec311055c20b96a42cea31e89528e375b1bf953a503db40854b3188fe90600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561198757600080fd5b505afa15801561199b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bf91906154fa565b6000546040516370a0823160e01b81523060048201526001600160a01b03909116906370a08231906024015b60206040518083038186803b158015611a0357600080fd5b505afa158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b91906154fa565b61080a9190615592565b6000611a5033610525565b611a955760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161056e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415611b175760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161056e565b611b20836110d8565b15611b645760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161056e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfe91906154fa565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038616906370a082319060240160206040518083038186803b158015611c4357600080fd5b505afa158015611c57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7b91906154fa565b90508015611d7157600254604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529086169063dd62ed3e9060440160206040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0691906154fa565b811115611d4457600254611d28906001600160a01b0387811691166000612e80565b600254611d44906001600160a01b038781169116600019612e80565b611d6f857f000000000000000000000000000000000000000000000000000000000000000083612fab565b505b6040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611dd257600080fd5b505afa158015611de6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0a91906154fa565b611e149190615546565b925083831015611e5d5760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161056e565b505092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebe57600080fd5b505afa158015611ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef69190615513565b6001600160a01b0316336001600160a01b031614611f445760405162461bcd60e51b815260206004820152601a6024820152600080516020615afc833981519152604482015260640161056e565b6127108110611f955760405162461bcd60e51b815260206004820152601860248201527f696e76616c69642d6d61782d626f72726f772d6c696d69740000000000000000604482015260640161056e565b80158015611fa1575081155b80611fab57508181115b611ff75760405162461bcd60e51b815260206004820152601d60248201527f6d61782d73686f756c642d62652d6869676865722d7468616e2d6d696e000000604482015260640161056e565b6006546007546040805192835260208301859052820152606081018290527fedd77444afdf63401315e81ffe86d08f7865796e8ad2e11acf1d56a1393f07d59060800160405180910390a1600691909155600755565b6000612062836001600160a01b03841661304f565b9392505050565b6001600160a01b03811660009081526001830160205260408120541515612062565b804710156120db5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161056e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612128576040519150601f19603f3d011682016040523d82523d6000602084013e61212d565b606091505b50509050806121a45760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161056e565b505050565b6040516001600160a01b0383166024820152604481018290526121a490849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915261309e565b612229613170565b600254600c54612267917f0000000000000000000000000000000000000000000000000000000000000000916001600160a01b039182169116613315565b565b6000612062836001600160a01b038416613631565b6106d9817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156122db57600080fd5b505afa1580156122ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123139190615513565b600a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561235657600080fd5b505afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e91906154fa565b6000546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156123d157600080fd5b505afa1580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240991906154fa565b613724565b600081831061241d5781612062565b5090919050565b61242d81613930565b600954612464906001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083612e80565b6002546106d9907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683613acf565b604051636a9eee1360e11b81523060048201526000908190819081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d53ddc269060240160206040518083038186803b15801561250457600080fd5b505afa158015612518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253c91906154fa565b600a546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a082319060240160206040518083038186803b15801561258557600080fd5b505afa158015612599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bd91906154fa565b905060006125c9613cd6565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561262657600080fd5b505afa15801561263a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265e9190615513565b9050818311156126805761267b6126758385615546565b82613e4f565b612692565b61269261268d8484615546565b614099565b600061269c61425e565b600080546040516370a0823160e01b815230600482015292935090916001600160a01b03909116906370a082319060240160206040518083038186803b1580156126e557600080fd5b505afa1580156126f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271d91906154fa565b905080600061272c8483615592565b604051639f2b283360e01b81523060048201529091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639f2b28339060240160206040518083038186803b15801561279157600080fd5b505afa1580156127a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c991906154fa565b9050808211156127e4576127dd8183615546565b9b506127f1565b6127ee8282615546565b9a505b60006127fd8a8e615592565b9050808610156128cc57600061281c6128168884615546565b8661240e565b905080156128ca5761283081898c89613724565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561288f57600080fd5b505afa1580156128a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c791906154fa565b96505b505b6128d6868b61240e565b9a508a86116128e65760006128f9565b6128f96128f38c88615546565b8e61240e565b6040516302df682360e11b815260048101829052602481018e9052604481018d9052909d506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906305bed04690606401600060405180830381600087803b15801561296c57600080fd5b505af1158015612980573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691506370a082319060240160206040518083038186803b1580156129e657600080fd5b505afa1580156129fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1e91906154fa565b90508015612a3057612a3081896142f8565b600a546040516370a0823160e01b81523060048201526000918291612b3691839182916001600160a01b0316906370a082319060240160206040518083038186803b158015612a7e57600080fd5b505afa158015612a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab691906154fa565b6000546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015612af957600080fd5b505afa158015612b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3191906154fa565b6143f0565b90925090508015612b5057612b4b818b6149ea565b612bd1565b8115612bd15760095460405163a415bcad60e01b81526001600160a01b039182166004820152602481018490526002604482015260006064820152306084820152908b169063a415bcad9060a401600060405180830381600087803b158015612bb857600080fd5b505af1158015612bcc573d6000803e3d6000fd5b505050505b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015612c1557600080fd5b505afa158015612c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4d91906154fa565b90508015612c5e57612c5e81614a6a565b5050505050505050505050505050909192565b6060600061206283614ae0565b60008054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612cd457600080fd5b505afa158015612ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0c9190615513565b6001600160a01b031614612d625760405162461bcd60e51b815260206004820152601360248201527f77726f6e672d726563656970742d746f6b656e00000000000000000000000000604482015260640161056e565b600a546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015612da657600080fd5b505afa158015612dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dde91906154fa565b9050801561077357610773817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612e4357600080fd5b505afa158015612e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7b9190615513565b6149ea565b801580612f095750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b158015612ecf57600080fd5b505afa158015612ee3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f0791906154fa565b155b612f7b5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161056e565b6040516001600160a01b0383166024820152604481018290526121a490849063095ea7b360e01b906064016121d5565b600254604051636ccb2b0160e01b81526001600160a01b038581166004830152848116602483015260448201849052600160648301523060848301526000921690636ccb2b019060a401602060405180830381600087803b15801561300f57600080fd5b505af1158015613023573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304791906154fa565b949350505050565b600081815260018301602052604081205461309657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611157565b506000611157565b60006130f3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614b3c9092919063ffffffff16565b8051909150156121a4578080602001905181019061311191906155bf565b6121a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161056e565b600080548190613188906001600160a01b0316614b4b565b8151600c54929450909250906001600160a01b031660005b8281101561330e5760008482815181106131bc576131bc6155da565b60200260200101511180156131fc5750816001600160a01b03168582815181106131e8576131e86155da565b60200260200101516001600160a01b031614155b156132fe5760095485516001600160a01b0390911690869083908110613224576132246155da565b60200260200101516001600160a01b0316146132c1576002548551613282916001600160a01b031690600090889085908110613262576132626155da565b60200260200101516001600160a01b0316612e809092919063ffffffff16565b60025484516132c1916001600160a01b0316908690849081106132a7576132a76155da565b6020026020010151878481518110613262576132626155da565b6132fe8582815181106132d6576132d66155da565b6020026020010151838684815181106132f1576132f16155da565b6020026020010151614c94565b613307816155f0565b90506131a0565b5050505050565b6000836001600160a01b0316638bc6beb26040518163ffffffff1660e01b815260040160206040518083038186803b15801561335057600080fd5b505afa158015613364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133889190615513565b90506001600160a01b0381161561362b5760405163d279c19160e01b81523060048201526001600160a01b0382169063d279c19190602401600060405180830381600087803b1580156133da57600080fd5b505af11580156133ee573d6000803e3d6000fd5b505050506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561342d57600080fd5b505afa158015613441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261346991908101906156ec565b805190915060005b8181101561362757600083828151811061348d5761348d6155da565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156134d857600080fd5b505afa1580156134ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061351091906154fa565b905060008111801561354d5750856001600160a01b0316848381518110613539576135396155da565b60200260200101516001600160a01b031614155b1561361657866001600160a01b0316636ccb2b01858481518110613573576135736155da565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529089166024820152604481018490526001606482015230608482015260a401602060405180830381600087803b1580156135db57600080fd5b505af192505050801561360b575060408051601f3d908101601f19168201909252613608918101906154fa565b60015b61361457613616565b505b50613620816155f0565b9050613471565b5050505b50505050565b6000818152600183016020526040812054801561371a576000613655600183615546565b855490915060009061366990600190615546565b90508181146136ce576000866000018281548110613689576136896155da565b90600052602060002001549050808760000184815481106136ac576136ac6155da565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806136df576136df615721565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611157565b6000915050611157565b836000613733818386866143f0565b91505080156137465761374681866149ea565b600c54600080546040516370a0823160e01b81526001600160a01b03918216600482015291926137da9286926137d59289929116906370a08231906024015b60206040518083038186803b15801561379d57600080fd5b505afa1580156137b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137d591906154fa565b61240e565b600c54604051631a4ca37b60e21b81526001600160a01b039182166004820152602481018390523060448201529192508291908816906369328dec90606401602060405180830381600087803b15801561383357600080fd5b505af1158015613847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061386b91906154fa565b1460405180604001604052806002815260200161323960f01b815250906138a55760405162461bcd60e51b815260040161056e9190615479565b50600c546040516370a0823160e01b8152306004820152613926916001600160a01b0316906370a082319060240160206040518083038186803b1580156138eb57600080fd5b505afa1580156138ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392391906154fa565b90565b5050505050505050565b61393981614d30565b6000600260009054906101000a90046001600160a01b031690506139fa7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139af57600080fd5b505afa1580156139c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e79190615513565b600c546001600160a01b03169084612e80565b600c54613a11906001600160a01b03168284612e80565b613ab87f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b158015613a6d57600080fd5b505afa158015613a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa59190615513565b6009546001600160a01b03169084612e80565b600954610773906001600160a01b03168284612e80565b6000836001600160a01b0316638bc6beb26040518163ffffffff1660e01b815260040160206040518083038186803b158015613b0a57600080fd5b505afa158015613b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b429190615513565b90506001600160a01b0381161561362b576000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b158015613b8e57600080fd5b505afa158015613ba2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613bca91908101906156ec565b805190915060005b8181101561362757828181518110613bec57613bec6155da565b6020908102919091010151604051636eb1769f60e11b81523060048201526001600160a01b0388811660248301529091169063dd62ed3e9060440160206040518083038186803b158015613c3f57600080fd5b505afa158015613c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c7791906154fa565b613c9757613c928686858481518110613262576132626155da565b613cc6565b613caf866000858481518110613262576132626155da565b613cc68686858481518110613262576132626155da565b613ccf816155f0565b9050613bd2565b6040516370a0823160e01b8152306004820152600090670de0b6b3a7640000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015613d4257600080fd5b505afa158015613d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7a91906154fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399530b066040518163ffffffff1660e01b815260040160206040518083038186803b158015613dd357600080fd5b505afa158015613de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0b91906154fa565b613e159190615737565b613e1f9190615756565b6009546040516370a0823160e01b81523060048201526001600160a01b03909116906370a08231906024016119eb565b600954600c546001600160a01b0391821691166000613e6f838387614d84565b9050801561330e576000612710600854612710613e8c9190615592565b613e969084615737565b613ea09190615756565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038516906370a082319060240160206040518083038186803b158015613ee557600080fd5b505afa158015613ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1d91906154fa565b905080821115613ffd576000613f338284615546565b604051631a4ca37b60e21b81526001600160a01b0387811660048301526024820183905230604483015291925082918916906369328dec90606401602060405180830381600087803b158015613f8857600080fd5b505af1158015613f9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fc091906154fa565b1460405180604001604052806002815260200161323960f01b81525090613ffa5760405162461bcd60e51b815260040161056e9190615479565b50505b6002546040516381cc619b60e01b81526001600160a01b0386811660048301528781166024830152604482018a905260648201859052306084830152909116906381cc619b9060a4015b602060405180830381600087803b15801561406157600080fd5b505af1158015614075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392691906154fa565b600954600c546001600160a01b03918216911682156121a4576040516370a0823160e01b81523060048201526000906001600160a01b038416906370a082319060240160206040518083038186803b1580156140f457600080fd5b505afa158015614108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061412c91906154fa565b9050808411156141c2576141486141438286615546565b61508e565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561418757600080fd5b505afa15801561419b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141bf91906154fa565b90505b801561362b5760006141d4858361240e565b905060006141e3858584614d84565b905060006127106008546127106141fa9190615546565b6142049084615737565b61420e9190615756565b600254604051636ccb2b0160e01b81526001600160a01b03898116600483015288811660248301526044820187905260648201849052306084830152929350911690636ccb2b019060a401614047565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156142c057600080fd5b505afa1580156142d4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080a91906154fa565b8180156121a457600c5460405163617ba03760e01b81526001600160a01b03918216600482015260248101839052306044820152600060648201529083169063617ba03790608401600060405180830381600087803b15801561435a57600080fd5b505af192505050801561436b575060015b6121a457614377615778565b806308c379a014156143e4575061438c615793565b8061439757506143e6565b6143a08161581d565b611a9b60f11b1461362b5760405162461bcd60e51b815260206004820152600e60248201526d19195c1bdcda5d0819985a5b195960921b604482015260640161056e565b505b3d6000803e3d6000fd5b6000808515806143fe575084155b61444a5760405162461bcd60e51b815260206004820152601160248201527f616c6c2d696e7075742d67742d7a65726f000000000000000000000000000000604482015260640161056e565b60075461445c575060009050826149e1565b60008087116144825785841161447357600061448c565b61447d8685615546565b61448c565b61448c8785615592565b9050806144a05760008592509250506149e1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156144fb57600080fd5b505afa15801561450f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145339190615513565b600954600c5460405163b3596f0760e01b81526001600160a01b0392831660048201819052939450908216916000919085169063b3596f079060240160206040518083038186803b15801561458757600080fd5b505afa15801561459b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145bf91906154fa565b60405163b3596f0760e01b81526001600160a01b03848116600483015291925060009186169063b3596f079060240160206040518083038186803b15801561460657600080fd5b505afa15801561461a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061463e91906154fa565b905081158061464b575080155b156146625760008a975097505050505050506149e1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e860accb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156146bd57600080fd5b505afa1580156146d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146f59190615513565b600c54604051633e15014160e01b81526001600160a01b039182166004820152911690633e150141906024016101406040518083038186803b15801561473a57600080fd5b505afa15801561474e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147729190615841565b50505050505050509150506000846001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156147b857600080fd5b505afa1580156147cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147f091906158d8565b6147fb90600a6159df565b61480790612710615737565b83614812848b615737565b61481c9190615737565b6148269190615756565b9050600084876001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561486457600080fd5b505afa158015614878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061489c91906158d8565b6148a790600a6159df565b6148b19084615737565b6148bb9190615756565b9050806148d75760008d9a509a505050505050505050506149e1565b6000612710600754836148ea9190615737565b6148f49190615756565b90506000612710600654846149099190615737565b6149139190615756565b9050818f111561493057808f6149299190615546565b9b506149d5565b8e8111156149d5576149428f82615546565b600b546040516370a0823160e01b81526001600160a01b039182166004820152919e50600091908b16906370a082319060240160206040518083038186803b15801561498d57600080fd5b505afa1580156149a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149c591906154fa565b9050808e11156149d357809d505b505b50505050505050505050505b94509492505050565b6149f382615251565b60095460405163573ade8160e01b81526001600160a01b03918216600482015260248101849052600260448201523060648201529082169063573ade8190608401600060405180830381600087803b158015614a4e57600080fd5b505af1158015614a62573d6000803e3d6000fd5b505050505050565b60405163b6b55f2560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6b55f2590602401600060405180830381600087803b158015614acc57600080fd5b505af115801561330e573d6000803e3d6000fd5b606081600001805480602002602001604051908101604052809291908181526020018280548015614b3057602002820191906000526020600020905b815481526020019060010190808311614b1c575b50505050509050919050565b6060613047848460008561525a565b606080826001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b158015614b8757600080fd5b505afa925050508015614bb7575060408051601f3d908101601f19168201909252614bb491810190615513565b60015b614bc057915091565b604080516001808252818301909252600091602080830190803683370190505090508481600081518110614bf657614bf66155da565b6001600160a01b03928316602091820292909201015260405163bb492bf560e01b81529083169063bb492bf590614c3390849030906004016159ee565b600060405180830381600087803b158015614c4d57600080fd5b505af1158015614c61573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614c899190810190615a19565b935093505050915091565b600254604051636ccb2b0160e01b81526001600160a01b0385811660048301528481166024830152604482018490526001606483015230608483015290911690636ccb2b019060a401602060405180830381600087803b158015614cf757600080fd5b505af1925050508015614d27575060408051601f3d908101601f19168201909252614d24918101906154fa565b60015b61362b57505050565b6106d96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083612e80565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015614de057600080fd5b505afa158015614df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e189190615513565b60405163b3596f0760e01b81526001600160a01b03878116600483015291925060009183169063b3596f079060240160206040518083038186803b158015614e5f57600080fd5b505afa158015614e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e9791906154fa565b60405163b3596f0760e01b81526001600160a01b03878116600483015291925060009184169063b3596f079060240160206040518083038186803b158015614ede57600080fd5b505afa158015614ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f1691906154fa565b9050600082118015614f285750600081115b614f625760405162461bcd60e51b815260206004820152600b60248201526a383934b1b296b2b93937b960a91b604482015260640161056e565b80866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015614f9c57600080fd5b505afa158015614fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614fd491906158d8565b614fdf90600a6159df565b886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561501857600080fd5b505afa15801561502c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061505091906158d8565b61505b90600a6159df565b6150658886615737565b61506f9190615756565b6150799190615737565b6150839190615756565b979650505050505050565b80156106d95760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399530b066040518163ffffffff1660e01b815260040160206040518083038186803b1580156150ef57600080fd5b505afa158015615103573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061512791906154fa565b905060008161513e84670de0b6b3a7640000615737565b6151489190615756565b9050670de0b6b3a764000061515d8383615737565b6151679190615756565b8311615173578061517e565b61517e816001615592565b6040516370a0823160e01b81523060048201529091506151d39082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401613785565b905080156121a457604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561523d57600080fd5b505af1158015613627573d6000803e3d6000fd5b6106d98161508e565b6060824710156152bb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161056e565b843b6153095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161056e565b600080866001600160a01b031685876040516153259190615adf565b60006040518083038185875af1925050503d8060008114615362576040519150601f19603f3d011682016040523d82523d6000602084013e615367565b606091505b509150915061508382828660608315615381575081612062565b8251156153915782518084602001fd5b8160405162461bcd60e51b815260040161056e9190615479565b6001600160a01b03811681146106d957600080fd5b6000602082840312156153d257600080fd5b8135612062816153ab565b6000602082840312156153ef57600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561542f5781516001600160a01b03168752958201959082019060010161540a565b509495945050505050565b60208152600061206260208301846153f6565b60005b83811015615468578181015183820152602001615450565b8381111561362b5750506000910152565b602081526000825180602084015261549881604085016020870161544d565b601f01601f19169190910160400192915050565b600080604083850312156154bf57600080fd5b82356154ca816153ab565b946020939093013593505050565b600080604083850312156154eb57600080fd5b50508035926020909101359150565b60006020828403121561550c57600080fd5b5051919050565b60006020828403121561552557600080fd5b8151612062816153ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561555857615558615530565b500390565b600181811c9082168061557157607f821691505b602082108114156109ef57634e487b7160e01b600052602260045260246000fd5b600082198211156155a5576155a5615530565b500190565b805180151581146155ba57600080fd5b919050565b6000602082840312156155d157600080fd5b612062826155aa565b634e487b7160e01b600052603260045260246000fd5b600060001982141561560457615604615530565b5060010190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156156475761564761560b565b6040525050565b600067ffffffffffffffff8211156156685761566861560b565b5060051b60200190565b600082601f83011261568357600080fd5b815160206156908261564e565b60405161569d8282615621565b83815260059390931b85018201928281019150868411156156bd57600080fd5b8286015b848110156156e15780516156d4816153ab565b83529183019183016156c1565b509695505050505050565b6000602082840312156156fe57600080fd5b815167ffffffffffffffff81111561571557600080fd5b61304784828501615672565b634e487b7160e01b600052603160045260246000fd5b600081600019048311821515161561575157615751615530565b500290565b60008261577357634e487b7160e01b600052601260045260246000fd5b500490565b600060033d11156139235760046000803e5060005160e01c90565b600060443d10156157a15790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156157d157505050505090565b82850191508151818111156157e95750505050505090565b843d87010160208285010111156158035750505050505090565b61581260208286010187615621565b509095945050505050565b805160208083015191908110156109ef5760001960209190910360031b1b16919050565b6000806000806000806000806000806101408b8d03121561586157600080fd5b8a51995060208b0151985060408b0151975060608b0151965060808b0151955061588d60a08c016155aa565b945061589b60c08c016155aa565b93506158a960e08c016155aa565b92506158b86101008c016155aa565b91506158c76101208c016155aa565b90509295989b9194979a5092959850565b6000602082840312156158ea57600080fd5b815160ff8116811461206257600080fd5b600181815b8085111561593657816000190482111561591c5761591c615530565b8085161561592957918102915b93841c9390800290615900565b509250929050565b60008261594d57506001611157565b8161595a57506000611157565b8160018114615970576002811461597a57615996565b6001915050611157565b60ff84111561598b5761598b615530565b50506001821b611157565b5060208310610133831016604e8410600b84101617156159b9575081810a611157565b6159c383836158fb565b80600019048211156159d7576159d7615530565b029392505050565b600061206260ff84168361593e565b604081526000615a0160408301856153f6565b90506001600160a01b03831660208301529392505050565b60008060408385031215615a2c57600080fd5b825167ffffffffffffffff80821115615a4457600080fd5b615a5086838701615672565b9350602091508185015181811115615a6757600080fd5b85019050601f81018613615a7a57600080fd5b8051615a858161564e565b604051615a928282615621565b82815260059290921b8301840191848101915088831115615ab257600080fd5b928401925b82841015615ad057835182529284019290840190615ab7565b80955050505050509250929050565b60008251615af181846020870161544d565b919091019291505056fe63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000a2646970667358221220e10ac9906a9e27ec977e8f049346da745e999bab6c19ffb4fbbfdba8c3bb6f8264736f6c63430008090033000000000000000000000000dd63ae655b388cd782681b7821be37fdb6d0e78d000000000000000000000000017cbf62b53313d5ee3ad1288daa95cd39aa11fe000000000000000000000000c45a479877e1e9dfe9fcd4056c699575a1045daa0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607000000000000000000000000a97684ead0e402dc232d5a977953df7ecbab3cdb000000000000000000000000539505dde2b9771debe0898a84441c5e7fdf6bc000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001c4161766556335f5665737065725f58795f7773744554485f5553444300000000