2 txs
3 calls
constructor
constructor(address _token, address _stakeApy, address _vToken, address _dToken, address _priceFeed, address _usdToken, 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)
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)
token
viewfunction token() view returns (address)
tokenDecimal
viewfunction tokenDecimal() view returns (uint256)
totalFeeClaimToken
viewfunction totalFeeClaimToken() view returns (uint256)
totalFeeWithdrawToken
viewfunction totalFeeWithdrawToken() 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)
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
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)
setOracleAddress
nonpayablefunction setOracleAddress(address _oracleAddress)
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 _canStakeToken, bool _canStakeUsd, bool _isMaxEarn)
setTokenContract
nonpayablefunction setTokenContract(address _token)
setUsdContract
nonpayablefunction setUsdContract(address _usdAddress)
setUsdStakeFee
nonpayablefunction setUsdStakeFee(uint256 _fee)
setUsePrice
nonpayablefunction setUsePrice(uint8 _usePrice)
setWithdrawFee
nonpayablefunction setWithdrawFee(uint256 _withdrawFee)
stake
payablefunction stake(uint256 _poolId, uint256 _stakeValue) 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
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
0x60a06040526364b81690600190815560028190556003805460ff19169091179055670de0b6b3a76400006004908155620f42406005556305f5e1006006556000600781905560088190556009819055600a80546001600160a01b03191673e17701c3c43cfbe818ece78065928a41bf87cf711790556014919091556015819055601f553480156200008f57600080fd5b506040516200653138038062006531833981016040819052620000b2916200048d565b620000bd3362000420565b601180546001600160a01b03199081166001600160a01b038a811691909117909255600b80548216888416179055600c80548216878416179055600f80548216898416179055601080548216858416179055600e8054909116918316919091179055606083901b6001600160601b03191660805262000413601660205260017f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf495560007f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf4a819055600c7f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf4b819055547f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf5080546001600160a01b03199081166001600160a01b039093169283179091556103e87f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf518190557f4c4dc693d7db52f85fe052106f4b4b920e78e8ef37dee82878a60ab8585faf528054630100010163ffffffff19918216811790925560027fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab2885648557fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab288564986905560127fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab288564a557fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab288564f80548516861790557fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab28856508390557fcaff291fe014adc6b72a172705750b4cabe8f8667664d2924a166caab2885651805482168317905560038087527ff06d282f967055cb1eee17e04aa005b9682a620f4bbcfaee55ba78607a3d87ae557ff06d282f967055cb1eee17e04aa005b9682a620f4bbcfaee55ba78607a3d87af9590955560187ff06d282f967055cb1eee17e04aa005b9682a620f4bbcfaee55ba78607a3d87b0557ff06d282f967055cb1eee17e04aa005b9682a620f4bbcfaee55ba78607a3d87b580549093169093179091557ff06d282f967055cb1eee17e04aa005b9682a620f4bbcfaee55ba78607a3d87b6557ff06d282f967055cb1eee17e04aa005b9682a620f4bbcfaee55ba78607a3d87b78054909216179055565b5050505050505062000522565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200048857600080fd5b919050565b600080600080600080600060e0888a031215620004a957600080fd5b620004b48862000470565b9650620004c46020890162000470565b9550620004d46040890162000470565b9450620004e46060890162000470565b9350620004f46080890162000470565b92506200050460a0890162000470565b91506200051460c0890162000470565b905092959891949750929550565b60805160601c615fe9620005486000396000818161080a0152612e8f0152615fe96000f3fe6080604052600436106103765760003560e01c8063830ba65e116101d1578063b6ac642a11610102578063d4c1be69116100a0578063f2fde38b1161006f578063f2fde38b146109cf578063f897a22b146109ef578063fc0c546a14610a0f578063fddac16314610a2f57600080fd5b8063d4c1be6914610959578063da8909e514610979578063e1e86ced14610999578063e941fa78146109b957600080fd5b8063c99f4929116100dc578063c99f4929146108fa578063ca1c481614610910578063cb0da8b314610930578063cfdcc3d21461094357600080fd5b8063b6ac642a146108a4578063bbcd5bbe146108c4578063c73df2fa146108e457600080fd5b806393af76311161016f578063a51dda1611610149578063a51dda161461082e578063afc903ba1461084e578063b4346a4a14610864578063b5242e3f1461088457600080fd5b806393af7631146107c657806397e3b781146107e65780639e87a5cd146107fb57600080fd5b80638b424267116101ab5780638b4242671461075d5780638ceb8fcc146107735780638da5cb5b146107935780638e15f473146107b157600080fd5b8063830ba65e146106ed578063841622c61461071a578063898dedec1461074757600080fd5b80633d61aba8116102ab5780635a2ff22b1161024957806368127b711161022357806368127b711461066d578063715018a6146106a557806373c574ba146106ba5780637b0472f0146106da57600080fd5b80635a2ff22b146106225780635be436d9146106425780635caed0291461065757600080fd5b8063466e515c11610285578063466e515c146105a25780634c69c00f146105cf578063505bcd9f146105ef5780635a2357a41461060257600080fd5b80633d61aba81461054257806340fff80c1461056257806341a2ac701461058257600080fd5b806328a4a78411610318578063362efc3d116102f2578063362efc3d146104d9578063379607f5146104ef57806338d07436146105025780633a2f32881461051557600080fd5b806328a4a7841461048657806328c77820146104a65780632c8bb0e3146104b957600080fd5b806309d3fefe1161035457806309d3fefe146103f65780630a8a7c0614610416578063108e2d7e146104435780631a4d24281461047057600080fd5b806301189cc21461037b5780630388bf1e1461039d5780630582d9f5146103c6575b600080fd5b34801561038757600080fd5b5061039b61039636600461544d565b610a4f565b005b3480156103a957600080fd5b506103b360065481565b6040519081526020015b60405180910390f35b3480156103d257600080fd5b506103e66103e1366004615582565b610a5c565b60405190151581526020016103bd565b34801561040257600080fd5b506103b36104113660046155d0565b610b20565b34801561042257600080fd5b5061043661043136600461544d565b610b75565b6040516103bd919061560d565b34801561044f57600080fd5b506103b361045e3660046156ba565b601b6020526000908152604090205481565b34801561047c57600080fd5b506103b360145481565b34801561049257600080fd5b5061039b6104a13660046156f5565b610cb8565b61039b6104b43660046155d0565b610d51565b3480156104c557600080fd5b5061039b6104d43660046156ba565b610e07565b3480156104e557600080fd5b506103b360055481565b61039b6104fd36600461544d565b610e31565b61039b61051036600461573d565b610f92565b34801561052157600080fd5b506103b36105303660046156ba565b60186020526000908152604090205481565b34801561054e57600080fd5b5061039b61055d36600461576d565b6117cb565b34801561056e57600080fd5b5061039b61057d3660046156ba565b6118d8565b34801561058e57600080fd5b5061039b61059d36600461544d565b611968565b3480156105ae57600080fd5b506105c26105bd36600461544d565b611975565b6040516103bd9190615797565b3480156105db57600080fd5b5061039b6105ea3660046156ba565b611b14565b61039b6105fd366004615881565b611ba0565b34801561060e57600080fd5b5061039b61061d3660046156ba565b612044565b34801561062e57600080fd5b5061039b61063d36600461544d565b61206e565b34801561064e57600080fd5b506103b3612242565b34801561066357600080fd5b506103b360045481565b34801561067957600080fd5b50600f5461068d906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b3480156106b157600080fd5b5061039b612268565b3480156106c657600080fd5b506103e66106d536600461544d565b61227c565b61039b6106e8366004615881565b6125da565b3480156106f957600080fd5b506103b36107083660046156ba565b60196020526000908152604090205481565b34801561072657600080fd5b506103b36107353660046156ba565b601a6020526000908152604090205481565b34801561075357600080fd5b506103b360095481565b34801561076957600080fd5b506103b360075481565b34801561077f57600080fd5b506103b361078e36600461544d565b612a0c565b34801561079f57600080fd5b506000546001600160a01b031661068d565b3480156107bd57600080fd5b506103b3612e8a565b3480156107d257600080fd5b5061039b6107e136600461544d565b612f29565b3480156107f257600080fd5b5061039b612f36565b34801561080757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061068d565b34801561083a57600080fd5b5061039b61084936600461544d565b612f6c565b34801561085a57600080fd5b506103b3601f5481565b34801561087057600080fd5b506103b361087f36600461544d565b612f79565b34801561089057600080fd5b506103e661089f36600461544d565b6133ec565b3480156108b057600080fd5b5061039b6108bf36600461544d565b613726565b3480156108d057600080fd5b5061039b6108df3660046156ba565b613733565b3480156108f057600080fd5b506103b360125481565b34801561090657600080fd5b506103b360015481565b34801561091c57600080fd5b5061039b61092b3660046158a3565b61375d565b61039b61093e36600461544d565b613814565b34801561094f57600080fd5b506103b360135481565b34801561096557600080fd5b5061039b61097436600461594a565b613cc3565b34801561098557600080fd5b50600e5461068d906001600160a01b031681565b3480156109a557600080fd5b5061039b6109b4366004615a4d565b614128565b3480156109c557600080fd5b506103b360085481565b3480156109db57600080fd5b5061039b6109ea3660046156ba565b614197565b3480156109fb57600080fd5b5060105461068d906001600160a01b031681565b348015610a1b57600080fd5b5060115461068d906001600160a01b031681565b348015610a3b57600080fd5b5061039b610a4a3660046156ba565b614210565b610a5761429a565b601f55565b600080610a6884610b20565b90506000600654610a77612242565b610a819084615a7e565b610a8b9190615a9d565b600e54604051637f6408d360e01b81529192506000916001600160a01b0390911690637f6408d390610ac39088908690600401615abf565b60206040518083038186803b158015610adb57600080fd5b505afa158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b139190615ad8565b9190911495945050505050565b600080805b8351811015610b6e57610b50848281518110610b4357610b43615af1565b6020026020010151612f79565b610b5a9083615b07565b915080610b6681615b1f565b915050610b25565b5092915050565b610bf1604051806101a001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b5060009081526016602090815260409182902082516101a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b031660e082015260088201546101008083019190915260099092015460ff8082161515610120840152928104831615156101408301526201000081048316151561016083015263010000009004909116151561018082015290565b610cc061429a565b336000908152601e60209081526040808320878452909152812054610ce6908490615b07565b6000868152601660205260409020600101549091501580610d1857506000858152601660205260409020600101548111155b610d3d5760405162461bcd60e51b8152600401610d3490615b3a565b60405180910390fd5b610d4a85858584866142f4565b5050505050565b601f543414610d725760405162461bcd60e51b8152600401610d3490615b84565b6000815111610dc35760405162461bcd60e51b815260206004820152601f60248201527f544f4b454e205354414b453a20494e56414c4944205354414b45204c495354006044820152606401610d34565b60005b8151811015610e0357610df1828281518110610de457610de4615af1565b6020026020010151610e31565b80610dfb81615b1f565b915050610dc6565b5050565b610e0f61429a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601f543414610e525760405162461bcd60e51b8152600401610d3490615b84565b6000818152601760209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b90930490921615156102008301523314610f6a5760405162461bcd60e51b8152600401610d3490615bbb565b806101e0015115610f7e57610f7e82614805565b80610200015115610e0357610e0382614daa565b600254600114610fb45760405162461bcd60e51b8152600401610d3490615c01565b6000600255601f543414610fda5760405162461bcd60e51b8152600401610d3490615b84565b6000828152601760209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b909304909216151561020083015233146110f25760405162461bcd60e51b8152600401610d3490615c30565b8061018001511561113d5760405162461bcd60e51b81526020600482015260156024820152745354414b453a2057495448445241572046414c534560581b6044820152606401610d34565b428160600151116117c15761115183610e31565b60408181015160a0808401516000838152601660209081529085902085516101a08101875281548152600182015492810192909252600281015482870152600381015460608301526004808201546080840152600582015494830194909452600681015460c083015260078101546001600160a01b0390811660e084015260088201546101008085019190915260099092015460ff808216151561012080870182905294830482161515610140870152620100008304821615156101608088019190915263010000009093049091161515610180860152908901519289015197516370a0823160e01b815233968101969096529596939592949293919282918416906370a082319060240160206040518083038186803b15801561127457600080fd5b505afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190615ad8565b10156113095760405162461bcd60e51b815260206004820152602660248201527f5354414b494e473a20204e4f5420454e4f5547482053554220544f4b454e2042604482015265414c414e434560d01b6064820152608401610d34565b604051636eb1769f60e11b815233600482015230602482015281906001600160a01b0384169063dd62ed3e9060440160206040518083038186803b15801561135057600080fd5b505afa158015611364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190615ad8565b10156113d65760405162461bcd60e51b815260206004820152601b60248201527f5354414b494e473a204d75737420617070726f766520666972737400000000006044820152606401610d34565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd90606401602060405180830381600087803b15801561142457600080fd5b505af1158015611438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145c9190615c77565b6114785760405162461bcd60e51b8152600401610d3490615c94565b604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156114ba57600080fd5b505af11580156114ce573d6000803e3d6000fd5b50505050821561155457871561152f576008541561152a576000612710600854876114f99190615a7e565b6115039190615a9d565b905061150f8187615ce5565b955080601360008282546115239190615b07565b9091555050505b611554565b6000898152601760205260408120600b01805460ff60a81b1916600160a81b17905594505b600089815260176020526040808220600b01805460ff60a01b1916600160a01b179055518a917f8e55ccfc9778ff8eba1646d765cf1982537ce0f9257054a17b48aad74525018391a284156117ba576011546040516370a0823160e01b815230600482015286916001600160a01b0316906370a082319060240160206040518083038186803b1580156115e657600080fd5b505afa1580156115fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161e9190615ad8565b101561163c5760405162461bcd60e51b8152600401610d3490615cfc565b601154602088015160405163a9059cbb60e01b81526001600160a01b039092169163a9059cbb91611671918990600401615abf565b602060405180830381600087803b15801561168b57600080fd5b505af115801561169f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c39190615c77565b6116df5760405162461bcd60e51b8152600401610d3490615d59565b336000908152601e60209081526040808320898452909152812054611705908790615ce5565b60008881526016602052604081206003015491925090611726908890615ce5565b336000818152601e602090815260408083208d8452825280832087905560168252808320600301859055928252601c90529081208054929350899290919061176f908490615b07565b909155505060065461177f612242565b6117899089615a7e565b6117939190615a9d565b336000908152601d6020526040812080549091906117b2908490615b07565b909155505050505b5050505050505b5050600160025550565b6117d361429a565b600081116118145760405162461bcd60e51b815260206004820152600e60248201526d1253959053125108105353d5539560921b6044820152606401610d34565b60405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb906118429033908590600401615abf565b602060405180830381600087803b15801561185c57600080fd5b505af1158015611870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118949190615c77565b610e035760405162461bcd60e51b815260206004820152601560248201527421a0a72727aa102ba4aa24222920ab902a27a5a2a760591b6044820152606401610d34565b6118e061429a565b6001600160a01b0381166119465760405162461bcd60e51b815260206004820152602760248201527f4d41524b4554504c4143453a20494e56414c494420434f4d4d495353494f4e206044820152664144445245535360c81b6064820152608401610d34565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b61197061429a565b600755565b611a196040518061022001604052806000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600015158152602001600015158152602001600060ff1681526020016000151581526020016000151581525090565b506000908152601760209081526040918290208251610220810184528154815260018201546001600160a01b03908116938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008401526009810154610120840152600a810154610140840152600b015490811661016083015260ff600160a01b820481161515610180840152600160a81b8204811615156101a0840152600160b01b820481166101c0840152600160b81b8204811615156101e0840152600160c01b90910416151561020082015290565b611b1c61429a565b6001600160a01b038116611b7e5760405162461bcd60e51b815260206004820152602360248201527f4d41524b4554504c4143453a20494e56414c4944204f5241434c45204144445260448201526245535360e81b6064820152608401610d34565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600254600114611bc25760405162461bcd60e51b8152600401610d3490615c01565b6000600255601f543414611be85760405162461bcd60e51b8152600401610d3490615b84565b60008111611c385760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610d34565b60008281526016602090815260409182902082516101a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b031660e082015260088201546101008083019190915260099092015460ff808216151561012084015292810483161515610140830181905262010000820484161515610160840152630100000090910490921615156101808201529080611d325760405162461bcd60e51b8152602060048201526003602482015262434e5360e81b6044820152606401610d34565b6010546040516370a0823160e01b815233600482015284916001600160a01b0316906370a082319060240160206040518083038186803b158015611d7557600080fd5b505afa158015611d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dad9190615ad8565b1015611dcb5760405162461bcd60e51b8152600401610d3490615db6565b601054604051636eb1769f60e11b815233600482015230602482015284916001600160a01b03169063dd62ed3e9060440160206040518083038186803b158015611e1457600080fd5b505afa158015611e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4c9190615ad8565b1015611e9a5760405162461bcd60e51b815260206004820152601f60248201527f544f4b454e205354414b453a204d75737420617070726f7665206669727374006044820152606401610d34565b601054600a546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018690529116906323b872dd90606401602060405180830381600087803b158015611ef057600080fd5b505af1158015611f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f289190615c77565b611f445760405162461bcd60e51b8152600401610d3490615c94565b60095415611f745761271060095484611f5d9190615a7e565b611f679190615a9d565b611f719084615ce5565b92505b600554600454611f849085615a7e565b611f8e9190615a9d565b92506000611f9a612e8a565b600654611fa79086615a7e565b611fb19190615a9d565b336000908152601e6020908152604080832089845290915281205491925090611fdb908390615b07565b600087815260166020526040902060010154909150158061200d57506000868152601660205260409020600101548111155b6120295760405162461bcd60e51b8152600401610d3490615b3a565b6120378633848460016142f4565b5050600160025550505050565b61204c61429a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b61207661429a565b6000818152601760209081526040918290208251610220810184528154815260018201546001600160a01b03908116938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008401526009810154610120840152600a810154610140840152600b015490811661016083015260ff600160a01b820481161515610180840152600160a81b8204811615156101a08401819052600160b01b830482166101c0850152600160b81b8304821615156101e0850152600160c01b9092041615156102008301526121c75760405162461bcd60e51b815260206004820152602360248201527f5354414b494e473a2043616e206e6f7420757064617465206e6f742070656e64604482015262696e6760e81b6064820152608401610d34565b6101c081015160ff161561221d5760405162461bcd60e51b815260206004820152601f60248201527f5354414b494e473a2054686973207374616b65207761732075706461746564006044820152606401610d34565b506000908152601760205260409020600b01805460ff60b01b1916600160b01b179055565b60035460009060ff16600114156122605761225b612e8a565b905090565b61225b61534d565b61227061429a565b61227a60006153fd565b565b6000806017600084815260200190815260200160002060405180610220016040529081600082015481526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600b820160149054906101000a900460ff16151515158152602001600b820160159054906101000a900460ff16151515158152602001600b820160169054906101000a900460ff1660ff1660ff168152602001600b820160179054906101000a900460ff16151515158152602001600b820160189054906101000a900460ff1615151515815250509050600081604001519050600082602001519050600060166000848152602001908152602001600020604051806101a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600882015481526020016009820160009054906101000a900460ff161515151581526020016009820160019054906101000a900460ff161515151581526020016009820160029054906101000a900460ff161515151581526020016009820160039054906101000a900460ff1615151515815250509050600061251687612f79565b90506000600654612525612242565b61252f9084615a7e565b6125399190615a9d565b6101808401519091508190156125ce57600e54604051637f6408d360e01b81526001600160a01b0390911690637f6408d39061257b9088908690600401615abf565b60206040518083038186803b15801561259357600080fd5b505afa1580156125a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cb9190615ad8565b90505b14979650505050505050565b6002546001146125fc5760405162461bcd60e51b8152600401610d3490615c01565b6000600255601f5434146126225760405162461bcd60e51b8152600401610d3490615b84565b600081116126725760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610d34565b60008281526016602090815260409182902082516101a081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b031660e082015260088201546101008083019190915260099092015460ff80821615156101208401529281048316151561014083015262010000810483161515610160830181905263010000009091049092161515610180820152908061276c5760405162461bcd60e51b8152602060048201526003602482015262434e5360e81b6044820152606401610d34565b6011546040516370a0823160e01b815233600482015284916001600160a01b0316906370a082319060240160206040518083038186803b1580156127af57600080fd5b505afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190615ad8565b10156128055760405162461bcd60e51b8152600401610d3490615db6565b601154604051636eb1769f60e11b815233600482015230602482015284916001600160a01b03169063dd62ed3e9060440160206040518083038186803b15801561284e57600080fd5b505afa158015612862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128869190615ad8565b10156128d45760405162461bcd60e51b815260206004820152601f60248201527f544f4b454e205354414b453a204d75737420617070726f7665206669727374006044820152606401610d34565b601154600a546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018690529116906323b872dd90606401602060405180830381600087803b15801561292a57600080fd5b505af115801561293e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129629190615c77565b61297e5760405162461bcd60e51b8152600401610d3490615c94565b336000908152601e602090815260408083208784529091528120546129a4908590615b07565b60008681526016602052604090206001015490915015806129d657506000858152601660205260409020600101548111155b6129f25760405162461bcd60e51b8152600401610d3490615b3a565b612a008533868460006142f4565b50506001600255505050565b60008181526017602090815260408083208151610220810183528154815260018201546001600160a01b03908116948201949094526002820154928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b015491821661016082015260ff600160a01b83048116158015610180840152600160a81b8404821615156101a0840152600160b01b840482166101c0840152600160b81b8404821615156101e0840152600160c01b90930416151561020082015290612b115750600092915050565b600f546040808301519051635325f64f60e11b815260009283926001600160a01b039091169163a64bec9e91612b4d9160040190815260200190565b60206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190615ad8565b90506000805b82811015612e6f57600f546040868101519051635e15f0df60e11b815260048101919091526000916001600160a01b03169063bc2be1be9060240160006040518083038186803b158015612bf657600080fd5b505afa158015612c0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c329190810190615dfe565b8281518110612c4357612c43615af1565b6020908102919091010151600f546040808901519051639067b67760e01b81529293506000926001600160a01b0390921691639067b67791612c8b9160040190815260200190565b60006040518083038186803b158015612ca357600080fd5b505afa158015612cb7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cdf9190810190615dfe565b8381518110612cf057612cf0615af1565b6020908102919091010151600f546040898101519051635d416d0960e01b815260048101919091529192506001600160a01b031690635d416d099060240160006040518083038186803b158015612d4657600080fd5b505afa158015612d5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d829190810190615dfe565b8381518110612d9357612d93615af1565b602002602001015193508660800151821015612db3578660800151612db5565b815b915060008760600151600014612de05742886060015110612dd65742612de2565b8760600151612de2565b425b90508115612dfe5780821115612df85780612e00565b81612e00565b805b9150818311612e5957620186a06301da9c008960c00151878686612e249190615ce5565b612e2e9190615a7e565b612e389190615a7e565b612e429190615a9d565b612e4c9190615a9d565b612e569088615b07565b96505b5050508080612e6790615b1f565b915050612ba3565b50610100840151612e809084615ce5565b9695505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015612ee657600080fd5b505afa158015612efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1e9190615ea9565b509195945050505050565b612f3161429a565b600955565b612f3e61429a565b604051339081904780156108fc02916000818181858888f19350505050158015610e03573d6000803e3d6000fd5b612f7461429a565b601555565b60008181526017602090815260408083208151610220810183528154815260018201546001600160a01b03908116948201949094526002820154928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b015491821661016082015260ff600160a01b83048116158015610180840152600160a81b8404821615156101a0840152600160b01b840482166101c0840152600160b81b8404821615156101e0840152600160c01b9093041615156102008201529061307e5750600092915050565b600f546040808301519051635325f64f60e11b815260009283926001600160a01b039091169163a64bec9e916130ba9160040190815260200190565b60206040518083038186803b1580156130d257600080fd5b505afa1580156130e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310a9190615ad8565b90506000805b828110156133dc57600f546040868101519051635e15f0df60e11b815260048101919091526000916001600160a01b03169063bc2be1be9060240160006040518083038186803b15801561316357600080fd5b505afa158015613177573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261319f9190810190615dfe565b82815181106131b0576131b0615af1565b6020908102919091010151600f546040808901519051639067b67760e01b81529293506000926001600160a01b0390921691639067b677916131f89160040190815260200190565b60006040518083038186803b15801561321057600080fd5b505afa158015613224573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261324c9190810190615dfe565b838151811061325d5761325d615af1565b6020908102919091010151600f546040898101519051635d416d0960e01b815260048101919091529192506001600160a01b031690635d416d099060240160006040518083038186803b1580156132b357600080fd5b505afa1580156132c7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526132ef9190810190615dfe565b838151811061330057613300615af1565b602002602001015193508660800151821015613320578660800151613322565b815b91506000876060015160001461334d5742886060015110613343574261334f565b876060015161334f565b425b9050811561336b5780821115613365578061336d565b8161336d565b805b91508183116133c657620186a06301da9c008960a001518786866133919190615ce5565b61339b9190615a7e565b6133a59190615a7e565b6133af9190615a9d565b6133b99190615a9d565b6133c39088615b07565b96505b50505080806133d490615b1f565b915050613110565b5060e0840151612e809084615ce5565b6000806017600084815260200190815260200160002060405180610220016040529081600082015481526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600b820160149054906101000a900460ff16151515158152602001600b820160159054906101000a900460ff16151515158152602001600b820160169054906101000a900460ff1660ff1660ff168152602001600b820160179054906101000a900460ff16151515158152602001600b820160189054906101000a900460ff1615151515815250509050600081604001519050600082602001519050600060166000848152602001908152602001600020604051806101a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600882015481526020016009820160009054906101000a900460ff161515151581526020016009820160019054906101000a900460ff161515151581526020016009820160029054906101000a900460ff161515151581526020016009820160039054906101000a900460ff1615151515815250509050600061368687612a0c565b61018083015190915081901561371b57600e54604051637f6408d360e01b81526001600160a01b0390911690637f6408d3906136c89087908690600401615abf565b60206040518083038186803b1580156136e057600080fd5b505afa1580156136f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137189190615ad8565b90505b149695505050505050565b61372e61429a565b600855565b61373b61429a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b61376561429a565b60008981526016602052604081208a815560018082018b9055600282018a90556007820180546001600160a01b0319166001600160a01b038b16179055600882018890556009909101805462ff00ff191687151562ff000019161762010000871515021763ff00ff0019166101008615150263ff0000001916176301000000851515021790556137f6908b90615b07565b90506014548111156138085760148190555b50505050505050505050565b6002546001146138365760405162461bcd60e51b8152600401610d3490615c01565b6000600255601f54341461385c5760405162461bcd60e51b8152600401610d3490615b84565b6000818152601760209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b909304909216151561020083015233146139745760405162461bcd60e51b8152600401610d3490615c30565b8061018001516139be5760405162461bcd60e51b81526020600482015260156024820152745354414b453a2057495448445241572046414c534560581b6044820152606401610d34565b806101a00151613a105760405162461bcd60e51b815260206004820152601760248201527f5354414b494e473a2043616e206e6f74207570646174650000000000000000006044820152606401610d34565b806101c0015160ff16600114613a725760405162461bcd60e51b815260206004820152602160248201527f5354414b494e473a2054686973207374616b652063616e206e6f7420636c61696044820152606d60f81b6064820152608401610d34565b60008281526017602052604090819020600b01805460ff60b01b1916600160b11b1790558181015160a083015160115492516370a0823160e01b81523060048201529192909182916001600160a01b0316906370a082319060240160206040518083038186803b158015613ae557600080fd5b505afa158015613af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b1d9190615ad8565b1015613b3b5760405162461bcd60e51b8152600401610d3490615cfc565b601154602084015160405163a9059cbb60e01b81526001600160a01b039092169163a9059cbb91613b70918590600401615abf565b602060405180830381600087803b158015613b8a57600080fd5b505af1158015613b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bc29190615c77565b613bde5760405162461bcd60e51b8152600401610d3490615d59565b336000908152601e60209081526040808320858452909152812054613c04908390615ce5565b60008481526016602052604081206003015491925090613c25908490615ce5565b336000818152601e60209081526040808320898452825280832087905560168252808320600301859055928252601c905290812080549293508592909190613c6e908490615b07565b9091555050600654613c7e612242565b613c889085615a7e565b613c929190615a9d565b336000908152601d602052604081208054909190613cb1908490615b07565b90915550506001600255505050505050565b613ccb61429a565b6000816000015190506000826040015190506000836020015190508360000151601760008581526020019081526020016000206000018190555083602001516017600085815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360400151601760008581526020019081526020016000206002018190555083606001516017600085815260200190815260200160002060030181905550836080015160176000858152602001908152602001600020600401819055508360a0015160176000858152602001908152602001600020600501819055508360c0015160176000858152602001908152602001600020600601819055508360e001516017600085815260200190815260200160002060070181905550836101000151601760008581526020019081526020016000206008018190555083610160015160176000858152602001908152602001600020600b0160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836101200151601760008581526020019081526020016000206009018190555083610140015160176000858152602001908152602001600020600a018190555083610180015160176000858152602001908152602001600020600b0160146101000a81548160ff021916908315150217905550836101a0015160176000858152602001908152602001600020600b0160156101000a81548160ff021916908315150217905550836101e0015160176000858152602001908152602001600020600b0160176101000a81548160ff02191690831515021790555083610200015160176000858152602001908152602001600020600b0160186101000a81548160ff021916908315150217905550836101c0015160176000858152602001908152602001600020600b0160166101000a81548160ff021916908360ff1602179055508360e0015160196000836001600160a01b03166001600160a01b031681526020019081526020016000206000828254613fd79190615b07565b90915550506101008401516001600160a01b0382166000908152601a60205260408120805490919061400a908490615b07565b909155505060a08401516001600160a01b0382166000908152601e60209081526040808320868452909152812054909161404391615b07565b6001600160a01b0383166000908152601e60209081526040808320878452825280832084905560a0890151601690925282206003018054939450909290919061408d908490615b07565b909155505060c0850151600084815260166020526040812060040180549091906140b8908490615b07565b909155505060a08501516001600160a01b038316600090815260186020526040812080549091906140ea908490615b07565b909155505060c08501516001600160a01b0383166000908152601b60205260408120805490919061411c908490615b07565b90915550505050505050565b61413061429a565b8060ff166001148061414557508060ff166002145b6141815760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420706172616d60981b6044820152606401610d34565b6003805460ff191660ff92909216919091179055565b61419f61429a565b6001600160a01b0381166142045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d34565b61420d816153fd565b50565b61421861429a565b6001600160a01b0381166142785760405162461bcd60e51b815260206004820152602160248201527f4d41524b4554504c4143453a20494e56414c49442053414c45204144445245536044820152605360f81b6064820152608401610d34565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461227a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d34565b601554614302906001615b07565b6015556000858152601660205260408120600801546103e8906143259086615a7e565b61432f9190615a9d565b60008781526016602052604090819020600701549051630f38ca0d60e31b81529192506001600160a01b0316906379c65068906143729088908590600401615abf565b600060405180830381600087803b15801561438c57600080fd5b505af11580156143a0573d6000803e3d6000fd5b5050505060006006546143b1612242565b6143bb9087615a7e565b6143c59190615a9d565b600088815260166020526040812060020154919250901561440e576000888152601660205260409020600201546143ff9062278d00615a7e565b6144099042615b07565b614411565b60005b9050601554601760006015548152602001908152602001600020600001819055508660176000601554815260200190815260200160002060010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550876017600060155481526020019081526020016000206002018190555080601760006015548152602001908152602001600020600301819055504260176000601554815260200190815260200160002060040181905550856017600060155481526020019081526020016000206005018190555081601760006015548152602001908152602001600020600601819055506000601760006015548152602001908152602001600020600701819055506000601760006015548152602001908152602001600020600801819055506016600089815260200190815260200160002060070160009054906101000a90046001600160a01b0316601760006015548152602001908152602001600020600b0160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082601760006015548152602001908152602001600020600901819055506016600089815260200190815260200160002060080154601760006015548152602001908152602001600020600a01819055506000601760006015548152602001908152602001600020600b0160146101000a81548160ff0219169083151502179055506000601760006015548152602001908152602001600020600b0160156101000a81548160ff02191690831515021790555083601760006015548152602001908152602001600020600b0160176101000a81548160ff021916908315150217905550831515600015151461469757600061469a565b60015b601580546000908152601760209081526040808320600b9081018054961515600160c01b0260ff60c01b199097169690961790955592548252828220909301805460ff60b01b191690556001600160a01b038a168152601e83528181208b8252835281812088905560169092528120600301805488929061471c908490615b07565b909155505060008881526016602052604081206004018054849290614742908490615b07565b90915550506001600160a01b0387166000908152601860205260408120805488929061476f908490615b07565b90915550506001600160a01b0387166000908152601b60205260408120805484929061479c908490615b07565b9091555050601554604080518a8152602081018990524291810191909152606081018390526001600160a01b03891691907f0206c6fc83cce751511b5967bcd8ce71e05610271791c0a7a66c09914c12b4b5906080015b60405180910390a35050505050505050565b6000614810826133ec565b905060018115151461485c5760405162461bcd60e51b81526020600482015260156024820152745354414b494e473a2043414e4e4f5420434c41494d60581b6044820152606401610d34565b600061486783612a0c565b6000848152601760209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b90930490921615156102008301529192509033146149835760405162461bcd60e51b8152600401610d3490615bbb565b8115614da457600754156149be576000612710600754846149a49190615a7e565b6149ae9190615a9d565b90506149ba8184615ce5565b9250505b60006149c8612e8a565b6006546149d59085615a7e565b6149df9190615a9d565b90506000600454600554856149f49190615a7e565b6149fe9190615a9d565b6010546040516370a0823160e01b815230600482015291925082916001600160a01b03909116906370a082319060240160206040518083038186803b158015614a4657600080fd5b505afa158015614a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a7e9190615ad8565b1015614a9c5760405162461bcd60e51b8152600401610d3490615ef9565b60105460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90614ace9033908590600401615abf565b602060405180830381600087803b158015614ae857600080fd5b505af1158015614afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b209190615c77565b614b3c5760405162461bcd60e51b8152600401610d3490615f56565b6000868152601760209081526040808320600201548352601690915281206005018054849290614b6d908490615b07565b90915550506000868152601760209081526040808320600201548352601690915281206006018054869290614ba3908490615b07565b909155505060008681526017602052604081206007018054849290614bc9908490615b07565b909155505060008681526017602052604081206008018054869290614bef908490615b07565b90915550503360009081526019602052604081208054849290614c13908490615b07565b9091555050336000908152601a602052604081208054869290614c37908490615b07565b90915550506040808401516000818152601660209081529083902083516101a081018552815481526001820154928101929092526002810154938201939093526003830154606082015260048301546080820152600583015460a0820152600683015460c082015260078301546001600160a01b031660e082015260088301546101008083019190915260099093015460ff8082161515610120840152938104841615156101408301526201000081048416151561016083015263010000009004909216158015610180840152909190614d7057600e546040516375786f8f60e01b81526001600160a01b03909116906375786f8f90614d3d9033908a90600401615abf565b600060405180830381600087803b158015614d5757600080fd5b505af1158015614d6b573d6000803e3d6000fd5b505050505b604051848152339089907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed026906020016147f3565b50505050565b6000614db58261227c565b9050600181151514614e015760405162461bcd60e51b81526020600482015260156024820152745354414b494e473a2043414e4e4f5420434c41494d60581b6044820152606401610d34565b6000614e0c83612f79565b6000848152601760209081526040918290208251610220810184528154815260018201546001600160a01b039081169382018490526002830154948201949094526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b9091015492831661016082015260ff600160a01b840481161515610180830152600160a81b8404811615156101a0830152600160b01b840481166101c0830152600160b81b8404811615156101e0830152600160c01b9093049092161515610200830152919250903314614f285760405162461bcd60e51b8152600401610d3490615bbb565b8115614da45760075415614f7a57600061271060075484614f499190615a7e565b614f539190615a9d565b9050614f5f8184615ce5565b92508060126000828254614f739190615b07565b9091555050505b6011546040516370a0823160e01b815230600482015283916001600160a01b0316906370a082319060240160206040518083038186803b158015614fbd57600080fd5b505afa158015614fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ff59190615ad8565b10156150135760405162461bcd60e51b8152600401610d3490615ef9565b60115460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906150459033908690600401615abf565b602060405180830381600087803b15801561505f57600080fd5b505af1158015615073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150979190615c77565b6150b35760405162461bcd60e51b8152600401610d3490615f56565b60006006546150c0612242565b6150ca9085615a7e565b6150d49190615a9d565b6000868152601760209081526040808320600201548352601690915281206005018054929350859290919061510a908490615b07565b90915550506000858152601760209081526040808320600201548352601690915281206006018054839290615140908490615b07565b909155505060008581526017602052604081206007018054859290615166908490615b07565b90915550506000858152601760205260408120600801805483929061518c908490615b07565b909155505033600090815260196020526040812080548592906151b0908490615b07565b9091555050336000908152601a6020526040812080548392906151d4908490615b07565b90915550506040808301516000818152601660209081529083902083516101a081018552815481526001820154928101929092526002810154938201939093526003830154606082015260048301546080820152600583015460a0820152600683015460c082015260078301546001600160a01b031660e082015260088301546101008083019190915260099093015460ff808216151561012084015293810484161515610140830152620100008104841615156101608301526301000000900490921615801561018084015290919061530d57600e546040516375786f8f60e01b81526001600160a01b03909116906375786f8f906152da9033908790600401615abf565b600060405180830381600087803b1580156152f457600080fd5b505af1158015615308573d6000803e3d6000fd5b505050505b604051858152339088907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269060200160405180910390a350505050505050565b600d546011546004805460405163049eca8760e11b815260009485946001600160a01b039182169463093d950e9461538a94939092169201615abf565b60206040518083038186803b1580156153a257600080fd5b505afa1580156153b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153da9190615ad8565b9050806006546004546153ed9190615a7e565b6153f79190615a9d565b91505090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561545f57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff811182821017156154a0576154a0615466565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156154cf576154cf615466565b604052919050565b600067ffffffffffffffff8211156154f1576154f1615466565b5060051b60200190565b600082601f83011261550c57600080fd5b8135602061552161551c836154d7565b6154a6565b82815260059290921b8401810191818101908684111561554057600080fd5b8286015b8481101561555b5780358352918301918301615544565b509695505050505050565b80356001600160a01b038116811461557d57600080fd5b919050565b6000806040838503121561559557600080fd5b823567ffffffffffffffff8111156155ac57600080fd5b6155b8858286016154fb565b9250506155c760208401615566565b90509250929050565b6000602082840312156155e257600080fd5b813567ffffffffffffffff8111156155f957600080fd5b615605848285016154fb565b949350505050565b60006101a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015161567060e08401826001600160a01b03169052565b50610100838101519083015261012080840151151590830152610140808401511515908301526101608084015115159083015261018080840151801515828501525b505092915050565b6000602082840312156156cc57600080fd5b6156d582615566565b9392505050565b801515811461420d57600080fd5b803561557d816156dc565b6000806000806080858703121561570b57600080fd5b8435935061571b60208601615566565b9250604085013591506060850135615732816156dc565b939692955090935050565b6000806040838503121561575057600080fd5b823591506020830135615762816156dc565b809150509250929050565b6000806040838503121561578057600080fd5b61578983615566565b946020939093013593505050565b815181526020808301516102208301916157bb908401826001600160a01b03169052565b5060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525061016080840151615837828501826001600160a01b03169052565b5050610180838101511515908301526101a0808401511515908301526101c08084015160ff16908301526101e08084015115159083015261020080840151801515828501526156b2565b6000806040838503121561589457600080fd5b50508035926020909101359150565b60008060008060008060008060006101208a8c0312156158c257600080fd5b8935985060208a0135975060408a013596506158e060608b01615566565b955060808a0135945060a08a01356158f7816156dc565b935060c08a0135615907816156dc565b925060e08a0135615917816156dc565b91506101008a0135615928816156dc565b809150509295985092959850929598565b803560ff8116811461557d57600080fd5b6000610220828403121561595d57600080fd5b61596561547c565b8235815261597560208401615566565b602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c082015260e083013560e08201526101008084013581830152506101208084013581830152506101408084013581830152506101606159e8818501615566565b908201526101806159fa8482016156ea565b908201526101a0615a0c8482016156ea565b908201526101c0615a1e848201615939565b908201526101e0615a308482016156ea565b90820152610200615a428482016156ea565b908201529392505050565b600060208284031215615a5f57600080fd5b6156d582615939565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615615a9857615a98615a68565b500290565b600082615aba57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b600060208284031215615aea57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60008219821115615b1a57615b1a615a68565b500190565b6000600019821415615b3357615b33615a68565b5060010190565b6020808252602a908201527f544f4b454e205354414b453a2055736572207374616b65206d61782076616c75604082015269329037b3103a37b5b2b760b11b606082015260800190565b60208082526019908201527f496e636f72726563742066656520616d6f756e742073656e7400000000000000604082015260600190565b60208082526026908201527f5354414b494e473a204f4e4c59204f574e4552204f46205354414b452043414e60408201526520434c41494d60d01b606082015260800190565b6020808252601590820152741513d2d1538814d51052d25391ce881313d0d2d151605a1b604082015260600190565b60208082526027908201527f5354414b453a204f4e4c59204f574e4552204f46205354414b452043414e20576040820152664954484452415760c81b606082015260800190565b600060208284031215615c8957600080fd5b81516156d5816156dc565b60208082526031908201527f544f4b454e205354414b453a205472616e7366657220746f6b656e20746f205460408201527013d2d1538814d51052d14819985a5b1959607a1b606082015260800190565b600082821015615cf757615cf7615a68565b500390565b6020808252603f908201527f544f4b454e205354414b494e473a204e4f5420454e4f55474820544f4b454e2060408201527f42414c414e434520544f205041592055534552205354414b452056414c554500606082015260800190565b6020808252603c908201527f5354414b494e473a20554e41424c4520544f205452414e5346455220434f4d4d60408201527f495353494f4e205041594d454e5420544f205354414b45205553455200000000606082015260800190565b60208082526028908201527f544f4b454e205354414b453a204e6f7420656e6f7567682062616c616e636520604082015267746f207374616b6560c01b606082015260800190565b60006020808385031215615e1157600080fd5b825167ffffffffffffffff811115615e2857600080fd5b8301601f81018513615e3957600080fd5b8051615e4761551c826154d7565b81815260059190911b82018301908381019087831115615e6657600080fd5b928401925b82841015615e8457835182529284019290840190615e6b565b979650505050505050565b805169ffffffffffffffffffff8116811461557d57600080fd5b600080600080600060a08688031215615ec157600080fd5b615eca86615e8f565b9450602086015193506040860151925060608601519150615eed60808701615e8f565b90509295509295909350565b6020808252603b908201527f544f4b454e205354414b453a204e4f5420454e4f55474820544f4b454e20424160408201527f4c414e434520544f2050415920554e5354414b45205245574152440000000000606082015260800190565b6020808252603f908201527f544f4b454e205354414b453a20554e41424c4520544f205452414e534645522060408201527f434f4d4d495353494f4e205041594d454e5420544f20524543495049454e540060608201526080019056fea26469706673582212209533a49e0f2065498e2ff9edbfd2b74a676f9c48f5b253e93918081f5d5b68c864736f6c63430008080033000000000000000000000000ecdcb5b88f8e3c15f95c720c51c71c9e2080525d0000000000000000000000008224a00a361453f6ef87eb10081b4675e5b75f1400000000000000000000000096710574d564625a0891ea8c7c25297e4e4e762e00000000000000000000000030ad96e7d1031960a8a9c569274e6df9ff2030c800000000000000000000000082a6c4af830caa6c97bb504425f6a66165c2c26e000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f00000000000000000000000007985c70f427d5fdf906003f90073fbd2456f4a9