330 txs
3.7k calls
constructor
constructor(address[] _wallets)
functions
agentLimit
viewfunction agentLimit() view returns (uint256)
agentScale
viewfunction agentScale() view returns (uint256)
buyOneUnit
viewfunction buyOneUnit() view returns (uint256)
buyRewardScale
viewfunction buyRewardScale() view returns (uint256)
checkAgent
viewfunction checkAgent(address _user) view returns (bool)
defaultParent
viewfunction defaultParent() view returns (address)
devFee
viewfunction devFee() view returns (uint256)
devWallet
viewfunction devWallet() view returns (address)
getAgentUsers
viewfunction getAgentUsers() view returns (address[])
getInviteUsers
viewfunction getInviteUsers(address _user) view returns (uint256, address[])
getOrderAddress
viewfunction getOrderAddress(uint256 _orderId) view returns (bool, string, uint256, string, bool)
getOrderBuyInfo
viewfunction getOrderBuyInfo(uint256 _orderId) view returns (address, uint256, uint256, uint256)
getOrderMail
viewfunction getOrderMail(uint256 _orderId) view returns (bool, string, string)
getParent
viewfunction getParent(address _user) view returns (address)
getRank
viewfunction getRank(address _user) view returns (address[])
getRankTeamTotalU
viewfunction getRankTeamTotalU(address _user) view returns (uint256, uint256, uint256)
getTeamUser
viewfunction getTeamUser(address _child) view returns (address, uint256, uint256, uint256)
getUAllocate
viewfunction getUAllocate(uint256 _unit, uint256 _totalU) view returns (uint256, uint256, uint256, uint256)
getUnitTotalPrice
viewfunction getUnitTotalPrice(uint256 _unit) view returns (uint256)
getUsdtToUnkScale
viewfunction getUsdtToUnkScale(uint256 _usdt, uint256 _scale) view returns (uint256)
getUserInfo
viewfunction getUserInfo(address _user) view returns (bool, uint256, uint256)
getUserOrderIds
viewfunction getUserOrderIds(address _user) view returns (uint256[])
inviteUsers
viewfunction inviteUsers(address, uint256) view returns (address)
isBind
viewfunction isBind(address _user) view returns (bool)
isNftOwner
viewfunction isNftOwner(address _user) view returns (bool)
lastInviteTime
viewfunction lastInviteTime(address) view returns (uint256)
level
viewfunction level(uint256) view returns (uint256)
minBuyUnit
viewfunction minBuyUnit() view returns (uint256)
minInviteBuyUnit
viewfunction minInviteBuyUnit() view returns (uint256)
orderIds
viewfunction orderIds() view returns (uint256)
orders
viewfunction orders(uint256) view returns (uint256 orderId, address user, uint256 unit, string name, uint256 phone, string addr, string mailCompany, string mailCode, uint256 time, bool isWrite, bool isSend, bool isPickup)
owner
viewfunction owner() view returns (address)
payeeWallet
viewfunction payeeWallet() view returns (address)
runnerUp
viewfunction runnerUp() view returns (uint256)
runnerUpScale
viewfunction runnerUpScale() view returns (uint256)
secondRunnerUp
viewfunction secondRunnerUp() view returns (uint256)
secondRunnerUpScale
viewfunction secondRunnerUpScale() view returns (uint256)
tradeAddress
viewfunction tradeAddress() view returns (address)
tradeU
viewfunction tradeU() view returns (uint256)
unitPrice
viewfunction unitPrice() view returns (uint256)
unkNftAddress
viewfunction unkNftAddress() view returns (address)
unkNftScale
viewfunction unkNftScale() view returns (uint256)
unkTokenAddress
viewfunction unkTokenAddress() view returns (address)
usdtTokenAddress
viewfunction usdtTokenAddress() view returns (address)
users
viewfunction users(address) view returns (uint256 buyUnit, uint256 buyRewardScalenk, uint256 inviteRewardUnk, uint256 inviteUserTotal, uint256 inviteBuyUnit, uint256 directRewardUnk, uint256 directUserTotal, uint256 directBuyUnit, uint256 teamRewardUnk, uint256 teamBuyUnit, uint256 teamUserTotal, bool isAgent, address referrer, uint256 agentRewardUnk)
buy
nonpayablefunction buy(uint256 _unit, address referrer)
orderSend
nonpayablefunction orderSend(uint256 _orderId, string _mailCompany, string _mailCode)
ownerBuy
nonpayablefunction ownerBuy(address _user, uint256 _unit, address referrer)
renounceOwnership
nonpayablefunction renounceOwnership()
setAgentLimit
nonpayablefunction setAgentLimit(uint256 _agentLimit)
setAgentScale
nonpayablefunction setAgentScale(uint256 _agentScale)
setBuyOneUnit
nonpayablefunction setBuyOneUnit(uint256 _buyOneUnit)
setBuyRewardScale
nonpayablefunction setBuyRewardScale(uint256 _buyRewardScale)
setDefaultParent
nonpayablefunction setDefaultParent(address _parent)
setDevFee
nonpayablefunction setDevFee(uint256 _devFee)
setDevWallet
nonpayablefunction setDevWallet(address _devWallet)
setLevel
nonpayablefunction setLevel(uint256[] _level)
setMinBuyUnit
nonpayablefunction setMinBuyUnit(uint256 _minBuyUnit)
setMinInviteBuyUnit
nonpayablefunction setMinInviteBuyUnit(uint256 _minInviteBuyUnit)
setPayeeWallet
nonpayablefunction setPayeeWallet(address _payeeWallet)
setPickup
nonpayablefunction setPickup(uint256 _orderId, bool _v)
setRunnerUp
nonpayablefunction setRunnerUp(uint256 _runnerUp)
setRunnerUpScale
nonpayablefunction setRunnerUpScale(uint256 _runnerUpScale)
setSecondRunnerUp
nonpayablefunction setSecondRunnerUp(uint256 _secondRunnerUp)
setSecondRunnerUpScale
nonpayablefunction setSecondRunnerUpScale(uint256 _secondRunnerUpScale)
setTradeAddress
nonpayablefunction setTradeAddress(address _tradeAddress)
setTradeU
nonpayablefunction setTradeU(uint256 _tradeU)
setUnitPrice
nonpayablefunction setUnitPrice(uint256 _unitPrice)
setUnkNftAddress
nonpayablefunction setUnkNftAddress(address _unkNftAddress)
setUnkNftScale
nonpayablefunction setUnkNftScale(uint256 _unkNftScale)
setUnkTokenAddress
nonpayablefunction setUnkTokenAddress(address _unkTokenAddress)
setUsdtTokenAddress
nonpayablefunction setUsdtTokenAddress(address _usdtTokenAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateOrderMail
nonpayablefunction updateOrderMail(uint256 _orderId, string _name, uint256 _phone, string _addr)
withdrawTokens
nonpayablefunction withdrawTokens(address tokenAddress, uint256 amount, address to)
events
AgentPromoted
event AgentPromoted(address indexed user, uint256 time)
BuyUnit
event BuyUnit(address indexed user, uint256 unit, uint256 time)
InviteBind
event InviteBind(address indexed user, address indexed old, uint256 time)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x6080604052600d600855681105a0185b50a800006009556825e492dc8a0e0c0000600a556003600b55600a600d55600a600e556003600f55600460105560c7601155600760135560056014556001601555600a60165560056017555f6018553480156200006a575f80fd5b5060405162004be138038062004be18339810160408190526200008d91620002db565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350805f81518110620000e257620000e2620003a8565b602002602001015160015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600181518110620001255762000125620003a8565b602002602001015160025f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600281518110620001685762000168620003a8565b602002602001015160035f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600381518110620001ab57620001ab620003a8565b602002602001015160055f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600481518110620001ee57620001ee620003a8565b602002602001015160065f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600581518110620002315762000231620003a8565b6020908102919091010151600780546001600160a01b0319166001600160a01b03909216919091179055620002a4600c8054600181810183555f83905260057fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c79283015582549081019092556003910155565b50620003bc565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114620002d6575f80fd5b919050565b5f6020808385031215620002ed575f80fd5b82516001600160401b038082111562000304575f80fd5b818501915085601f83011262000318575f80fd5b8151818111156200032d576200032d620002ab565b8060051b604051601f19603f83011681018181108582111715620003555762000355620002ab565b60405291825284820192508381018501918883111562000373575f80fd5b938501935b828510156200039c576200038c85620002bf565b8452938501939285019262000378565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b61481780620003ca5f395ff3fe608060405234801561000f575f80fd5b5060043610610438575f3560e01c8063715018a611610237578063a9c86d8a11610135578063dc1b7328116100bf578063f1bfe6b311610084578063f1bfe6b314610bca578063f2fde38b14610bd2578063f4b3553814610be5578063f5262bfe14610bf8578063fd59d65714610c0b575f80fd5b8063dc1b732814610b68578063e73faa2d14610b7b578063e7d4fe7514610b84578063ec641a1d14610b97578063ef6be64014610bb7575f80fd5b8063c2697bfe11610105578063c2697bfe14610afd578063c8d1a0fc14610b10578063ce43e46b14610b23578063d1bebccf14610b36578063d77b977a14610b55575f80fd5b8063a9c86d8a14610a68578063afe97d6114610a9b578063c04c5ab114610aae578063c24e916314610adc575f80fd5b8063970d9335116101c15780639c7ed266116101865780639c7ed266146108e95780639d741e5d146108fc578063a85c38ef1461090f578063a87430ba1461093a578063a940592314610a35575f80fd5b8063970d93351461088a5780639a1410e91461089d5780639bc5c509146108b05780639be4a26d146108c35780639c441b92146108d6575f80fd5b80637deb6025116102075780637deb602514610838578063859e8d001461084b5780638ccfa6cf146108545780638da5cb5b146108675780638ea5220f14610877575f80fd5b8063715018a6146108015780637761badb1461080957806378e893301461081c5780637d8718211461082f575f80fd5b806336ae967c116103445780635e100658116102ce57806363bf3f431161029357806363bf3f43146107c05780636827e764146107d3578063686c8ec8146107dc5780636a902809146107e55780636dd8ef2e146107f8575f80fd5b80635e10065814610753578063600005fb14610775578063622984411461077e57806362dd4b48146107875780636386c1c714610790575f80fd5b80633bbf2aa3116103145780633bbf2aa3146106245780633ce85336146107045780633de435521461070d57806349daca7a14610720578063548c0ef414610733575f80fd5b806336ae967c146105d257806337708868146105e557806339932338146106085780633acac49a1461061b575f80fd5b80631e6d94e1116103c55780632831773711610395578063283177371461057657806329b2d8c1146105895780632e782ad11461059c5780632f281cf8146105a557806330ec9f18146105ae575f80fd5b80631e6d94e1146105345780631f53ac021461053d57806321a9cf3414610550578063267f68b014610563575f80fd5b80630c564e011161040b5780630c564e01146104bd57806311c0c938146104d057806312341963146104e3578063175703951461050e5780631c75b6b214610521575f80fd5b806305c58df21461043c5780630795cfc9146104625780630975e13c1461049f5780630ab33277146104a8575b5f80fd5b61044f61044a366004613ff2565b610c1e565b6040519081526020015b60405180910390f35b610475610470366004613ff2565b610c3d565b604080516001600160a01b0390951685526020850193909352918301526060820152608001610459565b61044f60135481565b6104bb6104b6366004613ff2565b610f41565b005b61044f6104cb366004613ff2565b610f78565b6104bb6104de366004613ff2565b610f8d565b6104f66104f136600461401d565b610fbb565b6040516001600160a01b039091168152602001610459565b6104bb61051c366004613ff2565b610fef565b6104bb61052f366004613ff2565b61101d565b61044f60165481565b6104bb61054b366004614047565b61104b565b6104bb61055e366004614047565b611096565b6104bb610571366004614062565b6110e1565b6104bb610584366004614152565b61111a565b6104bb610597366004613ff2565b6111f1565b61044f600f5481565b61044f60105481565b6105c16105bc366004613ff2565b61121f565b604051610459959493929190614207565b6104bb6105e0366004613ff2565b611521565b6105f86105f3366004614047565b61154f565b6040519015158152602001610459565b6104bb610616366004614047565b61163c565b61044f60145481565b610475610632366004614047565b6001600160a01b038181165f908152601b602090815260409182902082516101c08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008085019190915260098201546101208501819052600a8301546101408601819052600b84015460ff8116151561016088015292909204909516610180850152600c909101546101a0909301929092529293909190565b61044f60095481565b6105f861071b366004614047565b611687565b6004546104f6906001600160a01b031681565b610746610741366004614047565b6116ff565b6040516104599190614290565b610766610761366004613ff2565b611b3d565b604051610459939291906142a2565b61044f600d5481565b61044f60175481565b61044f60185481565b6107a361079e366004614047565b611e2a565b604080519315158452602084019290925290820152606001610459565b6104bb6107ce366004613ff2565b611e6a565b61044f60085481565b61044f60155481565b6002546104f6906001600160a01b031681565b61044f60115481565b6104bb611e98565b6104bb610817366004613ff2565b611f09565b6104bb61082a3660046142d8565b611f37565b61044f600e5481565b6104bb610846366004614340565b611fa0565b61044f600b5481565b6104bb610862366004613ff2565b611fac565b5f546001600160a01b03166104f6565b6006546104f6906001600160a01b031681565b6003546104f6906001600160a01b031681565b6104bb6108ab366004613ff2565b611fda565b6104bb6108be366004614062565b612008565b6005546104f6906001600160a01b031681565b6104bb6108e4366004614047565b6120e7565b6104bb6108f7366004613ff2565b612132565b6001546104f6906001600160a01b031681565b61092261091d366004613ff2565b612160565b6040516104599c9b9a9998979695949392919061436e565b6109c2610948366004614047565b601b6020525f9081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c909c01549a9b999a98999798969795969495939492939192909160ff8116916101009091046001600160a01b0316908e565b604080519e8f5260208f019d909d529b8d019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e088015261010087015261012086015261014085015215156101608401526001600160a01b03166101808301526101a08201526101c001610459565b6104f6610a43366004614047565b6001600160a01b039081165f908152601b60205260409020600b015461010090041690565b610a7b610a7636600461441d565b6123e5565b604080519485526020850193909352918301526060820152608001610459565b6104bb610aa9366004614047565b61242f565b610ac1610abc366004614047565b61247a565b60408051938452602084019290925290820152606001610459565b610aef610aea366004614047565b61264a565b60405161045992919061443d565b6104bb610b0b366004613ff2565b6126c6565b6104bb610b1e366004614455565b6126f4565b6104bb610b31366004614047565b612734565b61044f610b44366004614047565b601d6020525f908152604090205481565b61044f610b6336600461441d565b61277f565b6104bb610b76366004613ff2565b612806565b61044f600a5481565b6007546104f6906001600160a01b031681565b610baa610ba5366004614047565b612834565b60405161045991906144f6565b6104bb610bc5366004613ff2565b61289d565b6107466128cb565b6104bb610be0366004614047565b61292b565b6105f8610bf3366004614047565b612a12565b6104bb610c06366004614546565b612a63565b6104bb610c19366004614047565b612b1f565b600c8181548110610c2d575f80fd5b5f91825260209091200154905081565b5f8181526019602090815260408083208151610180810183528154815260018201546001600160a01b0316938101939093526002810154918301919091526003810180548493849384938493606084019190610c9890614569565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc490614569565b8015610d0f5780601f10610ce657610100808354040283529160200191610d0f565b820191905f5260205f20905b815481529060010190602001808311610cf257829003601f168201915b5050505050815260200160048201548152602001600582018054610d3290614569565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5e90614569565b8015610da95780601f10610d8057610100808354040283529160200191610da9565b820191905f5260205f20905b815481529060010190602001808311610d8c57829003601f168201915b50505050508152602001600682018054610dc290614569565b80601f0160208091040260200160405190810160405280929190818152602001828054610dee90614569565b8015610e395780601f10610e1057610100808354040283529160200191610e39565b820191905f5260205f20905b815481529060010190602001808311610e1c57829003601f168201915b50505050508152602001600782018054610e5290614569565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7e90614569565b8015610ec95780601f10610ea057610100808354040283529160200191610ec9565b820191905f5260205f20905b815481529060010190602001808311610eac57829003601f168201915b5050509183525050600882015460208083019190915260099092015460ff8082161515604080850191909152610100830482161515606085015262010000909204161515608090920191909152908201519082015191925090610f2b81610f78565b8361010001519450945094509450509193509193565b5f546001600160a01b03163314610f735760405162461bcd60e51b8152600401610f6a906145a1565b60405180910390fd5b601155565b5f600a5482610f8791906145ea565b92915050565b5f546001600160a01b03163314610fb65760405162461bcd60e51b8152600401610f6a906145a1565b601455565b601c602052815f5260405f208181548110610fd4575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f546001600160a01b031633146110185760405162461bcd60e51b8152600401610f6a906145a1565b600f55565b5f546001600160a01b031633146110465760405162461bcd60e51b8152600401610f6a906145a1565b600855565b5f546001600160a01b031633146110745760405162461bcd60e51b8152600401610f6a906145a1565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146110bf5760405162461bcd60e51b8152600401610f6a906145a1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461110a5760405162461bcd60e51b8152600401610f6a906145a1565b611115838383612b6a565b505050565b5f84815260196020526040902060018101546001600160a01b031633146111745760405162461bcd60e51b815260206004820152600e60248201526d2737903832b936b4b9b9b4b7b71760911b6044820152606401610f6a565b6009810154610100900460ff16156111b85760405162461bcd60e51b81526020600482015260076024820152661a5cc81cd95b9960ca1b6044820152606401610f6a565b600381016111c6858261464e565b5060048101839055600581016111dc838261464e565b50600901805460ff1916600117905550505050565b5f546001600160a01b0316331461121a5760405162461bcd60e51b8152600401610f6a906145a1565b600b55565b5f8181526019602090815260408083208151610180810183528154815260018201546001600160a01b031693810193909352600281015491830191909152600381018054606093859385938593849392918387019161127d90614569565b80601f01602080910402602001604051908101604052809291908181526020018280546112a990614569565b80156112f45780601f106112cb576101008083540402835291602001916112f4565b820191905f5260205f20905b8154815290600101906020018083116112d757829003601f168201915b505050505081526020016004820154815260200160058201805461131790614569565b80601f016020809104026020016040519081016040528092919081815260200182805461134390614569565b801561138e5780601f106113655761010080835404028352916020019161138e565b820191905f5260205f20905b81548152906001019060200180831161137157829003601f168201915b505050505081526020016006820180546113a790614569565b80601f01602080910402602001604051908101604052809291908181526020018280546113d390614569565b801561141e5780601f106113f55761010080835404028352916020019161141e565b820191905f5260205f20905b81548152906001019060200180831161140157829003601f168201915b5050505050815260200160078201805461143790614569565b80601f016020809104026020016040519081016040528092919081815260200182805461146390614569565b80156114ae5780601f10611485576101008083540402835291602001916114ae565b820191905f5260205f20905b81548152906001019060200180831161149157829003601f168201915b50505091835250506008820154602082015260099091015460ff8082161515604084015261010082048116151560608085019190915262010000909204161515608092830152610120830151908301519183015160a084015161016090940151919b929a50985091965090945092505050565b5f546001600160a01b0316331461154a5760405162461bcd60e51b8152600401610f6a906145a1565b601555565b6001600160a01b038082165f908152601b6020908152604080832081516101c08101835281548082526001830154948201949094526002820154928101929092526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008810154610100808401919091526009820154610120840152600a820154610140840152600b82015460ff8116151561016085015204909416610180820152600c909301546101a084015260145491929111158061163557506015548151108015906116355750601654816080015110155b9392505050565b5f546001600160a01b031633146116655760405162461bcd60e51b8152600401610f6a906145a1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6003546040516370a0823160e01b81526001600160a01b0383811660048301525f921690829082906370a0823190602401602060405180830381865afa1580156116d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f7919061470a565b119392505050565b6001600160a01b0381165f908152601c6020908152604080832080548251818502810185019093528083526060949383018282801561176557602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311611747575b505050505090505f600267ffffffffffffffff811115611787576117876140a1565b6040519080825280602002602001820160405280156117b0578160200160208202803683370190505b5090505f5b8251811015611b35575f8382815181106117d1576117d1614721565b60200260200101519050601b5f845f815181106117f0576117f0614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2060090154601b5f836001600160a01b03166001600160a01b031681526020019081526020015f2060090154118061191b5750601b5f845f8151811061185e5761185e614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2060090154601b5f836001600160a01b03166001600160a01b031681526020019081526020015f206009015414801561191b5750601d5f845f815181106118cd576118cd614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054601d5f836001600160a01b03166001600160a01b031681526020019081526020015f2054105b156119a557825f8151811061193257611932614721565b60200260200101518360018151811061194d5761194d614721565b60200260200101906001600160a01b031690816001600160a01b03168152505080835f8151811061198057611980614721565b60200260200101906001600160a01b031690816001600160a01b031681525050611b22565b601b5f846001815181106119bb576119bb614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2060090154601b5f836001600160a01b03166001600160a01b031681526020019081526020015f20600901541180611ae85750601b5f84600181518110611a2a57611a2a614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2060090154601b5f836001600160a01b03166001600160a01b031681526020019081526020015f2060090154148015611ae85750601d5f84600181518110611a9a57611a9a614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054601d5f836001600160a01b03166001600160a01b031681526020019081526020015f2054105b15611b22578083600181518110611b0157611b01614721565b60200260200101906001600160a01b031690816001600160a01b0316815250505b5080611b2d81614735565b9150506117b5565b509392505050565b5f8181526019602090815260408083208151610180810183528154815260018201546001600160a01b031693810193909352600281015491830191909152600381018054606093849386939192909183860191611b9990614569565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc590614569565b8015611c105780601f10611be757610100808354040283529160200191611c10565b820191905f5260205f20905b815481529060010190602001808311611bf357829003601f168201915b5050505050815260200160048201548152602001600582018054611c3390614569565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5f90614569565b8015611caa5780601f10611c8157610100808354040283529160200191611caa565b820191905f5260205f20905b815481529060010190602001808311611c8d57829003601f168201915b50505050508152602001600682018054611cc390614569565b80601f0160208091040260200160405190810160405280929190818152602001828054611cef90614569565b8015611d3a5780601f10611d1157610100808354040283529160200191611d3a565b820191905f5260205f20905b815481529060010190602001808311611d1d57829003601f168201915b50505050508152602001600782018054611d5390614569565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7f90614569565b8015611dca5780601f10611da157610100808354040283529160200191611dca565b820191905f5260205f20905b815481529060010190602001808311611dad57829003601f168201915b50505091835250506008820154602082015260099091015460ff8082161515604084015261010082048116151560608401526201000090910416151560809091015261014081015160c082015160e0909201519097919650945092505050565b6001600160a01b0381165f908152601b60205260408120600b81015490548291829160ff9091169082611e5c82610f78565b929791965091945092505050565b5f546001600160a01b03163314611e935760405162461bcd60e51b8152600401610f6a906145a1565b601755565b5f546001600160a01b03163314611ec15760405162461bcd60e51b8152600401610f6a906145a1565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314611f325760405162461bcd60e51b8152600401610f6a906145a1565b600955565b5f546001600160a01b03163314611f605760405162461bcd60e51b8152600401610f6a906145a1565b5f83815260196020526040902060068101611f7b848261464e565b5060078101611f8a838261464e565b50600901805461ff001916610100179055505050565b33611115818484612b6a565b5f546001600160a01b03163314611fd55760405162461bcd60e51b8152600401610f6a906145a1565b600e55565b5f546001600160a01b031633146120035760405162461bcd60e51b8152600401610f6a906145a1565b600d55565b5f546001600160a01b031633146120315760405162461bcd60e51b8152600401610f6a906145a1565b60405163a9059cbb60e01b815283906001600160a01b0382169063a9059cbb90612061908590879060040161474d565b6020604051808303815f875af115801561207d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120a19190614766565b6120e15760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610f6a565b50505050565b5f546001600160a01b031633146121105760405162461bcd60e51b8152600401610f6a906145a1565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461215b5760405162461bcd60e51b8152600401610f6a906145a1565b601355565b60196020525f9081526040902080546001820154600283015460038401805493946001600160a01b039093169391929161219990614569565b80601f01602080910402602001604051908101604052809291908181526020018280546121c590614569565b80156122105780601f106121e757610100808354040283529160200191612210565b820191905f5260205f20905b8154815290600101906020018083116121f357829003601f168201915b50505050509080600401549080600501805461222b90614569565b80601f016020809104026020016040519081016040528092919081815260200182805461225790614569565b80156122a25780601f10612279576101008083540402835291602001916122a2565b820191905f5260205f20905b81548152906001019060200180831161228557829003601f168201915b5050505050908060060180546122b790614569565b80601f01602080910402602001604051908101604052809291908181526020018280546122e390614569565b801561232e5780601f106123055761010080835404028352916020019161232e565b820191905f5260205f20905b81548152906001019060200180831161231157829003601f168201915b50505050509080600701805461234390614569565b80601f016020809104026020016040519081016040528092919081815260200182805461236f90614569565b80156123ba5780601f10612391576101008083540402835291602001916123ba565b820191905f5260205f20905b81548152906001019060200180831161239d57829003601f168201915b50505050600883015460099093015491929160ff80821692506101008204811691620100009004168c565b5f805f805f6123f686600854612ecf565b90505f8760095461240791906145ea565b90505f82612415838a614781565b61241f9190614781565b9299919850919695509350505050565b5f546001600160a01b031633146124585760405162461bcd60e51b8152600401610f6a906145a1565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f805f80612487856116ff565b90505f6124d2601b5f845f815181106124a2576124a2614721565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2060090154610f78565b90505f6124ee601b5f856001815181106124a2576124a2614721565b6001600160a01b0388165f908152601c60209081526040808320805482518185028101850190935280835294955092938493919283018282801561255957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161253b575b505050505090505f5b815181101561263b575f82828151811061257e5761257e614721565b60200260200101519050865f8151811061259a5761259a614721565b60200260200101516001600160a01b0316816001600160a01b031614806125ec5750866001815181106125cf576125cf614721565b60200260200101516001600160a01b0316816001600160a01b0316145b156125f75750612629565b6001600160a01b0381165f908152601b602052604090206009015461261b90610f78565b6126259085614794565b9350505b8061263381614735565b915050612562565b50929891975095509350505050565b6001600160a01b0381165f908152601c602090815260408083208054825181850281018501909352808352606093909290829084908301828280156126b657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612698575b5050505050905091509150915091565b5f546001600160a01b031633146126ef5760405162461bcd60e51b8152600401610f6a906145a1565b601055565b5f546001600160a01b0316331461271d5760405162461bcd60e51b8152600401610f6a906145a1565b805161273090600c906020840190613f95565b5050565b5f546001600160a01b0316331461275d5760405162461bcd60e51b8152600401610f6a906145a1565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f8061278b8484612ecf565b6004805460405163a2b0670360e01b81529293506001600160a01b03169163a2b06703916127bf9185910190815260200190565b602060405180830381865afa1580156127da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127fe919061470a565b949350505050565b5f546001600160a01b0316331461282f5760405162461bcd60e51b8152600401610f6a906145a1565b600a55565b6001600160a01b0381165f908152601a602090815260409182902080548351818402810184019094528084526060939283018282801561289157602002820191905f5260205f20905b81548152602001906001019080831161287d575b50505050509050919050565b5f546001600160a01b031633146128c65760405162461bcd60e51b8152600401610f6a906145a1565b601655565b6060601280548060200260200160405190810160405280929190818152602001828054801561292157602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612903575b5050505050905090565b5f546001600160a01b031633146129545760405162461bcd60e51b8152600401610f6a906145a1565b6001600160a01b0381166129b95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f6a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80612a3d836001600160a01b039081165f908152601b60205260409020600b015461010090041690565b6001600160a01b0316141580610f875750506007546001600160a01b0390811691161490565b5f82815260196020526040902060018101546001600160a01b03163314612abd5760405162461bcd60e51b815260206004820152600e60248201526d2737903832b936b4b9b9b4b7b71760911b6044820152606401610f6a565b6009810154610100900460ff1615612b015760405162461bcd60e51b81526020600482015260076024820152661a5cc81cd95b9960ca1b6044820152606401610f6a565b6009018054911515620100000262ff00001990921691909117905550565b5f546001600160a01b03163314612b485760405162461bcd60e51b8152600401610f6a906145a1565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b823b15612ba75760405162461bcd60e51b815260206004820152600b60248201526a1a5cc818dbdb9d1c9858dd60aa1b6044820152606401610f6a565b5f8211612bf65760405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e2030006044820152606401610f6a565b612c008382612ee6565b5f612c0a83610f78565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b03169081906323b872dd906064016020604051808303815f875af1158015612c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c859190614766565b612cc85760405162461bcd60e51b81526020600482015260146024820152731554d115081d1c985b9cd9995c8819985a5b195960621b6044820152606401610f6a565b612cd28483612fd5565b6001600160a01b0385165f908152601b602052604081208054869290612cf9908490614794565b925050819055505f80612d0e84600b5461277f565b60025460405163a9059cbb60e01b81529192506001600160a01b031690819063a9059cbb90612d43908b90869060040161474d565b6020604051808303815f875af1158015612d5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d839190614766565b612dc85760405162461bcd60e51b815260206004820152601660248201527514995dd85c99081d1c985b9cd9995c8819985a5b195960521b6044820152606401610f6a565b6001600160a01b0388165f908152601b602052604081206001018054849290612df2908490614794565b90915550612e0290508284614794565b9250612e0f888887613155565b612e199084614794565b9250612e25888661342b565b612e2f9084614794565b9250612e3b88866136e6565b612e459084614794565b9250612e50856138a8565b612e5a9084614794565b9250612e668888613a57565b612e6f88613be8565b612e7883613c20565b612e828888613cf4565b604080518881524260208201526001600160a01b038a16917f6c608c62d6033e44cdc196419c5fb7368daaef730d58b3088d614be8f52a993e910160405180910390a25050505050505050565b5f6064612edc83856145ea565b61163591906147a7565b612eef82612a12565b15612ef8575050565b612f0181612a12565b612f3e5760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d9a5d19481a5cc819985a5b60921b6044820152606401610f6a565b6001600160a01b038281165f818152601b60209081526040808320600b018054610100600160a81b031916610100968816968702179055848352601c825280832080546001810182559084529282902090920180546001600160a01b0319168417905590514281527fe218dd79bf9740a720ee946af3c825924a984303138f7d6042152b601e73eae4910160405180910390a35050565b5f805f612fe285856123e5565b5060015460065460405163a9059cbb60e01b81529497509295509093506001600160a01b0390811692839263a9059cbb9261302492911690889060040161474d565b6020604051808303815f875af1158015613040573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130649190614766565b506004805460405163a9059cbb60e01b81526001600160a01b038085169363a9059cbb936130979392169188910161474d565b6020604051808303815f875af11580156130b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130d79190614766565b5060055460405163a9059cbb60e01b81526001600160a01b038381169263a9059cbb9261310c9290911690869060040161474d565b6020604051808303815f875af1158015613128573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061314c9190614766565b50505050505050565b5f805f90505f61318084600c5f8154811061317257613172614721565b905f5260205f20015461277f565b6001600160a01b038088165f908152601b60205260409020600b015491925061010090910416806131b6575f9350505050611635565b60025460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906131e8908490869060040161474d565b6020604051808303815f875af1158015613204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132289190614766565b506132338284614794565b6001600160a01b0382165f908152601b6020526040812060020180549295508492909190613262908490614794565b90915550506001600160a01b0381165f908152601b60205260408120600301805460019290613292908490614794565b90915550506001600160a01b0381165f908152601b6020526040812060040180548892906132c1908490614794565b925050819055505f6132e186600c60018154811061317257613172614721565b6001600160a01b038084165f908152601b60205260409020600b015491925061010090910416801561341e5760025460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061333f908490869060040161474d565b6020604051808303815f875af115801561335b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061337f9190614766565b5061338a8286614794565b6001600160a01b0382165f908152601b60205260408120600501805492975084929091906133b9908490614794565b90915550506001600160a01b0381165f908152601b602052604081206006018054600192906133e9908490614794565b90915550506001600160a01b0381165f908152601b6020526040812060070180548a9290613418908490614794565b90915550505b5092979650505050505050565b6001600160a01b038083165f908152601b60205260408120600b015490918291829186916101009004165b6001600160a01b038116156136d1575f61346f826116ff565b9050826001600160a01b0316815f8151811061348d5761348d614721565b60200260200101516001600160a01b031603156136a557826001600160a01b0316816001815181106134c1576134c1614721565b60200260200101516001600160a01b03161480156134fb5750600d546001600160a01b0384165f908152601b602052604090206009015410155b156135c3575f61350d88600f5461277f565b60025460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb90613540908690859060040161474d565b6020604051808303815f875af115801561355c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135809190614766565b506001600160a01b0383165f908152601b6020526040812060080180548392906135ab908490614794565b909155506135bb90508187614794565b9550506136a5565b600e546001600160a01b0384165f908152601b6020526040902060090154106136a5575f6135f38860105461277f565b60025460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb90613626908690859060040161474d565b6020604051808303815f875af1158015613642573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136669190614766565b506001600160a01b0383165f908152601b602052604081206008018054839290613691908490614794565b909155506136a190508186614794565b9450505b506001600160a01b038082165f908152601b60205260409020600b015491925061010090910416613456565b6136db8385614794565b979650505050505050565b6001600160a01b038083165f908152601b60205260408120600b0154909182916101009004165b6001600160a01b03811615611b35576003546001600160a01b038281165f908152601b60205260409020600b015491169060ff16806137b457506040516370a0823160e01b81526001600160a01b0383811660048301525f91908316906370a0823190602401602060405180830381865afa15801561378e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137b2919061470a565b115b15613880575f6137c68660135461277f565b6001600160a01b0384165f908152601b60205260408120600c01805492935083929091906137f5908490614794565b909155505060025460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061382c908690859060040161474d565b6020604051808303815f875af1158015613848573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061386c9190614766565b506138778185614794565b93505050611b35565b506001600160a01b039081165f908152601b60205260409020600b015461010090041661370d565b5f805f90505f6138ba8460175461277f565b90505f60035f9054906101000a90046001600160a01b031690505f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613911573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613935919061470a565b90505f61394282856147a7565b90505f5b82811015613a4b576040516331a9108f60e11b8152600481018290525f906001600160a01b03861690636352211e90602401602060405180830381865afa158015613993573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139b791906147c6565b60025460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb906139ea908490879060040161474d565b6020604051808303815f875af1158015613a06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a2a9190614766565b50613a358388614794565b9650508080613a4390614735565b915050613946565b50939695505050505050565b6001600160a01b0382165f908152601b6020526040812054613a7a908390614781565b11613ab0576001600160a01b0382165f908152601b60205260408120600a01805460019290613aaa908490614794565b90915550505b6001600160a01b0382165f908152601b602052604081206009018054839290613ada908490614794565b90915550506001600160a01b038083165f908152601b60209081526040808320600b0154601d9092529091204290558391610100909104165b6001600160a01b038116156120e1576001600160a01b0381165f908152601b602052604081206009018054859290613b4c908490614794565b90915550506001600160a01b038082165f908152601d602090815260408083204290559287168252601b905290812054613b87908590614781565b11613bbd576001600160a01b0381165f908152601b60205260408120600a01805460019290613bb7908490614794565b90915550505b6001600160a01b038082165f908152601b60205260409020600b015491925061010090910416613b13565b613bf181613ead565b6001600160a01b038082165f908152601b60205260409020600b0154613c1d9161010090910416613ead565b50565b6002546004805460405163a9059cbb60e01b81526001600160a01b039384169363a9059cbb93613c56939091169186910161474d565b6020604051808303815f875af1158015613c72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c969190614766565b50600480546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae992828201925f929082900301818387803b158015613cdb575f80fd5b505af1158015613ced573d5f803e3d5ffd5b5050505050565b60408051610180810182526018548082526001600160a01b038581166020808501918252848601878152865180830188525f808252606088019182526080880181905288518085018a5281815260a089015288518085018a5281815260c089015288518085018a5281815260e0890152426101008901526101208801819052610140880181905261016088018190529586526019909252959093208451815590516001820180546001600160a01b03191691909316179091559251600284015551909182916003820190613dc8908261464e565b506080820151600482015560a08201516005820190613de7908261464e565b5060c08201516006820190613dfc908261464e565b5060e08201516007820190613e11908261464e565b50610100828101516008830155610120830151600990920180546101408501516101609095015161ffff1990911693151561ff001916939093179315159091029290921762ff0000191662010000911515919091021790556001600160a01b0383165f908152601a60205260408120601880549192613e8f83614735565b9091555081546001810183555f928352602090922090910155505050565b60115460125403613ebb5750565b6001600160a01b0381165f908152601b60205260409020600b015460ff1615613ee15750565b613eea8161154f565b613ef15750565b6001600160a01b0381165f818152601b6020526040808220600b01805460ff191660019081179091556012805491820181559092527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344490910180546001600160a01b03191683179055517fe5d69132029ceb327e643a6be0b88dea2764befb096d73ec5d96c7a5ac192e9390613f8a9042815260200190565b60405180910390a250565b828054828255905f5260205f20908101928215613fce579160200282015b82811115613fce578251825591602001919060010190613fb3565b50613fda929150613fde565b5090565b5b80821115613fda575f8155600101613fdf565b5f60208284031215614002575f80fd5b5035919050565b6001600160a01b0381168114613c1d575f80fd5b5f806040838503121561402e575f80fd5b823561403981614009565b946020939093013593505050565b5f60208284031215614057575f80fd5b813561163581614009565b5f805f60608486031215614074575f80fd5b833561407f81614009565b925060208401359150604084013561409681614009565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156140de576140de6140a1565b604052919050565b5f82601f8301126140f5575f80fd5b813567ffffffffffffffff81111561410f5761410f6140a1565b614122601f8201601f19166020016140b5565b818152846020838601011115614136575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215614165575f80fd5b84359350602085013567ffffffffffffffff80821115614183575f80fd5b61418f888389016140e6565b94506040870135935060608701359150808211156141ab575f80fd5b506141b8878288016140e6565b91505092959194509250565b5f81518084525f5b818110156141e8576020818501810151868301820152016141cc565b505f602082860101526020601f19601f83011685010191505092915050565b851515815260a060208201525f61422160a08301876141c4565b856040840152828103606084015261423981866141c4565b91505082151560808301529695505050505050565b5f8151808452602080850194508084015f5b838110156142855781516001600160a01b031687529582019590820190600101614260565b509495945050505050565b602081525f611635602083018461424e565b8315158152606060208201525f6142bc60608301856141c4565b82810360408401526142ce81856141c4565b9695505050505050565b5f805f606084860312156142ea575f80fd5b83359250602084013567ffffffffffffffff80821115614308575f80fd5b614314878388016140e6565b93506040860135915080821115614329575f80fd5b50614336868287016140e6565b9150509250925092565b5f8060408385031215614351575f80fd5b82359150602083013561436381614009565b809150509250929050565b8c81526001600160a01b038c166020820152604081018b9052610180606082018190525f9061439f8382018d6141c4565b90508a608084015282810360a08401526143b9818b6141c4565b905082810360c08401526143cd818a6141c4565b905082810360e08401526143e181896141c4565b9150508561010083015284151561012083015261440361014083018515159052565b8215156101608301529d9c50505050505050505050505050565b5f806040838503121561442e575f80fd5b50508035926020909101359150565b828152604060208201525f6127fe604083018461424e565b5f6020808385031215614466575f80fd5b823567ffffffffffffffff8082111561447d575f80fd5b818501915085601f830112614490575f80fd5b8135818111156144a2576144a26140a1565b8060051b91506144b38483016140b5565b81815291830184019184810190888411156144cc575f80fd5b938501935b838510156144ea578435825293850193908501906144d1565b98975050505050505050565b602080825282518282018190525f9190848201906040850190845b8181101561452d57835183529284019291840191600101614511565b50909695505050505050565b8015158114613c1d575f80fd5b5f8060408385031215614557575f80fd5b82359150602083013561436381614539565b600181811c9082168061457d57607f821691505b60208210810361459b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610f8757610f876145d6565b601f821115611115575f81815260208120601f850160051c810160208610156146275750805b601f850160051c820191505b8181101561464657828155600101614633565b505050505050565b815167ffffffffffffffff811115614668576146686140a1565b61467c816146768454614569565b84614601565b602080601f8311600181146146af575f84156146985750858301515b5f19600386901b1c1916600185901b178555614646565b5f85815260208120601f198616915b828110156146dd578886015182559484019460019091019084016146be565b50858210156146fa57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121561471a575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f60018201614746576147466145d6565b5060010190565b6001600160a01b03929092168252602082015260400190565b5f60208284031215614776575f80fd5b815161163581614539565b81810381811115610f8757610f876145d6565b80820180821115610f8757610f876145d6565b5f826147c157634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156147d6575f80fd5b81516116358161400956fea2646970667358221220bfc4f6ab8b2752d2e1e6895a7c6b33b56a7ad9c0e989e83f81dfa6b901a4e0c764736f6c634300081400330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000088a76a58168b0175a85848724db23cdca28b4eee000000000000000000000000fdbd6806139963939d39acd1ce22dcbf99cb90190000000000000000000000002b656edced7561eee0e37d88ca65ddda85ae234f0000000000000000000000008f3c9e0b8c013322fa0b740f0ed8db6e1598e3dc00000000000000000000000027a151333a7bd06c6c00421ee2b916e00efe5842