72 txs
73 calls
constructor
constructor(address _stakeApy, address _vToken, address _dToken, address _priceFeed, address _usd, address _commissionContract)
functions
calculateTokenEarnedMulti
viewfunction calculateTokenEarnedMulti(uint256[] _stakeIds) view returns (uint256)
calculateTokenEarnedStake
viewfunction calculateTokenEarnedStake(uint256 _stakeId) view returns (uint256)
calculateTokenEarnedStakeByUsd
viewfunction calculateTokenEarnedStakeByUsd(uint256 _stakeId) view returns (uint256)
checkCanClaim
viewfunction checkCanClaim(uint256 _stakeId) view returns (bool)
checkCanClaimMulti
viewfunction checkCanClaimMulti(uint256[] _stakeIds, address _userAddress) view returns (bool)
checkCanClaimUsd
viewfunction checkCanClaimUsd(uint256 _stakeId) view returns (bool)
commissionContract
viewfunction commissionContract() view returns (address)
feeBnb
viewfunction feeBnb() view returns (uint256)
getDetailStake
viewfunction getDetailStake(uint256 _stakeId) view returns (tuple)
getLatestPrice
viewfunction getLatestPrice() view returns (int256)
getNativeTokenBalance
viewfunction getNativeTokenBalance(address userAddress) view returns (uint256)
getPriceFeed
viewfunction getPriceFeed() view returns (address)
getStakePool
viewfunction getStakePool(uint256 _poolId) view returns (tuple)
getTokenUsdPrice
viewfunction getTokenUsdPrice() view returns (uint256)
owner
viewfunction owner() view returns (address)
priceFeedDecimal
viewfunction priceFeedDecimal() view returns (uint256)
rewardFee
viewfunction rewardFee() view returns (uint256)
stakeApy
viewfunction stakeApy() view returns (address)
stakeTokenPoolLength
viewfunction stakeTokenPoolLength() view returns (uint256)
timeOpenStaking
viewfunction timeOpenStaking() view returns (uint256)
tokenDecimal
viewfunction tokenDecimal() view returns (uint256)
totalFeeClaimToken
viewfunction totalFeeClaimToken() view returns (uint256)
totalFeeWithdrawToken
viewfunction totalFeeWithdrawToken() view returns (uint256)
totalUser
viewfunction totalUser() view returns (uint256)
totalUserClaimedToken
viewfunction totalUserClaimedToken(address) view returns (uint256)
totalUserClaimedUsd
viewfunction totalUserClaimedUsd(address) view returns (uint256)
totalUserStakedToken
viewfunction totalUserStakedToken(address) view returns (uint256)
totalUserStakedUsd
viewfunction totalUserStakedUsd(address) view returns (uint256)
totalUserWithdrawToken
viewfunction totalUserWithdrawToken(address) view returns (uint256)
totalUserWithdrawUsd
viewfunction totalUserWithdrawUsd(address) view returns (uint256)
usdStakeFee
viewfunction usdStakeFee() view returns (uint256)
usdtDecimal
viewfunction usdtDecimal() view returns (uint256)
usdToken
viewfunction usdToken() view returns (address)
withdrawFee
viewfunction withdrawFee() view returns (uint256)
addStakeAdmin
nonpayablefunction addStakeAdmin(uint256 _poolId, address _userAddress, uint256 _totalValueStake, bool _stakeByUsd)
claim
payablefunction claim(uint256 _stakeId) payable
claimAll
payablefunction claimAll(uint256[] _stakeIds) payable
claimPending
payablefunction claimPending(uint256 _stakeId) payable
claimPendingMulti
nonpayablefunction claimPendingMulti(uint256[] _stakeIds)
executePendingAdmin
nonpayablefunction executePendingAdmin(uint256 _stakeId)
recoverLostBNB
nonpayablefunction recoverLostBNB()
renounceOwnership
nonpayablefunction renounceOwnership()
setApyContract
nonpayablefunction setApyContract(address _stakeApy)
setCommissionAddress
nonpayablefunction setCommissionAddress(address _commissionContract)
setFeeBnb
nonpayablefunction setFeeBnb(uint256 _feeBnb)
setRewardFee
nonpayablefunction setRewardFee(uint256 _rewardFee)
setSaleWalletAddress
nonpayablefunction setSaleWalletAddress(address _saleAddress)
setStakeIndex
nonpayablefunction setStakeIndex(uint256 _stakeIndex)
setStakePool
nonpayablefunction setStakePool(uint256 _poolId, uint256 _maxStakePerWallet, uint256 _duration, address _subToken, uint256 _rate, bool needPending, bool _canStakeUsd, bool _isMaxEarn)
setTotalUser
nonpayablefunction setTotalUser(uint256 _totalUser)
setUsdContract
nonpayablefunction setUsdContract(address _usdAddress)
setUsdStakeFee
nonpayablefunction setUsdStakeFee(uint256 _fee)
setWithdrawFee
nonpayablefunction setWithdrawFee(uint256 _withdrawFee)
stake
payablefunction stake(uint256 _poolId) payable
stakeByUsd
payablefunction stakeByUsd(uint256 _poolId, uint256 _valueStakeUsd) payable
stakeExecuteAdmin
nonpayablefunction stakeExecuteAdmin(tuple _data)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
payablefunction withdraw(uint256 _stakeId, bool _quickWithdraw) payable
withdrawPool
nonpayablefunction withdrawPool(uint256[] _stakeIds, bool _quickWithdraw)
withdrawTokenEmergency
nonpayablefunction withdrawTokenEmergency(address _token, uint256 _amount)
events
Claimed
event Claimed(uint256 indexed id, address indexed staker, uint256 claimAmount)
Harvested
event Harvested(uint256 indexed id)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Staked
event Staked(uint256 indexed id, uint256 poolId, address indexed staker, uint256 stakeValue, uint256 startTime, uint256 unlockTime)
errors
No errors.
creation bytecode
0x60a06040526364b816906001908155600255670de0b6b3a7640000600355620f424060049081556305f5e10060055560006006819055600781905560c8600855600980546001600160a01b03191673e17701c3c43cfbe818ece78065928a41bf87cf711790556012919091556013819055601d553480156200008057600080fd5b5060405162005fa238038062005fa2833981016040819052620000a3916200053a565b620000ae33620004cd565b600a80546001600160a01b03199081166001600160a01b03888116918217909355600b80548316888516908117909155600e805484168b8616179055600d80548416878616179055600c80548416948616949094178455606087901b6001600160601b031916608052601460205260007f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99c8190557f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99d8190557f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e8190557f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba9a3805485169093179092556103e87f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba9a48190557f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba9a58054630100010063ff00ffff19918216811790925560017fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2c557fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2d8590557fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e969096557fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f3380548616841790557fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f348290557fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f35805487168217905560027fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7a557fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7b84905560127fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c557fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a8180548616841790557fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a828290557fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a83805487168217905560038085527f63d87a887046e0430be80fdeb014107d7198c879cbf2cddf39a6df195c86cb38557f63d87a887046e0430be80fdeb014107d7198c879cbf2cddf39a6df195c86cb399390935560187f63d87a887046e0430be80fdeb014107d7198c879cbf2cddf39a6df195c86cb3a557f63d87a887046e0430be80fdeb014107d7198c879cbf2cddf39a6df195c86cb3f80549094169091179092557f63d87a887046e0430be80fdeb014107d7198c879cbf2cddf39a6df195c86cb40919091557f63d87a887046e0430be80fdeb014107d7198c879cbf2cddf39a6df195c86cb418054909216179055505050505050620005bb565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200053557600080fd5b919050565b60008060008060008060c087890312156200055457600080fd5b6200055f876200051d565b95506200056f602088016200051d565b94506200057f604088016200051d565b93506200058f606088016200051d565b92506200059f608088016200051d565b9150620005af60a088016200051d565b90509295509295509295565b60805160601c6159c1620005e1600039600081816108a7015261222d01526159c16000f3fe60806040526004361061039a5760003560e01c806381ce4222116101dc578063b5242e3f11610102578063d4c1be69116100a0578063effd663c1161006f578063effd663c14610a55578063f2fde38b14610a7d578063f897a22b14610a9d578063fddac16314610abd57600080fd5b8063d4c1be69146109e9578063da8909e514610a09578063e1604b7014610a29578063e941fa7814610a3f57600080fd5b8063c99f4929116100dc578063c99f49291461098a578063ca7c54c6146109a0578063cb0da8b3146109c0578063cfdcc3d2146109d357600080fd5b8063b5242e3f14610934578063b6ac642a14610954578063c73df2fa1461097457600080fd5b80638e15f4731161017a578063a51dda1611610149578063a51dda16146108cb578063a694fc3a146108eb578063afc903ba146108fe578063b4346a4a1461091457600080fd5b80638e15f473146106ba57806393af76311461086357806397e3b781146108835780639e87a5cd1461089857600080fd5b8063898dedec116101b6578063898dedec146107f95780638b4242671461080f5780638ceb8fcc146108255780638da5cb5b1461084557600080fd5b806381ce422214610772578063830ba65e1461079f578063841622c6146107cc57600080fd5b806338d07436116102c15780635a2357a41161025f578063638ee2461161022e578063638ee246146106e557806368127b7114610705578063715018a61461073d57806373c574ba1461075257600080fd5b80635a2357a41461067a5780635a2ff22b1461069a5780635be436d9146106ba5780635caed029146106cf57600080fd5b806340fff80c1161029b57806340fff80c146105fa57806341a2ac701461061a578063466e515c1461063a578063505bcd9f1461066757600080fd5b806338d074361461059a5780633a2f3288146105ad5780633d61aba8146105da57600080fd5b80631a4d2428116103395780632c8bb0e3116103085780632c8bb0e3146105315780632ffe52b414610551578063362efc3d14610571578063379607f51461058757600080fd5b80631a4d2428146104bb57806328a4a784146104d157806328c77820146104f157806329a1d9361461050457600080fd5b80630582d9f5116103755780630582d9f51461041157806309d3fefe146104415780630a8a7c0614610461578063108e2d7e1461048e57600080fd5b8062321a2d146103a657806301189cc2146103c85780630388bf1e146103e857600080fd5b366103a157005b600080fd5b3480156103b257600080fd5b506103c66103c1366004614f0e565b610add565b005b3480156103d457600080fd5b506103c66103e3366004614f0e565b610aea565b3480156103f457600080fd5b506103fe60055481565b6040519081526020015b60405180910390f35b34801561041d57600080fd5b5061043161042c366004615043565b610af7565b6040519015158152602001610408565b34801561044d57600080fd5b506103fe61045c366004615091565b610bbd565b34801561046d57600080fd5b5061048161047c366004614f0e565b610c12565b60405161040891906150ce565b34801561049a57600080fd5b506103fe6104a936600461517b565b60196020526000908152604090205481565b3480156104c757600080fd5b506103fe60125481565b3480156104dd57600080fd5b506103c66104ec3660046151b6565b610d55565b6103c66104ff366004615091565b610dee565b34801561051057600080fd5b506103fe61051f36600461517b565b601b6020526000908152604090205481565b34801561053d57600080fd5b506103c661054c36600461517b565b610e74565b34801561055d57600080fd5b506103c661056c3660046151fe565b610e9e565b34801561057d57600080fd5b506103fe60045481565b6103c6610595366004614f0e565b610f42565b6103c66105a8366004615281565b6110a3565b3480156105b957600080fd5b506103fe6105c836600461517b565b60166020526000908152604090205481565b3480156105e657600080fd5b506103c66105f53660046152b1565b61182c565b34801561060657600080fd5b506103c661061536600461517b565b611939565b34801561062657600080fd5b506103c6610635366004614f0e565b6119c9565b34801561064657600080fd5b5061065a610655366004614f0e565b6119d6565b60405161040891906152db565b6103c66106753660046153c5565b611b75565b34801561068657600080fd5b506103c661069536600461517b565b61202a565b3480156106a657600080fd5b506103c66106b5366004614f0e565b612054565b3480156106c657600080fd5b506103fe612228565b3480156106db57600080fd5b506103fe60035481565b3480156106f157600080fd5b506103c6610700366004615091565b6122c7565b34801561071157600080fd5b50600e54610725906001600160a01b031681565b6040516001600160a01b039091168152602001610408565b34801561074957600080fd5b506103c6612328565b34801561075e57600080fd5b5061043161076d366004614f0e565b61233c565b34801561077e57600080fd5b506103fe61078d36600461517b565b601a6020526000908152604090205481565b3480156107ab57600080fd5b506103fe6107ba36600461517b565b60176020526000908152604090205481565b3480156107d857600080fd5b506103fe6107e736600461517b565b60186020526000908152604090205481565b34801561080557600080fd5b506103fe60085481565b34801561081b57600080fd5b506103fe60065481565b34801561083157600080fd5b506103fe610840366004614f0e565b61269c565b34801561085157600080fd5b506000546001600160a01b0316610725565b34801561086f57600080fd5b506103c661087e366004614f0e565b612b1a565b34801561088f57600080fd5b506103c6612b27565b3480156108a457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610725565b3480156108d757600080fd5b506103c66108e6366004614f0e565b612b5d565b6103c66108f9366004614f0e565b612b6a565b34801561090a57600080fd5b506103fe601d5481565b34801561092057600080fd5b506103fe61092f366004614f0e565b612cf0565b34801561094057600080fd5b5061043161094f366004614f0e565b613163565b34801561096057600080fd5b506103c661096f366004614f0e565b61349f565b34801561098057600080fd5b506103fe600f5481565b34801561099657600080fd5b506103fe60015481565b3480156109ac57600080fd5b506103c66109bb3660046153e7565b6134ac565b6103c66109ce366004614f0e565b613513565b3480156109df57600080fd5b506103fe60105481565b3480156109f557600080fd5b506103c6610a0436600461543f565b61390e565b348015610a1557600080fd5b50600c54610725906001600160a01b031681565b348015610a3557600080fd5b506103fe60115481565b348015610a4b57600080fd5b506103fe60075481565b348015610a6157600080fd5b506103fe610a7036600461517b565b6001600160a01b03163190565b348015610a8957600080fd5b506103c6610a9836600461517b565b613d73565b348015610aa957600080fd5b50600d54610725906001600160a01b031681565b348015610ac957600080fd5b506103c6610ad836600461517b565b613dec565b610ae5613e76565b601155565b610af2613e76565b601d55565b600080610b0384610bbd565b90506000600554610b12612228565b610b1c9084615558565b610b269190615577565b600c54604051637f6408d360e01b81526001600160a01b0387811660048301526024820184905292935060009290911690637f6408d39060440160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190615599565b9190911495945050505050565b600080805b8351811015610c0b57610bed848281518110610be057610be06155b2565b6020026020010151612cf0565b610bf790836155c8565b915080610c03816155e0565b915050610bc2565b5092915050565b610c8e604051806101a001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b5060009081526014602090815260409182902082516101a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b031660e082015260088201546101008083019190915260099092015460ff8082161515610120840152928104831615156101408301526201000081048316151561016083015263010000009004909116151561018082015290565b610d5d613e76565b336000908152601c60209081526040808320878452909152812054610d839084906155c8565b6000868152601460205260409020600101549091501580610db557506000858152601460205260409020600101548111155b610dda5760405162461bcd60e51b8152600401610dd1906155fb565b60405180910390fd5b610de78585858486613ed0565b5050505050565b601d543414610e0f5760405162461bcd60e51b8152600401610dd190615645565b6000815111610e305760405162461bcd60e51b8152600401610dd19061567c565b60005b8151811015610e7057610e5e828281518110610e5157610e516155b2565b6020026020010151610f42565b80610e68816155e0565b915050610e33565b5050565b610e7c613e76565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b610ea6613e76565b600088815260146020526040812089815560018082018a9055600282018990556007820180546001600160a01b0319166001600160a01b038a16179055600882018790556009909101805461ffff191686151561ff00191617610100861515021763ff0000001916630100000085151502179055610f25908a906155c8565b9050601254811115610f375760128190555b505050505050505050565b601d543414610f635760405162461bcd60e51b8152600401610dd190615645565b6000818152601560209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b9093049092161515610200830152331461107b5760405162461bcd60e51b8152600401610dd1906156b3565b806101e001511561108f5761108f8261442d565b80610200015115610e7057610e7082614a2d565b6002546001146110c55760405162461bcd60e51b8152600401610dd1906156f9565b6000600255601d5434146110eb5760405162461bcd60e51b8152600401610dd190615645565b6000828152601560209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b909304909216151561020083015233146112035760405162461bcd60e51b8152600401610dd190615728565b8061018001511561124e5760405162461bcd60e51b81526020600482015260156024820152745354414b453a2057495448445241572046414c534560581b6044820152606401610dd1565b428160600151116118225761126283610f42565b60408181015160a0808401516000838152601460209081529085902085516101a08101875281548152600182015492810192909252600281015482870152600381015460608301526004808201546080840152600582015494830194909452600681015460c083015260078101546001600160a01b0390811660e084015260088201546101008085019190915260099092015460ff808216151561012080870182905294830482161515610140870152620100008304821615156101608088019190915263010000009093049091161515610180860152908901519289015197516370a0823160e01b815233968101969096529596939592949293919282918416906370a082319060240160206040518083038186803b15801561138557600080fd5b505afa158015611399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bd9190615599565b101561141a5760405162461bcd60e51b815260206004820152602660248201527f5354414b494e473a20204e4f5420454e4f5547482053554220544f4b454e2042604482015265414c414e434560d01b6064820152608401610dd1565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e9060440160206040518083038186803b15801561146157600080fd5b505afa158015611475573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114999190615599565b10156114e75760405162461bcd60e51b815260206004820152601b60248201527f5354414b494e473a204d75737420617070726f766520666972737400000000006044820152606401610dd1565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd90606401602060405180830381600087803b15801561153557600080fd5b505af1158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d919061576f565b6115895760405162461bcd60e51b8152600401610dd19061578c565b604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156115cb57600080fd5b505af11580156115df573d6000803e3d6000fd5b505050508215611665578715611640576007541561163b5760006127106007548761160a9190615558565b6116149190615577565b905061162081876157dd565b9550806010600082825461163491906155c8565b9091555050505b611665565b6000898152601560205260408120600b01805460ff60a81b1916600160a81b17905594505b600089815260156020526040808220600b01805460ff60a01b1916600160a01b179055518a917f8e55ccfc9778ff8eba1646d765cf1982537ce0f9257054a17b48aad74525018391a2841561181b57844710156116d45760405162461bcd60e51b8152600401610dd1906157f4565b6040513390600090829088908381818185875af1925050503d8060008114611718576040519150601f19603f3d011682016040523d82523d6000602084013e61171d565b606091505b505090508061173e5760405162461bcd60e51b8152600401610dd19061582b565b336000908152601c602090815260408083208b84529091528120546117649089906157dd565b60008a81526014602052604081206003015491925090611785908a906157dd565b336000818152601c602090815260408083208f8452825280832087905560148252808320600301859055928252601a905290812080549293508b929091906117ce9084906155c8565b90915550506005546117de612228565b6117e8908b615558565b6117f29190615577565b336000908152601b6020526040812080549091906118119084906155c8565b9091555050505050505b5050505050505b5050600160025550565b611834613e76565b600081116118755760405162461bcd60e51b815260206004820152600e60248201526d1253959053125108105353d5539560921b6044820152606401610dd1565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f5919061576f565b610e705760405162461bcd60e51b815260206004820152601560248201527421a0a72727aa102ba4aa24222920ab902a27a5a2a760591b6044820152606401610dd1565b611941613e76565b6001600160a01b0381166119a75760405162461bcd60e51b815260206004820152602760248201527f4d41524b4554504c4143453a20494e56414c494420434f4d4d495353494f4e206044820152664144445245535360c81b6064820152608401610dd1565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6119d1613e76565b600655565b611a7a6040518061022001604052806000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600015158152602001600015158152602001600060ff1681526020016000151581526020016000151581525090565b506000908152601560209081526040918290208251610220810184528154815260018201546001600160a01b03908116938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008401526009810154610120840152600a810154610140840152600b015490811661016083015260ff600160a01b820481161515610180840152600160a81b8204811615156101a0840152600160b01b820481166101c0840152600160b81b8204811615156101e0840152600160c01b90910416151561020082015290565b600254600114611b975760405162461bcd60e51b8152600401610dd1906156f9565b6000600255601d543414611bbd5760405162461bcd60e51b8152600401610dd190615645565b60008111611bdd5760405162461bcd60e51b8152600401610dd190615859565b60008281526014602090815260409182902082516101a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b031660e082015260088201546101008083019190915260099092015460ff808216151561012084015292810483161515610140830181905262010000820484161515610160840152630100000090910490921615156101808201529080611cd75760405162461bcd60e51b8152602060048201526003602482015262434e5360e81b6044820152606401610dd1565b600d546040516370a0823160e01b815233600482015284916001600160a01b0316906370a082319060240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190615599565b1015611db15760405162461bcd60e51b815260206004820152602860248201527f544f4b454e205354414b453a204e6f7420656e6f7567682062616c616e636520604482015267746f207374616b6560c01b6064820152608401610dd1565b600d54604051636eb1769f60e11b815233600482015230602482015284916001600160a01b03169063dd62ed3e9060440160206040518083038186803b158015611dfa57600080fd5b505afa158015611e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e329190615599565b1015611e805760405162461bcd60e51b815260206004820152601f60248201527f544f4b454e205354414b453a204d75737420617070726f7665206669727374006044820152606401610dd1565b600d546009546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018690529116906323b872dd90606401602060405180830381600087803b158015611ed657600080fd5b505af1158015611eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0e919061576f565b611f2a5760405162461bcd60e51b8152600401610dd19061578c565b60085415611f5a5761271060085484611f439190615558565b611f4d9190615577565b611f5790846157dd565b92505b600454600354611f6a9085615558565b611f749190615577565b92506000611f80612228565b600554611f8d9086615558565b611f979190615577565b336000908152601c6020908152604080832089845290915281205491925090611fc19083906155c8565b6000878152601460205260409020600101549091501580611ff357506000868152601460205260409020600101548111155b61200f5760405162461bcd60e51b8152600401610dd1906155fb565b61201d863384846001613ed0565b5050600160025550505050565b612032613e76565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b61205c613e76565b6000818152601560209081526040918290208251610220810184528154815260018201546001600160a01b03908116938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008401526009810154610120840152600a810154610140840152600b015490811661016083015260ff600160a01b820481161515610180840152600160a81b8204811615156101a08401819052600160b01b830482166101c0850152600160b81b8304821615156101e0850152600160c01b9092041615156102008301526121ad5760405162461bcd60e51b815260206004820152602360248201527f5354414b494e473a2043616e206e6f7420757064617465206e6f742070656e64604482015262696e6760e81b6064820152608401610dd1565b6101c081015160ff16156122035760405162461bcd60e51b815260206004820152601f60248201527f5354414b494e473a2054686973207374616b65207761732075706461746564006044820152606401610dd1565b506000908152601560205260409020600b01805460ff60b01b1916600160b01b179055565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561228457600080fd5b505afa158015612298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bc91906158aa565b509195945050505050565b60008151116122e85760405162461bcd60e51b8152600401610dd19061567c565b60005b8151811015610e7057612316828281518110612309576123096155b2565b6020026020010151613513565b80612320816155e0565b9150506122eb565b612330613e76565b61233a6000614ebe565b565b6000806015600084815260200190815260200160002060405180610220016040529081600082015481526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600b820160149054906101000a900460ff16151515158152602001600b820160159054906101000a900460ff16151515158152602001600b820160169054906101000a900460ff1660ff1660ff168152602001600b820160179054906101000a900460ff16151515158152602001600b820160189054906101000a900460ff1615151515815250509050600081604001519050600082602001519050600060146000848152602001908152602001600020604051806101a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600882015481526020016009820160009054906101000a900460ff161515151581526020016009820160019054906101000a900460ff161515151581526020016009820160029054906101000a900460ff161515151581526020016009820160039054906101000a900460ff161515151581525050905060006125d687612cf0565b905060006005546125e5612228565b6125ef9084615558565b6125f99190615577565b61018084015190915081901561269057600c54604051637f6408d360e01b81526001600160a01b0387811660048301526024820185905290911690637f6408d39060440160206040518083038186803b15801561265557600080fd5b505afa158015612669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268d9190615599565b90505b14979650505050505050565b60008181526015602090815260408083208151610220810183528154815260018201546001600160a01b03908116948201949094526002820154928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b015491821661016082015260ff600160a01b83048116158015610180840152600160a81b8404821615156101a0840152600160b01b840482166101c0840152600160b81b8404821615156101e0840152600160c01b909304161515610200820152906127a15750600092915050565b600e546040808301519051635325f64f60e11b815260009283926001600160a01b039091169163a64bec9e916127dd9160040190815260200190565b60206040518083038186803b1580156127f557600080fd5b505afa158015612809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282d9190615599565b90506000805b82811015612aff57600e546040868101519051635e15f0df60e11b815260048101919091526000916001600160a01b03169063bc2be1be9060240160006040518083038186803b15801561288657600080fd5b505afa15801561289a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128c291908101906158fa565b82815181106128d3576128d36155b2565b6020908102919091010151600e546040808901519051639067b67760e01b81529293506000926001600160a01b0390921691639067b6779161291b9160040190815260200190565b60006040518083038186803b15801561293357600080fd5b505afa158015612947573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261296f91908101906158fa565b8381518110612980576129806155b2565b6020908102919091010151600e546040898101519051635d416d0960e01b815260048101919091529192506001600160a01b031690635d416d099060240160006040518083038186803b1580156129d657600080fd5b505afa1580156129ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a1291908101906158fa565b8381518110612a2357612a236155b2565b602002602001015193508660800151821015612a43578660800151612a45565b815b915060008760600151600014612a705742886060015110612a665742612a72565b8760600151612a72565b425b90508115612a8e5780821115612a885780612a90565b81612a90565b805b9150818311612ae957620186a06301da9c008960c00151878686612ab491906157dd565b612abe9190615558565b612ac89190615558565b612ad29190615577565b612adc9190615577565b612ae690886155c8565b96505b5050508080612af7906155e0565b915050612833565b50610100840151612b1090846157dd565b9695505050505050565b612b22613e76565b600855565b612b2f613e76565b604051339081904780156108fc02916000818181858888f19350505050158015610e70573d6000803e3d6000fd5b612b65613e76565b601355565b600254600114612b8c5760405162461bcd60e51b8152600401610dd1906156f9565b600060025534612bae5760405162461bcd60e51b8152600401610dd190615859565b601d5415612bd757601d543411612bd75760405162461bcd60e51b8152600401610dd190615859565b6000601d5434612be791906157dd565b336000908152601c6020908152604080832086845290915281205491925090612c119083906155c8565b6000848152601460205260409020600101549091501580612c4357506000838152601460205260409020600101548111155b612c5f5760405162461bcd60e51b8152600401610dd1906155fb565b6009546040516001600160a01b0390911690600090829034908381818185875af1925050503d8060008114612cb0576040519150601f19603f3d011682016040523d82523d6000602084013e612cb5565b606091505b5050905080612cd65760405162461bcd60e51b8152600401610dd19061582b565b612ce4853386866000613ed0565b50506001600255505050565b60008181526015602090815260408083208151610220810183528154815260018201546001600160a01b03908116948201949094526002820154928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b015491821661016082015260ff600160a01b83048116158015610180840152600160a81b8404821615156101a0840152600160b01b840482166101c0840152600160b81b8404821615156101e0840152600160c01b90930416151561020082015290612df55750600092915050565b600e546040808301519051635325f64f60e11b815260009283926001600160a01b039091169163a64bec9e91612e319160040190815260200190565b60206040518083038186803b158015612e4957600080fd5b505afa158015612e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e819190615599565b90506000805b8281101561315357600e546040868101519051635e15f0df60e11b815260048101919091526000916001600160a01b03169063bc2be1be9060240160006040518083038186803b158015612eda57600080fd5b505afa158015612eee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f1691908101906158fa565b8281518110612f2757612f276155b2565b6020908102919091010151600e546040808901519051639067b67760e01b81529293506000926001600160a01b0390921691639067b67791612f6f9160040190815260200190565b60006040518083038186803b158015612f8757600080fd5b505afa158015612f9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fc391908101906158fa565b8381518110612fd457612fd46155b2565b6020908102919091010151600e546040898101519051635d416d0960e01b815260048101919091529192506001600160a01b031690635d416d099060240160006040518083038186803b15801561302a57600080fd5b505afa15801561303e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261306691908101906158fa565b8381518110613077576130776155b2565b602002602001015193508660800151821015613097578660800151613099565b815b9150600087606001516000146130c457428860600151106130ba57426130c6565b87606001516130c6565b425b905081156130e257808211156130dc57806130e4565b816130e4565b805b915081831161313d57620186a06301da9c008960a0015187868661310891906157dd565b6131129190615558565b61311c9190615558565b6131269190615577565b6131309190615577565b61313a90886155c8565b96505b505050808061314b906155e0565b915050612e87565b5060e0840151612b1090846157dd565b6000806015600084815260200190815260200160002060405180610220016040529081600082015481526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600b820160149054906101000a900460ff16151515158152602001600b820160159054906101000a900460ff16151515158152602001600b820160169054906101000a900460ff1660ff1660ff168152602001600b820160179054906101000a900460ff16151515158152602001600b820160189054906101000a900460ff1615151515815250509050600081604001519050600082602001519050600060146000848152602001908152602001600020604051806101a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600882015481526020016009820160009054906101000a900460ff161515151581526020016009820160019054906101000a900460ff161515151581526020016009820160029054906101000a900460ff161515151581526020016009820160039054906101000a900460ff161515151581525050905060006133fd8761269c565b61018083015190915081901561349457600c54604051637f6408d360e01b81526001600160a01b0386811660048301526024820185905290911690637f6408d39060440160206040518083038186803b15801561345957600080fd5b505afa15801561346d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134919190615599565b90505b149695505050505050565b6134a7613e76565b600755565b60008251116134cd5760405162461bcd60e51b8152600401610dd19061567c565b60005b825181101561350e576134fc8382815181106134ee576134ee6155b2565b6020026020010151836110a3565b80613506816155e0565b9150506134d0565b505050565b6002546001146135355760405162461bcd60e51b8152600401610dd1906156f9565b6000600255601d54341461355b5760405162461bcd60e51b8152600401610dd190615645565b6000818152601560209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b909304909216151561020083015233146136735760405162461bcd60e51b8152600401610dd190615728565b8061018001516136bd5760405162461bcd60e51b81526020600482015260156024820152745354414b453a2057495448445241572046414c534560581b6044820152606401610dd1565b806101a0015161370f5760405162461bcd60e51b815260206004820152601760248201527f5354414b494e473a2043616e206e6f74207570646174650000000000000000006044820152606401610dd1565b806101c0015160ff166001146137715760405162461bcd60e51b815260206004820152602160248201527f5354414b494e473a2054686973207374616b652063616e206e6f7420636c61696044820152606d60f81b6064820152608401610dd1565b60008281526015602052604090819020600b01805460ff60b01b1916600160b11b17905581015160a0820151478111156137bd5760405162461bcd60e51b8152600401610dd1906157f4565b6040513390600090829084908381818185875af1925050503d8060008114613801576040519150601f19603f3d011682016040523d82523d6000602084013e613806565b606091505b50509050806138275760405162461bcd60e51b8152600401610dd19061582b565b336000908152601c6020908152604080832087845290915281205461384d9085906157dd565b6000868152601460205260408120600301549192509061386e9086906157dd565b336000818152601c602090815260408083208b8452825280832087905560148252808320600301859055928252601a9052908120805492935087929091906138b79084906155c8565b90915550506005546138c7612228565b6138d19087615558565b6138db9190615577565b336000908152601b6020526040812080549091906138fa9084906155c8565b909155505060016002555050505050505050565b613916613e76565b6000816000015190506000826040015190506000836020015190508360000151601560008581526020019081526020016000206000018190555083602001516015600085815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360400151601560008581526020019081526020016000206002018190555083606001516015600085815260200190815260200160002060030181905550836080015160156000858152602001908152602001600020600401819055508360a0015160156000858152602001908152602001600020600501819055508360c0015160156000858152602001908152602001600020600601819055508360e001516015600085815260200190815260200160002060070181905550836101000151601560008581526020019081526020016000206008018190555083610160015160156000858152602001908152602001600020600b0160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836101200151601560008581526020019081526020016000206009018190555083610140015160156000858152602001908152602001600020600a018190555083610180015160156000858152602001908152602001600020600b0160146101000a81548160ff021916908315150217905550836101a0015160156000858152602001908152602001600020600b0160156101000a81548160ff021916908315150217905550836101e0015160156000858152602001908152602001600020600b0160176101000a81548160ff02191690831515021790555083610200015160156000858152602001908152602001600020600b0160186101000a81548160ff021916908315150217905550836101c0015160156000858152602001908152602001600020600b0160166101000a81548160ff021916908360ff1602179055508360e0015160176000836001600160a01b03166001600160a01b031681526020019081526020016000206000828254613c2291906155c8565b90915550506101008401516001600160a01b03821660009081526018602052604081208054909190613c559084906155c8565b909155505060a08401516001600160a01b0382166000908152601c602090815260408083208684529091528120549091613c8e916155c8565b6001600160a01b0383166000908152601c60209081526040808320878452825280832084905560a08901516014909252822060030180549394509092909190613cd89084906155c8565b909155505060c085015160008481526014602052604081206004018054909190613d039084906155c8565b909155505060a08501516001600160a01b03831660009081526016602052604081208054909190613d359084906155c8565b909155505060c08501516001600160a01b03831660009081526019602052604081208054909190613d679084906155c8565b90915550505050505050565b613d7b613e76565b6001600160a01b038116613de05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dd1565b613de981614ebe565b50565b613df4613e76565b6001600160a01b038116613e545760405162461bcd60e51b815260206004820152602160248201527f4d41524b4554504c4143453a20494e56414c49442053414c45204144445245536044820152605360f81b6064820152608401610dd1565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461233a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610dd1565b601354613ede9060016155c8565b6013556001600160a01b038416600090815260166020526040902054613f1057601154613f0c9060016155c8565b6011555b6000858152601460205260408120600801546103e890613f309086615558565b613f3a9190615577565b60008781526014602052604090819020600701549051630f38ca0d60e31b81526001600160a01b038881166004830152602482018490529293509116906379c6506890604401600060405180830381600087803b158015613f9a57600080fd5b505af1158015613fae573d6000803e3d6000fd5b505050506000600554613fbf612228565b613fc99087615558565b613fd39190615577565b600088815260146020526040812060020154919250901561401c5760008881526014602052604090206002015461400d9062278d00615558565b61401790426155c8565b61401f565b60005b9050601354601560006013548152602001908152602001600020600001819055508660156000601354815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550876015600060135481526020019081526020016000206002018190555080601560006013548152602001908152602001600020600301819055504260156000601354815260200190815260200160002060040181905550856015600060135481526020019081526020016000206005018190555081601560006013548152602001908152602001600020600601819055506000601560006013548152602001908152602001600020600701819055506000601560006013548152602001908152602001600020600801819055506014600089815260200190815260200160002060070160009054906101000a90046001600160a01b0316601560006013548152602001908152602001600020600b0160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082601560006013548152602001908152602001600020600901819055506014600089815260200190815260200160002060080154601560006013548152602001908152602001600020600a01819055506000601560006013548152602001908152602001600020600b0160146101000a81548160ff0219169083151502179055506000601560006013548152602001908152602001600020600b0160156101000a81548160ff0219169083151502179055506000601560006013548152602001908152602001600020600b0160166101000a81548160ff021916908360ff16021790555083601560006013548152602001908152602001600020600b0160176101000a81548160ff02191690831515021790555083151560001515146142d75760006142da565b60015b6013546000908152601560209081526040808320600b018054941515600160c01b0260ff60c01b19909516949094179093556001600160a01b038a168252601c81528282208b835281528282208890556014905290812060030180548892906143449084906155c8565b90915550506000888152601460205260408120600401805484929061436a9084906155c8565b90915550506001600160a01b038716600090815260166020526040812080548892906143979084906155c8565b90915550506001600160a01b038716600090815260196020526040812080548492906143c49084906155c8565b9091555050601354604080518a8152602081018990524291810191909152606081018390526001600160a01b03891691907f0206c6fc83cce751511b5967bcd8ce71e05610271791c0a7a66c09914c12b4b5906080015b60405180910390a35050505050505050565b60006144388261269c565b6000838152601560209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b90930490921615156102008301529192509033146145545760405162461bcd60e51b8152600401610dd1906156b3565b811561350e576006541561458f576000612710600654846145759190615558565b61457f9190615577565b905061458b81846157dd565b9250505b6000614599612228565b6005546145a69085615558565b6145b09190615577565b90506000600354600454856145c59190615558565b6145cf9190615577565b600d546040516370a0823160e01b815230600482015291925082916001600160a01b03909116906370a082319060240160206040518083038186803b15801561461757600080fd5b505afa15801561462b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061464f9190615599565b10156146c35760405162461bcd60e51b815260206004820152603b60248201527f544f4b454e205354414b453a204e4f5420454e4f55474820544f4b454e20424160448201527f4c414e434520544f2050415920554e5354414b452052455741524400000000006064820152608401610dd1565b600d5460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561470f57600080fd5b505af1158015614723573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614747919061576f565b6147b95760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e205354414b453a20554e41424c4520544f205452414e534645522060448201527f434f4d4d495353494f4e205041594d454e5420544f20524543495049454e54006064820152608401610dd1565b60008581526015602090815260408083206002015483526014909152812060050180548492906147ea9084906155c8565b909155505060008581526015602090815260408083206002015483526014909152812060060180548692906148209084906155c8565b9091555050600085815260156020526040812060070180548492906148469084906155c8565b90915550506000858152601560205260408120600801805486929061486c9084906155c8565b909155505033600090815260176020526040812080548492906148909084906155c8565b909155505033600090815260186020526040812080548692906148b49084906155c8565b90915550506040808401516000818152601460209081529083902083516101a081018552815481526001820154928101929092526002810154938201939093526003830154606082015260048301546080820152600583015460a0820152600683015460c082015260078301546001600160a01b031660e082015260088301546101008083019190915260099093015460ff80821615156101208401529381048416151561014083015262010000810484161515610160830152630100000090049092161580156101808401529091906149ed57600c546040516375786f8f60e01b8152336004820152602481018890526001600160a01b03909116906375786f8f90604401600060405180830381600087803b1580156149d457600080fd5b505af11580156149e8573d6000803e3d6000fd5b505050505b604051848152339088907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060200160405180910390a350505050505050565b6000614a3882612cf0565b6000838152601560209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b9093049092161515610200830152919250903314614b545760405162461bcd60e51b8152600401610dd1906156b3565b811561350e5760065415614ba657600061271060065484614b759190615558565b614b7f9190615577565b9050614b8b81846157dd565b925080600f6000828254614b9f91906155c8565b9091555050505b81471015614bc65760405162461bcd60e51b8152600401610dd1906157f4565b6040513390600090829085908381818185875af1925050503d8060008114614c0a576040519150601f19603f3d011682016040523d82523d6000602084013e614c0f565b606091505b5050905080614c305760405162461bcd60e51b8152600401610dd19061582b565b6000600554614c3d612228565b614c479087615558565b614c519190615577565b60008781526015602090815260408083206002015483526014909152812060050180549293508792909190614c879084906155c8565b90915550506000868152601560209081526040808320600201548352601490915281206006018054839290614cbd9084906155c8565b909155505060008681526015602052604081206007018054879290614ce39084906155c8565b909155505060008681526015602052604081206008018054839290614d099084906155c8565b90915550503360009081526017602052604081208054879290614d2d9084906155c8565b90915550503360009081526018602052604081208054839290614d519084906155c8565b90915550506040808501516000818152601460209081529083902083516101a081018552815481526001820154928101929092526002810154938201939093526003830154606082015260048301546080820152600583015460a0820152600683015460c082015260078301546001600160a01b031660e082015260088301546101008083019190915260099093015460ff8082161515610120840152938104841615156101408301526201000081048416151561016083015263010000009004909216158015610180840152909190614e8a57600c546040516375786f8f60e01b8152336004820152602481018590526001600160a01b03909116906375786f8f90604401600060405180830381600087803b158015614e7157600080fd5b505af1158015614e85573d6000803e3d6000fd5b505050505b604051878152339089907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060200161441b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215614f2057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715614f6157614f61614f27565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614f9057614f90614f27565b604052919050565b600067ffffffffffffffff821115614fb257614fb2614f27565b5060051b60200190565b600082601f830112614fcd57600080fd5b81356020614fe2614fdd83614f98565b614f67565b82815260059290921b8401810191818101908684111561500157600080fd5b8286015b8481101561501c5780358352918301918301615005565b509695505050505050565b80356001600160a01b038116811461503e57600080fd5b919050565b6000806040838503121561505657600080fd5b823567ffffffffffffffff81111561506d57600080fd5b61507985828601614fbc565b92505061508860208401615027565b90509250929050565b6000602082840312156150a357600080fd5b813567ffffffffffffffff8111156150ba57600080fd5b6150c684828501614fbc565b949350505050565b60006101a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015161513160e08401826001600160a01b03169052565b50610100838101519083015261012080840151151590830152610140808401511515908301526101608084015115159083015261018080840151801515828501525b505092915050565b60006020828403121561518d57600080fd5b61519682615027565b9392505050565b8015158114613de957600080fd5b803561503e8161519d565b600080600080608085870312156151cc57600080fd5b843593506151dc60208601615027565b92506040850135915060608501356151f38161519d565b939692955090935050565b600080600080600080600080610100898b03121561521b57600080fd5b88359750602089013596506040890135955061523960608a01615027565b94506080890135935060a08901356152508161519d565b925060c08901356152608161519d565b915060e08901356152708161519d565b809150509295985092959890939650565b6000806040838503121561529457600080fd5b8235915060208301356152a68161519d565b809150509250929050565b600080604083850312156152c457600080fd5b6152cd83615027565b946020939093013593505050565b815181526020808301516102208301916152ff908401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015181840152506101408084015181840152506101608084015161537b828501826001600160a01b03169052565b5050610180838101511515908301526101a0808401511515908301526101c08084015160ff16908301526101e0808401511515908301526102008084015180151582850152615173565b600080604083850312156153d857600080fd5b50508035926020909101359150565b600080604083850312156153fa57600080fd5b823567ffffffffffffffff81111561541157600080fd5b61541d85828601614fbc565b92505060208301356152a68161519d565b803560ff8116811461503e57600080fd5b6000610220828403121561545257600080fd5b61545a614f3d565b8235815261546a60208401615027565b602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152506101408084013581830152506101606154dd818501615027565b908201526101806154ef8482016151ab565b908201526101a06155018482016151ab565b908201526101c061551384820161542e565b908201526101e06155258482016151ab565b908201526102006155378482016151ab565b908201529392505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561557257615572615542565b500290565b60008261559457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156155ab57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600082198211156155db576155db615542565b500190565b60006000198214156155f4576155f4615542565b5060010190565b6020808252602a908201527f544f4b454e205354414b453a2055736572207374616b65206d61782076616c75604082015269329037b3103a37b5b2b760b11b606082015260800190565b60208082526019908201527f496e636f72726563742066656520616d6f756e742073656e7400000000000000604082015260600190565b6020808252601f908201527f544f4b454e205354414b453a20494e56414c4944205354414b45204c49535400604082015260600190565b60208082526026908201527f5354414b494e473a204f4e4c59204f574e4552204f46205354414b452043414e60408201526520434c41494d60d01b606082015260800190565b6020808252601590820152741513d2d1538814d51052d25391ce881313d0d2d151605a1b604082015260600190565b60208082526027908201527f5354414b453a204f4e4c59204f574e4552204f46205354414b452043414e20576040820152664954484452415760c81b606082015260800190565b60006020828403121561578157600080fd5b81516151968161519d565b60208082526031908201527f544f4b454e205354414b453a205472616e7366657220746f6b656e20746f205460408201527013d2d1538814d51052d14819985a5b1959607a1b606082015260800190565b6000828210156157ef576157ef615542565b500390565b6020808252601d908201527f5354414b494e473a20496e73756666696369656e742062616c616e6365000000604082015260600190565b6020808252601490820152732330b4b632b2103a379039b2b7321022ba3432b960611b604082015260600190565b6020808252601d908201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604082015260600190565b805169ffffffffffffffffffff8116811461503e57600080fd5b600080600080600060a086880312156158c257600080fd5b6158cb86615890565b94506020860151935060408601519250606086015191506158ee60808701615890565b90509295509295909350565b6000602080838503121561590d57600080fd5b825167ffffffffffffffff81111561592457600080fd5b8301601f8101851361593557600080fd5b8051615943614fdd82614f98565b81815260059190911b8201830190838101908783111561596257600080fd5b928401925b8284101561598057835182529284019290840190615967565b97965050505050505056fea264697066735822122002ab46bf01a78e0f7719200c53a8a24b871977768f13ca9eaa2e88cba095bd1064736f6c63430008080033000000000000000000000000d1896b599c0c21cd18d203c8b8c8919c2362f63d0000000000000000000000002fefda2dcb0f9720b0da2835018221cfd0fe1c3f00000000000000000000000014b0247607718e62537d5df968a1d04c556af4e7000000000000000000000000ab594600376ec9fd91f8e885dadf0ce036862de0000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f00000000000000000000000007985c70f427d5fdf906003f90073fbd2456f4a9