0 txs
1 call
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
allowedClosers
viewfunction allowedClosers(address) view returns (bool)
allowedSenders
viewfunction allowedSenders(address) view returns (bool)
allUsers
viewfunction allUsers(uint256) view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
burner
viewfunction burner(address) view returns (bool)
decimals
viewfunction decimals() view returns (uint8)
DTVLimit
viewfunction DTVLimit() view returns (uint256)
DTVSlippage
viewfunction DTVSlippage() view returns (uint256)
feeConfiguration
viewfunction feeConfiguration() view returns (address feeReceiver, uint256 withdrawalFee, address waterFeeReceiver, uint256 liquidatorsRewardPercentage, uint256 fixedFeeSplit)
getAggregatePosition
viewfunction getAggregatePosition(address _user) view returns (uint256)
getAllUsers
viewfunction getAllUsers() view returns (address[])
getAlpCoolingDuration
viewfunction getAlpCoolingDuration() view returns (uint256)
getAlpPrice
viewfunction getAlpPrice() view returns (uint256)
getCurrentPosition
viewfunction getCurrentPosition(uint256 _positionID, uint256 _shares, address _user) view returns (uint256 currentPosition, uint256 previousValueInUSDC)
getPositionOpenTimestamp
viewfunction getPositionOpenTimestamp(address _user, uint256 _positionId) view returns (uint256)
getStakedInfo
viewfunction getStakedInfo() view returns (uint256 amountDeposited, uint256 rewards)
getTotalNumbersOfOpenPositionBy
viewfunction getTotalNumbersOfOpenPositionBy(address _user) view returns (uint256)
getUpdatedDebt
viewfunction getUpdatedDebt(uint256 _positionID, address _user) view returns (uint256 currentDTV, uint256 currentPosition, uint256 currentDebt)
isUser
viewfunction isUser(address) view returns (bool)
isWhitelistedAsset
viewfunction isWhitelistedAsset(address) view returns (bool)
keeper
viewfunction keeper() view returns (address)
MCPID
viewfunction MCPID() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
strategyAddresses
viewfunction strategyAddresses() view returns (address alpDiamond, address smartChef, address apolloXP, address masterChef, address alpRewardHandler)
strategyMisc
viewfunction strategyMisc() view returns (uint256 MAX_LEVERAGE, uint256 MIN_LEVERAGE, uint256 DECIMAL, uint256 MAX_BPS)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
USDC
viewfunction USDC() view returns (address)
userInfo
viewfunction userInfo(address, uint256) view returns (address user, uint256 deposit, uint256 leverage, uint256 position, uint256 price, bool liquidated, uint256 closedPositionValue, address liquidator, uint256 closePNL, uint256 leverageAmount, uint256 positionId, bool closed)
vaultMaturityTime
viewfunction vaultMaturityTime() view returns (uint256)
water
viewfunction water() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(uint256 amount)
burnFrom
nonpayablefunction burnFrom(address account, uint256 amount)
closePosition
nonpayablefunction closePosition(uint256 _positionID, address _user)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
handleAndCompoundRewards
nonpayablefunction handleAndCompoundRewards() returns (uint256)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _water, address _usdc)
liquidatePosition
nonpayablefunction liquidatePosition(uint256 _positionId, address _user)
migrateLP
nonpayablefunction migrateLP(address _newSmartChef)
openPosition
nonpayablefunction openPosition(address _token, uint256 _amount, uint256 _leverage)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setAllowed
nonpayablefunction setAllowed(address _sender, bool _allowed)
setBurner
nonpayablefunction setBurner(address _burner, bool _allowed)
setCloser
nonpayablefunction setCloser(address _closer, bool _allowed)
setDTVLimit
nonpayablefunction setDTVLimit(uint256 _DTVLimit, uint256 _DTVSlippage)
setFeeConfiguration
nonpayablefunction setFeeConfiguration(address _feeReceiver, uint256 _withdrawalFee, address _waterFeeReceiver, uint256 _liquidatorsRewardPercentage, uint256 _fixedFeeSplit)
setKeeperAddress
nonpayablefunction setKeeperAddress(address _keeper)
setMFeeConfig
nonpayablefunction setMFeeConfig(uint256 _mFeePercent, address _mFeeReceiver)
setStrategyAddress
nonpayablefunction setStrategyAddress(address _diamond, address _smartChef, address _apolloXp, address _rewardHandler, address _masterChef, uint256 _pid)
setVaultMaturityTime
nonpayablefunction setVaultMaturityTime(uint256 _timeInSeconds)
setWhitelistedAsset
nonpayablefunction setWhitelistedAsset(address token, bool status)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CAKEHarvested
event CAKEHarvested(uint256 amount)
ClosePosition
event ClosePosition(address user, uint256 amountAfterFee, uint256 positionId, uint256 timestamp, uint256 position, uint256 leverageSize, uint256 time)
Initialized
event Initialized(uint8 version)
Liquidated
event Liquidated(address user, uint256 positionId, address liquidator, uint256 returnedAmount, uint256 liquidatorRewards, uint256 time)
MigrateLP
event MigrateLP(address indexed newLP, uint256 amount)
OpenPosition
event OpenPosition(address indexed user, uint256 leverageSize, uint256 amountDeposited, uint256 podAmountMinted, uint256 positionId, uint256 time)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RewardDistributed
event RewardDistributed(uint256 usdcRewards, uint256 toOwner, uint256 toWater, uint256 toAlpUsers)
SetAllowedClosers
event SetAllowedClosers(address indexed closer, bool allowed)
SetAllowedSenders
event SetAllowedSenders(address indexed sender, bool allowed)
SetBurner
event SetBurner(address indexed burner, bool allowed)
SetFeeConfiguration
event SetFeeConfiguration(address feeReceiver, uint256 withdrawalFee, address waterFeeReceiver, uint256 liquidatorsRewardPercentage, uint256 fixedFeeSplit)
SetStrategyAddresses
event SetStrategyAddresses(address diamond, address alpManager, address apolloXP)
SetWhitelistedAsset
event SetWhitelistedAsset(address token, bool status)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b614b7580620000f36000396000f3fe608060405234801561001057600080fd5b50600436106102bf5760003560e01c8063045ae6e4146102c457806306fdde03146102df578063095ea7b3146102f45780630d895ee1146103175780630df7b5ca1461032c578063100e196d1461033657806318160ddd146103a15780631c9fbd38146103a957806321ce919d146103bc57806322c3a7521461044357806323b872dd14610456578063313ce5671461046957806339509351146104785780633f4ba83a1461048b5780634209fff11461049357806342966c68146104b75780634697f05d146104ca578063485cc955146104dd5780634d2c7ca6146104f057806355c4347b146104f85780635c975abb146105265780635f036de1146105315780636bd193ea146105445780636be57aa91461055757806370a082311461056a578063715018a61461057d578063778cf1ec1461058557806379cc67901461058f5780637a0d54a2146105a25780637e856484146105b55780638456cb59146105d957806389a30271146105e15780638da5cb5b14610602578063944c979d1461060a57806395d89b411461063457806397a8b3351461063c57806398c47e8c14610644578063a2bdedf414610680578063a457c2d714610693578063a5dd4686146106a6578063a9059cbb146106b9578063ab1dc427146106cc578063aced1661146106f0578063b5e0ecac14610704578063bb67f74a14610717578063bef1babd1461073b578063c2ce87a71461074e578063c5654acc14610761578063c751600a14610774578063c990e30c1461078a578063d0e6a9171461079d578063dd62ed3e146107a7578063de87eb50146107ba578063e04ac7a9146107f1578063e2842d791461081b578063ed4fec7314610830578063f2fde38b1461083a578063f4abf0371461084d578063f7d5287c14610860578063fadbcf4814610873578063ffce221014610897575b600080fd5b6102cc6108ab565b6040519081526020015b60405180910390f35b6102e761091f565b6040516102d6919061435c565b6103076103023660046143a4565b6109b1565b60405190151581526020016102d6565b61032a6103253660046143de565b6109cb565b005b6102cc6101315481565b6101395461013a5461013b5461013c5461013d54610367946001600160a01b03908116948116938116928116911685565b604080516001600160a01b03968716815294861660208601529285169284019290925283166060830152909116608082015260a0016102d6565b60cb546102cc565b61032a6103b73660046143de565b610a69565b6103cf6103ca3660046143a4565b610af1565b604080516001600160a01b039d8e168152602081019c909c528b019990995260608a0197909752608089019590955292151560a088015260c087019190915290951660e0850152610100840194909452610120830193909352610140820192909252901515610160820152610180016102d6565b61032a610451366004614417565b610b81565b610307610464366004614439565b610bda565b604051601281526020016102d6565b6103076104863660046143a4565b610c7e565b61032a610ca0565b6103076104a136600461447a565b6101486020526000908152604090205460ff1681565b61032a6104c5366004614497565b610cb2565b61032a6104d83660046143de565b610d15565b61032a6104eb3660046144b0565b610d9d565b6102cc610f68565b61050b6105063660046144de565b610fb3565b604080519384526020840192909252908201526060016102d6565b60975460ff16610307565b61032a61053f3660046144de565b611103565b61032a6105523660046144de565b6116ea565b61032a610565366004614503565b61171b565b6102cc61057836600461447a565b6117ae565b61032a6117c9565b6102cc6101305481565b61032a61059d3660046143a4565b6117db565b61032a6105b03660046143de565b6117f0565b6103076105c336600461447a565b6101456020526000908152604090205460ff1681565b61032a61185c565b61012e546105f5906001600160a01b031681565b6040516102d69190614555565b6105f561186c565b6102cc61061836600461447a565b6001600160a01b03166000908152610149602052604090205490565b6102e761187b565b6102cc61188a565b61013e5461013f5461014054610141546101425461066f946001600160a01b03908116949316919085565b6040516102d6959493929190614569565b6105f561068e366004614497565b611c52565b6103076106a13660046143a4565b611c7d565b61032a6106b436600461447a565b611cf8565b6103076106c73660046143a4565b611d23565b6103076106da36600461447a565b6101446020526000908152604090205460ff1681565b61017e546105f5906001600160a01b031681565b61032a6107123660046144de565b611d85565b61030761072536600461447a565b6101476020526000908152604090205460ff1681565b61032a61074936600461447a565b6126fc565b6102cc61075c36600461447a565b6128a2565b61032a61076f36600461459d565b612a23565b61077c61318e565b6040516102d69291906145d2565b61077c6107983660046145e0565b613286565b6102cc61017c5481565b6102cc6107b53660046144b0565b613394565b6102cc6107c83660046143a4565b6001600160a01b0391909116600090815261017d60209081526040808320938352929052205490565b6101355461013654610137546101385461080b9392919084565b6040516102d69493929190614619565b6108236133bf565b6040516102d69190614634565b6102cc6101325481565b61032a61084836600461447a565b613421565b61032a61085b366004614497565b613497565b61032a61086e366004614681565b6134a5565b61030761088136600461447a565b6101466020526000908152604090205460ff1681565b61012d546105f5906001600160a01b031681565b6101395460408051633a993d7760e21b815290516000926001600160a01b03169163ea64f5dc9160048083019260209291908290030181865afa1580156108f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091a91906146fa565b905090565b606060cc805461092e90614713565b80601f016020809104026020016040519081016040528092919081815260200182805461095a90614713565b80156109a75780601f1061097c576101008083540402835291602001916109a7565b820191906000526020600020905b81548152906001019060200180831161098a57829003601f168201915b5050505050905090565b6000336109bf81858561355d565b60019150505b92915050565b6109d3613681565b816001600160a01b038116610a035760405162461bcd60e51b81526004016109fa9061474d565b60405180910390fd5b6001600160a01b0383166000818152610147602052604090819020805460ff1916851515179055517f0bdf09706f801a2715bf57b2317eb8608c34792ad040988dc6e5f0c3687a9bac90610a5c90851515815260200190565b60405180910390a2505050565b610a71613681565b816001600160a01b038116610a985760405162461bcd60e51b81526004016109fa9061474d565b6001600160a01b0383166000818152610145602052604090819020805460ff1916851515179055517f2626e1501ac007a99ed3bca0402984dce31d222879c878c4a5fb3952b6733a0290610a5c90851515815260200190565b6101496020528160005260406000208181548110610b0e57600080fd5b60009182526020909120600c9091020180546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b01546001600160a01b039a8b169d50989b5096999598949760ff94851697939692909516949093168c565b610b89613681565b6103e8811115610bcd5760405162461bcd60e51b815260206004820152600f60248201526e0536c697070616765203c203130303608c1b60448201526064016109fa565b6101309190915561013155565b6001600160a01b03831660009081526101466020526040812054339060ff1680610c1d57506001600160a01b0384166000908152610146602052604090205460ff165b80610c4157506001600160a01b0381166000908152610146602052604090205460ff165b610c5d5760405162461bcd60e51b81526004016109fa90614773565b610c688582856136e0565b610c73858585613754565b506001949350505050565b6000336109bf818585610c918383613394565b610c9b91906147be565b61355d565b610ca8613681565b610cb06138ed565b565b336000908152610147602052604090205460ff16610d085760405162461bcd60e51b81526020600482015260136024820152722737ba1030b63637bbb2b2103a3790313ab93760691b60448201526064016109fa565b610d123382613939565b50565b610d1d613681565b816001600160a01b038116610d445760405162461bcd60e51b81526004016109fa9061474d565b6001600160a01b0383166000818152610146602052604090819020805460ff1916851515179055517f517f822e464108de7eae872891e1892b76f69daefe64b715b0b844e02ae045ce90610a5c90851515815260200190565b600054610100900460ff1615808015610dbd5750600054600160ff909116105b80610dde5750610dcc30613a5b565b158015610dde575060005460ff166001145b610e415760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109fa565b6000805460ff191660011790558015610e64576000805461ff0019166101001790555b670de0b6b3a7640000610133819055612710610135556107d06101365561013755620186a06101385561012d80546001600160a01b038086166001600160a01b03199283161790925561012e805492851692909116919091179055610ec7613a6a565b610ecf613a99565b610ed7613ac8565b610f1d604051806040016040528060068152602001651053141413d160d21b815250604051806040016040528060068152602001651053141413d160d21b815250613af7565b8015610f63576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6101395460408051631697b4e360e11b815290516000926001600160a01b031691632d2f69c69160048083019260209291908290030181865afa1580156108f6573d6000803e3d6000fd5b6001600160a01b03811660009081526101496020526040812080548291829182919087908110610fe557610fe56147d1565b60009182526020918290206040805161018081018252600c90930290910180546001600160a01b0390811684526001820154948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460ff908116151560a0840152600682015460c0840152600782015490931660e083015260088101546101008301526009810154610120830152600a810154610140830152600b015490911615156101608201819052909150806110a757508060a001515b156110bd576000806000935093509350506110fc565b60006110ce87836060015188613286565b610120840151610137549296509092509085906110eb90836147e7565b6110f591906147fe565b9550925050505b9250925092565b61110b613b28565b6001600160a01b038116600090815261014960205260408120805484908110611136576111366147d1565b6000918252602090912061017e54600c9092020191506001600160a01b0316331461119c5760405162461bcd60e51b815260206004820152601660248201527513db9b1e481ad9595c195c881a5cc8185b1b1bddd95960521b60448201526064016109fa565b600581015460ff16156111ec5760405162461bcd60e51b815260206004820152601860248201527714d85ad94e88105b1c9958591e481b1a5c5d5a59185d195960421b60448201526064016109fa565b600b81015460ff16156112115760405162461bcd60e51b81526004016109fa90614820565b80546001600160a01b03166112795760405162461bcd60e51b815260206004820152602860248201527f53616b653a206c69717569646174696f6e207265717565737420646f6573206e6044820152671bdd08195e1a5cdd60c21b60648201526084016109fa565b60006112858484610fb3565b505090506103e8610130546101315461129e91906147e7565b6112a891906147fe565b81106112c65760405162461bcd60e51b81526004016109fa9061484a565b61013d546040516343fc802760e11b81526001600160a01b03909116906387f9004e906112f7908690600401614555565b600060405180830381600087803b15801561131157600080fd5b505af1158015611325573d6000803e3d6000fd5b50505050611337838360030154613b81565b61013954600383015461013b5461135c926001600160a01b0391821692911690613c42565b61012e546040516370a0823160e01b81526000916001600160a01b0316906370a082319061138e903090600401614555565b602060405180830381865afa1580156113ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cf91906146fa565b6101395461012e5460038601546040516348276b6f60e01b81529394506001600160a01b03928316936348276b6f9361141293169190600090309060040161486f565b600060405180830381600087803b15801561142c57600080fd5b505af1158015611440573d6000803e3d6000fd5b505061012e546040516370a0823160e01b8152600093506001600160a01b0390911691506370a0823190611478903090600401614555565b602060405180830381865afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b991906146fa565b905060006114c7838361489a565b6007860180546001600160a01b0319163317905560058601805460ff19166001179055610138546101415491925060009161150290846147e7565b61150c91906147fe565b9050600061151a828461489a565b61012d5461012e5491925061153c916001600160a01b03908116911683613c42565b61012d54600988015460405163015cb0a560e01b81526000926001600160a01b03169163015cb0a591611574919086906004016145d2565b6020604051808303816000875af1158015611593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b791906148ad565b9050806115fc5760405162461bcd60e51b815260206004820152601360248201527215d85d195c8e8814995c185e4819985a5b1959606a1b60448201526064016109fa565b61012e54611614906001600160a01b03163385613d17565b61013d54604051636e777dc760e01b81526001600160a01b0390911690636e777dc790611645908c90600401614555565b600060405180830381600087803b15801561165f57600080fd5b505af1158015611673573d6000803e3d6000fd5b5050604080516001600160a01b038d168152602081018e9052338183015260608101889052608081018790524260a082015290517fd6da7d9908c68b91a918abe9a7b86a0342a4d1c9511463900fa6d653994ec4cf93509081900360c0019150a150505050505050506116e66001606555565b5050565b6116f2613681565b6101349190915561012f80546001600160a01b0319166001600160a01b03909216919091179055565b611723613681565b61013e80546001600160a01b038088166001600160a01b03199283161790925561013f8690556101408054928616929091169190911790556101418290556101428190556040517fb7eedcc33c7222e394176152b870383073dfaa9840ff07c1636312e693c2a44c9061179f9087908790879087908790614569565b60405180910390a15050505050565b6001600160a01b0316600090815260c9602052604090205490565b6117d1613681565b610cb06000613d3d565b6117e68233836136e0565b6116e68282613939565b6117f8613681565b6001600160a01b03821660008181526101446020908152604091829020805460ff19168515159081179091558251938452908301527fe5e01afe130622753622a93a15c9caa258457df373d1693a211fd4dca93f3546910160405180910390a15050565b611864613681565b610cb0613d8f565b6033546001600160a01b031690565b606060cd805461092e90614713565b61013a54604051630cacd00160e11b815260009182916001600160a01b0390911690631959a002906118c0903090600401614555565b6040805180830381865afa1580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190091906148e0565b5111156119675761013a54604051632e1a7d4d60e01b8152600060048201526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561194e57600080fd5b505af1158015611962573d6000803e3d6000fd5b505050505b61013a546040805163f7c618c160e01b815290516000926001600160a01b03169163f7c618c19160048083019260209291908290030181865afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d6919061492e565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611a069190614555565b602060405180830381865afa158015611a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4791906146fa565b90508015611c495761013d54604051634f4cc19560e11b815260048101839052600091829182916001600160a01b031690639e99832a90602401606060405180830381865afa158015611a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac2919061494b565b61013d5460405163a9059cbb60e01b815293965091945092506001600160a01b038088169263a9059cbb92611afd9216908890600401614979565b6020604051808303816000875af1158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4091906148ad565b5061013d546040516291477560e01b8152600481018390526001600160a01b03909116906291477590602401600060405180830381600087803b158015611b8657600080fd5b505af1158015611b9a573d6000803e3d6000fd5b505061013d5460405163df6c39fb60e01b81526001600160a01b03909116925063df6c39fb9150611bd190869086906004016145d2565b600060405180830381600087803b158015611beb57600080fd5b505af1158015611bff573d6000803e3d6000fd5b505050507f184f36be0cba6de71e679def79965ac17f6b53f92aac9386933456ff3e3f359184848484604051611c389493929190614619565b60405180910390a195945050505050565b60009250505090565b6101438181548110611c6357600080fd5b6000918252602090912001546001600160a01b0316905081565b60003381611c8b8286613394565b905083811015611ceb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109fa565b610c73828686840361355d565b611d00613681565b61017e80546001600160a01b0319166001600160a01b0392909216919091179055565b336000818152610146602052604081205490919060ff1680611d5e57506001600160a01b0384166000908152610146602052604090205460ff165b611d7a5760405162461bcd60e51b81526004016109fa90614773565b6109bf818585613754565b6001600160a01b03811660009081526101496020526040902054829082908210611de45760405162461bcd60e51b815260206004820152601060248201526f105c1e15985d5b1d0e88085d985b1a5960821b60448201526064016109fa565b611dec613b28565b6001600160a01b038316600090815261014960205260408120805486908110611e1757611e176147d1565b60009182526020909120600c90910201600581015490915060ff1615611e7f5760405162461bcd60e51b815260206004820181905260248201527f4170785661756c743a20706f736974696f6e206973206c69717569646174656460448201526064016109fa565b600b81015460ff1615611ea45760405162461bcd60e51b81526004016109fa90614820565b6000816003015411611f045760405162461bcd60e51b815260206004820152602360248201527f4170785661756c743a20706f736974696f6e2021656e6f75676820746f20636c6044820152626f736560e81b60648201526084016109fa565b336000908152610145602052604090205460ff1680611f2c575080546001600160a01b031633145b611f845760405162461bcd60e51b8152602060048201526024808201527f4170785661756c743a2021616c6c6f77656420746f20636c6f736520706f73696044820152633a34b7b760e11b60648201526084016109fa565b336000908152610145602052604090205460ff161561200e5761017c546001600160a01b038516600090815261017d60209081526040808320898452909152902054611fd091906147be565b42101561200e5760405162461bcd60e51b815260206004820152600c60248201526b214d6174757265206461746560a01b60448201526064016109fa565b61013d546040516343fc802760e11b81526001600160a01b03909116906387f9004e9061203f908790600401614555565b600060405180830381600087803b15801561205957600080fd5b505af115801561206d573d6000803e3d6000fd5b505050506120c96040518061014001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b6120d38686610fb3565b505061010082015261013054610131546103e8916120f0916147e7565b6120fa91906147fe565b8161010001511061211d5760405162461bcd60e51b81526004016109fa9061484a565b81546003830154612137916001600160a01b031690613b81565b61013a546003830154604051632e1a7d4d60e01b81526001600160a01b0390921691632e1a7d4d9161216f9160040190815260200190565b600060405180830381600087803b15801561218957600080fd5b505af115801561219d573d6000803e3d6000fd5b505061012e546040516370a0823160e01b8152600093506001600160a01b0390911691506370a08231906121d5903090600401614555565b602060405180830381865afa1580156121f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221691906146fa565b61013954600385015461013b5492935061223d926001600160a01b03908116921690613c42565b6101395461012e5460038501546040516348276b6f60e01b81526001600160a01b03938416936348276b6f9361227d93911691600090309060040161486f565b600060405180830381600087803b15801561229757600080fd5b505af11580156122ab573d6000803e3d6000fd5b505061012e546040516370a0823160e01b8152600093506001600160a01b0390911691506370a08231906122e3903090600401614555565b602060405180830381865afa158015612300573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232491906146fa565b9050612330828261489a565b83526009840154600185015461234691906147be565b604084018190528351111561236c5760408301518351612366919061489a565b60208401525b6020830151156123985761238883602001518560020154613dcc565b60c086015260a085015260808401525b826080015184600901546123ac91906147be565b835110156123e3576007840180546001600160a01b0319163317905560058401805460ff1916600117905582516060840152612423565b60098401546060840181905260a08401516080850151855191929091612409919061489a565b612413919061489a565b61241d919061489a565b60e08401525b600384015461012d54606085015161012e5461244d926001600160a01b0391821692911690613c42565b61012d546009860154606086015160405163015cb0a560e01b81526001600160a01b039093169263015cb0a5926124889290916004016145d2565b6020604051808303816000875af11580156124a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cb91906148ad565b1515610120850152600b8501805460ff19166001179055600585015460ff16156124f95750505050506126ec565b6080840151156125285761014054608085015161012e54612528926001600160a01b0391821692911690613d17565b60a0840151156125575761012f5460a085015161012e54612557926001600160a01b0391821692911690613d17565b61013f54600090156125c1576101385461013f5460e08701516000929161257d916147e7565b61258791906147fe565b61013e5461012e549192506125a9916001600160a01b03908116911683613d17565b808660e001516125b9919061489a565b9150506125c8565b5060e08401515b61012e546125e0906001600160a01b03168a83613d17565b84516006870180546000906125f69084906147be565b925050819055508086600801600082825461261191906147be565b909155505061013d54604051636e777dc760e01b81526001600160a01b0390911690636e777dc790612647908c90600401614555565b600060405180830381600087803b15801561266157600080fd5b505af1158015612675573d6000803e3d6000fd5b505050506002860154604080516001600160a01b038c168152602081018490528082018d905242606082018190526080820186905260a082019390935260c0810192909252517f5d2848b946feb32e5681438aff238caf2127e8a6bcaad3d9061d58fb23d3de999181900360e00190a15050505050505b6126f66001606555565b50505050565b612704613681565b61013a54604051630cacd00160e11b81526000916001600160a01b031690631959a00290612736903090600401614555565b6040805180830381865afa158015612752573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277691906148e0565b5161013a54604051632e1a7d4d60e01b8152600481018390529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156127bf57600080fd5b505af11580156127d3573d6000803e3d6000fd5b505061013b546127f092506001600160a01b031690508383613c42565b60405163b6b55f2560e01b8152600481018290526001600160a01b0383169063b6b55f2590602401600060405180830381600087803b15801561283257600080fd5b505af1158015612846573d6000803e3d6000fd5b505061013a80546001600160a01b0319166001600160a01b0386169081179091556040518481529092507f84220f7e30523832093d4748523bba4892e1efac59e39c8a455158585d3fc728915060200160405180910390a25050565b60008060005b6001600160a01b03841660009081526101496020526040902054811015612a1c576001600160a01b0384166000908152610149602052604081208054839081106128f4576128f46147d1565b60009182526020918290206040805161018081018252600c90930290910180546001600160a01b0390811684526001820154948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460ff90811615801560a08501819052600684015460c0860152600784015490951660e085015260088301546101008501526009830154610120850152600a830154610140850152600b90920154161515610160830152909250906129b95750806101600151155b15612a09576001600160a01b0385166000908152610149602052604090208054839081106129e9576129e96147d1565b90600052602060002090600c02016003015483612a0691906147be565b92505b5080612a1481614992565b9150506128a8565b5092915050565b612a2b613e6e565b612a33613b28565b610136548110801590612a495750610135548111155b612a925760405162461bcd60e51b815260206004820152601a6024820152794170785661756c743a20496e76616c6964206c6576657261676560301b60448201526064016109fa565b60008211612ae15760405162461bcd60e51b815260206004820152601c60248201527b4170785661756c743a20616d6f756e74206d757374203e207a65726f60201b60448201526064016109fa565b6001600160a01b0383166000908152610144602052604090205460ff16612b435760405162461bcd60e51b8152602060048201526016602482015275105c1e15985d5b1d0e88085dda1a5d195b1a5cdd195960521b60448201526064016109fa565b61013d546040516343fc802760e11b81526001600160a01b03909116906387f9004e90612b74903390600401614555565b600060405180830381600087803b158015612b8e57600080fd5b505af1158015612ba2573d6000803e3d6000fd5b50612bbc925050506001600160a01b038416333085613eb4565b6000826103e8612bcc84836147e7565b612bd691906147fe565b612be0919061489a565b61012d546040516353552be760e11b8152600481018390529192506000916001600160a01b039091169063a6aa57ce906024016020604051808303816000875af1158015612c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5691906148ad565b905080612c9a5760405162461bcd60e51b815260206004820152601260248201527115d85d195c8e8813195b990819985a5b195960721b60448201526064016109fa565b6000612ca683866147be565b61013b546040516370a0823160e01b81529192506000916001600160a01b03909116906370a0823190612cdd903090600401614555565b602060405180830381865afa158015612cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1e91906146fa565b61013954909150612d3c906001600160a01b03898116911684613c42565b6101395460405163c375f76560e01b81526001600160a01b0389811660048301526024820185905260006044830181905260648301529091169063c375f76590608401600060405180830381600087803b158015612d9957600080fd5b505af1158015612dad573d6000803e3d6000fd5b505061013b546040516370a0823160e01b8152600093506001600160a01b0390911691506370a0823190612de5903090600401614555565b602060405180830381865afa158015612e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2691906146fa565b90506000612e34838361489a565b61013a5461013b54919250612e56916001600160a01b03908116911683613c42565b61013a5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015612e9d57600080fd5b505af1158015612eb1573d6000803e3d6000fd5b505033600081815261014960209081526040808320548151610180810183529485529184018e905283018c9052606083018690529350915060808101612ef56108ab565b8152600060208083018290526040808401839052606084018390526080840183905260a084018d905260c0840187905260e090930182905233825261014890529081205491925060ff90911615159003612fa85733600081815261014860205260408120805460ff19166001908117909155610143805491820181559091527f90f1fbe211cc96d1ddedecd2113dc32c31d712d12ce1f36d6a07e605dcf7d5320180546001600160a01b03191690911790555b33600081815261017d6020908152604080832086845282528083204290558383526101498252808320805460018082018355918552938390208651600c9095020180546001600160a01b03199081166001600160a01b039687161782559387015191810191909155908501516002820155606085015160038201556080850151600482015560a085015160058201805460ff1990811692151592909217905560c0860151600683015560e086015160078301805490941694169390931790915561010084015160088201556101208401516009820155610140840151600a820155610160840151600b90910180549092169015151790556130a99084613eec565b61013d54604051636e777dc760e01b81526001600160a01b0390911690636e777dc7906130da903390600401614555565b600060405180830381600087803b1580156130f457600080fd5b505af1158015613108573d6000803e3d6000fd5b505033600081815261014960205260409020549092507f0e5ed415258615cbdfc6e9c46c6f2c1139546dde8b1b87904f0fdd84a5469d8191508b908d9087906131539060019061489a565b60408051948552602085019390935291830152606082015242608082015260a00160405180910390a25050505050505050610f636001606555565b61013a54604051630cacd00160e11b8152600091829182916001600160a01b031690631959a002906131c4903090600401614555565b6040805180830381865afa1580156131e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320491906148e0565b805161013a54604051637a0787a960e11b815292935090916001600160a01b039091169063f40f0f529061323c903090600401614555565b602060405180830381865afa158015613259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327d91906146fa565b92509250509091565b6001600160a01b038116600090815261014960205260408120805482918291879081106132b5576132b56147d1565b60009182526020918290206040805161018081018252600c90930290910180546001600160a01b0390811684526001820154948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460ff908116151560a0840152600682015460c0840152600782015490931660e083015260088101546101008301526009810154610120830152600a810154610140830152600b015490911615156101608201529050613379856133746108ab565b613f9b565b613387868360800151613f9b565b9250925050935093915050565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60606101438054806020026020016040519081016040528092919081815260200182805480156109a757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133fa575050505050905090565b613429613681565b6001600160a01b03811661348e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fa565b610d1281613d3d565b61349f613681565b61017c55565b6134ad613681565b61013980546001600160a01b038881166001600160a01b0319928316811790935561013a8054898316908416811790915561013b8054898416908516811790915561013d805489851690861617905561013c80549388169390941692909217909255610132849055604080519384526020840192909252908201527f123b31c7ee8aece57b2fc7b78fad4a2880546f5c3a4e4326355bea64064736fd9060600160405180910390a1505050505050565b6001600160a01b0383166135bf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109fa565b6001600160a01b0382166136205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109fa565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b3361368a61186c565b6001600160a01b031614610cb05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109fa565b60006136ec8484613394565b905060001981146126f657818110156137475760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109fa565b6126f6848484840361355d565b6001600160a01b0383166137b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109fa565b6001600160a01b03821661381a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109fa565b6001600160a01b038316600090815260c96020526040902054818110156138925760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109fa565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020614b20833981519152906138e09086815260200190565b60405180910390a36126f6565b6138f5613fc2565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161392f9190614555565b60405180910390a1565b6001600160a01b0382166139995760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109fa565b6001600160a01b038216600090815260c9602052604090205481811015613a0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109fa565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020614b20833981519152910160405180910390a3505050565b6001600160a01b03163b151590565b600054610100900460ff16613a915760405162461bcd60e51b81526004016109fa906149ab565b610cb061400b565b600054610100900460ff16613ac05760405162461bcd60e51b81526004016109fa906149ab565b610cb061403b565b600054610100900460ff16613aef5760405162461bcd60e51b81526004016109fa906149ab565b610cb061406e565b600054610100900460ff16613b1e5760405162461bcd60e51b81526004016109fa906149ab565b6116e68282614095565b600260655403613b7a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109fa565b6002606555565b61013c546001600160a01b0316156117e6576000613b9e836117ae565b9050818110613bb157610f638383613939565b613bbb8382613939565b6000613bc7828461489a565b61013c54610132546040516362e69a4d60e11b815260048101919091526001600160a01b0387811660248301526044820184905292935091169063c5cd349a90606401600060405180830381600087803b158015613c2457600080fd5b505af1158015613c38573d6000803e3d6000fd5b5050505050505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015613c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cb691906146fa565b90506126f68463095ea7b360e01b85613ccf86866147be565b604051602401613ce0929190614979565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526140d5565b610f638363a9059cbb60e01b8484604051602401613ce0929190614979565b6001606555565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b613d97613e6e565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139223390565b600080600080606461013e60040154612710613de891906147e7565b61014254613df79088906147e7565b613e0191906147be565b613e0b91906147fe565b90506000612710613e1c83896147e7565b613e2691906147fe565b905060006127106101345489613e3c91906147e7565b613e4691906147fe565b90506000613e5482846147be565b613e5e908a61489a565b9299919850919650945050505050565b60975460ff1615610cb05760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109fa565b6040516001600160a01b03808516602483015283166044820152606481018290526126f69085906323b872dd60e01b90608401613ce0565b6001600160a01b038216613f425760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109fa565b8060cb6000828254613f5491906147be565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020614b20833981519152910160405180910390a35050565b600068056bc75e2d63100000613fb183856147e7565b613fbb91906147fe565b9392505050565b60975460ff16610cb05760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109fa565b600054610100900460ff166140325760405162461bcd60e51b81526004016109fa906149ab565b610cb033613d3d565b600054610100900460ff166140625760405162461bcd60e51b81526004016109fa906149ab565b6097805460ff19169055565b600054610100900460ff16613d365760405162461bcd60e51b81526004016109fa906149ab565b600054610100900460ff166140bc5760405162461bcd60e51b81526004016109fa906149ab565b60cc6140c88382614a44565b5060cd610f638282614a44565b600061412a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166141aa9092919063ffffffff16565b905080516000148061414b57508080602001905181019061414b91906148ad565b610f635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109fa565b60606141b984846000856141c1565b949350505050565b6060824710156142225760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016109fa565b600080866001600160a01b0316858760405161423e9190614b03565b60006040518083038185875af1925050503d806000811461427b576040519150601f19603f3d011682016040523d82523d6000602084013e614280565b606091505b50915091506142918783838761429c565b979650505050505050565b60608315614309578251600003614302576142b685613a5b565b6143025760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109fa565b50816141b9565b6141b9838381511561431e5781518083602001fd5b8060405162461bcd60e51b81526004016109fa919061435c565b60005b8381101561435357818101518382015260200161433b565b50506000910152565b602081526000825180602084015261437b816040850160208701614338565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610d1257600080fd5b600080604083850312156143b757600080fd5b82356143c28161438f565b946020939093013593505050565b8015158114610d1257600080fd5b600080604083850312156143f157600080fd5b82356143fc8161438f565b9150602083013561440c816143d0565b809150509250929050565b6000806040838503121561442a57600080fd5b50508035926020909101359150565b60008060006060848603121561444e57600080fd5b83356144598161438f565b925060208401356144698161438f565b929592945050506040919091013590565b60006020828403121561448c57600080fd5b8135613fbb8161438f565b6000602082840312156144a957600080fd5b5035919050565b600080604083850312156144c357600080fd5b82356144ce8161438f565b9150602083013561440c8161438f565b600080604083850312156144f157600080fd5b82359150602083013561440c8161438f565b600080600080600060a0868803121561451b57600080fd5b85356145268161438f565b945060208601359350604086013561453d8161438f565b94979396509394606081013594506080013592915050565b6001600160a01b0391909116815260200190565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252608081019190915260a00190565b6000806000606084860312156145b257600080fd5b83356145bd8161438f565b95602085013595506040909401359392505050565b918252602082015260400190565b6000806000606084860312156145f557600080fd5b8335925060208401359150604084013561460e8161438f565b809150509250925092565b93845260208401929092526040830152606082015260800190565b6020808252825182820181905260009190848201906040850190845b818110156146755783516001600160a01b031683529284019291840191600101614650565b50909695505050505050565b60008060008060008060c0878903121561469a57600080fd5b86356146a58161438f565b955060208701356146b58161438f565b945060408701356146c58161438f565b935060608701356146d58161438f565b925060808701356146e58161438f565b8092505060a087013590509295509295509295565b60006020828403121561470c57600080fd5b5051919050565b600181811c9082168061472757607f821691505b60208210810361474757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b6020808252601b908201527a115490cc8c0e881d1c985b9cd9995c881b9bdd08185b1b1bddd959602a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c5576109c56147a8565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176109c5576109c56147a8565b60008261481b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526010908201526f105c1e15985d5b1d0e8818db1bdcd95960821b604082015260600190565b6020808252600b908201526a3634b8bab4b230ba34b7b760a91b604082015260600190565b6001600160a01b03948516815260208101939093526040830191909152909116606082015260800190565b818103818111156109c5576109c56147a8565b6000602082840312156148bf57600080fd5b8151613fbb816143d0565b634e487b7160e01b600052604160045260246000fd5b6000604082840312156148f257600080fd5b604080519081016001600160401b0381118282101715614914576149146148ca565b604052825181526020928301519281019290925250919050565b60006020828403121561494057600080fd5b8151613fbb8161438f565b60008060006060848603121561496057600080fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03929092168252602082015260400190565b6000600182016149a4576149a46147a8565b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115610f6357600081815260208120601f850160051c81016020861015614a1d5750805b601f850160051c820191505b81811015614a3c57828155600101614a29565b505050505050565b81516001600160401b03811115614a5d57614a5d6148ca565b614a7181614a6b8454614713565b846149f6565b602080601f831160018114614aa65760008415614a8e5750858301515b600019600386901b1c1916600185901b178555614a3c565b600085815260208120601f198616915b82811015614ad557888601518255948401946001909101908401614ab6565b5085821015614af35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614b15818460208701614338565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a562abd93221e4cb9ffdc54192739822d67f01bf82ac0f3efacd71b44f235ef364736f6c63430008140033