22.2k txs
21.1k calls
constructor
constructor()
functions
affiliates
viewfunction affiliates(address) view returns (address parent, address merchant, uint8 level)
calculateUpgradeAmount
viewfunction calculateUpgradeAmount(address _user) view returns (uint256)
entryFee
viewfunction entryFee() view returns (uint256)
getAffiliateData
viewfunction getAffiliateData(address _user) view returns (address parent, address merchant, uint8 level, uint256 childrenCount)
getAvailableEquity
viewfunction getAvailableEquity(uint8 _currentLevel, uint256 _totalIncome) view returns (uint256)
getChildren
viewfunction getChildren(bool _isAffiliate, address _user, uint256 _startIndex, uint256 _count) view returns (address[] childrenBatch)
getMerchantData
viewfunction getMerchantData(address _user) view returns (address parent, string location, uint256 fees, bool isActive, uint256 childrenCount)
getPassiveData
viewfunction getPassiveData(address _user) view returns (uint256 value, uint256 lastDeposit, uint256 lastWithdraw)
getPassiveReward
viewfunction getPassiveReward(address _user) view returns (uint256)
getWalletData
viewfunction getWalletData(address _user) view returns (uint256 balance, uint256 capping, uint256 totalIncome, uint256 lastWithdraw)
maxCapped
viewfunction maxCapped() view returns (uint8)
maxChildren
viewfunction maxChildren() view returns (uint8)
maxCooldown
viewfunction maxCooldown() view returns (uint8)
maxIteration
viewfunction maxIteration() view returns (uint8)
maxLevel
viewfunction maxLevel() view returns (uint8)
maxOverRide
viewfunction maxOverRide() view returns (uint8)
maxWithdraw
viewfunction maxWithdraw() view returns (uint256)
merchantAccounts
viewfunction merchantAccounts(uint256) view returns (address)
merchantFee
viewfunction merchantFee() view returns (uint256)
merchants
viewfunction merchants(address) view returns (address parent, string location, uint256 balance, uint256 fees, bool isActive)
minWithdraw
viewfunction minWithdraw() view returns (uint256)
passives
viewfunction passives(address) view returns (uint256 value, uint256 lastDeposit, uint256 lastWithdraw)
regFee
viewfunction regFee() view returns (uint256)
rewardsFee
viewfunction rewardsFee() view returns (uint256)
rewardsMerchant
viewfunction rewardsMerchant() view returns (uint256)
rewardsMerchantPool
viewfunction rewardsMerchantPool() view returns (uint256)
rewardsOverRide
viewfunction rewardsOverRide() view returns (uint256)
rewardsPassive
viewfunction rewardsPassive() view returns (uint256)
rewardsReferral
viewfunction rewardsReferral() view returns (uint256)
rewardsTradePool
viewfunction rewardsTradePool() view returns (uint256)
totalDeposits
viewfunction totalDeposits() view returns (uint256)
totalFeesCollected
viewfunction totalFeesCollected() view returns (uint256)
totalFeesTransfer
viewfunction totalFeesTransfer() view returns (uint256)
totalMerchantPool
viewfunction totalMerchantPool() view returns (uint256)
totalRewardsDistributed
viewfunction totalRewardsDistributed() view returns (uint256)
totalTradePool
viewfunction totalTradePool() view returns (uint256)
totalWalletTransfer
viewfunction totalWalletTransfer() view returns (uint256)
totalWithdrawals
viewfunction totalWithdrawals() view returns (uint256)
userAccounts
viewfunction userAccounts(uint256) view returns (address)
wallets
viewfunction wallets(address) view returns (uint256 balance, uint256 capping, uint256 totalIncome, uint256 lastWithdraw)
activateMerchant
nonpayablefunction activateMerchant(string _country)
activateWithDeposit
nonpayablefunction activateWithDeposit()
activateWithWallet
nonpayablefunction activateWithWallet()
collectPassive
nonpayablefunction collectPassive()
register
nonpayablefunction register(address _referrer, address _merchant)
transferBalance
nonpayablefunction transferBalance(address _recipient, uint256 _amount)
transferMerchantPool
nonpayablefunction transferMerchantPool()
transferRewardsFees
nonpayablefunction transferRewardsFees(uint256 _amount)
transferTradePool
nonpayablefunction transferTradePool()
updateAffiliateData
nonpayablefunction updateAffiliateData(address _user, address _parent, address _merchant, uint8 _level)
updateFees
nonpayablefunction updateFees(uint256 _newRegFee, uint256 _newEntryFee, uint256 _newMerchantFee, uint256 _newRewardsFee)
updateMerchantData
nonpayablefunction updateMerchantData(address _user, address _parent, string _location, uint256 _balance, uint256 _fees, bool _isActive)
updateModifiers
nonpayablefunction updateModifiers(address _newDevOps, address _newAssetManager, address _newExchanger)
updatePassiveData
nonpayablefunction updatePassiveData(address _user, uint256 _value, uint256 _lastDeposit, uint256 _lastWithdraw)
updateRewardRates
nonpayablefunction updateRewardRates(uint256 _newRewardsReferral, uint256 _newRewardsOverRide, uint256 _newRewardsPassive, uint256 _newRewardsMerchant, uint256 _newRewardsMerchantPool, uint256 _newRewardsTradePool)
updateRewardsToken
nonpayablefunction updateRewardsToken(address _newToken)
updateSafetyParameters
nonpayablefunction updateSafetyParameters(uint8 _newMaxLevel, uint8 _newMaxCapped, uint8 _newMaxOverRide, uint8 _newMaxChildren, uint8 _newMaxCooldown, uint8 _newMaxIteration, uint256 _newMaxWithdraw, uint256 _newMinWithdraw)
updateWalletData
nonpayablefunction updateWalletData(address _user, uint256 _balance, uint256 _capping, uint256 _totalIncome, uint256 _lastWithdraw)
withdraw
nonpayablefunction withdraw(uint256 _amount)
withdrawMerchantPool
nonpayablefunction withdrawMerchantPool()
events
AccountActivated
event AccountActivated(address indexed user, uint8 newLevel)
AffiliateUpdated
event AffiliateUpdated(address indexed user, address indexed affiliate)
MerchantActivated
event MerchantActivated(address indexed merchant, string location)
Rewards
event Rewards(string rewardsName, address indexed from, address indexed to, uint256 newValue)
SettingsUpdated
event SettingsUpdated(string settingName, uint256 newValue)
Transfer
event Transfer(string method, address indexed from, address indexed to, uint256 amount)
errors
CooldownPeriodActive
error CooldownPeriodActive()
InsufficientBalance
error InsufficientBalance()
InvalidAddress
error InvalidAddress()
InvalidAmount
error InvalidAmount()
TimeLocked
error TimeLocked()
WithdrawalLimit
error WithdrawalLimit()
creation bytecode
0x60806040526004805465ffffffffffff60a01b19166532008a81018560a11b179055678ac7230489e80000600581905568056bc75e2d63100000600655670de0b6b3a7640000600755600855683635c9adc5dea000006009556512309ce54000600a556103e8600b819055600c5561012c600d556101f4600e556064600f556109c460105534801561009057600080fd5b506001600081815581546001600160a01b03199081167355d398326f99059ff775485246999027b319795517835560028054821633908117909155600380548316821790556004805483168217905560408051608081018252308152815185815260208082018452808301918252828401859052600a60608401529386526019845291909420845181546001600160a01b0390911694169390931783555180519394929361014593850192919091019061035c565b506040828101516002928301805460609586015160ff16600160a01b026001600160a81b03199091166001600160a01b0393841617179055601d805460018181019092557f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f0180546001600160a01b03199081163390811790925584516080808201875269022b1c8c1227a000000080835269068155a43676e000000060208085019182526000858b0181815242878f018181528a8452601a85528d8420985189559451888c01559051878e015592516003909601959095558951808d018b52928352828101828152838b01928352878652601c82528a862093518455518389015590519190990155865160c0810188523081528751838152808a018952818a019081528851808a018a526004815263149bdbdd60e21b818c0152828a0152998101839052600e549181019190915260a08101859052928152601b875294909420815181549095169490931693909317825593518051929491936102cf939285019291019061035c565b50604082015160028201906102e49082610475565b50606082015160038201556080820151600482015560a0909101516005909101805491151560ff19909216919091179055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3500180546001600160a01b03191633179055610533565b8280548282559060005260206000209081019282156103b1579160200282015b828111156103b157825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061037c565b506103bd9291506103c1565b5090565b5b808211156103bd57600081556001016103c2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061040057607f821691505b60208210810361042057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561047057806000526020600020601f840160051c8101602085101561044d5750805b601f840160051c820191505b8181101561046d5760008155600101610459565b50505b505050565b81516001600160401b0381111561048e5761048e6103d6565b6104a28161049c84546103ec565b84610426565b6020601f8211600181146104d657600083156104be5750848201515b600019600385901b1c1916600184901b17845561046d565b600084815260208120601f198516915b8281101561050657878501518255602094850194600190920191016104e6565b50848210156105245786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b614ac5806105426000396000f3fe608060405234801561001057600080fd5b50600436106103a45760003560e01c80636176523f116101e9578063b582d6161161010f578063cfdd418b116100ad578063ed80c1341161007c578063ed80c134146108a4578063ee14e939146108b7578063ee172546146108db578063f0b71aa5146108e457600080fd5b8063cfdd418b14610878578063d6a061ef14610881578063e1471f0314610889578063e8997fb41461089c57600080fd5b8063c6616ba1116100e9578063c6616ba114610828578063cb3a6be31461083b578063cc06c3591461085b578063cc3d27211461086f57600080fd5b8063b582d6161461080e578063b882f7f714610817578063c43591441461081f57600080fd5b80638fff20f311610187578063aa67735411610156578063aa677354146107cb578063ac7a1b5b146107de578063aca70b4e146107e7578063b0942ce5146107fa57600080fd5b80638fff20f31461079d57806399886a14146107a6578063a1a88520146107b9578063a62a5d72146107c257600080fd5b80637a1168e3116101c35780637a1168e3146106ed5780637d88209714610700578063857923c41461070957806389b08f111461076857600080fd5b80636176523f146106c85780636e1ad24d146106db5780637099dbcf146106e457600080fd5b8063419ab340116102ce578063534028dc1161026c578063604646271161023b578063604646271461069b57806360a7422f146106a457806360c6d8ae146106ac578063616d5058146106b557600080fd5b8063534028dc14610663578063534277d51461066c578063553bea731461067557806356a6d9ef1461068857600080fd5b80634f51e294116102a85780634f51e294146105c157806351bbe9db1461062a5780635219fcf81461063d578063522235b61461065057600080fd5b8063419ab3401461053c5780634575d1221461058d57806345fe5eaa1461059657600080fd5b806317a52617116103465780632e1a7d4d116103155780632e1a7d4d1461048557806331c3033914610498578063344e9bf3146104ac5780633d51e4181461052957600080fd5b806317a526171461042e5780631d821d5a1461045457806324c608e7146104685780632bb14e1d1461047c57600080fd5b8063075081e311610382578063075081e31461040257806313cb2ede1461040a57806314d4fb491461041257806316628dc61461042557600080fd5b80630255ff52146103a957806306b8a102146103d6578063072ea61c146103eb575b600080fd5b6103bc6103b7366004614003565b610913565b6040516103cd959493929190614064565b60405180910390f35b6103e96103e43660046140a5565b610a60565b005b6103f460085481565b6040519081526020016103cd565b6103e9610c3f565b6103e9610dc7565b6103f4610420366004614003565b610ea6565b6103f460165481565b60045461044290600160b01b900460ff1681565b60405160ff90911681526020016103cd565b60045461044290600160c01b900460ff1681565b60045461044290600160a81b900460ff1681565b6103f4600a5481565b6103e96104933660046140a5565b610f4c565b60045461044290600160b81b900460ff1681565b6104f66104ba366004614003565b6001600160a01b039081166000908152601960205260409020805460028201546001909201549083169392821692600160a01b90920460ff1691565b604080516001600160a01b03958616815294909316602085015260ff9091169183019190915260608201526080016103cd565b6103e96105373660046140cf565b61120a565b61057261054a366004614003565b6001600160a01b03166000908152601c60205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016103cd565b6103f4600d5481565b6105a96105a43660046140a5565b611366565b6040516001600160a01b0390911681526020016103cd565b6106016105cf366004614003565b601960205260009081526040902080546002909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b03948516815293909216602084015260ff16908201526060016103cd565b6103e9610638366004614123565b611390565b6103e961064b366004614166565b61146c565b6103f461065e366004614003565b6117f6565b6103f4600f5481565b6103f4600b5481565b6103e9610683366004614294565b611807565b6103e96106963660046142c9565b611c64565b6103f460125481565b6103e9611ee7565b6103f460155481565b6105a96106c33660046140a5565b6120d9565b6103e96106d63660046142f3565b6120e9565b6103f460175481565b6103f460095481565b6103e96106fb366004614336565b61230b565b6103f460115481565b610748610717366004614003565b6001600160a01b03166000908152601a60205260409020805460018201546002830154600390930154919390929190565b6040805194855260208501939093529183015260608201526080016103cd565b610748610776366004614003565b601a6020526000908152604090208054600182015460028301546003909301549192909184565b6103f460075481565b6103f46107b4366004614378565b6123de565b6103f4600e5481565b6103f460105481565b6103e96107d9366004614394565b6123ea565b6103f460065481565b6103e96107f53660046143d8565b612521565b60045461044290600160c81b900460ff1681565b6103f460185481565b6103e96126f2565b6103f4600c5481565b6103e961083636600461445d565b612882565b61084e61084936600461448f565b6129e1565b6040516103cd91906144d3565b60045461044290600160a01b900460ff1681565b6103f460055481565b6103f460145481565b6103e9612b35565b6103e961089736600461451f565b612ce3565b6103e9612da7565b6103e96108b2366004614003565b613040565b6108ca6108c5366004614003565b6130da565b6040516103cd959493929190614558565b6103f460135481565b6105726108f2366004614003565b601c6020526000908152604090208054600182015460029092015490919083565b6001600160a01b038181166000908152601b60205260408120549091606091839182918291166109845760405162461bcd60e51b815260206004820152601760248201527613595c98da185b9d08191bd95cc81b9bdd08195e1a5cdd604a1b60448201526064015b60405180910390fd5b6001600160a01b038087166000908152601b6020526040902080546004820154600583015460018401546002850180549596949094169460ff9092169184906109cc9061459b565b80601f01602080910402602001604051908101604052809291908181526020018280546109f89061459b565b8015610a455780601f10610a1a57610100808354040283529160200191610a45565b820191906000526020600020905b815481529060010190602001808311610a2857829003601f168201915b50505050509350955095509550955095505091939590929450565b6002546001600160a01b03163314610ab65760405162461bcd60e51b8152602060048201526019602482015278556e617574686f72697a65643a204465764f7073206f6e6c7960381b604482015260640161097b565b6000601654601554610ac891906145eb565b905080821115610aeb5760405163162908e360e11b815260040160405180910390fd5b6001546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015610b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5791906145fe565b1015610b7657604051631e9acf1760e31b815260040160405180910390fd5b60015460025460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291169063a9059cbb906044016020604051808303816000875af1158015610bcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bef9190614617565b610c0b5760405162461bcd60e51b815260040161097b90614634565b8160166000828254610c1d919061465d565b925050819055508160126000828254610c36919061465d565b90915550505050565b600260005403610c615760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601b602052604090206005015460ff16610cbb5760405162461bcd60e51b8152602060048201526011602482015270125b9858dd1a5d99481b595c98da185b9d607a1b604482015260640161097b565b60065460185411610d015760405162461bcd60e51b815260206004820152601060248201526f4e6f7420656e6f7567682071756f746160801b604482015260640161097b565b601e54601854600090610d159083906146a7565b905060005b82811015610dbd576000601e8281548110610d3757610d376146c9565b60009182526020808320909101546001600160a01b0316808352601b90915260409091206005015490915060ff1615610db4576001600160a01b0381166000908152601b602052604081206003018054859290610d9590849061465d565b925050819055508260186000828254610dae91906145eb565b90915550505b50600101610d1a565b5050600160005550565b600260005403610de95760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601960205260409020546001600160a01b0316151580610e1d57506003546001600160a01b031633145b610e395760405162461bcd60e51b815260040161097b906146df565b6000610e4433610ea6565b336000908152601a60205260409020805491925090821115610e7957604051631e9acf1760e31b815260040160405180910390fd5b81816000016000828254610e8d91906145eb565b90915550610e9d905033836131a0565b50506001600055565b6004546001600160a01b0382166000908152601960205260408120600201549091829160ff600160a01b928390048116929091041610610ef257600454600160a01b900460ff16610f19565b6001600160a01b038316600090815260196020526040902060020154600160a01b900460ff165b905060ff811615610f4157610f2f8160026147f1565b600854610f3c9190614800565b610f45565b6008545b9392505050565b600260005403610f6e5760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601a6020526040902060010154610fa15760405162461bcd60e51b815260040161097b90614817565b336000908152601a60205260409020600554821015610fd357604051630997d9eb60e01b815260040160405180910390fd5b600654821115610ff657604051630997d9eb60e01b815260040160405180910390fd5b805482111561101857604051631e9acf1760e31b815260040160405180910390fd5b6001546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015611060573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108491906145fe565b10156110a357604051631e9acf1760e31b815260040160405180910390fd5b6000620151808260030154426110b991906145eb565b6110c391906146a7565b600454909150600160c01b900460ff168110156110f35760405163998d019b60e01b815260040160405180910390fd5b60015460405163a9059cbb60e01b8152336004820152602481018590526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111689190614617565b6111845760405162461bcd60e51b815260040161097b90614634565b8282600001600082825461119891906145eb565b9091555050426003830155601280548491906000906111b890849061465d565b90915550506040805181815260088183015267776974686472617760c01b606082015260208101859052905133913091600080516020614a708339815191529181900360800190a35050600160005550565b6003546001600160a01b031633146112345760405162461bcd60e51b815260040161097b9061483e565b6001600160a01b038416600090815260196020526040902060ff8216156112705760028101805460ff60a01b1916600160a01b60ff8516021790555b6001600160a01b038416156112e25780546001600160a01b03166112968187600161330b565b5080546001600160a01b038086166001600160a01b0319928316811784556000908152601960209081526040822060019081018054918201815583529120018054918816919092161790555b6001600160a01b0383161561135f5760028101546001600160a01b031661130b8187600061330b565b506002810180546001600160a01b03199081166001600160a01b038681169182179093556000908152601b602090815260408220600190810180549182018155835291200180549091169187169190911790555b5050505050565b601e818154811061137657600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b031633146113e65760405162461bcd60e51b8152602060048201526019602482015278556e617574686f72697a65643a204465764f7073206f6e6c7960381b604482015260640161097b565b6001600160a01b0383161561141157600280546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0382161561143c57600380546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0381161561146757600480546001600160a01b0319166001600160a01b0383161790555b505050565b6003546001600160a01b031633146114965760405162461bcd60e51b815260040161097b9061483e565b60ff881615611508576004805460ff8a16600160a01b0260ff60a01b19909116179055604051600080516020614a50833981519152906114ff908a906040808252600890820152671b585e13195d995b60c21b606082015260ff91909116602082015260800190565b60405180910390a15b60ff87161561157b576004805460ff8916600160a81b0260ff60a81b19909116179055604051600080516020614a50833981519152906115729089906040808252600990820152681b585e10d85c1c195960ba1b606082015260ff91909116602082015260800190565b60405180910390a15b60ff8616156115f0576004805460ff8816600160b01b0260ff60b01b19909116179055604051600080516020614a50833981519152906115e79088906040808252600b908201526a6d61784f7665725269646560a81b606082015260ff91909116602082015260800190565b60405180910390a15b60ff851615611665576004805460ff8716600160b81b0260ff60b81b19909116179055604051600080516020614a508339815191529061165c9087906040808252600b908201526a36b0bc21b434b6323932b760a91b606082015260ff91909116602082015260800190565b60405180910390a15b60ff8416156116da576004805460ff8616600160c01b0260ff60c01b19909116179055604051600080516020614a50833981519152906116d19086906040808252600b908201526a36b0bc21b7b7b63237bbb760a91b606082015260ff91909116602082015260800190565b60405180910390a15b60ff831615611750576004805460ff8516600160c81b0260ff60c81b19909116179055604051600080516020614a50833981519152906117479085906040808252600c908201526b36b0bc24ba32b930ba34b7b760a11b606082015260ff91909116602082015260800190565b60405180910390a15b811561179e57600682905560408051818152600b818301526a6d6178576974686472617760a81b6060820152602081018490529051600080516020614a508339815191529181900360800190a15b80156117ec57600581905560408051818152600b818301526a6d696e576974686472617760a81b6060820152602081018390529051600080516020614a508339815191529181900360800190a15b5050505050505050565b600061180182613462565b92915050565b6002600054036118295760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601960205260409020546001600160a01b031615158061185d57506003546001600160a01b031633145b6118795760405162461bcd60e51b815260040161097b906146df565b336000908152601a602090815260408083206019835281842080546001600160a01b03168552601b90935290832090925b601e54811015611a03576000601b6000601e84815481106118cd576118cd6146c9565b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002090508580519060200120816002016040516119269190614873565b60405180910390200361197b5760405162461bcd60e51b815260206004820181905260248201527f4d65726368616e742065786973747320666f72207468697320636f756e747279604482015260640161097b565b336001600160a01b0316601e8381548110611998576119986146c9565b6000918252602090912001546001600160a01b0316036119fa5760405162461bcd60e51b815260206004820152601d60248201527f4d65726368616e742077616c6c657420657869737420616c7265616479000000604482015260640161097b565b506001016118aa565b5060095483541015611aaf576001546009546040516323b872dd60e01b815233600482015230602482015260448101919091526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190614617565b611aaa5760405162461bcd60e51b815260040161097b90614634565b611acb565b600954836000016000828254611ac591906145eb565b90915550505b6040805160c08101909152815481906001600160a01b031615611af85783546001600160a01b0316611afa565b305b6001600160a01b031681526020016000604051908082528060200260200182016040528015611b33578160200160208202803683370190505b508152602080820187905260006040808401829052600e54606085015260016080909401849052338252601b83529020835181546001600160a01b0319166001600160a01b039091161781558382015180519193611b979390850192910190613f6d565b5060408201516002820190611bac908261492f565b50606082015160038201556080820151600482015560a0909101516005909101805460ff1916911515919091179055601e80546001810182556000919091527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350018054336001600160a01b031990911681179091556040517f376dc2d1b08edf5482ae3d64b5d42fdf73898380301a15aa9a097acf6642dcbf90611c519087906149ee565b60405180910390a2505060016000555050565b600260005403611c865760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601a6020526040902060010154611cb95760405162461bcd60e51b815260040161097b90614817565b80600003611cda5760405163162908e360e11b815260040160405180910390fd5b6001600160a01b038216611d015760405163e6c4247b60e01b815260040160405180910390fd5b336001600160a01b03831603611d2a5760405163e6c4247b60e01b815260040160405180910390fd5b600554811015611d4d5760405163162908e360e11b815260040160405180910390fd5b600654811115611d7057604051630997d9eb60e01b815260040160405180910390fd5b336000908152601a6020526040812060038101549091906201518090611d9690426145eb565b611da091906146a7565b600454909150600160c01b900460ff16811015611dd05760405163998d019b60e01b815260040160405180910390fd5b336000908152601a60205260408120600a54909190611def908661465d565b90508082600001541015611e1657604051631e9acf1760e31b815260040160405180910390fd5b80826000016000828254611e2a91906145eb565b90915550506001600160a01b0386166000908152601a602052604081208054879290611e5790849061465d565b925050819055508460146000828254611e70919061465d565b9091555050600a5460158054600090611e8a90849061465d565b9091555050604080518181526007818301526662616c616e636560c81b60608201526020810187905290516001600160a01b038816913391600080516020614a708339815191529181900360800190a35050600160005550505050565b600260005403611f095760405162461bcd60e51b815260040161097b90614670565b60026000556004546001600160a01b03163314611f685760405162461bcd60e51b815260206004820152601c60248201527f556e617574686f72697a65643a2045786368616e676572206f6e6c7900000000604482015260640161097b565b601754600003611f8b5760405163162908e360e11b815260040160405180910390fd5b6017546001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffa91906145fe565b101561201957604051631e9acf1760e31b815260040160405180910390fd5b6001546004805460175460405163a9059cbb60e01b81526001600160a01b039283169381019390935260248301529091169063a9059cbb906044016020604051808303816000875af1158015612073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120979190614617565b6120b35760405162461bcd60e51b815260040161097b90614634565b601754601260008282546120c7919061465d565b90915550506000601781905560019055565b601d818154811061137657600080fd5b6003546001600160a01b031633146121135760405162461bcd60e51b815260040161097b9061483e565b851561216557600b86905560408051818152600f818301526e1c995dd85c991cd49959995c9c985b608a1b6060820152602081018890529051600080516020614a508339815191529181900360800190a15b84156121b757600c85905560408051818152600f818301526e726577617264734f7665725269646560881b6060820152602081018790529051600080516020614a508339815191529181900360800190a15b831561220857600d84905560408051818152600e818301526d726577617264735061737369766560901b6060820152602081018690529051600080516020614a508339815191529181900360800190a15b821561225a57600e83905560408051818152600f818301526e1c995dd85c991cd3595c98da185b9d608a1b6060820152602081018590529051600080516020614a508339815191529181900360800190a15b81156122b057600f82905560408051818152601381830152721c995dd85c991cd3595c98da185b9d141bdbdb606a1b6060820152602081018490529051600080516020614a508339815191529181900360800190a15b801561230357601081815560408051818152808201929092526f1c995dd85c991cd51c985919541bdbdb60821b60608301526020820183905251600080516020614a508339815191529181900360800190a15b505050505050565b6003546001600160a01b031633146123355760405162461bcd60e51b815260040161097b9061483e565b6001600160a01b0385166000908152601a60205260409020600301546123905760405162461bcd60e51b815260206004820152601060248201526f15d85b1b195d08139bdd08119bdd5b9960821b604482015260640161097b565b6001600160a01b0385166000908152601a6020526040902084156123b2578481555b83156123c057600181018490555b82156123ce57600281018390555b8115612303576003015550505050565b6000610f458383613561565b60026000540361240c5760405162461bcd60e51b815260040161097b90614670565b600260005561241c33838361365d565b670de0b6b3a7640000600754106124cc576001546003546007546040516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101919091529116906323b872dd906064016020604051808303816000875af115801561248c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b09190614617565b6124cc5760405162461bcd60e51b815260040161097b90614634565b6124d73383836138bc565b5050601d80546001818101835560009283527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f90910180546001600160a01b031916331790559055565b6003546001600160a01b0316331461254b5760405162461bcd60e51b815260040161097b9061483e565b6001600160a01b038681166000908152601b6020526040902054166125ac5760405162461bcd60e51b815260206004820152601760248201527613595c98da185b9d08191bd95cc81b9bdd08195e1a5cdd604a1b604482015260640161097b565b6001600160a01b038087166000908152601b6020526040902090861615612693576001600160a01b0386166000908152601b602052604090206005015460ff1661262c5760405162461bcd60e51b8152602060048201526011602482015270506172656e74206e6f742061637469766560781b604482015260640161097b565b80546001600160a01b0319166001600160a01b0387161781556126518688600061330b565b6001600160a01b038681166000908152601b602090815260408220600190810180549182018155835291200180546001600160a01b0319169189169190911790555b8451156126aa57600281016126a8868261492f565b505b83156126b857600381018490555b82156126c657600481018390555b600581015460ff161515821515146126e95760058101805460ff19168315151790555b50505050505050565b6002600054036127145760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601a60205260409020600101546127475760405162461bcd60e51b815260040161097b90614817565b336000908152601c60209081526040808320601a9092528220600282015491929091810361277957826001015461277f565b82600201545b9050600061278c33613462565b905061279b620151808361465d565b4210156127bb576040516356f3855760e01b815260040160405180910390fd5b80836001015410156127e057604051631e9acf1760e31b815260040160405180910390fd5b808360000160008282546127f4919061465d565b925050819055508083600101600082825461280f91906145eb565b925050819055508083600201600082825461282a919061465d565b909155505042600285015560408051818152600781830152667061737369766560c81b606082015260208101839052905133913091600080516020614a708339815191529181900360800190a3505060016000555050565b6003546001600160a01b031633146128ac5760405162461bcd60e51b815260040161097b9061483e565b83156128f5576007849055604080518181526006818301526572656746656560d01b6060820152602081018690529051600080516020614a508339815191529181900360800190a15b8215612940576008838155604080518181528082019290925267656e74727946656560c01b60608301526020820185905251600080516020614a508339815191529181900360800190a15b811561298e57600982905560408051818152600b818301526a6d65726368616e7446656560a81b6060820152602081018490529051600080516020614a508339815191529181900360800190a15b80156129db57600a8181556040805181815280820192909252697265776172647346656560b01b60608301526020820183905251600080516020614a508339815191529181900360800190a15b50505050565b6060600085612a0a576001600160a01b0385166000908152601b60205260409020600101612a26565b6001600160a01b03851660009081526019602052604090206001015b80549091508085101580612a38575083155b15612a555750506040805160008152602081019091529050612b2d565b6000612a61858761465d565b905081811115612a6e5750805b612a7886826145eb565b67ffffffffffffffff811115612a9057612a906141ef565b604051908082528060200260200182016040528015612ab9578160200160208202803683370190505b509350855b81811015612b2857838181548110612ad857612ad86146c9565b6000918252602090912001546001600160a01b031685612af889846145eb565b81518110612b0857612b086146c9565b6001600160a01b0390921660209283029190910190910152600101612abe565b505050505b949350505050565b600260005403612b575760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601960205260409020546001600160a01b0316151580612b8b57506003546001600160a01b031633145b612ba75760405162461bcd60e51b815260040161097b906146df565b6000612bb233610ea6565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015612c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2e9190614617565b612c4a5760405162461bcd60e51b815260040161097b90614634565b8060116000828254612c5c919061465d565b90915550612c6c905033826131a0565b600061271060105483612c7f9190614800565b612c8991906146a7565b90508060176000828254612c9d919061465d565b9091555050600f5460009061271090612cb69085614800565b612cc091906146a7565b90508060186000828254612cd4919061465d565b90915550506001600055505050565b6003546001600160a01b03163314612d0d5760405162461bcd60e51b815260040161097b9061483e565b6001600160a01b0384166000908152601a6020526040902060030154612d685760405162461bcd60e51b815260206004820152601060248201526f15d85b1b195d08139bdd08119bdd5b9960821b604482015260640161097b565b6001600160a01b0384166000908152601c602052604090208315612d8a578381555b8215612d9857600181018390555b811561135f5760020155505050565b600260005403612dc95760405162461bcd60e51b815260040161097b90614670565b60026000908155338152601b602052604090206005015460ff16612e235760405162461bcd60e51b8152602060048201526011602482015270125b9858dd1a5d99481b595c98da185b9d607a1b604482015260640161097b565b336000908152601b60205260409081902060015491516370a0823160e01b815230600482015290916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e9f91906145fe565b816003015410612ee65760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015260640161097b565b600554816003015411612f305760405162461bcd60e51b8152602060048201526012602482015271135a5b9a5b5d5b481dda5d1a191c985dd85b60721b604482015260640161097b565b600154600382015460405163a9059cbb60e01b815233600482015260248101919091526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015612f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fab9190614617565b612fc75760405162461bcd60e51b815260040161097b90614634565b806003015460126000828254612fdd919061465d565b9091555050600381015460405133913091600080516020614a7083398151915291613030916040808252600c908201526b1b595c98da185b9d1c1bdbdb60a21b6060820152602081019190915260800190565b60405180910390a3506001600055565b6003546001600160a01b0316331461306a5760405162461bcd60e51b815260040161097b9061483e565b6001600160a01b0381166130b85760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b604482015260640161097b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b601b60205260009081526040902080546002820180546001600160a01b0390921692916131069061459b565b80601f01602080910402602001604051908101604052809291908181526020018280546131329061459b565b801561317f5780601f106131545761010080835404028352916020019161317f565b820191906000526020600020905b81548152906001019060200180831161316257829003601f168201915b50505050600383015460048401546005909401549293909290915060ff1685565b6001600160a01b0382166000908152601960205260409020600281018054600191906014906131da908490600160a01b900460ff16614a01565b82546101009290920a60ff81810219909316918316021790915560045461320a9250600160a81b90041683614800565b6001600160a01b0384166000908152601a60205260408120600101805490919061323590849061465d565b90915550506001600160a01b0383166000908152601c60205260408120805484929061326290849061465d565b90915550506001600160a01b0383166000908152601c6020526040902042600182018190556002909101556132978383613a38565b6132a18383613b89565b60028101546132b9906001600160a01b031683613da2565b6002810154604051600160a01b90910460ff1681526001600160a01b038416907f9445c08d1102e9c78f7bc219f570e89e1f5e0b8f368940a2f2620b1155c28da49060200160405180910390a2505050565b600081613332576001600160a01b0384166000908152601b6020526040902060010161334e565b6001600160a01b03841660009081526019602052604090206001015b805490915060005b8181101561230357846001600160a01b031683828154811061337a5761337a6146c9565b6000918252602090912001546001600160a01b03160361345a5761339f6001836145eb565b811461342057826133b16001846145eb565b815481106133c1576133c16146c9565b9060005260206000200160009054906101000a90046001600160a01b03168382815481106133f1576133f16146c9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b8280548061343057613430614a1a565b600082815260209020810160001990810180546001600160a01b0319169055019055505050505050565b600101613356565b6001600160a01b0381166000908152601c602090815260408083208151606081018352815481526001820154938101849052600290910154918101919091529082036134b15750600092915050565b600081604001516000036134c95781602001516134cf565b81604001515b90506000620151806134e183426145eb565b6134eb91906146a7565b6001600160a01b0386166000908152601960209081526040808320600290810154601a9093529083200154929350909161352f91600160a01b900460ff1690613561565b9050612710600d5482846135439190614800565b61354d9190614800565b61355791906146a7565b9695505050505050565b6000808080805b8660ff168160ff1610801561358c575060045460ff600160a01b9091048116908216105b156136075760ff8116156135b7576135a58160026147f1565b6008546135b29190614800565b6135bb565b6008545b6004549092506135d590600160a81b900460ff1683614800565b6135df908461465d565b92508286116135f5576135f2828561465d565b93505b806135ff81614a30565b915050613568565b5060045460ff600160a01b909104811690871610801590613626575082155b156136535760045461364390600160a01b900460ff1660026147f1565b6008546136509190614800565b92505b5090949350505050565b6001600160a01b0383166136845760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0381166136ab5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166136d25760405163e6c4247b60e01b815260040160405180910390fd5b806001600160a01b0316836001600160a01b031614806137035750816001600160a01b0316836001600160a01b0316145b156137215760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b03838116600090815260196020526040902054161561377e5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481c9959da5cdd195c995960721b604482015260640161097b565b6001600160a01b03828116600090815260196020526040902054166137e55760405162461bcd60e51b815260206004820152601760248201527f5265666572726572206e6f742072656769737465726564000000000000000000604482015260640161097b565b6004546001600160a01b038316600090815260196020526040902060010154600160b81b90910460ff16116138555760405162461bcd60e51b8152602060048201526016602482015275149959995c9c995c881b1a5b5a5d081c995858da195960521b604482015260640161097b565b6001600160a01b038181166000908152601b6020526040902054166114675760405162461bcd60e51b815260206004820152601760248201527f4d65726368616e74206e6f742072656769737465726564000000000000000000604482015260640161097b565b604080516080810182526001600160a01b03848116825282516000808252602080830186528085019283528684168587015260608501829052888416825260198152949020835181546001600160a01b03191693169290921782555180519293919261392e9260018501920190613f6d565b506040828101516002928301805460609586015160ff16600160a01b026001600160a81b03199091166001600160a01b03938416171790559485166000908152601960209081528282206001908101805480830182559084528284200180549989166001600160a01b03199a8b168117909155969097168252601b81528282208701805480890182559083528183200180549098168617909755815160808101835281815280880182815281840183815242838801908152888552601a8b52858520935184559151838a015551828601555160039091015581519384018252808452838701818152848301828152958252601c909752209151825593519281019290925551910155565b6001600160a01b038083166000908152601960205260409020541680613a5d57505050565b6000612710600b5484613a709190614800565b613a7a91906146a7565b6001600160a01b0383166000908152601a60205260409020600181015491925090821161135f5781816000016000828254613ab5919061465d565b9250508190555081816001016000828254613ad091906145eb565b9250508190555081816002016000828254613aeb919061465d565b925050819055508160136000828254613b04919061465d565b92505081905550826001600160a01b0316856001600160a01b03167fa5a826ae4f07270499fed1a3ae7a611c5092c4d714c3cd5da5f0c3b0c15a160a84604051613b7a91906040808252600f908201526e526566657272616c5265776172647360881b6060820152602081019190915260800190565b60405180910390a35050505050565b6001600160a01b0380831660009081526019602052604081208054600c54919316919061271090613bba9086614800565b613bc491906146a7565b6002840154909150600160a01b900460ff16600080600a8310613beb575050505050505050565b6001600160a01b03851615801590613c12575060045460ff600160b01b9091048116908316105b8015613c2d575060045460ff600160c81b9091048116908216105b156117ec576001600160a01b0385166000908152601960209081526040808320601a909252909120600282015460ff600160a01b9091048116908616108015613c7a575085816001015410155b15613d815785816000016000828254613c93919061465d565b9250508190555085816001016000828254613cae91906145eb565b9250508190555085816002016000828254613cc9919061465d565b925050819055508560136000828254613ce2919061465d565b90915550849050613cf281614a30565b9450508160020160149054906101000a900460ff169450866001600160a01b03168a6001600160a01b03167fa5a826ae4f07270499fed1a3ae7a611c5092c4d714c3cd5da5f0c3b0c15a160a88604051613d7891906040808252600f908201526e4f766572526964655265776172647360881b6060820152602081019190915260800190565b60405180910390a35b81546001600160a01b0316965082613d9881614a30565b9350505050613beb565b6001600160a01b0382166000908152601b60205260409020600581015460ff161580613dd057506004810154155b15613dda57505050565b6000612710826004015484613def9190614800565b613df991906146a7565b6001546040516370a0823160e01b815230600482015291925082916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e6a91906145fe565b106129db5760015460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015613ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee69190614617565b613f025760405162461bcd60e51b815260040161097b90614634565b60408051818152600f818301526e4d65726368616e745265776172647360881b60608201526020810183905290516001600160a01b0386169130917fa5a826ae4f07270499fed1a3ae7a611c5092c4d714c3cd5da5f0c3b0c15a160a9181900360800190a350505050565b828054828255906000526020600020908101928215613fc2579160200282015b82811115613fc257825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613f8d565b50613fce929150613fd2565b5090565b5b80821115613fce5760008155600101613fd3565b80356001600160a01b0381168114613ffe57600080fd5b919050565b60006020828403121561401557600080fd5b610f4582613fe7565b6000815180845260005b8181101561404457602081850181015186830182015201614028565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a0602082018190526000906140889083018761401e565b604083019590955250911515606083015260809091015292915050565b6000602082840312156140b757600080fd5b5035919050565b803560ff81168114613ffe57600080fd5b600080600080608085870312156140e557600080fd5b6140ee85613fe7565b93506140fc60208601613fe7565b925061410a60408601613fe7565b9150614118606086016140be565b905092959194509250565b60008060006060848603121561413857600080fd5b61414184613fe7565b925061414f60208501613fe7565b915061415d60408501613fe7565b90509250925092565b600080600080600080600080610100898b03121561418357600080fd5b61418c896140be565b975061419a60208a016140be565b96506141a860408a016140be565b95506141b660608a016140be565b94506141c460808a016140be565b93506141d260a08a016140be565b979a969950949793969295929450505060c08201359160e0013590565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261421657600080fd5b813567ffffffffffffffff811115614230576142306141ef565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561425f5761425f6141ef565b60405281815283820160200185101561427757600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156142a657600080fd5b813567ffffffffffffffff8111156142bd57600080fd5b612b2d84828501614205565b600080604083850312156142dc57600080fd5b6142e583613fe7565b946020939093013593505050565b60008060008060008060c0878903121561430c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600080600060a0868803121561434e57600080fd5b61435786613fe7565b97602087013597506040870135966060810135965060800135945092505050565b6000806040838503121561438b57600080fd5b6142e5836140be565b600080604083850312156143a757600080fd5b6143b083613fe7565b91506143be60208401613fe7565b90509250929050565b80151581146143d557600080fd5b50565b60008060008060008060c087890312156143f157600080fd5b6143fa87613fe7565b955061440860208801613fe7565b9450604087013567ffffffffffffffff81111561442457600080fd5b61443089828a01614205565b945050606087013592506080870135915060a087013561444f816143c7565b809150509295509295509295565b6000806000806080858703121561447357600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080608085870312156144a557600080fd5b84356144b0816143c7565b93506144be60208601613fe7565b93969395505050506040820135916060013590565b602080825282518282018190526000918401906040840190835b818110156145145783516001600160a01b03168352602093840193909201916001016144ed565b509095945050505050565b6000806000806080858703121561453557600080fd5b61453e85613fe7565b966020860135965060408601359560600135945092505050565b6001600160a01b038616815260a06020820181905260009061457c9083018761401e565b6040830195909552506060810192909252151560809091015292915050565b600181811c908216806145af57607f821691505b6020821081036145cf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611801576118016145d5565b60006020828403121561461057600080fd5b5051919050565b60006020828403121561462957600080fd5b8151610f45816143c7565b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b80820180821115611801576118016145d5565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000826146c457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6020808252601190820152702ab73932b3b4b9ba32b932b2103ab9b2b960791b604082015260600190565b6001815b600184111561474557808504811115614729576147296145d5565b600184161561473757908102905b60019390931c92800261470e565b935093915050565b60008261475c57506001611801565b8161476957506000611801565b816001811461477f5760028114614789576147a5565b6001915050611801565b60ff84111561479a5761479a6145d5565b50506001821b611801565b5060208310610133831016604e8410600b84101617156147c8575081810a611801565b6147d5600019848461470a565b80600019048211156147e9576147e96145d5565b029392505050565b6000610f4560ff84168361474d565b8082028115828204841417611801576118016145d5565b6020808252600d908201526c24b730b1ba34bb32903ab9b2b960991b604082015260600190565b6020808252818101527f556e617574686f72697a65643a204173736574206d616e61676572206f6e6c79604082015260600190565b60008083546148818161459b565b60018216801561489857600181146148ad576148dd565b60ff19831686528115158202860193506148dd565b86600052602060002060005b838110156148d5578154888201526001909101906020016148b9565b505081860193505b509195945050505050565b601f82111561146757806000526020600020601f840160051c8101602085101561490f5750805b601f840160051c820191505b8181101561135f576000815560010161491b565b815167ffffffffffffffff811115614949576149496141ef565b61495d81614957845461459b565b846148e8565b6020601f82116001811461499157600083156149795750848201515b600019600385901b1c1916600184901b17845561135f565b600084815260208120601f198516915b828110156149c157878501518255602094850194600190920191016149a1565b50848210156149df5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000610f45602083018461401e565b60ff8181168382160190811115611801576118016145d5565b634e487b7160e01b600052603160045260246000fd5b600060ff821660ff8103614a4657614a466145d5565b6001019291505056feb222d6ddd0be50f7c54e1b26cab3e46db6b5d305309e8e64752543bb11bf5ea754c25aa230f7ee0c1e146d3416a3a4972d9fa34640b86e84383b461a585593dea26469706673582212209d02a19a4db1f6bd93b07283bc707fdbfa819a67afd52906ecb280b26b09de3564736f6c634300081e0033