0 txs
0 calls
constructor
constructor()
functions
admin
viewfunction admin() view returns (address)
aggregatorInterface
viewfunction aggregatorInterface() view returns (address)
applySanctions
viewfunction applySanctions() view returns (bool)
baseDecimals
viewfunction baseDecimals() view returns (uint256)
blacklistedReferrers
viewfunction blacklistedReferrers(address) view returns (bool)
bnbBuyHelper
viewfunction bnbBuyHelper(uint256 amount) view returns (uint256 bnbAmount)
calculatePrice
viewfunction calculatePrice(uint256 _amount) view returns (uint256)
checkPoint
viewfunction checkPoint() view returns (uint256)
checkReferralStatus
viewfunction checkReferralStatus(address _referrer) view returns (bool)
currentStep
viewfunction currentStep() view returns (uint256)
dynamicTimeFlag
viewfunction dynamicTimeFlag() view returns (bool)
endTime
viewfunction endTime() view returns (uint256)
getLatestPrice
viewfunction getLatestPrice() view returns (uint256)
maxTokensToBuy
viewfunction maxTokensToBuy() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentWallet
viewfunction paymentWallet() view returns (address)
percentages
viewfunction percentages(uint256) view returns (uint256)
prevCheckpoints
viewfunction prevCheckpoints(uint256) view returns (uint256)
referrerPercentage
viewfunction referrerPercentage() view returns (uint256)
referrersMustBeBuyers
viewfunction referrersMustBeBuyers() view returns (bool)
remainingTokensTracker
viewfunction remainingTokensTracker(uint256) view returns (uint256)
roundDetails
viewfunction roundDetails(uint256 _no) view returns (uint256[])
rounds
viewfunction rounds(uint256, uint256) view returns (uint256)
sanctionsList
viewfunction sanctionsList() view returns (address)
startTime
viewfunction startTime() view returns (uint256)
timeConstant
viewfunction timeConstant() view returns (uint256)
totalTokensSold
viewfunction totalTokensSold() view returns (uint256)
trackRemainingTokens
viewfunction trackRemainingTokens() view returns (uint256[])
USDCInterface
viewfunction USDCInterface() view returns (address)
usdRaised
viewfunction usdRaised() view returns (uint256)
usdtBuyHelper
viewfunction usdtBuyHelper(uint256 amount) view returns (uint256 usdPrice)
USDTInterface
viewfunction USDTInterface() view returns (address)
userDeposits
viewfunction userDeposits(address) view returns (uint256)
wallets
viewfunction wallets(uint256) view returns (address)
web3PaymentPercentage
viewfunction web3PaymentPercentage() view returns (uint256)
web3PaymentWallet
viewfunction web3PaymentWallet() view returns (address)
blacklistReferrer
nonpayablefunction blacklistReferrer(address[] _referrers)
buyWithBNB
payablefunction buyWithBNB(uint256 amount, address referrer) payable returns (bool)
buyWithUSDC
nonpayablefunction buyWithUSDC(uint256 amount, address referrer) returns (bool)
buyWithUSDT
nonpayablefunction buyWithUSDT(uint256 amount, address referrer) returns (bool)
changeMaxTokensToBuy
nonpayablefunction changeMaxTokensToBuy(uint256 _maxTokensToBuy)
changePaymentWallet
nonpayablefunction changePaymentWallet(address _newPaymentWallet)
changeRoundsData
nonpayablefunction changeRoundsData(uint256[][3] _rounds)
changeSaleTimes
nonpayablefunction changeSaleTimes(uint256 _startTime, uint256 _endTime)
incrementCurrentStep
nonpayablefunction incrementCurrentStep()
pause
nonpayablefunction pause()
removeFromBlacklistedReferrerMapping
nonpayablefunction removeFromBlacklistedReferrerMapping(address[] _referrers)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin)
setCurrentStep
nonpayablefunction setCurrentStep(uint256 _step, uint256 _checkpoint)
setDynamicTimeFlag
nonpayablefunction setDynamicTimeFlag(bool _dynamicTimeFlag)
setRemainingTokensArray
nonpayablefunction setRemainingTokensArray(uint256[] _unsoldTokens)
setSanctions
nonpayablefunction setSanctions(address _sanctionContract, bool _applySanction)
setSplits
nonpayablefunction setSplits(address[] _wallets, uint256[] _percentages)
setTimeConstant
nonpayablefunction setTimeConstant(uint256 _timeConstant)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateReferrarPercentage
nonpayablefunction updateReferrarPercentage(uint256 _percentage)
updateReferrersMustBeBuyers
nonpayablefunction updateReferrersMustBeBuyers(bool _referrersMustBeBuyers)
updateWeb3PaymentDetails
nonpayablefunction updateWeb3PaymentDetails(address _paymentAddress, uint256 _percentage)
events
Initialized
event Initialized(uint8 version)
MaxTokensUpdated
event MaxTokensUpdated(uint256 prevValue, uint256 newValue, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SaleTimeSet
event SaleTimeSet(uint256 _start, uint256 _end, uint256 timestamp)
SaleTimeUpdated
event SaleTimeUpdated(bytes32 indexed key, uint256 prevValue, uint256 newValue, uint256 timestamp)
TokensBought
event TokensBought(address indexed user, uint256 indexed tokensBought, address indexed purchaseToken, uint256 amountPaid, uint256 usdEq, uint256 timestamp)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200013d60201b620027dd1760201c565b15801562000063575060005460ff166001145b620000cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000ef576000805461ff0019166101001790555b801562000136576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506200014c565b6001600160a01b03163b151590565b613f4b806200015c6000396000f3fe6080604052600436106103a25760003560e01c806388c3e458116101e7578063c8adff011161010d578063e6da9213116100a0578063f2fde38b1161006f578063f2fde38b14610a63578063f597573f14610a83578063f851a44014610aa3578063f885838614610ac357600080fd5b8063e6da9213146109ed578063eadd94ec14610a0d578063ec571c6a14610a23578063f0ff892314610a4357600080fd5b8063d095362f116100dc578063d095362f1461096d578063d25891961461098d578063e19648db146109ad578063e32204dd146109cd57600080fd5b8063c8adff0114610908578063ca1600b61461091d578063cad0055614610937578063cff805ab1461095757600080fd5b8063a2db641611610185578063bb695f2a11610154578063bb695f2a14610888578063c23326f3146108a8578063c49cc645146108c8578063c4d5db57146108e857600080fd5b8063a2db6416146107fb578063a6d42e4e1461081b578063ae1042651461083b578063ba166a391461085b57600080fd5b80638e15f473116101c15780638e15f473146107905780639a89c1fb146107a55780639b5fb9c9146107c55780639cfa0f7c146107e557600080fd5b806388c3e4581461073c5780638c28c31a146107525780638da5cb5b1461077257600080fd5b806343568eae116102cc57806363b201171161026a578063715018a611610239578063715018a6146106dc57806378e97925146106f15780637ad71f72146107075780638456cb591461072757600080fd5b806363b201171461067157806363e4087914610687578063641046f4146106a7578063704b6c02146106bc57600080fd5b80635bc34f71116102a65780635bc34f71146106035780635c975abb146106195780635ddc56881461063157806361ad0b7c1461065157600080fd5b806343568eae146105b75780634bc6191a146105cd57806350429ee4146105e357600080fd5b8063278c278b1161034457806330e74f081161031357806330e74f08146105555780633197cbb61461057657806333f761781461058c5780633f4ba83a146105a257600080fd5b8063278c278b146104e25780632b388292146105025780632c73304d146105155780632dc358e81461053557600080fd5b80630dc9c838116103805780630dc9c838146104495780631fa2bc921461046957806323a8f1c01461048a57806325312e54146104aa57600080fd5b8063032bd1f7146103a75780630a200fc7146103ec5780630ba36dcd1461040e575b600080fd5b3480156103b357600080fd5b506103d76103c2366004613744565b60e36020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156103f857600080fd5b5061040c61040736600461376d565b610ae3565b005b34801561041a57600080fd5b5061043b610429366004613744565b60dd6020526000908152604090205481565b6040519081526020016103e3565b34801561045557600080fd5b5061040c61046436600461378a565b610b09565b34801561047557600080fd5b5060da546103d790600160a01b900460ff1681565b34801561049657600080fd5b5061040c6104a53660046137ac565b610cea565b3480156104b657600080fd5b5060df546104ca906001600160a01b031681565b6040516001600160a01b0390911681526020016103e3565b3480156104ee57600080fd5b5061040c6104fd3660046137ac565b610cf7565b6103d76105103660046137c5565b610d9a565b34801561052157600080fd5b5061040c6105303660046137f1565b6111ca565b34801561054157600080fd5b5061040c610550366004613927565b611212565b34801561056157600080fd5b5060de546103d790600160a01b900460ff1681565b34801561058257600080fd5b5061043b60cb5481565b34801561059857600080fd5b5061043b60cc5481565b3480156105ae57600080fd5b5061040c6112da565b3480156105c357600080fd5b5061043b60d15481565b3480156105d957600080fd5b5061043b60e15481565b3480156105ef57600080fd5b5060e0546104ca906001600160a01b031681565b34801561060f57600080fd5b5061043b60ce5481565b34801561062557600080fd5b5060975460ff166103d7565b34801561063d57600080fd5b5061040c61064c366004613964565b6112ec565b34801561065d57600080fd5b5061040c61066c36600461376d565b6114e7565b34801561067d57600080fd5b5061043b60c95481565b34801561069357600080fd5b5061043b6106a23660046137ac565b611502565b3480156106b357600080fd5b5061040c611513565b3480156106c857600080fd5b5061040c6106d7366004613744565b6116d8565b3480156106e857600080fd5b5061040c611702565b3480156106fd57600080fd5b5061043b60ca5481565b34801561071357600080fd5b506104ca6107223660046137ac565b611714565b34801561073357600080fd5b5061040c61173e565b34801561074857600080fd5b5061043b60e25481565b34801561075e57600080fd5b506103d761076d3660046137c5565b61174e565b34801561077e57600080fd5b506065546001600160a01b03166104ca565b34801561079c57600080fd5b5061043b611bbb565b3480156107b157600080fd5b5061040c6107c036600461378a565b611c5b565b3480156107d157600080fd5b5061040c6107e03660046137ac565b611c6e565b3480156107f157600080fd5b5061043b60cd5481565b34801561080757600080fd5b5061040c610816366004613a24565b611c7b565b34801561082757600080fd5b5061040c610836366004613a99565b611cfc565b34801561084757600080fd5b5061043b6108563660046137ac565b611d11565b34801561086757600080fd5b5061087b6108763660046137ac565b612047565b6040516103e39190613b34565b34801561089457600080fd5b506103d76108a3366004613744565b6120b3565b3480156108b457600080fd5b5061043b6108c33660046137ac565b612133565b3480156108d457600080fd5b5060dc546104ca906001600160a01b031681565b3480156108f457600080fd5b5061043b6109033660046137ac565b612154565b34801561091457600080fd5b5061087b612188565b34801561092957600080fd5b5060e4546103d79060ff1681565b34801561094357600080fd5b5061040c610952366004613744565b6121e0565b34801561096357600080fd5b5061043b60cf5481565b34801561097957600080fd5b506103d76109883660046137c5565b612259565b34801561099957600080fd5b5061040c6109a8366004613a24565b612667565b3480156109b957600080fd5b5061043b6109c83660046137ac565b6126e2565b3480156109d957600080fd5b5060d9546104ca906001600160a01b031681565b3480156109f957600080fd5b5061043b610a0836600461378a565b6126f2565b348015610a1957600080fd5b5061043b60d05481565b348015610a2f57600080fd5b5060de546104ca906001600160a01b031681565b348015610a4f57600080fd5b5061040c610a5e366004613b78565b612726565b348015610a6f57600080fd5b5061040c610a7e366004613744565b612754565b348015610a8f57600080fd5b5060db546104ca906001600160a01b031681565b348015610aaf57600080fd5b5060da546104ca906001600160a01b031681565b348015610acf57600080fd5b5061043b610ade3660046137ac565b6127cd565b610aeb6127ec565b60da8054911515600160a01b0260ff60a01b19909216919091179055565b610b116127ec565b6000821180610b205750600081115b610b665760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420706172616d657465727360701b60448201526064015b60405180910390fd5b8115610c4b5760ca544210610bb45760405162461bcd60e51b815260206004820152601460248201527314d85b1948185b1c9958591e481cdd185c9d195960621b6044820152606401610b5d565b814210610bf75760405162461bcd60e51b815260206004820152601160248201527014d85b19481d1a5b59481a5b881c185cdd607a1b6044820152606401610b5d565b60ca8054908390556040805182815260208101859052428183015290516414d510549560da1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b8015610ce65760ca548111610c945760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420656e6454696d6560881b6044820152606401610b5d565b60cb8054908290556040805182815260208101849052428183015290516211539160ea1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b5050565b610cf26127ec565b60d155565b610cff6127ec565b60008111610d4f5760405162461bcd60e51b815260206004820152601c60248201527f5a65726f206d617820746f6b656e7320746f206275792076616c7565000000006044820152606401610b5d565b60cd8054908290556040805182815260208101849052428183015290517f76f9e5e1f6af6a9f180708b77a5c99210fbf19b91f1f194f3918c262b8edf77c9181900360600190a15050565b60008260ca544210158015610db1575060cb544211155b610dcd5760405162461bcd60e51b8152600401610b5d90613ba2565b60008111610ded5760405162461bcd60e51b8152600401610b5d90613bd9565b3360de54600160a01b900460ff1615610e9a5760de5460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b158015610e4557600080fd5b505afa158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d9190613c06565b15610e9a5760405162461bcd60e51b8152600401610b5d90613c23565b610ea2612846565b610eaa61288c565b6000610eb586611d11565b90506000610ec1611bbb565b60cc54610ece9084613c6e565b610ed89190613c8d565b905080341015610f195760405162461bcd60e51b815260206004820152600c60248201526b13195cdcc81c185e5b595b9d60a21b6044820152606401610b5d565b6000610f258234613caf565b90508760c96000828254610f399190613cc6565b909155505060cf5415610f5e578760cf6000828254610f589190613cc6565b90915550505b600060cf5460c95411610f735760cf54610f77565b60c9545b905060d260000160ce5481548110610f9157610f91613cde565b9060005260206000200154811180610fcb575060d260020160ce5481548110610fbc57610fbc613cde565b90600052602060002001544210155b156111055760d260020160ce5481548110610fe857610fe8613cde565b9060005260206000200154421061102b578860d260000160ce548154811061101257611012613cde565b90600052602060002001546110279190613cc6565b60cf555b60da54600160a01b900460ff1615611045576110456128e6565b600060d2810160ce548154811061105e5761105e613cde565b906000526020600020015482116110ad57898260d260000160ce548154811061108957611089613cde565b906000526020600020015461109e9190613caf565b6110a89190613caf565b6110b0565b60005b60d680546001818101835560009283527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd90910183905560ce805493945090929091906110fe908490613cc6565b9091555050505b60cc54611112908a613c6e565b33600090815260dd602052604081208054909190611131908490613cc6565b925050819055508360d0600082825461114a9190613cc6565b9091555061115a90508389612956565b811561116a5761116a3383612b2f565b6040805184815260208101869052428183015290516000918b9133917f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36919081900360600190a460019650505050506111c260018055565b505092915050565b6111d26127ec565b6001600160a01b0382166111e557600080fd5b60de8054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b60da546001600160a01b031633148061123557506065546001600160a01b031633145b61127d5760405162461bcd60e51b815260206004820152601960248201527831b0b63632b9103737ba1030b236b4b71037b91037bbb732b960391b6044820152606401610b5d565b61128960d66000613641565b60005b8151811015610ce65760d68282815181106112a9576112a9613cde565b60209081029190910181015182546001810184556000938452919092200155806112d281613cf4565b91505061128c565b6112e26127ec565b6112ea612c05565b565b6112f46127ec565b80518251146113395760405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606401610b5d565b61134560d86000613641565b61135160d76000613641565b6000805b835181101561148f57600083828151811061137257611372613cde565b6020026020010151116113d15760405162461bcd60e51b815260206004820152602160248201527f50657263656e74616765206d7573742062652067726561746572207468616e206044820152600360fc1b6064820152608401610b5d565b8281815181106113e3576113e3613cde565b6020026020010151826113f69190613cc6565b915060d884828151811061140c5761140c613cde565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055825160d79084908390811061145e5761145e613cde565b602090810291909101810151825460018101845560009384529190922001558061148781613cf4565b915050611355565b5080620186a0146114e25760405162461bcd60e51b815260206004820152601f60248201527f546f74616c2070657263656e74616765206d75737420657175616c20313030006044820152606401610b5d565b505050565b6114ef6127ec565b60e4805460ff1916911515919091179055565b600061150d82611d11565b92915050565b60da546001600160a01b031633148061153657506065546001600160a01b031633145b61157e5760405162461bcd60e51b815260206004820152601960248201527831b0b63632b9103737ba1030b236b4b71037b91037bbb732b960391b6044820152606401610b5d565b60cf5460d580546001810182556000919091527f51858de9989bf7441865ebdadbf7382c8838edbf830f5d86a9a51ac773676dd6015560da54600160a01b900460ff16156115ce576115ce6128e6565b60d260000160ce54815481106115e6576115e6613cde565b906000526020600020015460cf5410156116c15760ce5461164f5760c95460d69060d260000160ce548154811061161f5761161f613cde565b90600052602060002001546116349190613caf565b81546001810183556000928352602090922090910155611699565b60cf5460d69060d260000160ce548154811061166d5761166d613cde565b90600052602060002001546116829190613caf565b815460018101835560009283526020909220909101555b60d260000160ce54815481106116b1576116b1613cde565b60009182526020909120015460cf555b60ce80549060006116d183613cf4565b9190505550565b6116e06127ec565b60da80546001600160a01b0319166001600160a01b0392909216919091179055565b61170a6127ec565b6112ea6000612c57565b60d8818154811061172457600080fd5b6000918252602090912001546001600160a01b0316905081565b6117466127ec565b6112ea612ca9565b60008260ca544210158015611765575060cb544211155b6117815760405162461bcd60e51b8152600401610b5d90613ba2565b600081116117a15760405162461bcd60e51b8152600401610b5d90613bd9565b3360de54600160a01b900460ff161561184e5760de5460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b1580156117f957600080fd5b505afa15801561180d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118319190613c06565b1561184e5760405162461bcd60e51b8152600401610b5d90613c23565b611856612846565b600061186186611d11565b90508560c960008282546118759190613cc6565b909155505060cf541561189a578560cf60008282546118949190613cc6565b90915550505b600060cf5460c954116118af5760cf546118b3565b60c9545b905060d260000160ce54815481106118cd576118cd613cde565b9060005260206000200154811180611907575060d260020160ce54815481106118f8576118f8613cde565b90600052602060002001544210155b15611a415760d260020160ce548154811061192457611924613cde565b90600052602060002001544210611967578660d260000160ce548154811061194e5761194e613cde565b90600052602060002001546119639190613cc6565b60cf555b60da54600160a01b900460ff1615611981576119816128e6565b600060d2810160ce548154811061199a5761199a613cde565b906000526020600020015482116119e957878260d260000160ce54815481106119c5576119c5613cde565b90600052602060002001546119da9190613caf565b6119e49190613caf565b6119ec565b60005b60d680546001818101835560009283527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd90910183905560ce80549394509092909190611a3a908490613cc6565b9091555050505b60cc54611a4e9088613c6e565b33600090815260dd602052604081208054909190611a6d908490613cc6565b925050819055508160d06000828254611a869190613cc6565b909155505060df546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b158015611ae557600080fd5b505afa158015611af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1d9190613d0f565b905080831115611b3f5760405162461bcd60e51b8152600401610b5d90613d28565b611b498388612ce6565b60df546001600160a01b031688335b6001600160a01b03167f4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36868742604051611ba5939291909283526020830191909152604082015260600190565b60405180910390a4506001979650505050505050565b60008060dc60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015611c0c57600080fd5b505afa158015611c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c449190613d83565b505050915050806402540be40061150d9190613dd3565b611c636127ec565b60ce9190915560cf55565b611c766127ec565b60e255565b611c836127ec565b8060005b81811015611cf657600160e36000868685818110611ca757611ca7613cde565b9050602002016020810190611cbc9190613744565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611cee81613cf4565b915050611c87565b50505050565b611d046127ec565b610ce660d282600361365f565b600080600060cf54600014611d285760cf54611d2c565b60c9545b905060cd54841115611d805760405162461bcd60e51b815260206004820181905260248201527f416d6f756e742065786365656473206d617820746f6b656e7320746f206275796044820152606401610b5d565b60d260000160ce5481548110611d9857611d98613cde565b90600052602060002001548185611daf9190613cc6565b1180611ddd575060d260020160ce5481548110611dce57611dce613cde565b90600052602060002001544210155b1561200f5760d254611df190600190613caf565b60ce5410611e305760405162461bcd60e51b815260206004820152600c60248201526b57726f6e6720706172616d7360a01b6044820152606401610b5d565b60d260020160ce5481548110611e4857611e48613cde565b90600052602060002001544210611f5b5760ce5460d290611e6a906001613cc6565b81548110611e7a57611e7a613cde565b90600052602060002001548460d2600060038110611e9a57611e9a613cde565b0160ce5481548110611eae57611eae613cde565b9060005260206000200154611ec39190613cc6565b1115611f1d5760405162461bcd60e51b815260206004820152602360248201527f43616e74205075726368617365204d6f726520696e20696e646976696475616c604482015262040e8f60eb1b6064820152608401610b5d565b60ce5460d390611f2e906001613cc6565b81548110611f3e57611f3e613cde565b906000526020600020015484611f549190613c6e565b9150612040565b60008160d2820160ce5481548110611f7557611f75613cde565b9060005260206000200154611f8a9190613caf565b60ce5490915060d390611f9e906001613cc6565b81548110611fae57611fae613cde565b90600052602060002001548186611fc59190613caf565b611fcf9190613c6e565b60d260010160ce5481548110611fe757611fe7613cde565b906000526020600020015482611ffd9190613c6e565b6120079190613cc6565b925050612040565b60d260010160ce548154811061202757612027613cde565b90600052602060002001548461203d9190613c6e565b91505b5092915050565b606060d2826003811061205c5761205c613cde565b018054806020026020016040519081016040528092919081815260200182805480156120a757602002820191906000526020600020905b815481526020019060010190808311612093575b50505050509050919050565b60006001600160a01b03821615806120e357506001600160a01b038216600090815260e3602052604090205460ff165b806120f657506001600160a01b03821633145b1561210357506000919050565b60e45460ff1661211557506001919050565b506001600160a01b0316600090815260dd6020526040902054151590565b60d6818154811061214357600080fd5b600091825260209091200154905081565b60008061216083611d11565b905061216a611bbb565b60cc546121779083613c6e565b6121819190613c8d565b9392505050565b606060d68054806020026020016040519081016040528092919081815260200182805480156121d657602002820191906000526020600020905b8154815260200190600101908083116121c2575b5050505050905090565b6121e86127ec565b6001600160a01b0381166122375760405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b6044820152606401610b5d565b60d980546001600160a01b0319166001600160a01b0392909216919091179055565b60008260ca544210158015612270575060cb544211155b61228c5760405162461bcd60e51b8152600401610b5d90613ba2565b600081116122ac5760405162461bcd60e51b8152600401610b5d90613bd9565b3360de54600160a01b900460ff16156123595760de5460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b15801561230457600080fd5b505afa158015612318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233c9190613c06565b156123595760405162461bcd60e51b8152600401610b5d90613c23565b612361612846565b600061236c86611d11565b90508560c960008282546123809190613cc6565b909155505060cf54156123a5578560cf600082825461239f9190613cc6565b90915550505b600060cf5460c954116123ba5760cf546123be565b60c9545b905060d260000160ce54815481106123d8576123d8613cde565b9060005260206000200154811180612412575060d260020160ce548154811061240357612403613cde565b90600052602060002001544210155b1561254c5760d260020160ce548154811061242f5761242f613cde565b90600052602060002001544210612472578660d260000160ce548154811061245957612459613cde565b906000526020600020015461246e9190613cc6565b60cf555b60da54600160a01b900460ff161561248c5761248c6128e6565b600060d2810160ce54815481106124a5576124a5613cde565b906000526020600020015482116124f457878260d260000160ce54815481106124d0576124d0613cde565b90600052602060002001546124e59190613caf565b6124ef9190613caf565b6124f7565b60005b60d680546001818101835560009283527fe767803f8ecf1dee6bb0345811f7312cda556058b19db6389ad9ae3568643ddd90910183905560ce80549394509092909190612545908490613cc6565b9091555050505b60cc546125599088613c6e565b33600090815260dd602052604081208054909190612578908490613cc6565b925050819055508160d060008282546125919190613cc6565b909155505060db546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b1580156125f057600080fd5b505afa158015612604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126289190613d0f565b90508083111561264a5760405162461bcd60e51b8152600401610b5d90613d28565b6126548388613242565b60db546001600160a01b03168833611b58565b61266f6127ec565b8060005b81811015611cf657600060e3600086868581811061269357612693613cde565b90506020020160208101906126a89190613744565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806126da81613cf4565b915050612673565b60d5818154811061214357600080fd5b60d2826003811061270257600080fd5b01818154811061271157600080fd5b90600052602060002001600091509150505481565b61272e6127ec565b60e080546001600160a01b0319166001600160a01b03939093169290921790915560e155565b61275c6127ec565b6001600160a01b0381166127c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b5d565b6127ca81612c57565b50565b60d7818154811061214357600080fd5b6001600160a01b03163b151590565b6065546001600160a01b031633146112ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b5d565b60975460ff16156112ea5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610b5d565b600260015414156128df5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b5d565b6002600155565b60005b60ce5460d4546128f99190613caf565b8110156127ca5760d15461290d9082613c6e565b6129179042613cc6565b60ce5460d490612928908490613cc6565b8154811061293857612938613cde565b6000918252602090912001558061294e81613cf4565b9150506128e9565b600080612962836120b3565b1561298d57606460e254856129779190613c6e565b6129819190613c8d565b915061298d8383612b2f565b60e0546001600160a01b0316156129d157606460e154856129ae9190613c6e565b6129b89190613c8d565b60e0549091506129d1906001600160a01b031682612b2f565b6129db8282613cc6565b6129e59085613caf565b60d854909450612a325760d9546001600160a01b0316612a175760405162461bcd60e51b8152600401610b5d90613e58565b60d954612a2d906001600160a01b031685612b2f565b611cf6565b6000805b60d854811015612acc576000620186a060d78381548110612a5957612a59613cde565b906000526020600020015488612a6f9190613c6e565b612a799190613c8d565b9050612aac60d88381548110612a9157612a91613cde565b6000918252602090912001546001600160a01b031682612b2f565b612ab68184613cc6565b9250508080612ac490613cf4565b915050612a36565b506000612ad98287613caf565b1115612b285760d88054612b289190612af490600190613caf565b81548110612b0457612b04613cde565b6000918252602090912001546001600160a01b0316612b238388613caf565b612b2f565b5050505050565b80471015612b6d5760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610b5d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612bba576040519150601f19603f3d011682016040523d82523d6000602084013e612bbf565b606091505b50509050806114e25760405162461bcd60e51b81526020600482015260126024820152711093908814185e5b595b9d0819985a5b195960721b6044820152606401610b5d565b612c0d6135f8565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612cb1612846565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612c3a3390565b60e05460009081906001600160a01b031615612de257606460e15485612d0c9190613c6e565b612d169190613c8d565b60df549091506000906001600160a01b03163360e054604051612d4892916001600160a01b0316908690602401613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251612d7d9190613eac565b6000604051808303816000865af19150503d8060008114612dba576040519150601f19603f3d011682016040523d82523d6000602084013e612dbf565b606091505b5050905080612de05760405162461bcd60e51b8152600401610b5d90613ee7565b505b612deb836120b3565b15612ecb57606460e25485612e009190613c6e565b612e0a9190613c8d565b60df549092506000906001600160a01b0316338585604051602401612e3193929190613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251612e669190613eac565b6000604051808303816000865af19150503d8060008114612ea3576040519150601f19603f3d011682016040523d82523d6000602084013e612ea8565b606091505b5050905080612ec95760405162461bcd60e51b8152600401610b5d90613ee7565b505b612ed58282613cc6565b612edf9085613caf565b60d854909450612fdf5760d9546001600160a01b0316612f115760405162461bcd60e51b8152600401610b5d90613e58565b60df546000906001600160a01b0316335b60d954604051612f4192916001600160a01b0316908990602401613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251612f769190613eac565b6000604051808303816000865af19150503d8060008114612fb3576040519150601f19603f3d011682016040523d82523d6000602084013e612fb8565b606091505b5050905080612fd95760405162461bcd60e51b8152600401610b5d90613ee7565b50611cf6565b6000805b60d85481101561312d576000620186a060d7838154811061300657613006613cde565b90600052602060002001548861301c9190613c6e565b6130269190613c8d565b60df549091506000906001600160a01b03163360d8858154811061304c5761304c613cde565b60009182526020909120015460405161307492916001600160a01b0316908690602401613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516130a99190613eac565b6000604051808303816000865af19150503d80600081146130e6576040519150601f19603f3d011682016040523d82523d6000602084013e6130eb565b606091505b505090508061310c5760405162461bcd60e51b8152600401610b5d90613ee7565b6131168285613cc6565b93505050808061312590613cf4565b915050612fe3565b50600061313a8287613caf565b1115612b285760df546000906001600160a01b0316335b60d8805461316190600190613caf565b8154811061317157613171613cde565b6000918252602090912001546001600160a01b0316613190858a613caf565b6040516024016131a293929190613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516131d79190613eac565b6000604051808303816000865af19150503d8060008114613214576040519150601f19603f3d011682016040523d82523d6000602084013e613219565b606091505b505090508061323a5760405162461bcd60e51b8152600401610b5d90613ee7565b505050505050565b60e05460009081906001600160a01b03161561333e57606460e154856132689190613c6e565b6132729190613c8d565b60db549091506000906001600160a01b03163360e0546040516132a492916001600160a01b0316908690602401613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516132d99190613eac565b6000604051808303816000865af19150503d8060008114613316576040519150601f19603f3d011682016040523d82523d6000602084013e61331b565b606091505b505090508061333c5760405162461bcd60e51b8152600401610b5d90613ee7565b505b613347836120b3565b1561342757606460e2548561335c9190613c6e565b6133669190613c8d565b60db549092506000906001600160a01b031633858560405160240161338d93929190613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516133c29190613eac565b6000604051808303816000865af19150503d80600081146133ff576040519150601f19603f3d011682016040523d82523d6000602084013e613404565b606091505b50509050806134255760405162461bcd60e51b8152600401610b5d90613ee7565b505b6134318282613cc6565b61343b9085613caf565b60d8549094506134825760d9546001600160a01b031661346d5760405162461bcd60e51b8152600401610b5d90613e58565b60db546000906001600160a01b031633612f22565b6000805b60d8548110156135d0576000620186a060d783815481106134a9576134a9613cde565b9060005260206000200154886134bf9190613c6e565b6134c99190613c8d565b60db549091506000906001600160a01b03163360d885815481106134ef576134ef613cde565b60009182526020909120015460405161351792916001600160a01b0316908690602401613e88565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b1790525161354c9190613eac565b6000604051808303816000865af19150503d8060008114613589576040519150601f19603f3d011682016040523d82523d6000602084013e61358e565b606091505b50509050806135af5760405162461bcd60e51b8152600401610b5d90613ee7565b6135b98285613cc6565b9350505080806135c890613cf4565b915050613486565b5060006135dd8287613caf565b1115612b285760db546000906001600160a01b031633613151565b60975460ff166112ea5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b5d565b50805460008255906000526020600020908101906127ca91906136af565b826003810192821561369f579160200282015b8281111561369f578251805161368f9184916020909101906136c4565b5091602001919060010190613672565b506136ab92915061370b565b5090565b5b808211156136ab57600081556001016136b0565b8280548282559060005260206000209081019282156136ff579160200282015b828111156136ff5782518255916020019190600101906136e4565b506136ab9291506136af565b808211156136ab57600061371f8282613641565b5060010161370b565b80356001600160a01b038116811461373f57600080fd5b919050565b60006020828403121561375657600080fd5b61218182613728565b80151581146127ca57600080fd5b60006020828403121561377f57600080fd5b81356121818161375f565b6000806040838503121561379d57600080fd5b50508035926020909101359150565b6000602082840312156137be57600080fd5b5035919050565b600080604083850312156137d857600080fd5b823591506137e860208401613728565b90509250929050565b6000806040838503121561380457600080fd5b61380d83613728565b9150602083013561381d8161375f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561386157613861613828565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561389057613890613828565b604052919050565b600067ffffffffffffffff8211156138b2576138b2613828565b5060051b60200190565b600082601f8301126138cd57600080fd5b813560206138e26138dd83613898565b613867565b82815260059290921b8401810191818101908684111561390157600080fd5b8286015b8481101561391c5780358352918301918301613905565b509695505050505050565b60006020828403121561393957600080fd5b813567ffffffffffffffff81111561395057600080fd5b61395c848285016138bc565b949350505050565b6000806040838503121561397757600080fd5b823567ffffffffffffffff8082111561398f57600080fd5b818501915085601f8301126139a357600080fd5b813560206139b36138dd83613898565b82815260059290921b840181019181810190898411156139d257600080fd5b948201945b838610156139f7576139e886613728565b825294820194908201906139d7565b96505086013592505080821115613a0d57600080fd5b50613a1a858286016138bc565b9150509250929050565b60008060208385031215613a3757600080fd5b823567ffffffffffffffff80821115613a4f57600080fd5b818501915085601f830112613a6357600080fd5b813581811115613a7257600080fd5b8660208260051b8501011115613a8757600080fd5b60209290920196919550909350505050565b60006020808385031215613aac57600080fd5b823567ffffffffffffffff80821115613ac457600080fd5b818501915085601f830112613ad857600080fd5b613ae061383e565b806060840188811115613af257600080fd5b845b81811015613b2657803585811115613b0c5760008081fd5b613b188b8289016138bc565b855250928601928601613af4565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613b6c57835183529284019291840191600101613b50565b50909695505050505050565b60008060408385031215613b8b57600080fd5b613b9483613728565b946020939093013593505050565b60208082526017908201527f496e76616c69642074696d6520666f7220627579696e67000000000000000000604082015260600190565b602080825260139082015272125b9d985b1a59081cd85b1948185b5bdd5b9d606a1b604082015260600190565b600060208284031215613c1857600080fd5b81516121818161375f565b6020808252818101527f416464726573732070726573656e7420696e2073616e6374696f6e206c697374604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615613c8857613c88613c58565b500290565b600082613caa57634e487b7160e01b600052601260045260246000fd5b500490565b600082821015613cc157613cc1613c58565b500390565b60008219821115613cd957613cd9613c58565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415613d0857613d08613c58565b5060010190565b600060208284031215613d2157600080fd5b5051919050565b60208082526021908201527f4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e636040820152606560f81b606082015260800190565b805169ffffffffffffffffffff8116811461373f57600080fd5b600080600080600060a08688031215613d9b57600080fd5b613da486613d69565b9450602086015193506040860151925060608601519150613dc760808701613d69565b90509295509295909350565b60006001600160ff1b0381841382841380821686840486111615613df957613df9613c58565b600160ff1b6000871282811687830589121615613e1857613e18613c58565b60008712925087820587128484161615613e3457613e34613c58565b87850587128184161615613e4a57613e4a613c58565b505050929093029392505050565b60208082526016908201527514185e5b595b9d081dd85b1b195d081b9bdd081cd95d60521b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825160005b81811015613ecd5760208186018101518583015201613eb3565b81811115613edc576000828501525b509190910192915050565b602080825260149082015273151bdad95b881c185e5b595b9d0819985a5b195960621b60408201526060019056fea2646970667358221220c334fea6bebc3f3324f3d06cc5ec449fa2fe3241ad2d97c0b46a5ad57b8c0f8564736f6c63430008090033