0 txs
571 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
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)
closePositionAmount
viewfunction closePositionAmount(address, uint256) view returns (uint256)
closePositionRequest
viewfunction closePositionRequest(address, uint256) view returns (bool)
contractParameters
viewfunction contractParameters() view returns (uint256 MCPID, uint256 MAX_BPS, uint256 MAX_LEVERAGE, uint256 MIN_LEVERAGE, uint256 DENOMINATOR, uint256 DECIMAL, uint256 liquidationThreshold)
decimals
viewfunction decimals() view returns (uint8)
feeConfiguration
viewfunction feeConfiguration() view returns (address feeReceiver, uint256 withdrawalFee, address waterFeeReceiver, uint256 liquidatorsRewardPercentage, uint256 fixedFeeSplit, uint256 mFeePercent, address mFeeReceiver)
getAggregatePosition
viewfunction getAggregatePosition(address _user) view returns (uint256)
getAllUsers
viewfunction getAllUsers() view returns (address[])
getCurrentPosition
viewfunction getCurrentPosition(uint256 _positionID, uint256 _shares, address _user) view returns (uint256 currentPosition, uint256 previousValueInUSDC)
getKlpPrice
viewfunction getKlpPrice(bool _maximise) view returns (uint256)
getTotalNumbersOfOpenPositionBy
viewfunction getTotalNumbersOfOpenPositionBy(address _user) view returns (uint256)
getUpdatedDebt
viewfunction getUpdatedDebt(uint256 _positionID, address _user) view returns (uint256 currentDTV, uint256 currentPosition, uint256 currentDebt)
keeper
viewfunction keeper() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
strategyAddresses
viewfunction strategyAddresses() view returns (address USDC, address water, address rewardRouter, address klp, address stakedKlpTracker, address feeKlpTracker, address klpManager, address klpRewardHandler, address Vault, address rewardVault, address MasterChef, address VesterContract, address WETH)
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)
userTimelock
viewfunction userTimelock(address) view returns (uint256)
vaultMaturityTime
viewfunction vaultMaturityTime() view returns (uint256)
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 _usdc, address _water, address _rewardRouter, address _vault, address _rewardsVault)
liquidatePosition
nonpayablefunction liquidatePosition(uint256 _positionId, address _user)
openPosition
nonpayablefunction openPosition(uint256 _amount, uint256 _leverage, address _inputAsset)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setAllowed
nonpayablefunction setAllowed(address _sender, bool _allowed)
setAssetWhitelist
nonpayablefunction setAssetWhitelist(address _asset, bool _status)
setBurner
nonpayablefunction setBurner(address _burner, bool _allowed)
setCloser
nonpayablefunction setCloser(address _closer, bool _allowed)
setLiquidationThreshold
nonpayablefunction setLiquidationThreshold(uint256 _threshold)
setMaxAndMinLeverage
nonpayablefunction setMaxAndMinLeverage(uint256 _maxLeverage, uint256 _minLeverage)
setProtocolFee
nonpayablefunction setProtocolFee(address _feeReceiver, uint256 _withdrawalFee, address _waterFeeReceiver, uint256 _liquidatorsRewardPercentage, uint256 _fixedFeeSplit, uint256 _mFeePercent, address _mFeeReceiver)
setStrategyAddresses
nonpayablefunction setStrategyAddresses(address _masterChef, uint256 _mcPid, address _keeper)
setStrategyContracts
nonpayablefunction setStrategyContracts(address _rewardRouter, address _vault, address _rewardVault, address _klpRewardHandler, address _water)
setUSDCAddress
nonpayablefunction setUSDCAddress(address _usdc)
setVaultMaturityTime
nonpayablefunction setVaultMaturityTime(uint256 _timeInSeconds)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferEsKTC
nonpayablefunction transferEsKTC(address _destination)
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)
Deposit
event Deposit(address indexed depositer, uint256 depositTokenAmount, uint256 positionID, uint256 leverageMultiplier, uint256 createdAt, uint256 klpAmount, uint256 klpPrice)
ETHHarvested
event ETHHarvested(uint256 amount)
Harvested
event Harvested(bool gmx, bool esgmx, bool klp, bool vesting)
Initialized
event Initialized(uint8 version)
Liquidated
event Liquidated(address indexed user, uint256 indexed positionId, address liquidator, uint256 amount, uint256 reward)
OpenRequest
event OpenRequest(address indexed user, uint256 amountAfterFee)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
ProtocolFeeChanged
event ProtocolFeeChanged(address newFeeReceiver, uint256 newWithdrawalFee, address newWaterFeeReceiver, uint256 liquidatorsRewardPercentage, uint256 fixedFeeSplit, uint256 mFeePercent, address mFeeReceiver)
RequestFulfilled
event RequestFulfilled(address indexed user, uint256 openAmount, uint256 closedAmount)
RewardRouterContractChanged
event RewardRouterContractChanged(address newVault, address klpRewardHandler)
SetAllowedClosers
event SetAllowedClosers(address indexed closer, bool allowed)
SetAllowedSenders
event SetAllowedSenders(address indexed sender, bool allowed)
SetAssetWhitelist
event SetAssetWhitelist(address indexed asset, bool isWhitelisted)
SetBurner
event SetBurner(address indexed burner, bool allowed)
SetManagementFee
event SetManagementFee(uint256 indexed mFeePercent, address indexed mFeeReceiver)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
UpdateMaxAndMinLeverage
event UpdateMaxAndMinLeverage(uint256 maxLeverage, uint256 minLeverage)
UpdateMCAndPID
event UpdateMCAndPID(address indexed newMC, uint256 mcpPid)
Withdraw
event Withdraw(address indexed user, uint256 amount, uint256 positionId, uint256 leverageMultiplier, uint256 time, uint256 klpAmount, uint256 profits, uint256 klpprice)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61562d80620000f36000396000f3fe608060405234801561001057600080fd5b506004361061035d5760003560e01c806379cc6790116101d3578063b5e0ecac11610104578063dd62ed3e116100a2578063f4abf0371161007c578063f4abf03714610943578063f844b84414610956578063fadbcf48146109b4578063fd40b7e6146109d857600080fd5b8063dd62ed3e14610908578063e2842d791461091b578063f2fde38b1461093057600080fd5b8063c59d4793116100de578063c59d4793146108b0578063c990e30c146108c3578063d0b0c816146108eb578063d0e6a917146108fe57600080fd5b8063b5e0ecac14610866578063bb67f74a14610879578063c2ce87a71461089d57600080fd5b806397a8b33511610171578063a457c2d71161014b578063a457c2d714610819578063a9059cbb1461082c578063aaf5bfc31461083f578063aced16611461085257600080fd5b806397a8b335146107b457806398c47e8c146107bc578063a2bdedf41461080657600080fd5b806389a30271116101ad57806389a30271146107455780638da5cb5b14610771578063944c979d1461078257806395d89b41146107ac57600080fd5b806379cc6790146107175780638456cb591461072a5780638680c92a1461073257600080fd5b806339509351116102ad578063525c78be1161024b5780635c975abb116102255780635c975abb146106c85780635f036de1146106d357806370a08231146106e6578063715018a61461070f57600080fd5b8063525c78be14610674578063537cb8201461068757806355c4347b1461069a57600080fd5b80633f4ba83a116102875780633f4ba83a1461063357806342966c681461063b5780634697f05d1461064e578063503444dd1461066157600080fd5b806339509351146105e15780633b30fbf1146105f45780633d3b4ebc1461060757600080fd5b806318160ddd1161031a57806321ce919d116102f457806321ce919d1461051757806323b872dd1461059e578063302b486a146105b1578063313ce567146105d257600080fd5b806318160ddd146104c35780631919bafc146104d55780631c9fbd381461050457600080fd5b8063057963631461036257806306fdde0314610377578063095ea7b3146103955780630d895ee1146103b8578063100e196d146103cb5780631459457a146104b0575b600080fd5b610375610370366004614f09565b6109eb565b005b61037f610a53565b60405161038c9190614f92565b60405180910390f35b6103a86103a3366004614fa5565b610ae5565b604051901515815260200161038c565b6103756103c6366004614f09565b610aff565b61013454610135546101365461013754610138546101395461013a5461013b5461013c5461013d5461013e5461013f54610140546104349c6001600160a01b039081169c81169b81169a811699811698811697811696811695811694811693811692811691168d565b604080516001600160a01b039e8f1681529c8e1660208e01529a8d169a8c019a909a52978b1660608b0152958a1660808a015293891660a089015291881660c0880152871660e087015286166101008601528516610120850152841661014084015283166101608301529091166101808201526101a00161038c565b6103756104be366004614fd1565b610b99565b60cb545b60405190815260200161038c565b6103a86104e3366004614fa5565b61014f60209081526000928352604080842090915290825290205460ff1681565b610375610512366004614f09565b61106a565b61052a610525366004614fa5565b6110f2565b604080516001600160a01b039d8e168152602081019c909c528b019990995260608a0197909752608089019590955292151560a088015260c087019190915290951660e08501526101008401949094526101208301939093526101408201929092529015156101608201526101800161038c565b6103a86105ac366004615042565b611182565b6104c76105bf366004615083565b61014c6020526000908152604090205481565b6040516012815260200161038c565b6103a86105ef366004614fa5565b611258565b6103756106023660046150a0565b61127a565b6104c7610615366004614fa5565b61015060209081526000928352604080842090915290825290205481565b6103756112b7565b6103756106493660046150e2565b6112c9565b61037561065c366004614f09565b61132c565b6104c761066f3660046150fb565b6113b4565b610375610682366004615083565b611454565b610375610695366004614fd1565b6114ff565b6106ad6106a8366004615118565b61189a565b6040805193845260208401929092529082015260600161038c565b60975460ff166103a8565b6103756106e1366004615118565b611a21565b6104c76106f4366004615083565b6001600160a01b0316600090815260c9602052604090205490565b610375612048565b610375610725366004614fa5565b61205a565b61037561206f565b61037561074036600461513d565b61207f565b61018754610759906001600160a01b031681565b6040516001600160a01b03909116815260200161038c565b6033546001600160a01b0316610759565b6104c7610790366004615083565b6001600160a01b03166000908152610148602052604090205490565b61037f61210c565b6104c761211b565b61012d5461012e5461012f54610130546101315461013254610133546107f3966001600160a01b0390811696958116949392911687565b60405161038c979695949392919061515f565b6107596108143660046150e2565b61267b565b6103a8610827366004614fa5565b6126a6565b6103a861083a366004614fa5565b61272c565b61037561084d366004615083565b6127be565b61015254610759906001600160a01b031681565b610375610874366004615118565b6127e9565b6103a8610887366004615083565b61014a6020526000908152604090205460ff1681565b6104c76108ab366004615083565b6130dc565b6103756108be36600461519c565b61325d565b6108d66108d136600461519c565b61388e565b6040805192835260208301919091520161038c565b6103756108f93660046150e2565b6139ce565b6104c76101855481565b6104c76109163660046151ca565b6139dc565b610923613a07565b60405161038c91906151f8565b61037561093e366004615083565b613a69565b6103756109513660046150e2565b613adf565b6101415461014254610143546101445461014554610146546101475461097f9695949392919087565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161038c565b6103a86109c2366004615083565b6101496020526000908152604090205460ff1681565b6103756109e6366004615245565b613aed565b6109f3613c26565b6001600160a01b038216600081815261014e6020908152604091829020805460ff191685151590811790915591519182527f2b463d61ebd15caae2de0d061d3348ecb853b4efb6a399093448ec863eb315ef910160405180910390a25050565b606060cc8054610a62906152b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8e906152b7565b8015610adb5780601f10610ab057610100808354040283529160200191610adb565b820191906000526020600020905b815481529060010190602001808311610abe57829003601f168201915b5050505050905090565b600033610af3818585613c80565b60019150505b92915050565b610b07613c26565b816001600160a01b038116610b375760405162461bcd60e51b8152600401610b2e906152f1565b60405180910390fd5b6001600160a01b038316600081815261014a6020908152604091829020805460ff191686151590811790915591519182527f0bdf09706f801a2715bf57b2317eb8608c34792ad040988dc6e5f0c3687a9bac91015b60405180910390a2505050565b600054610100900460ff1615808015610bb95750600054600160ff909116105b80610bd35750303b158015610bd3575060005460ff166001145b610c365760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b2e565b6000805460ff191660011790558015610c59576000805461ff0019166101001790555b6001600160a01b03861615801590610c7957506001600160a01b03851615155b8015610c8d57506001600160a01b03841615155b8015610ca157506001600160a01b03831615155b610cbd5760405162461bcd60e51b8152600401610b2e906152f1565b61013480546001600160a01b038089166001600160a01b03199283161790925561013580548884169083161790556101368054878416908316811790915561013c805487851690841617905561013d805493861693909216929092179055604080516351dcbca760e01b815290516351dcbca7916004808201926020929091908290030181865afa158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a9190615317565b61013780546001600160a01b0319166001600160a01b039283161790556040805163a42c592360e01b815290519186169163a42c5923916004808201926020929091908290030181865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa9190615317565b61013880546001600160a01b0319166001600160a01b0392831617905560408051636ca75e7960e01b8152905191861691636ca75e79916004808201926020929091908290030181865afa158015610e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7a9190615317565b61013980546001600160a01b0319166001600160a01b039283161790556040805163ca150e3760e01b815290519186169163ca150e37916004808201926020929091908290030181865afa158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa9190615317565b61013a80546001600160a01b0319166001600160a01b0392831617905560408051633fc8cef360e01b8152905191861691633fc8cef3916004808201926020929091908290030181865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190615317565b61014080546001600160a01b0319166001600160a01b03929092169190911790556103e861014555670de0b6b3a764000061014655620186a061014255612710610143556107d061014455610fcd613da4565b610fd5613dd3565b61101c6040518060400160405280600781526020016612d510cb5413d160ca1b8152506040518060400160405280600681526020016512d510d413d160d21b815250613e02565b8015611062576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b611072613c26565b816001600160a01b0381166110995760405162461bcd60e51b8152600401610b2e906152f1565b6001600160a01b038316600081815261014d6020908152604091829020805460ff191686151590811790915591519182527f2626e1501ac007a99ed3bca0402984dce31d222879c878c4a5fb3952b6733a029101610b8c565b610148602052816000526040600020818154811061110f57600080fd5b60009182526020909120600c9091020180546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b01546001600160a01b039a8b169d50989b5096999598949760ff94851697939692909516949093168c565b6001600160a01b03831660009081526101496020526040812054339060ff16806111c557506001600160a01b0384166000908152610149602052604090205460ff165b806111e957506001600160a01b0381166000908152610149602052604090205460ff165b6112355760405162461bcd60e51b815260206004820152601b60248201527f45524332303a207472616e73666572206e6f7420616c6c6f77656400000000006044820152606401610b2e565b611240858285613e33565b61124b858585613ea7565b60019150505b9392505050565b600033610af381858561126b83836139dc565b611275919061534a565b613c80565b611282613c26565b61013e80546001600160a01b039485166001600160a01b03199182161790915561015280549290941691161790915561014155565b6112bf613c26565b6112c7614052565b565b33600090815261014a602052604090205460ff1661131f5760405162461bcd60e51b81526020600482015260136024820152722737ba1030b63637bbb2b2103a3790313ab93760691b6044820152606401610b2e565b61132933826140a4565b50565b611334613c26565b816001600160a01b03811661135b5760405162461bcd60e51b8152600401610b2e906152f1565b6001600160a01b03831660008181526101496020908152604091829020805460ff191686151590811790915591519182527f517f822e464108de7eae872891e1892b76f69daefe64b715b0b844e02ae045ce9101610b8c565b61013a5460405163e245b5af60e01b8152821515600482015260009182916001600160a01b039091169063e245b5af90602401602060405180830381865afa158015611404573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611428919061535d565b90506c0c9f2c9cd04674edea4000000061144a82670de0b6b3a7640000615376565b61125191906153a3565b610152546001600160a01b0316331461149c5760405162461bcd60e51b815260206004820152600a6024820152692737ba1035b2b2b832b960b11b6044820152606401610b2e565b61013d5460405163ef9aacfd60e01b81526001600160a01b0383811660048301529091169063ef9aacfd90602401600060405180830381600087803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b5050505050565b611507613c26565b846001600160a01b03811661152e5760405162461bcd60e51b8152600401610b2e906152f1565b846001600160a01b0381166115555760405162461bcd60e51b8152600401610b2e906152f1565b846001600160a01b03811661157c5760405162461bcd60e51b8152600401610b2e906152f1565b61013680546001600160a01b03808b166001600160a01b0319928316811790935561013c80548b831690841617905561013d8054918a1691909216179055604080516351dcbca760e01b815290516351dcbca7916004808201926020929091908290030181865afa1580156115f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116199190615317565b61013780546001600160a01b0319166001600160a01b039283161790556040805163a42c592360e01b81529051918a169163a42c5923916004808201926020929091908290030181865afa158015611675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116999190615317565b61013880546001600160a01b0319166001600160a01b0392831617905560408051636ca75e7960e01b81529051918a1691636ca75e79916004808201926020929091908290030181865afa1580156116f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117199190615317565b61013980546001600160a01b0319166001600160a01b039283161790556040805163ca150e3760e01b81529051918a169163ca150e37916004808201926020929091908290030181865afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190615317565b61013a80546001600160a01b03199081166001600160a01b039384161790915561013b80548216888416179055610135805490911686831617905560408051630141db2760e21b81529051918a16916305076c9c916004808201926020929091908290030181865afa158015611813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118379190615317565b61013f80546001600160a01b0319166001600160a01b03928316179055604080518a8316815291871660208301527ff454f53672bc51d585f6d8e804ac622238c1c081803b126c4b18d42ec98a0257910160405180910390a15050505050505050565b6001600160a01b038116600090815261014860205260408120805482918291829190879081106118cc576118cc6153c5565b60009182526020918290206040805161018081018252600c90930290910180546001600160a01b0390811684526001820154948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460ff908116151560a0840152600682015460c0840152600782015490931660e083015260088101546101008301526009810154610120830152600a810154610140830152600b0154909116151561016082018190529091508061198e57508060a001515b156119a457600080600093509350935050611a1a565b60006119b58783606001518861388e565b610120840151919550915060008080848811156119fd576119d685896153db565b92506119e68387604001516141d8565b509092506119f69050828561534a565b9050611a00565b50825b61014654611a109082908a614292565b9850955050505050505b9250925092565b611a2961437c565b610152546001600160a01b03163314611a715760405162461bcd60e51b815260206004820152600a6024820152692737ba1035b2b2b832b960b11b6044820152606401610b2e565b6001600160a01b038116600090815261014860205260408120805484908110611a9c57611a9c6153c5565b60009182526020909120600c90910201600581015490915060ff1615611b045760405162461bcd60e51b815260206004820152601760248201527f4b4c503a20416c7265616479206c6971756964617465640000000000000000006044820152606401610b2e565b80546001600160a01b0316611b6b5760405162461bcd60e51b815260206004820152602760248201527f4b4c503a206c69717569646174696f6e207265717565737420646f6573206e6f6044820152661d08195e1a5cdd60ca1b6064820152608401610b2e565b6000611b77848461189a565b50509050670d2f13f7789f0000811015611be15760405162461bcd60e51b815260206004820152602560248201527f4c69717569646174696f6e205468726573686f6c6420486173204e6f742052656044820152641858da195960da1b6064820152608401610b2e565b61013b54604051633709eb3b60e11b81526001600160a01b03858116600483015290911690636e13d67690602401600060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b505050506003820154611c5084826143d5565b6000611c5f846003015461452a565b61013b5461018754919250611c81916001600160a01b039081169116836145d9565b61013b54610187546101345460405163152cf14360e31b81526001600160a01b03928316600482015290821660248201523060448201526064810184905291169063a9678a18906084016020604051808303816000875af1158015611cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0e919061535d565b905060008111611d4e5760405162461bcd60e51b815260206004820152600b60248201526a043616e6e6f7420737761760ac1b6044820152606401610b2e565b6007840180546001600160a01b0319163317905560058401805460ff191660011790556009840154600090821115611e9e576000856009015483611d9291906153db565b6101305461014254919250611da991839190614292565b91506000611db783836153db565b61013554600989015461013454929350611dde926001600160a01b0390811692169061463c565b61013554600988015460405163015cb0a560e01b81526001600160a01b039092169163015cb0a591611e1d918190600401918252602082015260400190565b6020604051808303816000875af1158015611e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6091906153ee565b5061013454611e79906001600160a01b031633856145d9565b8015611e975761013454611e97906001600160a01b031689836145d9565b5050611f41565b6101355461013454611ebd916001600160a01b0391821691168461463c565b61013554600986015460405163015cb0a560e01b81526001600160a01b039092169163015cb0a591611efc918690600401918252602082015260400190565b6020604051808303816000875af1158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3f91906153ee565b505b600b8501805460ff19166001179055600685018054839190600090611f6790849061534a565b9250508190555081856008016000828254611f82919061534a565b909155505061013b54604051630b61765760e01b81526001600160a01b03888116600483015290911690630b61765790602401600060405180830381600087803b158015611fcf57600080fd5b505af1158015611fe3573d6000803e3d6000fd5b505060408051338152602081018690529081018490528992506001600160a01b03891691507fe086979fec7c5bf71045df524eb3ac4a59b9ed8aec05d1969c844aee1db6fc629060600160405180910390a350505050506120446001606555565b5050565b612050613c26565b6112c760006146e9565b612065823383613e33565b61204482826140a4565b612077613c26565b6112c761473b565b612087613c26565b808210156120c35760405162461bcd60e51b815260206004820152600960248201526826b0bc101e1026b4b760b91b6044820152606401610b2e565b61014382905561014481905560408051838152602081018390527f40254bd61c8f9c81b9b18020a0fda4a16c4ac76dfaedbdd61b6a2fc7a59c029f910160405180910390a15050565b606060cd8054610a62906152b7565b610140546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d919061535d565b61013d5460405163185b800160e11b81526001600482018190526024820181905260448201819052606482018190526084820181905260a4820152600060c48201529192506001600160a01b0316906330b700029060e401600060405180830381600087803b1580156121ff57600080fd5b505af1158015612213573d6000803e3d6000fd5b5050610140546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015612263573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612287919061535d565b9050600061229583836153db565b9050600061013460090160009054906101000a90046001600160a01b03166001600160a01b03166360ccfbda6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123149190615317565b905081156126705761013b546040516387f9f17760e01b815260048101849052600091829182916001600160a01b0316906387f9f17790602401606060405180830381865afa15801561236b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238f919061540b565b6101405461013b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018b9052949750929550909350169063a9059cbb906044016020604051808303816000875af11580156123ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241291906153ee565b5061013b5460405163137c3a2760e01b8152600481018390526001600160a01b039091169063137c3a2790602401600060405180830381600087803b15801561245a57600080fd5b505af115801561246e573d6000803e3d6000fd5b505061013b5460405163df6c39fb60e01b815260048101879052602481018690526001600160a01b03909116925063df6c39fb9150604401600060405180830381600087803b1580156124c057600080fd5b505af11580156124d4573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092506001600160a01b03871691506370a0823190602401602060405180830381865afa15801561251f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612543919061535d565b11156126325761012d546040516370a0823160e01b81523060048201526001600160a01b038681169263a9059cbb9291169083906370a0823190602401602060405180830381865afa15801561259d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c1919061535d565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561260c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263091906153ee565b505b6040518181527fcb0a98a1fddaf187f9671504ca717c088559206516f0a7cefc1b3f1b667d49f39060200160405180910390a1979650505050505050565b600094505050505090565b610151818154811061268c57600080fd5b6000918252602090912001546001600160a01b0316905081565b600033816126b482866139dc565b9050838110156127145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b2e565b6127218286868403613c80565b506001949350505050565b336000818152610149602052604081205490919060ff168061276757506001600160a01b0384166000908152610149602052604090205460ff165b6127b35760405162461bcd60e51b815260206004820152601b60248201527f45524332303a207472616e73666572206e6f7420616c6c6f77656400000000006044820152606401610b2e565b610af3818585613ea7565b6127c6613c26565b61018780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815261014860205260409020548290829082106128555760405162461bcd60e51b815260206004820152601c60248201527f4b4c503a20706f736974696f6e4944206973206e6f742076616c6964000000006044820152606401610b2e565b61285d61437c565b6001600160a01b038316600090815261014860205260408120805486908110612888576128886153c5565b60009182526020909120600c90910201600581015490915060ff16156128f05760405162461bcd60e51b815260206004820152601b60248201527f4b4c503a20706f736974696f6e206973206c69717569646174656400000000006044820152606401610b2e565b600b81015460ff16156129335760405162461bcd60e51b815260206004820152600b60248201526a12d3140e8818db1bdcd95960aa1b6044820152606401610b2e565b6003810154806129915760405162461bcd60e51b8152602060048201526024808201527f4b4c503a20706f736974696f6e206973206e6f7420656e6f75676820746f20636044820152636c6f736560e01b6064820152608401610b2e565b33600090815261014d602052604090205460ff16806129b9575081546001600160a01b031633145b612a105760405162461bcd60e51b815260206004820152602260248201527f4b4c503a206e6f7420616c6c6f77656420746f20636c6f736520706f7369746960448201526137b760f11b6064820152608401610b2e565b33600090815261014d602052604090205460ff1615612a9a57610185546001600160a01b0386166000908152610186602090815260408083208a8452909152902054612a5c919061534a565b421015612a9a5760405162461bcd60e51b815260206004820152600c60248201526b214d6174757265206461746560a01b6044820152606401610b2e565b61013b54604051633709eb3b60e11b81526001600160a01b03878116600483015290911690636e13d67690602401600060405180830381600087803b158015612ae257600080fd5b505af1158015612af6573d6000803e3d6000fd5b505050506000612b06878761189a565b505061014754909150612b1b90600a906153a3565b8110612b605760405162461bcd60e51b81526020600482015260146024820152732bb0b4ba103337b9103634b8bab4b230ba34b7b760611b6044820152606401610b2e565b612bb3604051806101200160405280600081526020016000815260200160001515815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b60038401548152612bc487846143d5565b6000612bcf8461452a565b905060008111612c105760405162461bcd60e51b815260206004820152600c60248201526b4f7574206f662072616e676560a01b6044820152606401610b2e565b612c426040518060400160405280601081526020016f02932ba3ab93732b2103b30b63ab29d160851b81525082614778565b61013b5461018754612c61916001600160a01b039182169116836145d9565b61013b54610187546101345460405163152cf14360e31b81526001600160a01b03928316600482015290821660248201523060448201526064810184905291169063a9678a18906084016020604051808303816000875af1158015612cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cee919061535d565b905060008111612d2e5760405162461bcd60e51b815260206004820152600b60248201526a043616e6e6f7420737761760ac1b6044820152606401610b2e565b600085600901548660010154612d44919061534a565b905080821115612d7e57612d5881836153db565b602084018190526002870154612d6e91906141d8565b608086015260e085015260c08401525b8260c001518660090154612d92919061534a565b821015612dc9576007860180546001600160a01b0319163317905560058601805460ff191660011790556101008301829052612e29565b6009860154610100840181905260c084015160e08501519091612dec90856153db565b612df691906153db565b612e0091906153db565b60a084015260e083015160c0840151612e1991906147bd565b600b8601805460ff191660011790555b6101355461010084015161013454612e4f926001600160a01b039182169291169061463c565b61013554600987015461010085015160405163015cb0a560e01b8152600481019290925260248201526001600160a01b039091169063015cb0a5906044016020604051808303816000875af1158015612eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed091906153ee565b151560608401819052612f1b5760405162461bcd60e51b815260206004820152601360248201527215d85d195c8e8814995c185e4819985a5b1959606a1b6044820152606401610b2e565b600586015460ff1615612f33575050505050506130cc565b61012e5460009015612f925761012e546101425460a0860151600092612f5892614292565b61012d5461013454919250612f7a916001600160a01b039081169116836145d9565b808560a00151612f8a91906153db565b915050612f99565b5060a08301515b61013454612fb1906001600160a01b03168b836145d9565b82876006016000828254612fc5919061534a565b9250508190555080876008016000828254612fe0919061534a565b909155505061013b54604051630b61765760e01b81526001600160a01b038c8116600483015290911690630b61765790602401600060405180830381600087803b15801561302d57600080fd5b505af1158015613041573d6000803e3d6000fd5b50505050896001600160a01b03167f25dd09722d1e76ffb961a71292eafb472dcb7453dd24aafe730779e6d6cf7190828d8a600201544289600001518a6080015161308c60016113b4565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00160405180910390a2505050505050505b6130d66001606555565b50505050565b60008060005b6001600160a01b03841660009081526101486020526040902054811015613256576001600160a01b03841660009081526101486020526040812080548390811061312e5761312e6153c5565b60009182526020918290206040805161018081018252600c90930290910180546001600160a01b0390811684526001820154948401949094526002810154918301919091526003810154606083015260048101546080830152600581015460ff90811615801560a08501819052600684015460c0860152600784015490951660e085015260088301546101008501526009830154610120850152600a830154610140850152600b90920154161515610160830152909250906131f35750806101600151155b15613243576001600160a01b038516600090815261014860205260409020805483908110613223576132236153c5565b90600052602060002090600c02016003015483613240919061534a565b92505b508061324e81615439565b9150506130e2565b5092915050565b613265614807565b61326d61437c565b6101445482108015906132835750610143548211155b6132c75760405162461bcd60e51b81526020600482015260156024820152744b4c503a20496e76616c6964206c6576657261676560581b6044820152606401610b2e565b600083116133255760405162461bcd60e51b815260206004820152602560248201527f4b4c503a20616d6f756e74206d7573742062652067726561746572207468616e604482015264207a65726f60d81b6064820152608401610b2e565b61013b54604051633709eb3b60e11b81523360048201526001600160a01b0390911690636e13d67690602401600060405180830381600087803b15801561336b57600080fd5b505af115801561337f573d6000803e3d6000fd5b50613399925050506001600160a01b03821633308661484d565b610134546001600160a01b03828116911614613418576001600160a01b038116600090815261014e602052604090205460ff166134185760405162461bcd60e51b815260206004820152601b60248201527f4b4c503a20496e76616c6964206173736574732063686f6f73656e00000000006044820152606401610b2e565b61014554600090849061342e9082908690614292565b61343891906153db565b610135546040516353552be760e11b8152600481018390529192506000916001600160a01b039091169063a6aa57ce906024016020604051808303816000875af115801561348a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ae91906153ee565b9050806134f25760405162461bcd60e51b815260206004820152601260248201527115d85d195c8e8813195b990819985a5b195960721b6044820152606401610b2e565b60006134fe838761534a565b61013a5490915061351c906001600160a01b0386811691168361463c565b61013654604051635fda880360e01b81526001600160a01b0386811660048301526024820184905260006044830181905260648301819052921690635fda8803906084016020604051808303816000875af115801561357f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a3919061535d565b33600081815261014860209081526040808320548151610180810183529485529184018c905283018a90526060830184905292935090608081016135e760016113b4565b8152600060208083018290526040808401839052606084018390526080840183905260a084018b905260c0840187905260e090930182905233825261014b90529081205491925060ff9091161515900361369a5733600081815261014b60205260408120805460ff19166001908117909155610151805491820181559091527f834e5f3e6ef6f80ec8f884a35f7b14614da215295403590ab61f6becb28533da0180546001600160a01b03191690911790555b3360008181526101866020908152604080832086845282528083204290558383526101488252808320805460018082018355918552938390208651600c9095020180546001600160a01b03199081166001600160a01b039687161782559387015191810191909155908501516002820155606085015160038201556080850151600482015560a085015160058201805460ff1990811692151592909217905560c0860151600683015560e086015160078301805490941694169390931790915561010084015160088201556101208401516009820155610140840151600a820155610160840151600b909101805490921690151517905561379b9084614885565b61013b54604051630b61765760e01b81523360048201526001600160a01b0390911690630b61765790602401600060405180830381600087803b1580156137e157600080fd5b505af11580156137f5573d6000803e3d6000fd5b505033600081815261014860205260409020549092507f55e1b84deec6eefe49c2c96afe1d5b43ca37768907f7388696c6009e7bbe3b5491508b9061383c906001906153db565b8b428861384960016113b4565b604080519687526020870195909552938501929092526060840152608083015260a082015260c00160405180910390a25050505050506138896001606555565b505050565b6001600160a01b038116600090815261014860205260408120805482918291879081106138bd576138bd6153c5565b600091825260208083206040805161018081018252600c90940290910180546001600160a01b0390811685526001820154938501939093526002810154918401919091526003810154606084015260048101546080840152600581015460ff908116151560a0850152600682015460c0850152600782015490921660e084015260088101546101008401526009810154610120840152600a810154610140840152600b015416151561016082015291508515613979578561397f565b81606001515b6101345490915060009061399c906001600160a01b031683614946565b90506139b1816139ac60016113b4565b614b56565b6139bf838560800151614b56565b94509450505050935093915050565b6139d6613c26565b61014755565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b6060610151805480602002602001604051908101604052809291908181526020018280548015610adb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a42575050505050905090565b613a71613c26565b6001600160a01b038116613ad65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b2e565b611329816146e9565b613ae7613c26565b61018555565b613af5613c26565b866001600160a01b038116613b1c5760405162461bcd60e51b8152600401610b2e906152f1565b856001600160a01b038116613b435760405162461bcd60e51b8152600401610b2e906152f1565b612710841115613b7f5760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606401610b2e565b61012d80546001600160a01b03808c166001600160a01b03199283161790925561012e8a905561012f80548a84169083161790556101308890556101318790556101328690556101338054928616929091169190911790556040517fffabbbdfe0e1dda7dc464da2d76c6df62afc528e20efb158bd4db62387ec22ee90613c13908b908b908b908b908b908b908b9061515f565b60405180910390a1505050505050505050565b6033546001600160a01b031633146112c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2e565b6001600160a01b038316613ce25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b2e565b6001600160a01b038216613d435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b2e565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054610100900460ff16613dcb5760405162461bcd60e51b8152600401610b2e90615452565b6112c7614b6b565b600054610100900460ff16613dfa5760405162461bcd60e51b8152600401610b2e90615452565b6112c7614b9b565b600054610100900460ff16613e295760405162461bcd60e51b8152600401610b2e90615452565b6120448282614bce565b6000613e3f84846139dc565b905060001981146130d65781811015613e9a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b2e565b6130d68484848403613c80565b6001600160a01b038316613f0b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b2e565b6001600160a01b038216613f6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b2e565b6001600160a01b038316600090815260c9602052604090205481811015613fe55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b2e565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906140459086815260200190565b60405180910390a36130d6565b61405a614c0e565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166141045760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b2e565b6001600160a01b038216600090815260c96020526040902054818110156141785760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b2e565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000806000846000036141f357506000915081905080611a1a565b6101315460009060649061420990612710615376565b61013154614218908890615376565b614222919061534a565b61422c91906153a3565b9050600061271061423d8389615376565b61424791906153a3565b9050600061271061012d60050154896142609190615376565b61426a91906153a3565b90506000614278828461534a565b614282908a6153db565b9299919850919650945050505050565b60008080600019858709858702925082811083820303915050806000036142cc578382816142c2576142c261538d565b0492505050611251565b8084116143135760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610b2e565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6002606554036143ce5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b2e565b6002606555565b61013e546001600160a01b031615612065576001600160a01b038216600090815260c960205260409020548181106144115761388983836140a4565b61441b83826140a4565b61013e54610141546040516393f1a40b60e01b815260048101919091526001600160a01b03858116602483015260009216906393f1a40b90604401606060405180830381865afa158015614473573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614497919061540b565b509091505080156130d65760006144ae83856153db565b61013e54610141546040516362e69a4d60e11b815260048101919091526001600160a01b0388811660248301526044820184905292935091169063c5cd349a90606401600060405180830381600087803b15801561450b57600080fd5b505af115801561451f573d6000803e3d6000fd5b505050505050505050565b610136546101385460009161454c916001600160a01b0390811691168461463c565b610136546101875460405163ae247f5560e01b81526001600160a01b0391821660048201526024810185905260006044820181905230606483015292919091169063ae247f55906084016020604051808303816000875af11580156145b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611251919061535d565b6040516001600160a01b03831660248201526044810182905261388990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614c57565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa15801561468c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146b0919061535d565b90506130d68463095ea7b360e01b856146c9868661534a565b6040516001600160a01b0390921660248301526044820152606401614605565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b614743614807565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586140873390565b612044828260405160240161478e92919061549d565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052614d2c565b81156147e25761013354610134546147e2916001600160a01b039182169116846145d9565b80156120445761012f5461013454612044916001600160a01b039182169116836145d9565b60975460ff16156112c75760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610b2e565b6040516001600160a01b03808516602483015283166044820152606481018290526130d69085906323b872dd60e01b90608401614605565b6001600160a01b0382166148db5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b2e565b8060cb60008282546148ed919061534a565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b61013c5460408051631351ecc160e21b8152905160009283926001600160a01b039091169163c7e074c391879187918591634d47b304916004808201926020929091908290030181865afa1580156149a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149c6919061535d565b61013c5460408051637a210a2b60e01b815290516001600160a01b0390921691637a210a2b916004808201926020929091908290030181865afa158015614a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a35919061535d565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526024840192909252604483015260648201526000608482015260a401602060405180830381865afa158015614a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ab6919061535d565b61013c54604051632c668ec160e01b81526001600160a01b0387811660048301526024820187905292935060009290911690632c668ec190604401602060405180830381865afa158015614b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b32919061535d565b9050614b4d614b43836127106153db565b8290612710614292565b95945050505050565b60006112518383670de0b6b3a7640000614292565b600054610100900460ff16614b925760405162461bcd60e51b8152600401610b2e90615452565b6112c7336146e9565b600054610100900460ff16614bc25760405162461bcd60e51b8152600401610b2e90615452565b6097805460ff19169055565b600054610100900460ff16614bf55760405162461bcd60e51b8152600401610b2e90615452565b60cc614c01838261551b565b5060cd613889828261551b565b60975460ff166112c75760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b2e565b6000614cac826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614d359092919063ffffffff16565b9050805160001480614ccd575080806020019051810190614ccd91906153ee565b6138895760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b2e565b61132981614d4c565b6060614d448484600085614d6d565b949350505050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b606082471015614dce5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b2e565b600080866001600160a01b03168587604051614dea91906155db565b60006040518083038185875af1925050503d8060008114614e27576040519150601f19603f3d011682016040523d82523d6000602084013e614e2c565b606091505b5091509150614e3d87838387614e48565b979650505050505050565b60608315614eb7578251600003614eb0576001600160a01b0385163b614eb05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b2e565b5081614d44565b614d448383815115614ecc5781518083602001fd5b8060405162461bcd60e51b8152600401610b2e9190614f92565b6001600160a01b038116811461132957600080fd5b801515811461132957600080fd5b60008060408385031215614f1c57600080fd5b8235614f2781614ee6565b91506020830135614f3781614efb565b809150509250929050565b60005b83811015614f5d578181015183820152602001614f45565b50506000910152565b60008151808452614f7e816020860160208601614f42565b601f01601f19169290920160200192915050565b6020815260006112516020830184614f66565b60008060408385031215614fb857600080fd5b8235614fc381614ee6565b946020939093013593505050565b600080600080600060a08688031215614fe957600080fd5b8535614ff481614ee6565b9450602086013561500481614ee6565b9350604086013561501481614ee6565b9250606086013561502481614ee6565b9150608086013561503481614ee6565b809150509295509295909350565b60008060006060848603121561505757600080fd5b833561506281614ee6565b9250602084013561507281614ee6565b929592945050506040919091013590565b60006020828403121561509557600080fd5b813561125181614ee6565b6000806000606084860312156150b557600080fd5b83356150c081614ee6565b92506020840135915060408401356150d781614ee6565b809150509250925092565b6000602082840312156150f457600080fd5b5035919050565b60006020828403121561510d57600080fd5b813561125181614efb565b6000806040838503121561512b57600080fd5b823591506020830135614f3781614ee6565b6000806040838503121561515057600080fd5b50508035926020909101359150565b6001600160a01b039788168152602081019690965293861660408601526060850192909252608084015260a083015290911660c082015260e00190565b6000806000606084860312156151b157600080fd5b833592506020840135915060408401356150d781614ee6565b600080604083850312156151dd57600080fd5b82356151e881614ee6565b91506020830135614f3781614ee6565b6020808252825182820181905260009190848201906040850190845b818110156152395783516001600160a01b031683529284019291840191600101615214565b50909695505050505050565b600080600080600080600060e0888a03121561526057600080fd5b873561526b81614ee6565b965060208801359550604088013561528281614ee6565b9450606088013593506080880135925060a0880135915060c08801356152a781614ee6565b8091505092959891949750929550565b600181811c908216806152cb57607f821691505b6020821081036152eb57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b60006020828403121561532957600080fd5b815161125181614ee6565b634e487b7160e01b600052601160045260246000fd5b80820180821115610af957610af9615334565b60006020828403121561536f57600080fd5b5051919050565b8082028115828204841417610af957610af9615334565b634e487b7160e01b600052601260045260246000fd5b6000826153c057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b81810381811115610af957610af9615334565b60006020828403121561540057600080fd5b815161125181614efb565b60008060006060848603121561542057600080fd5b8351925060208401519150604084015190509250925092565b60006001820161544b5761544b615334565b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6040815260006154b06040830185614f66565b90508260208301529392505050565b634e487b7160e01b600052604160045260246000fd5b601f82111561388957600081815260208120601f850160051c810160208610156154fc5750805b601f850160051c820191505b8181101561106257828155600101615508565b815167ffffffffffffffff811115615535576155356154bf565b6155498161554384546152b7565b846154d5565b602080601f83116001811461557e57600084156155665750858301515b600019600386901b1c1916600185901b178555611062565b600085815260208120601f198616915b828110156155ad5788860151825594840194600190910190840161558e565b50858210156155cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516155ed818460208701614f42565b919091019291505056fea26469706673582212200267fb8cb496b608a9a995d3ad03024d0fbbefade713f2b5a9cf0164f17e915164736f6c63430008150033