0 txs
91 calls
constructor
constructor()
functions
BASE_PERCENT
viewfunction BASE_PERCENT() view returns (uint256)
ethLPRatio
viewfunction ethLPRatio() view returns (uint256)
getUniV3Route
viewfunction getUniV3Route(address _tokenIn, address _tokenOut) view returns (bytes)
getVDebtToken
viewfunction getVDebtToken(address _asset) view returns (address)
lendingPool
viewfunction lendingPool() view returns (address)
MAX_SLIPPAGE
viewfunction MAX_SLIPPAGE() view returns (uint256)
mfd
viewfunction mfd() view returns (address)
MIN_UNIV3_ROUTE_LENGTH
viewfunction MIN_UNIV3_ROUTE_LENGTH() view returns (uint256)
oracleRouter
viewfunction oracleRouter() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
poolHelper
viewfunction poolHelper() view returns (address)
priceProvider
viewfunction priceProvider() view returns (address)
RATIO_DIVISOR
viewfunction RATIO_DIVISOR() view returns (uint256)
rdntAddr
viewfunction rdntAddr() view returns (address)
REFERRAL_CODE
viewfunction REFERRAL_CODE() view returns (uint16)
rizRegistry
viewfunction rizRegistry() view returns (address)
uniRouter
viewfunction uniRouter() view returns (address)
UNIV3_NEXT_OFFSET
viewfunction UNIV3_NEXT_OFFSET() view returns (uint256)
uniV3Quoter
viewfunction uniV3Quoter() view returns (address)
VARIABLE_INTEREST_RATE_MODE
viewfunction VARIABLE_INTEREST_RATE_MODE() view returns (uint256)
weth
viewfunction weth() view returns (address)
initialize
nonpayablefunction initialize(address _rndtPoolHelper, address _uniRouter, address _lendingPool, address _rizRegistry, address _weth, address _rdntAddr, uint256 _ethLPRatio, address _oracleRouter)
pause
nonpayablefunction pause()
quoteFromToken
nonpayablefunction quoteFromToken(address _token, uint256 _rdntIn) returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
rizZap
payablefunction rizZap(bool _borrow, address _lendingPool, address _asset, uint256 _assetAmt, uint256 _rdntAmt, uint256 _lockTypeIndex, uint256 _slippage) payable returns (uint256)
rizZapFromVesting
payablefunction rizZapFromVesting(bool _borrow, address _lendingPool, address _asset, uint256 _assetAmt, uint256 _lockTypeIndex, uint256 _slippage) payable returns (uint256)
rizZapOnBehalf
payablefunction rizZapOnBehalf(bool _borrow, address _lendingPool, address _asset, uint256 _assetAmt, uint256 _rdntAmt, address _onBehalf, uint256 _slippage) payable returns (uint256)
setEthLPRatio
nonpayablefunction setEthLPRatio(uint256 _ethLPRatio)
setMfd
nonpayablefunction setMfd(address _mfdAddr)
setOracleRouter
nonpayablefunction setOracleRouter(address _oracleRouter)
setPoolHelper
nonpayablefunction setPoolHelper(address _poolHelper)
setPriceProvider
nonpayablefunction setPriceProvider(address _provider)
setUniRouter
nonpayablefunction setUniRouter(address _uniRouter)
setUniV3Quoter
nonpayablefunction setUniV3Quoter(address _uniV3Quoter)
setUniV3Route
nonpayablefunction setUniV3Route(address _tokenIn, address _tokenOut, bytes _route)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdrawLockedETH
nonpayablefunction withdrawLockedETH(address to, uint256 value)
zap
payablefunction zap(bool _borrow, address _asset, uint256 _assetAmt, uint256 _rdntAmt, uint256 _lockTypeIndex, uint256 _slippage) payable returns (uint256)
zapFromVesting
payablefunction zapFromVesting(bool _borrow, address _asset, uint256 _assetAmt, uint256 _lockTypeIndex, uint256 _slippage) payable returns (uint256)
zapOnBehalf
payablefunction zapOnBehalf(bool _borrow, address _asset, uint256 _assetAmt, uint256 _rdntAmt, address _onBehalf, uint256 _slippage) payable returns (uint256)
events
EthLPRatioUpdated
event EthLPRatioUpdated(uint256 _ethLPRatio)
Initialized
event Initialized(uint8 version)
MfdUpdated
event MfdUpdated(address indexed _mfdAddr)
OracleRouterUpdated
event OracleRouterUpdated(address indexed _oracleRouter)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PoolHelperUpdated
event PoolHelperUpdated(address indexed _poolHelper)
PriceProviderUpdated
event PriceProviderUpdated(address indexed _provider)
RoutesUniV3Updated
event RoutesUniV3Updated(address indexed _tokenIn, address indexed _tokenOut, bytes _route)
UniRouterUpdated
event UniRouterUpdated(address indexed _uniRouter)
UniV3QuoterUpdated
event UniV3QuoterUpdated(address indexed _uniV3Quoter)
Unpaused
event Unpaused(address account)
Zapped
event Zapped(bool _borrow, uint256 _ethAmt, uint256 _rdntAmt, address indexed _from, address indexed _onBehalf, uint256 _lockTypeIndex)
errors
AddressZero
error AddressZero()
AmountZero
error AmountZero()
CannotRizZap
error CannotRizZap()
ETHTransferFailed
error ETHTransferFailed()
InsufficientETH
error InsufficientETH()
InvalidLendingPool
error InvalidLendingPool()
InvalidLockLength
error InvalidLockLength()
InvalidRatio
error InvalidRatio()
InvalidZapETHSource
error InvalidZapETHSource()
ReceivedETHOnAlternativeAssetZap
error ReceivedETHOnAlternativeAssetZap()
SlippageTooHigh
error SlippageTooHigh()
SpecifiedSlippageExceedLimit
error SpecifiedSlippageExceedLimit()
SwapFailed
error SwapFailed(address asset, uint256 amount)
WrongRoute
error WrongRoute(address fromToken, address toToken)
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61382480620000f36000396000f3fe6080604052600436106102205760003560e01c8063715018a611610124578063a969dc8c116100a6578063a969dc8c146105cd578063b0c634ee146105e0578063b559777a14610600578063b59ee16d14610613578063b888879e14610640578063c7d398d214610660578063ea916d5314610680578063ee4e2687146106a0578063f2fde38b146106c0578063f9759518146106e0578063f9dc1f87146106f657600080fd5b8063715018a6146104ac57806373809625146104c1578063778689cd146104d4578063795674ff146104e75780638456cb59146105075780638da5cb5b1461051c5780638e659c081461053a578063914237da1461055a5780639506f05f1461057a578063a0e47bf61461058d578063a59a9973146105ad57600080fd5b8063408e6fb8116101ad578063408e6fb81461036857806347a3c4e8146103885780634d69ee0e146103a857806355a29e91146103c857806355ac8d30146103e85780635c975abb1461040857806362f3765e1461042b578063667f37451461044057806367dbf15d146104605780636a7e9f33146104805780636ac3ac8f1461049657600080fd5b80631bef89891461022c578063243b337b14610252578063296c7dfb146102675780632cd35475146102895780632d881932146102a95780633583849a146102d6578063372aa224146102fe578063389f0b061461031e5780633f4ba83a146103335780633fc8cef31461034857600080fd5b3661022757005b600080fd5b61023f61023a366004612d7d565b61070b565b6040519081526020015b60405180910390f35b34801561025e57600080fd5b5061023f601781565b34801561027357600080fd5b50610287610282366004612e5a565b61086a565b005b34801561029557600080fd5b506102876102a4366004612f13565b610991565b3480156102b557600080fd5b5060a2546102c9906001600160a01b031681565b6040516102499190612f37565b3480156102e257600080fd5b506102eb600081565b60405161ffff9091168152602001610249565b34801561030a57600080fd5b50610287610319366004612f13565b610a0a565b34801561032a57600080fd5b5061023f602b81565b34801561033f57600080fd5b50610287610a83565b34801561035457600080fd5b506097546102c9906001600160a01b031681565b34801561037457600080fd5b50610287610383366004612f4b565b610a95565b34801561039457600080fd5b506102876103a3366004612f13565b610aab565b3480156103b457600080fd5b506102876103c3366004612f13565b610b24565b3480156103d457600080fd5b50609d546102c9906001600160a01b031681565b3480156103f457600080fd5b50609b546102c9906001600160a01b031681565b34801561041457600080fd5b5060655460ff166040519015158152602001610249565b34801561043757600080fd5b5061023f606481565b34801561044c57600080fd5b506102c961045b366004612f13565b610bb3565b34801561046c57600080fd5b5061028761047b366004612f13565b610c36565b34801561048c57600080fd5b5061023f61271081565b3480156104a257600080fd5b5061023f609e5481565b3480156104b857600080fd5b50610287610caf565b61023f6104cf366004612f77565b610cc1565b61023f6104e2366004612fd0565b610d3e565b3480156104f357600080fd5b5060a1546102c9906001600160a01b031681565b34801561051357600080fd5b50610287610f24565b34801561052857600080fd5b506033546001600160a01b03166102c9565b34801561054657600080fd5b50610287610555366004613035565b610f34565b34801561056657600080fd5b506098546102c9906001600160a01b031681565b61023f6105883660046130d5565b61120d565b34801561059957600080fd5b50609f546102c9906001600160a01b031681565b3480156105b957600080fd5b50609a546102c9906001600160a01b031681565b61023f6105db36600461313c565b6112f8565b3480156105ec57600080fd5b506099546102c9906001600160a01b031681565b61023f61060e3660046131b7565b6114ea565b34801561061f57600080fd5b5061063361062e366004613208565b6115ef565b6040516102499190613299565b34801561064c57600080fd5b50609c546102c9906001600160a01b031681565b34801561066c57600080fd5b5061023f61067b366004612f4b565b6116aa565b34801561068c57600080fd5b5061028761069b3660046132ac565b6117bd565b3480156106ac57600080fd5b506102876106bb366004612f13565b61182d565b3480156106cc57600080fd5b506102876106db366004612f13565b6118bb565b3480156106ec57600080fd5b5061023f61251c81565b34801561070257600080fd5b5061023f600281565b6000610715611931565b6001600160a01b03871661073c57604051639fabe1c160e01b815260040160405180910390fd5b609a546001600160a01b038881169116141561076b5760405163561e666b60e01b815260040160405180910390fd5b60a254604051630193cef360e31b81526001600160a01b0390911690630c9e77989061079b908a90600401612f37565b602060405180830381865afa1580156107b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dc91906132c5565b6107f957604051636c656b3b60e11b815260040160405180910390fd5b604080516101408101825289151581526001600160a01b03808a16602083015288169181019190915260608101869052608081018590523360a0820181905260c0820181905260e08201859052610100820152610120810183905261085d81611977565b9998505050505050505050565b610872612183565b6001600160a01b038316158061088f57506001600160a01b038216155b156108ad57604051639fabe1c160e01b815260040160405180910390fd5b8051602b811080156108d4575060176108c76014836132f8565b6108d19190613325565b15155b1561090a57604051633f80ee7160e11b81526001600160a01b038086166004830152841660248201526044015b60405180910390fd5b6001600160a01b03808516600090815260a0602090815260408083209387168352928152919020835161093f92850190612cc1565b50826001600160a01b0316846001600160a01b03167fd5199eb4735354937051128c35505bff1a9a3fd9d517dfcf032e0de3f37cf7d2846040516109839190613299565b60405180910390a350505050565b610999612183565b6001600160a01b0381166109c057604051639fabe1c160e01b815260040160405180910390fd5b609b80546001600160a01b0319166001600160a01b0383169081179091556040517fce3a680d01747abb9461a3d05f1da77c9cfb9a5b7a6cc1828c733dc52b15479790600090a250565b610a12612183565b6001600160a01b038116610a3957604051639fabe1c160e01b815260040160405180910390fd5b609c80546001600160a01b0319166001600160a01b0383169081179091556040517fb266add5f3044b17d27db796af992cecbe413921b4e8aaaee03c719e16b9806a90600090a250565b610a8b612183565b610a936121dd565b565b610a9d612183565b610aa78282612229565b5050565b610ab3612183565b6001600160a01b038116610ada57604051639fabe1c160e01b815260040160405180910390fd5b60a180546001600160a01b0319166001600160a01b0383169081179091556040517fccefa1610d55a737e1ddaf01272e45baa496f743c0537ec70faf2ec99a6bc36990600090a250565b610b2c612183565b6001600160a01b038116610b5357604051639fabe1c160e01b815260040160405180910390fd5b609d546001600160a01b03828116911614610bb057609d80546001600160a01b0319166001600160a01b0383169081179091556040517fb12580e226e25bbb446909adeb7b42f7dd51fc77e9b58f14f321016cbd68c16a90600090a25b50565b609a546040516335ea6a7560e01b815260009182916001600160a01b03909116906335ea6a7590610be8908690600401612f37565b61018060405180830381865afa158015610c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2a91906133c7565b61012001519392505050565b610c3e612183565b6001600160a01b038116610c6557604051639fabe1c160e01b815260040160405180910390fd5b609980546001600160a01b0319166001600160a01b0383169081179091556040517fdee3317c3fa3792a879d5a8f63b6fcfa425fae71a9cccaba4ebaa7d279c99ce690600090a250565b610cb7612183565b610a9360006122bc565b6000610ccb611931565b60408051610140810182528815158152609a546001600160a01b03908116602083015288169181019190915260608101869052608081018590523360a0820181905260c0820181905260e082018590526101008201526101208101839052610d3281611977565b98975050505050505050565b6000610d48611931565b82610d6657604051631d18e2c160e01b815260040160405180910390fd5b6001600160a01b038616610d8d57604051639fabe1c160e01b815260040160405180910390fd5b609a546001600160a01b0387811691161415610dbc5760405163561e666b60e01b815260040160405180910390fd5b60a254604051630193cef360e31b81526001600160a01b0390911690630c9e779890610dec908990600401612f37565b602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d91906132c5565b610e4a57604051636c656b3b60e11b815260040160405180910390fd5b609954604051632843b01960e01b81526000916001600160a01b031690632843b01990610e7b903390600401612f37565b6020604051808303816000875af1158015610e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebe91906134b4565b60408051610140810182528a151581526001600160a01b03808b16602083015289169181019190915260608101879052608081018290523060a08201523360c0820181905260e08201879052610100820152610120810185905290915061085d81611977565b610f2c612183565b610a9361230e565b600054610100900460ff1615808015610f545750600054600160ff909116105b80610f755750610f633061234b565b158015610f75575060005460ff166001145b610fd85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610901565b6000805460ff191660011790558015610ffb576000805461ff0019166101001790555b6001600160a01b03891661102257604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b03881661104957604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b03871661107057604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b03861661109757604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b0385166110be57604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b0384166110e557604051639fabe1c160e01b815260040160405180910390fd5b8215806110f457506127108310155b156111125760405163648564d360e01b815260040160405180910390fd5b6001600160a01b03821661113957604051639fabe1c160e01b815260040160405180910390fd5b61114161235a565b611149612389565b609a80546001600160a01b03199081166001600160a01b038a811691909117909255609b805482168c8416179055609f805482168b8416179055609780548216888416179055609880548216878416179055609e859055609d8054821685841617905560a280549091169188169190911790558015611202576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6000611217611931565b609954604051632e88caa160e01b81526000916001600160a01b031690632e88caa190611248908790600401612f37565b602060405180830381865afa158015611265573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128991906134b4565b60408051610140810182528a15158152609a546001600160a01b0390811660208301528a81169282019290925260608101899052608081018890523360a0820181905291871660c082015260e08101839052610100810191909152610120810185905290915061085d81611977565b6000611302611931565b6001600160a01b03871661132957604051639fabe1c160e01b815260040160405180910390fd5b609a546001600160a01b03888116911614156113585760405163561e666b60e01b815260040160405180910390fd5b60a254604051630193cef360e31b81526001600160a01b0390911690630c9e779890611388908a90600401612f37565b602060405180830381865afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c991906132c5565b6113e657604051636c656b3b60e11b815260040160405180910390fd5b609954604051632e88caa160e01b81526000916001600160a01b031690632e88caa190611417908790600401612f37565b602060405180830381865afa158015611434573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145891906134b4565b905060006040518061014001604052808b151581526020018a6001600160a01b03168152602001896001600160a01b03168152602001888152602001878152602001336001600160a01b03168152602001866001600160a01b03168152602001838152602001336001600160a01b031681526020018581525090506114dc81611977565b9a9950505050505050505050565b60006114f4611931565b8261151257604051631d18e2c160e01b815260040160405180910390fd5b609954604051632843b01960e01b81526000916001600160a01b031690632843b01990611543903390600401612f37565b6020604051808303816000875af1158015611562573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158691906134b4565b60408051610140810182528915158152609a546001600160a01b03908116602083015289169181019190915260608101879052608081018290523060a08201523360c0820181905260e082018790526101008201526101208101859052909150610d3281611977565b6001600160a01b03808316600090815260a060209081526040808320938516835292905220805460609190611623906134cd565b80601f016020809104026020016040519081016040528092919081815260200182805461164f906134cd565b801561169c5780601f106116715761010080835404028352916020019161169c565b820191906000526020600020905b81548152906001019060200180831161167f57829003601f168201915b505050505090505b92915050565b6097546000906001600160a01b03908116908416811461174857609b54604051637eb8303160e11b8152600481018590526000916001600160a01b03169063fd70606290602401602060405180830381865afa15801561170e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173291906134b4565b905061173f8583836123b8565b925050506116a4565b609b54604051637eb8303160e11b8152600481018590526001600160a01b039091169063fd70606290602401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b591906134b4565b949350505050565b6117c5612183565b8015806117d457506127108110155b156117f25760405163648564d360e01b815260040160405180910390fd5b609e8190556040518181527f2eae9d63ea053fbf1959195f9fc50947f3eddc81254c0c05ce597a1692929f1c9060200160405180910390a150565b611835612183565b6001600160a01b03811661185c57604051639fabe1c160e01b815260040160405180910390fd5b609f546001600160a01b03828116911614610bb057609f80546001600160a01b0319166001600160a01b0383169081179091556040517f7189a0ba279a96a44871ae8306133ff5ccdb353b75897c09c47e34610cac5fc290600090a250565b6118c3612183565b6001600160a01b0381166119285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610901565b610bb0816122bc565b60655460ff1615610a935760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610901565b60208101516000906001600160a01b03166119a557604051639fabe1c160e01b815260040160405180910390fd5b60975460408301516001600160a01b0391821691166119ce576001600160a01b03811660408401525b6101208301516119e65761251c610120840152611a1f565b82610120015161251c1180611a015750612710836101200151115b15611a1f5760405163c82bafc960e01b815260040160405180910390fd5b60408301516001600160a01b038281169116143415611ad95780611a5657604051637fef56e960e01b815260040160405180910390fd5b835115611a765760405163d3555def60e01b815260040160405180910390fd5b34846060018181525050816001600160a01b031663d0e30db085606001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611abf57600080fd5b505af1158015611ad3573d6000803e3d6000fd5b50505050505b6060840151611afb576040516365e52d5160e11b815260040160405180910390fd5b600084604001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b639190613508565b611b6e90600a613607565b609d54604080880151905163b3596f0760e01b81526001600160a01b039092169163b3596f0791611ba191600401612f37565b602060405180830381865afa158015611bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be291906134b4565b8660600151611bf19190613616565b611bfb9190613635565b855190915015611cb15760208501516040808701516060880151915163a415bcad60e01b81526001600160a01b039182166004820152602481019290925260026044830152600060648301523360848301529091169063a415bcad9060a401600060405180830381600087803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b5050505081611cac57611ca685604001518487606001516000612429565b60608601525b611cfe565b34611cfe57611cde3330876060015188604001516001600160a01b03166125b2909392919063ffffffff16565b81611cfe57611cf885604001518487606001516000612429565b60608601525b609b54606086015160405163095ea7b360e01b81526001600160a01b038681169363095ea7b393611d36939290911691600401613649565b6020604051808303816000875af1158015611d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7991906132c5565b50608085015115611f1a57609b546080860151604051637eb8303160e11b81526001600160a01b039092169163fd70606291611dbb9160040190815260200190565b602060405180830381865afa158015611dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfc91906134b4565b85606001511015611e2057604051631a84bc4160e21b815260040160405180910390fd5b60a08501516001600160a01b03163014611e55576080850151609854611e55916001600160a01b0390911690339030906125b2565b609b546080860151609854611e78926001600160a01b0391821692911690612623565b609b5460608601516080870151604051633a9cc1eb60e11b8152600481019290925260248201526001600160a01b039091169063753983d6906044016020604051808303816000875af1158015611ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef791906134b4565b609e54909450611f0961271083613616565b611f139190613635565b9050611f97565b609b546060860151604051636414dfed60e11b81526001600160a01b039092169163c829bfda91611f519160040190815260200190565b6020604051808303816000875af1158015611f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9491906134b4565b93505b609c546001600160a01b031615611fd757846101200151611fb882866126bc565b1015611fd75760405163428637bb60e11b815260040160405180910390fd5b609954609b54604080516321cf280b60e11b81529051612061936001600160a01b0390811693899391169163439e5016916004808201926020929091908290030181865afa15801561202d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120519190613662565b6001600160a01b03169190612623565b60995460c086015160e0870151604051631ba724c760e21b8152600481018890526001600160a01b0392831660248201526044810191909152911690636e9c931c90606401600060405180830381600087803b1580156120c057600080fd5b505af11580156120d4573d6000803e3d6000fd5b505050508460c001516001600160a01b03168560a001516001600160a01b03167f185f471aee8e22c0f6772d9076b984cb8394859d474a9799c1421f440262d5818760000151886060015189608001518a60e001516040516121519493929190931515845260208401929092526040830152606082015260800190565b60405180910390a3609854604086015161010087015161217b926001600160a01b031691906127e4565b505050919050565b6033546001600160a01b03163314610a935760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610901565b6121e561296a565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161221f9190612f37565b60405180910390a1565b604080516000808252602082019092526001600160a01b038416908390604051612253919061367f565b60006040518083038185875af1925050503d8060008114612290576040519150601f19603f3d011682016040523d82523d6000602084013e612295565b606091505b50509050806122b75760405163b12d13eb60e01b815260040160405180910390fd5b505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612316611931565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586122123390565b6001600160a01b03163b151590565b600054610100900460ff166123815760405162461bcd60e51b81526004016109019061369b565b610a936129b3565b600054610100900460ff166123b05760405162461bcd60e51b81526004016109019061369b565b610a936129e3565b60a1546001600160a01b03838116600090815260a06020908152604080832088851684529091528082209051632f80bb1d60e01b815291939290921691632f80bb1d9161240a919086906004016136e6565b6020604051808303816000875af1158015611791573d6000803e3d6000fd5b609f54600090612446906001600160a01b03878116911685612623565b6001600160a01b03808616600090815260a06020908152604080832093881683529290529081208054612478906134cd565b80601f01602080910402602001604051908101604052809291908181526020018280546124a4906134cd565b80156124f15780601f106124c6576101008083540402835291602001916124f1565b820191906000526020600020905b8154815290600101906020018083116124d457829003601f168201915b5050609f546040805160a0810182528681523060208201524281830152606081018b9052608081018a9052905163c04b8d5960e01b81529596506001600160a01b039091169463c04b8d59945061254e9350909150600401613796565b6020604051808303816000875af1925050508015612589575060408051601f3d908101601f19168201909252612586918101906134b4565b60015b6125a95785846040516264998560e11b8152600401610901929190613649565b91506117b59050565b6040516001600160a01b038085166024830152831660448201526064810182905261261d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612a16565b50505050565b600063095ea7b360e01b8383604051602401612640929190613649565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061267e8482612aeb565b61261d576040516001600160a01b0384166024820152600060448201526126b290859063095ea7b360e01b906064016125e6565b61261d8482612a16565b609c546040805163a2e6204560e01b815290516000926001600160a01b03169163a2e62045916004808301928692919082900301818387803b15801561270157600080fd5b505af1158015612715573d6000803e3d6000fd5b505050506000609c60009054906101000a90046001600160a01b03166001600160a01b0316636e9a05c56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279291906134b4565b6127a1906402540be400613616565b90506000670de0b6b3a76400006127b88386613616565b6127c29190613635565b9050846127d161271083613616565b6127db9190613635565b95945050505050565b6040516370a0823160e01b8152839083906000906001600160a01b038316906370a0823190612817903090600401612f37565b6020604051808303816000875af1158015612836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285a91906134b4565b905080156128d55760405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb906128909087908590600401613649565b6020604051808303816000875af11580156128af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d391906132c5565b505b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190612904903090600401612f37565b602060405180830381865afa158015612921573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294591906134b4565b90508015612961576129616001600160a01b0385168683612b84565b50505050505050565b60655460ff16610a935760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610901565b600054610100900460ff166129da5760405162461bcd60e51b81526004016109019061369b565b610a93336122bc565b600054610100900460ff16612a0a5760405162461bcd60e51b81526004016109019061369b565b6065805460ff19169055565b6000612a6b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ba39092919063ffffffff16565b9050805160001480612a8c575080806020019051810190612a8c91906132c5565b6122b75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610901565b6000806000846001600160a01b031684604051612b08919061367f565b6000604051808303816000865af19150503d8060008114612b45576040519150601f19603f3d011682016040523d82523d6000602084013e612b4a565b606091505b5091509150818015612b74575080511580612b74575080806020019051810190612b7491906132c5565b80156127db57506127db8561234b565b6122b78363a9059cbb60e01b84846040516024016125e6929190613649565b60606117b5848460008585600080866001600160a01b03168587604051612bca919061367f565b60006040518083038185875af1925050503d8060008114612c07576040519150601f19603f3d011682016040523d82523d6000602084013e612c0c565b606091505b5091509150612c1d87838387612c28565b979650505050505050565b60608315612c92578251612c8b57612c3f8561234b565b612c8b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610901565b50816117b5565b6117b58383815115612ca75781518083602001fd5b8060405162461bcd60e51b81526004016109019190613299565b828054612ccd906134cd565b90600052602060002090601f016020900481019282612cef5760008555612d35565b82601f10612d0857805160ff1916838001178555612d35565b82800160010185558215612d35579182015b82811115612d35578251825591602001919060010190612d1a565b50612d41929150612d45565b5090565b5b80821115612d415760008155600101612d46565b8015158114610bb057600080fd5b6001600160a01b0381168114610bb057600080fd5b600080600080600080600060e0888a031215612d9857600080fd5b8735612da381612d5a565b96506020880135612db381612d68565b95506040880135612dc381612d68565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715612e2457612e24612deb565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612e5257612e52612deb565b604052919050565b600080600060608486031215612e6f57600080fd5b8335612e7a81612d68565b9250602084810135612e8b81612d68565b925060408501356001600160401b0380821115612ea757600080fd5b818701915087601f830112612ebb57600080fd5b813581811115612ecd57612ecd612deb565b612edf601f8201601f19168501612e2a565b91508082528884828501011115612ef557600080fd5b80848401858401376000848284010152508093505050509250925092565b600060208284031215612f2557600080fd5b8135612f3081612d68565b9392505050565b6001600160a01b0391909116815260200190565b60008060408385031215612f5e57600080fd5b8235612f6981612d68565b946020939093013593505050565b60008060008060008060c08789031215612f9057600080fd5b8635612f9b81612d5a565b95506020870135612fab81612d68565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060008060008060c08789031215612fe957600080fd5b8635612ff481612d5a565b9550602087013561300481612d68565b9450604087013561301481612d68565b959894975094956060810135955060808101359460a0909101359350915050565b600080600080600080600080610100898b03121561305257600080fd5b883561305d81612d68565b9750602089013561306d81612d68565b9650604089013561307d81612d68565b9550606089013561308d81612d68565b9450608089013561309d81612d68565b935060a08901356130ad81612d68565b925060c0890135915060e08901356130c481612d68565b809150509295985092959890939650565b60008060008060008060c087890312156130ee57600080fd5b86356130f981612d5a565b9550602087013561310981612d68565b94506040870135935060608701359250608087013561312781612d68565b8092505060a087013590509295509295509295565b600080600080600080600060e0888a03121561315757600080fd5b873561316281612d5a565b9650602088013561317281612d68565b9550604088013561318281612d68565b9450606088013593506080880135925060a08801356131a081612d68565b8092505060c0880135905092959891949750929550565b600080600080600060a086880312156131cf57600080fd5b85356131da81612d5a565b945060208601356131ea81612d68565b94979496505050506040830135926060810135926080909101359150565b6000806040838503121561321b57600080fd5b823561322681612d68565b9150602083013561323681612d68565b809150509250929050565b60005b8381101561325c578181015183820152602001613244565b8381111561261d5750506000910152565b60008151808452613285816020860160208601613241565b601f01601f19169290920160200192915050565b602081526000612f30602083018461326d565b6000602082840312156132be57600080fd5b5035919050565b6000602082840312156132d757600080fd5b8151612f3081612d5a565b634e487b7160e01b600052601160045260246000fd5b60008282101561330a5761330a6132e2565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826133345761333461330f565b500690565b60006020828403121561334b57600080fd5b604051602081018181106001600160401b038211171561336d5761336d612deb565b6040529151825250919050565b80516001600160801b038116811461339157600080fd5b919050565b805164ffffffffff8116811461339157600080fd5b805161339181612d68565b805160ff8116811461339157600080fd5b600061018082840312156133da57600080fd5b6133e2612e01565b6133ec8484613339565b81526133fa6020840161337a565b602082015261340b6040840161337a565b604082015261341c6060840161337a565b606082015261342d6080840161337a565b608082015261343e60a0840161337a565b60a082015261344f60c08401613396565b60c082015261346060e084016133ab565b60e08201526101006134738185016133ab565b908201526101206134858482016133ab565b908201526101406134978482016133ab565b908201526101606134a98482016133b6565b908201529392505050565b6000602082840312156134c657600080fd5b5051919050565b600181811c908216806134e157607f821691505b6020821081141561350257634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561351a57600080fd5b612f30826133b6565b600181815b8085111561355e578160001904821115613544576135446132e2565b8085161561355157918102915b93841c9390800290613528565b509250929050565b600082613575575060016116a4565b81613582575060006116a4565b816001811461359857600281146135a2576135be565b60019150506116a4565b60ff8411156135b3576135b36132e2565b50506001821b6116a4565b5060208310610133831016604e8410600b84101617156135e1575081810a6116a4565b6135eb8383613523565b80600019048211156135ff576135ff6132e2565b029392505050565b6000612f3060ff841683613566565b6000816000190483118215151615613630576136306132e2565b500290565b6000826136445761364461330f565b500490565b6001600160a01b03929092168252602082015260400190565b60006020828403121561367457600080fd5b8151612f3081612d68565b60008251613691818460208701613241565b9190910192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60408152600080845481600182811c91508083168061370657607f831692505b602080841082141561372657634e487b7160e01b86526022600452602486fd5b6040880184905260608801828015613745576001811461375657613781565b60ff19871682528282019750613781565b60008c81526020902060005b8781101561377b57815484820152908601908401613762565b83019850505b50509690960196909652509095945050505050565b602081526000825160a060208401526137b260c084018261326d565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a0840152809150509291505056fea2646970667358221220814117d285ce093bf89bcbb90ccbf286fcabf7f2edbb05b044ef53bf8229178f64736f6c634300080c0033