0 txs
1 call
constructor
No constructor.
functions
balanceGpc
viewfunction balanceGpc(address user) view returns (uint256)
balanceOfLeft
viewfunction balanceOfLeft(address user) view returns (uint256)
balanceOfUsdt
viewfunction balanceOfUsdt(address user) view returns (uint256)
BLACKHOLE_ADDRESS
viewfunction BLACKHOLE_ADDRESS() view returns (address)
BLACKHOLE_FEE_RATE
viewfunction BLACKHOLE_FEE_RATE() view returns (uint256)
BNB_LIMIT
viewfunction BNB_LIMIT() view returns (uint256)
bnbPrice
viewfunction bnbPrice() view returns (uint256)
burned
viewfunction burned() view returns (uint256)
checkSynUser
viewfunction checkSynUser(address user) view returns (bool)
getAllAsset
viewfunction getAllAsset() view returns (uint256)
getGpcStatics
viewfunction getGpcStatics() view returns (tuple)
getPercentValue
viewfunction getPercentValue() view returns (uint256)
getProduct
viewfunction getProduct(uint16 productId) view returns (uint256, uint8)
getReserves
viewfunction getReserves() view returns (uint256, uint256, uint256, uint256)
getTotalAssetValue
viewfunction getTotalAssetValue() view returns (uint256)
getUserLevel
viewfunction getUserLevel(address user) view returns (uint16)
getUserRebate
viewfunction getUserRebate(address user) view returns (tuple)
getUserRecords
viewfunction getUserRecords(address user) view returns (tuple[])
gpcPrice
viewfunction gpcPrice() view returns (uint256)
isUserBlack
viewfunction isUserBlack(address user) view returns (bool)
isWithdrawExt
viewfunction isWithdrawExt(address user) view returns (bool)
leftUsdtAll
viewfunction leftUsdtAll() view returns (uint256)
owner
viewfunction owner() view returns (address)
RATE_PRECISION
viewfunction RATE_PRECISION() view returns (uint256)
RELEASE_PERCENT
viewfunction RELEASE_PERCENT() view returns (uint256)
SELL_BNB
viewfunction SELL_BNB() view returns (uint256)
usdtAll
viewfunction usdtAll() view returns (uint256)
buy
nonpayablefunction buy(address user, uint16 productId)
initialize
nonpayablefunction initialize()
releaseRecord
nonpayablefunction releaseRecord(address[] users, uint256[] releaseValues, uint16[] releaseTypes)
releaseRecordDaily
nonpayablefunction releaseRecordDaily(address[] users, uint256[] releaseValues)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin_, bool adminFlag)
setUserBlack
nonpayablefunction setUserBlack(address user, bool flag)
setWithdrawOpt
nonpayablefunction setWithdrawOpt(address user, bool flag)
staticAsset
nonpayablefunction staticAsset()
sysAsset
nonpayablefunction sysAsset(address[] users, uint256[] balances, uint256[] subBalances, uint256[] subCounts, uint16[] levels)
sysAssetDaily
nonpayablefunction sysAssetDaily(address[] users, uint256[] subBalances, uint256[] subCounts, uint256[] todayReleases, uint16[] levels)
sysBuyTotal
nonpayablefunction sysBuyTotal(address[] users, uint256[] totalBuys, uint256[] totalValues, uint256[] totalReleases)
sysRecords
nonpayablefunction sysRecords(address[] users, uint256[] recordIds, uint16[] productIds, uint256[] leftValues)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 gpcAmount, address toUser)
withDrawErc20
nonpayablefunction withDrawErc20(address erc20Address)
withdrawGpc
nonpayablefunction withdrawGpc(uint256 gpcAmount, address toUser)
events
AddRecord
event AddRecord(address indexed _user, address payUser, uint256 id, uint256 productId, uint256 usdt, uint256 payGpc, uint256 value)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ReleaseRecord
event ReleaseRecord(address indexed _user, uint256 recordId, uint256 releaseValue, uint256 releaseGpc, uint16 releaseType, uint256 timestamp)
SetAdmin
event SetAdmin(address indexed _admin_, bool flag)
TotalReleaseRecord
event TotalReleaseRecord(address indexed _user, uint256 releaseValue, uint256 releaseGpc, uint16 releaseType, uint256 timestamp)
Withdraw
event Withdraw(address indexed _user, uint256 gpc, uint256 timestamp)
errors
No errors.
creation bytecode
0x608060405234801561000f575f80fd5b5061423a8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061026a575f3560e01c806373f425611161014b578063d2efcd85116100bf578063e457b21f11610084578063e457b21f146105cf578063eea001e9146105d7578063eeeccb9c14610634578063f2b84e6b14610647578063f2fde38b1461065a578063fcb6f0871461066d575f80fd5b8063d2efcd851461056d578063d368111414610580578063d7c4fbe314610589578063db3c9015146105b4578063dda02482146105bc575f80fd5b80638fef9926116101105780638fef9926146104b4578063a48243f6146104c7578063a55da407146104cf578063ab5aebca146104de578063c64f4da11461052a578063cdd603ab14610532575f80fd5b806373f425611461046f5780638129fc1c146104775780638257003f1461047f57806388254644146104875780638da5cb5b1461048f575f80fd5b8063426c7677116101e25780635f7476ed116101a75780635f7476ed146103e357806363dcfd99146103f65780636b1c1b8f146104095780636d67dcbd1461041c578063715018a61461044757806371bdfb941461044f575f80fd5b8063426c76771461036a5780634b0bddd21461039557806351096b02146103a857806352b7ba07146103c8578063576dde12146103db575f80fd5b806321923bde1161023357806321923bde146102de57806325af55a2146103205780632b3ba681146103335780632b92db761461033c5780632ba6685414610344578063357f477714610357575f80fd5b8062f714ce1461026e57806308f48078146102835780630902f1ac1461029f57806310a4a269146102c75780631fe1d43f146102cf575b5f80fd5b61028161027c366004613a5a565b610698565b005b61028c6101f481565b6040519081526020015b60405180910390f35b6102a761087e565b604080519485526020850193909352918301526060820152608001610296565b60a85461028c565b61028c67016345785d8a000081565b61030d6102ec366004613a88565b6001600160a01b03165f90815260a3602052604090206004015461ffff1690565b60405161ffff9091168152602001610296565b61028161032e366004613a88565b6109a4565b61028c61271081565b60ad5461028c565b610281610352366004613aeb565b610aa3565b610281610365366004613b52565b611001565b61028c610378366004613a88565b6001600160a01b03165f90815260a3602052604090206001015490565b6102816103a3366004613c1a565b611376565b6103bb6103b6366004613a88565b611402565b6040516102969190613ca9565b6102816103d6366004613b52565b611619565b61028c61171a565b6102816103f1366004613ce5565b611794565b610281610404366004613ce5565b6118ea565b610281610417366004613a5a565b611aa0565b61028c61042a366004613a88565b6001600160a01b03165f90815260a3602052604090206002015490565b610281611b4a565b61046261045d366004613a88565b611b5d565b6040516102969190613e09565b61028c611d0e565b610281611d7f565b61028c606481565b61028c612687565b6065546001600160a01b03165b6040516001600160a01b039091168152602001610296565b6102816104c2366004613c1a565b61277b565b60a55461028c565b61028c6706f05b59d3b2000081565b6105136104ec366004613ed2565b61ffff165f908152609e602052604090206001810154905490916201000090910460ff1690565b6040805192835260ff909116602083015201610296565b61028c6127d3565b61055d610540366004613a88565b6001600160a01b03165f90815260a0602052604090205460ff1690565b6040519015158152602001610296565b61028161057b366004613eeb565b612876565b61049c61dead81565b61055d610597366004613a88565b6001600160a01b03165f90815260a1602052604090205460ff1690565b60a65461028c565b6102816105ca366004613c1a565b612d6e565b610281612dc6565b6105df612ee1565b60405161029691905f60e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015292915050565b610281610642366004613f1e565b612f5f565b61055d610655366004613a88565b612fee565b610281610668366004613a88565b612ffe565b61028c61067b366004613a88565b6001600160a01b03165f90815260a3602052604090206003015490565b6106a0613074565b335f90815260a0602052604090205460ff16156106fc5760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a5cc8125b88109b1858dac8131a5cdd605a1b60448201526064015b60405180910390fd5b6001600160a01b038116331461075857335f90815260a1602052604090205460ff166107585760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016106f3565b335f90815260a360205260409020600301548211156107b05760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b60448201526064016106f3565b335f90815260a360205260409020600301546107cc90836130cd565b335f90815260a360205260408120600301919091556107f96127106107f3856101f46130df565b906130ea565b609a54909150610815906001600160a01b031661dead836130f5565b609a54610835906001600160a01b03168361083086856130cd565b6130f5565b6040805184815242602082015233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25061087a60018055565b5050565b5f805f805f8060985f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f89190613fc7565b506001600160701b031691506001600160701b031691505f8060995f9054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610961573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109859190613fc7565b5094985092965050506001600160701b03908116935016905090919293565b6109ac613074565b73d3c304697f63b279cd314f92c19cdbe5e5b16319196001600160a01b03821601610a0a5760405162461bcd60e51b815260206004820152600e60248201526d63616e206e6f742062792067706360901b60448201526064016106f3565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610a50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a749190614013565b9050610a958273ef044e831740a4675d803566c8a0e7e8800da30b836130f5565b5050610aa060018055565b50565b60ac54610ae05760405162461bcd60e51b815260206004820152600b60248201526a2737ba1036b7b734ba37b960a91b60448201526064016106f3565b60a9545f5b84811015610ff9575f60a35f888885818110610b0357610b0361402a565b9050602002016020810190610b189190613a88565b6001600160a01b0316815260208101919091526040015f90812091508190868685818110610b4857610b4861402a565b9050602002013590505f805b8354811015610f6757838181548110610b6f57610b6f61402a565b905f5260205f209060090201600401545f0315610f55575f848281548110610b9957610b9961402a565b905f5260205f20906009020160040154841115610bee57848281548110610bc257610bc261402a565b905f5260205f209060090201600401549050610be781856130cd90919063ffffffff16565b9350610bf1565b50825b805f03610bfe5750610f67565b5f610c15896107f384670de0b6b3a76400006130df565b6003880154909150610c279082613163565b6003880155610c368482613163565b9350610c6c82878581548110610c4e57610c4e61402a565b905f5260205f209060090201600401546130cd90919063ffffffff16565b868481548110610c7e57610c7e61402a565b905f5260205f20906009020160040181905550610cc582878581548110610ca757610ca761402a565b905f5260205f2090600902016006015461316390919063ffffffff16565b868481548110610cd757610cd761402a565b905f5260205f20906009020160060181905550610d1e81878581548110610d0057610d0061402a565b905f5260205f2090600902016007015461316390919063ffffffff16565b868481548110610d3057610d3061402a565b905f5260205f209060090201600701819055508187600201541115610d68576002870154610d5e90836130cd565b6002880155610d6f565b5f60028801555b600b870154610d7e9086613163565b600a88015560a554851015610da25760a554610d9a90836130cd565b60a555610da7565b5f60a5555b858381548110610db957610db961402a565b905f5260205f209060090201600401545f03610eb357858381548110610de157610de161402a565b905f5260205f2090600902016002015487600101541115610e3e57610e34868481548110610e1157610e1161402a565b905f5260205f2090600902016002015488600101546130cd90919063ffffffff16565b6001880155610e45565b5f60018801555b858381548110610e5757610e5761402a565b905f5260205f2090600902016002015460a6541115610eae57610ea6868481548110610e8557610e8561402a565b905f5260205f2090600902016002015460a6546130cd90919063ffffffff16565b60a655610eb3565b5f60a6555b8c8c89818110610ec557610ec561402a565b9050602002016020810190610eda9190613a88565b6001600160a01b03167f7bb2bbaf5335b45fee4cb4cea99ef0ee39a1d55fab618944851d77a09760ba1d878581548110610f1657610f1661402a565b5f91825260209182902060099091020154604080519182529181018690529081018490526001606082015242608082015260a00160405180910390a250505b80610f5f81614052565b915050610b54565b50898986818110610f7a57610f7a61402a565b9050602002016020810190610f8f9190613a88565b604080518481526020810184905260018183015242606082015290516001600160a01b0392909216917f2dcf8c4b4d2ac5e3370fcc771637d6ca9dab28fb921a5e87c130a59a7515166c9181900360800190a2505050508080610ff190614052565b915050610ae5565b505050505050565b611009613074565b335f908152609d602052604090205460ff166110375760405162461bcd60e51b81526004016106f39061406a565b5f5b85811015611362575f609e5f8787858181106110575761105761402a565b905060200201602081019061106c9190613ed2565b61ffff908116825260208083019390935260409182015f908120835160a081018552815493841681526201000090930460ff169483019490945260018401549282019290925260028301546060820152600390920154608083015290915060a3818c8c868181106110df576110df61402a565b90506020020160208101906110f49190613a88565b6001600160a01b03166001600160a01b031681526020019081526020015f209050805f016040518061012001604052808b8b878181106111365761113661402a565b9050602002013581526020018989878181106111545761115461402a565b90506020020160208101906111699190613ed2565b61ffff16815260200184606001518152602001846080015181526020018787878181106111985761119861402a565b905060200201358152602001846020015160ff1681526020016111e08888888181106111c6576111c661402a565b9050602002013586608001516130cd90919063ffffffff16565b81525f602080830182905242604093840152845460018082018755958352918190208451600990930201918255830151938101805461ffff191661ffff909516949094179093558101516002830155606081015160038301556080810151600483015560a081015160058301805460ff191660ff90921691909117905560c0810151600683015560e0810151600783015561010001516008909101556112ab8585858181106112915761129161402a565b90506020020135826002015461316390919063ffffffff16565b6002820155606082015160018201546112c391613163565b6001820155606082015160a6546112d991613163565b60a6556113098585858181106112f1576112f161402a565b9050602002013560a55461316390919063ffffffff16565b60a55588888481811061131e5761131e61402a565b9050602002013560a254101561134d578888848181106113405761134061402a565b602002919091013560a255505b5050808061135a90614052565b915050611039565b5061136c60018055565b5050505050505050565b335f908152609d602052604090205460ff166113a45760405162461bcd60e51b81526004016106f39061406a565b6001600160a01b0382165f818152609d6020908152604091829020805460ff191685151590811790915591519182527f55a5194bc0174fcaf12b2978bef43911466bf63b34db8d1dd1a0d5dcd5c41bea910160405180910390a25050565b6001600160a01b0381165f90815260a36020526040812080546060928291900361145f57604080515f8082526020820190925290611456565b6114436139fc565b81526020019060019003908161143b5790505b50949350505050565b5f805b82548110156114b4575f83828154811061147e5761147e61402a565b905f5260205f2090600902016004015411156114a2578161149e81614052565b9250505b806114ac81614052565b915050611462565b505f8167ffffffffffffffff8111156114cf576114cf61408f565b60405190808252806020026020018201604052801561150857816020015b6114f56139fc565b8152602001906001900390816114ed5790505b5090505f805b845481101561160d575f85828154811061152a5761152a61402a565b905f5260205f2090600902016004015411156115fb578481815481106115525761155261402a565b5f9182526020918290206040805161012081018252600990930290910180548352600181015461ffff16938301939093526002830154908201526003820154606082015260048201546080820152600582015460ff1660a0820152600682015460c0820152600782015460e082015260089091015461010082015283518490849081106115e1576115e161402a565b602002602001018190525081806115f790614052565b9250505b8061160581614052565b91505061150e565b50909695505050505050565b611621613074565b335f908152609d602052604090205460ff1661164f5760405162461bcd60e51b81526004016106f39061406a565b5f5b87811015611362575f60a35f8b8b8581811061166f5761166f61402a565b90506020020160208101906116849190613a88565b6001600160a01b03166001600160a01b031681526020019081526020015f2090508585838181106116b7576116b761402a565b60200291909101356008830155508787838181106116d7576116d761402a565b60200291909101356009830155508383838181106116f7576116f761402a565b9050602002013581600a018190555050808061171290614052565b915050611651565b5f805f61172561087e565b9350935050505f811161176d5760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b60448201526064016106f3565b5f61178083670de0b6b3a76400006130df565b905061178c81836130ea565b935050505090565b61179c613074565b335f908152609d602052604090205460ff166117ca5760405162461bcd60e51b81526004016106f39061406a565b5f5b898110156118d4575f60a35f8d8d858181106117ea576117ea61402a565b90506020020160208101906117ff9190613a88565b6001600160a01b03166001600160a01b031681526020019081526020015f2090508787838181106118325761183261402a565b60200291909101356005830155508383838181106118525761185261402a565b90506020020160208101906118679190613ed2565b60048201805461ffff191661ffff929092169190911790558989838181106118915761189161402a565b60200291909101356006830155508585838181106118b1576118b161402a565b9050602002013581600b01819055505080806118cc90614052565b9150506117cc565b506118de60018055565b50505050505050505050565b6118f2613074565b335f908152609d602052604090205460ff166119205760405162461bcd60e51b81526004016106f39061406a565b5f5b898110156118d4576119598b8b8381811061193f5761193f61402a565b90506020020160208101906119549190613a88565b61316e565b611a8e5761198c8b8b838181106119725761197261402a565b90506020020160208101906119879190613a88565b6131d4565b5f60a35f8d8d858181106119a2576119a261402a565b90506020020160208101906119b79190613a88565b6001600160a01b03166001600160a01b031681526020019081526020015f209050611a078a8a848181106119ed576119ed61402a565b90506020020135826003015461316390919063ffffffff16565b6003820155858583818110611a1e57611a1e61402a565b6020029190910135600583015550838383818110611a3e57611a3e61402a565b9050602002016020810190611a539190613ed2565b60048201805461ffff191661ffff92909216919091179055878783818110611a7d57611a7d61402a565b905060200201358160060181905550505b80611a9881614052565b915050611922565b611aa8613074565b609a54611ac0906001600160a01b0316333085613230565b5f611ad36127106107f3856101f46130df565b609a54909150611aef906001600160a01b031661dead836130f5565b609a54611b0a906001600160a01b03168361083086856130cd565b604080518481524260208201526001600160a01b038416917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689101610868565b611b5261326e565b611b5b5f6132c8565b565b611bba604051806101800160405280606081526020015f81526020015f81526020015f81526020015f61ffff1681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b6001600160a01b0382165f90815260a360209081526040808320815181546101a0948102820185019093526101808101838152909491938593919285929185015b82821015611c89575f8481526020908190206040805161012081018252600986029092018054835260018082015461ffff16848601526002820154928401929092526003810154606084015260048101546080840152600581015460ff1660a0840152600681015460c0840152600781015460e0840152600801546101008301529083529092019101611bfb565b50505090825250600182015460208201526002820154604082015260038201546060820152600482015461ffff166080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b909101546101609091015292915050565b609a546040516370a0823160e01b815261dead60048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611d56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7a9190614013565b905090565b5f54610100900460ff1615808015611d9d57505f54600160ff909116105b80611db65750303b158015611db657505f5460ff166001145b611e195760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106f3565b5f805460ff191660011790558015611e3a575f805461ff0019166101001790555b335f908152609d602090815260408083208054600160ff19918216811790925573ef044e831740a4675d803566c8a0e7e8800da30b85527f840deb29f75d49abe1b92379bc9df4a6d22f82c17f2cc660b0fd498fe881b4f980549091169091179055609b80547373ab8911578f757588e287f2f2d0953ee88c8b356001600160a01b031991821617909155609a805473d3c304697f63b279cd314f92c19cdbe5e5b1631a908316179055609780547310ed43c718714eb63d5aa57b78b54704e256024e921682179055815163c45a015560e01b81529151909263c45a015592600481810193918290030181865afa158015611f37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5b91906140a3565b9050806001600160a01b031663e6a4390573d3c304697f63b279cd314f92c19cdbe5e5b1631a60975f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff591906140a3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561203e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061206291906140a3565b609880546001600160a01b0319166001600160a01b03928316179055609754604080516315ab88c960e31b815290518484169363e6a43905937355d398326f99059ff775485246999027b31979559391169163ad5c4648916004808201926020929091908290030181865afa1580156120dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210191906140a3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561214a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061216e91906140a3565b60995f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518060a00160405280600161ffff168152602001601460ff168152602001681b1ae4d6e2ef5000008152602001681b1ae4d6e2ef5000008152602001683635c9adc5dea00000815250609e5f600161ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600261ffff168152602001601960ff168152602001683635c9adc5dea000008152602001683635c9adc5dea00000815260200168878678326eac900000815250609e5f600261ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600361ffff168152602001601960ff16815260200169010f0cf064dd59200000815260200169010f0cf064dd5920000081526020016902a5a058fc295ed00000815250609e5f600361ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600461ffff168152602001601e60ff16815260200169021e19e0c9bab2400000815260200169021e19e0c9bab2400000815260200169065a4da25d3016c00000815250609e5f600461ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600561ffff168152602001601e60ff168152602001690a968163f0a57b4000008152602001690a968163f0a57b4000008152602001691fc3842bd1f071c00000815250609e5f600561ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506040518060a00160405280600761ffff168152602001601460ff16815260200166038d7ea4c68000815260200168056bc75e2d631000008152602001680ad78ebc5ac6200000815250609e5f600761ffff1681526020019081526020015f205f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548160ff021916908360ff1602179055506040820151816001015560608201518160020155608082015181600301559050506101f4609c81905550612637613319565b61263f613347565b508015610aa0575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b609a546040516370a0823160e01b815273a27da34682a1f3bba294f9bef2f8f6f9aa9b94ed60048201525f91611d7a916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156126e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270b9190614013565b609a546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612751573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127759190614013565b90613163565b335f908152609d602052604090205460ff166127a95760405162461bcd60e51b81526004016106f39061406a565b6001600160a01b03919091165f90815260a060205260409020805460ff1916911515919091179055565b5f805f805f6127e061087e565b93509350935093505f831180156127f657505f81115b6128355760405162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b60448201526064016106f3565b5f612852670de0b6b3a764000061284c87866130df565b906130df565b90505f61285f85846130df565b905061286b82826130ea565b965050505050505090565b61287e613074565b609b54604051633bb1db8160e21b81526001600160a01b0384811660048301529091169063eec76e0490602401602060405180830381865afa1580156128c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ea91906140be565b61292a5760405162461bcd60e51b81526020600482015260116024820152701b9bdd08189a5b99081c9959995c9c985b607a1b60448201526064016106f3565b6129338261316e565b61294057612940826131d4565b60a28054905f61294f83614052565b909155505061ffff81165f908152609e602052604081209061296f6127d3565b90505f612995826107f3670de0b6b3a764000086600101546130df90919063ffffffff16565b90505f6129aa6127106107f3846101f46130df565b609a549091506129c5906001600160a01b0316333085613230565b609a546129de906001600160a01b031661dead836130f5565b5f60a35f886001600160a01b03166001600160a01b031681526020019081526020015f209050805f0160405180610120016040528060a25481526020018861ffff168152602001876002015481526020018760030154815260200187600301548152602001875f0160029054906101000a900460ff1660ff1681526020015f81526020015f815260200142815250908060018154018082558091505060019003905f5260205f2090600902015f909190919091505f820151815f01556020820151816001015f6101000a81548161ffff021916908361ffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015f6101000a81548160ff021916908360ff16021790555060c0820151816006015560e0820151816007015561010082015181600801555050612b368560030154826002015461316390919063ffffffff16565b6002808301919091558501546001820154612b5091613163565b6001808301919091558501546009820154612b6a91613163565b600982015560038501546008820154612b8291613163565b6008820155600385015460a554612b9891613163565b60a555600285015460a654612bac91613163565b60a65560a2546002860154600387015460408051338152602081019490945261ffff8a169084015260608301919091526080820185905260a08201526001600160a01b038816907f12b6b50ba4e45a8ef3e541e3794d8e9d92fff99bfabe2a50b083aa142b098b339060c00160405180910390a2609b54604051633b0f0f2f60e01b81526001600160a01b0389811660048301525f921690633b0f0f2f90602401602060405180830381865afa158015612c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c8c91906140a3565b90505f609b5f9054906101000a90046001600160a01b03166001600160a01b031663f6d5660f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cdf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d0391906140a3565b9050806001600160a01b0316826001600160a01b031614158015612d2f57506001600160a01b03821615155b15612d5e57612d5e82612d576127106107f3609c548c600101546130df90919063ffffffff16565b5f89613375565b5050505050505061087a60018055565b335f908152609d602052604090205460ff16612d9c5760405162461bcd60e51b81526004016106f39061406a565b6001600160a01b03919091165f90815260a160205260409020805460ff1916911515919091179055565b612dce613074565b335f908152609d602052604090205460ff16612dfc5760405162461bcd60e51b81526004016106f39061406a565b60ac54612e0c90620151806140d9565b421015612e655760405162461bcd60e51b815260206004820152602160248201527f4461696c792072656c65617365206d75737420616674657220323420686f75726044820152607360f81b60648201526084016106f3565b5f612e6e612687565b90505f612e796127d3565b90505f612e92670de0b6b3a76400006107f385856130df565b4260ac5560a784905560a983905560a55460aa5560a65460ab81905560a8829055909150612ed1906064906107f3908185670de0b6b3a76400006130df565b60ad5550611b5b915061315d9050565b612f1a6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b506040805160e08101825260a754815260a854602082015260a9549181019190915260aa54606082015260ab54608082015260ac5460a082015260ad5460c082015290565b60a9545f5b8681101561136c57612fdc888883818110612f8157612f8161402a565b9050602002016020810190612f969190613a88565b878784818110612fa857612fa861402a565b90506020020135868685818110612fc157612fc161402a565b9050602002016020810190612fd69190613ed2565b85613375565b80612fe681614052565b915050612f64565b5f612ff88261316e565b92915050565b61300661326e565b6001600160a01b03811661306b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f3565b610aa0816132c8565b6002600154036130c65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106f3565b6002600155565b5f6130d882846140ec565b9392505050565b5f6130d882846140ff565b5f6130d88284614116565b6040516001600160a01b03831660248201526044810182905261315890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261374a565b505050565b60018055565b5f6130d882846140d9565b5f805b60a4548110156131cc57826001600160a01b031660a482815481106131985761319861402a565b5f918252602090912001546001600160a01b0316036131ba5750600192915050565b806131c481614052565b915050613171565b505f92915050565b6131dd8161316e565b610aa05760a480546001810182555f919091527fe434dc35da084cf8d7e8186688ea2dacb53db7003d427af3abf351bd9d0a4e8d0180546001600160a01b0383166001600160a01b031990911617905550565b6040516001600160a01b03808516602483015283166044820152606481018290526132689085906323b872dd60e01b90608401613121565b50505050565b6065546001600160a01b03163314611b5b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106f3565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff1661333f5760405162461bcd60e51b81526004016106f390614135565b611b5b61381d565b5f54610100900460ff1661336d5760405162461bcd60e51b81526004016106f390614135565b611b5b613843565b6001600160a01b0384165f90815260a360205260408120805490910361339b5750613268565b805481905f9081906133af906001906140ec565b90505b5f8190508381815481106133c8576133c861402a565b905f5260205f209060090201600401545f036133e45750613738565b5f8482815481106133f7576133f761402a565b905f5260205f20906009020160040154891115613437578482815481106134205761342061402a565b905f5260205f20906009020160040154905061343a565b50875b805f0361344857505061136c565b5f61345f886107f384670de0b6b3a76400006130df565b60038801549091506134719082613163565b6003880155600b8701546134859083613163565b600a8801556134948582613163565b94506134ac82878581548110610c4e57610c4e61402a565b8684815481106134be576134be61402a565b905f5260205f209060090201600401819055506134e782878581548110610ca757610ca761402a565b8684815481106134f9576134f961402a565b905f5260205f2090600902016006018190555061352281878581548110610d0057610d0061402a565b8684815481106135345761353461402a565b905f5260205f20906009020160070181905550818760020154111561356c57600287015461356290836130cd565b6002880155613573565b5f60028801555b8960a55411156135925760a55461358a90836130cd565b60a555613597565b5f60a5555b8583815481106135a9576135a961402a565b905f5260205f209060090201600401545f0361365f578583815481106135d1576135d161402a565b905f5260205f209060090201600201548760010154111561360b57613601868481548110610e1157610e1161402a565b6001880155613612565b5f60018801555b8583815481106136245761362461402a565b905f5260205f2090600902016002015460a654111561365a57613652868481548110610e8557610e8561402a565b60a65561365f565b5f60a6555b8a6001600160a01b03167f7bb2bbaf5335b45fee4cb4cea99ef0ee39a1d55fab618944851d77a09760ba1d87858154811061369c5761369c61402a565b5f918252602091829020600990910201546040805191825291810186905290810184905261ffff8c16606082015242608082015260a00160405180910390a2604080518b81526020810187905261ffff8b168183015242606082015290516001600160a01b038d16917f2dcf8c4b4d2ac5e3370fcc771637d6ca9dab28fb921a5e87c130a59a7515166c919081900360800190a250505061136c565b8061374281614180565b9150506133b2565b5f61379e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138729092919063ffffffff16565b905080515f14806137be5750808060200190518101906137be91906140be565b6131585760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106f3565b5f54610100900460ff1661315d5760405162461bcd60e51b81526004016106f390614135565b5f54610100900460ff166138695760405162461bcd60e51b81526004016106f390614135565b611b5b336132c8565b606061388084845f85613888565b949350505050565b6060824710156138e95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106f3565b5f80866001600160a01b0316858760405161390491906141b7565b5f6040518083038185875af1925050503d805f811461393e576040519150601f19603f3d011682016040523d82523d5f602084013e613943565b606091505b50915091506139548783838761395f565b979650505050505050565b606083156139cd5782515f036139c6576001600160a01b0385163b6139c65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106f3565b5081613880565b61388083838151156139e25781518083602001fd5b8060405162461bcd60e51b81526004016106f391906141d2565b6040518061012001604052805f81526020015f61ffff1681526020015f81526020015f81526020015f81526020015f60ff1681526020015f81526020015f81526020015f81525090565b6001600160a01b0381168114610aa0575f80fd5b5f8060408385031215613a6b575f80fd5b823591506020830135613a7d81613a46565b809150509250929050565b5f60208284031215613a98575f80fd5b81356130d881613a46565b5f8083601f840112613ab3575f80fd5b50813567ffffffffffffffff811115613aca575f80fd5b6020830191508360208260051b8501011115613ae4575f80fd5b9250929050565b5f805f8060408587031215613afe575f80fd5b843567ffffffffffffffff80821115613b15575f80fd5b613b2188838901613aa3565b90965094506020870135915080821115613b39575f80fd5b50613b4687828801613aa3565b95989497509550505050565b5f805f805f805f806080898b031215613b69575f80fd5b883567ffffffffffffffff80821115613b80575f80fd5b613b8c8c838d01613aa3565b909a50985060208b0135915080821115613ba4575f80fd5b613bb08c838d01613aa3565b909850965060408b0135915080821115613bc8575f80fd5b613bd48c838d01613aa3565b909650945060608b0135915080821115613bec575f80fd5b50613bf98b828c01613aa3565b999c989b5096995094979396929594505050565b8015158114610aa0575f80fd5b5f8060408385031215613c2b575f80fd5b8235613c3681613a46565b91506020830135613a7d81613c0d565b8051825260208082015161ffff169083015260408082015190830152606080820151908301526080808201519083015260a08082015160ff169083015260c0808201519083015260e0808201519083015261010090810151908201526101200190565b602080825282518282018190525f9190848201906040850190845b8181101561160d57613cd7838551613c46565b938501939250600101613cc4565b5f805f805f805f805f8060a08b8d031215613cfe575f80fd5b8a3567ffffffffffffffff80821115613d15575f80fd5b613d218e838f01613aa3565b909c509a5060208d0135915080821115613d39575f80fd5b613d458e838f01613aa3565b909a50985060408d0135915080821115613d5d575f80fd5b613d698e838f01613aa3565b909850965060608d0135915080821115613d81575f80fd5b613d8d8e838f01613aa3565b909650945060808d0135915080821115613da5575f80fd5b50613db28d828e01613aa3565b915080935050809150509295989b9194979a5092959850565b5f8151808452602080850194508084015f5b83811015613dfe57613df0878351613c46565b965090820190600101613ddd565b509495945050505050565b602081525f8251610180806020850152613e276101a0850183613dcb565b91506020850151604085015260408501516060850152606085015160808501526080850151613e5c60a086018261ffff169052565b5060a085015160c08581019190915285015160e08086019190915285015161010080860191909152850151610120808601919091528501516101408086019190915285015161016080860191909152909401519390920192909252919050565b803561ffff81168114613ecd575f80fd5b919050565b5f60208284031215613ee2575f80fd5b6130d882613ebc565b5f8060408385031215613efc575f80fd5b8235613f0781613a46565b9150613f1560208401613ebc565b90509250929050565b5f805f805f8060608789031215613f33575f80fd5b863567ffffffffffffffff80821115613f4a575f80fd5b613f568a838b01613aa3565b90985096506020890135915080821115613f6e575f80fd5b613f7a8a838b01613aa3565b90965094506040890135915080821115613f92575f80fd5b50613f9f89828a01613aa3565b979a9699509497509295939492505050565b80516001600160701b0381168114613ecd575f80fd5b5f805f60608486031215613fd9575f80fd5b613fe284613fb1565b9250613ff060208501613fb1565b9150604084015163ffffffff81168114614008575f80fd5b809150509250925092565b5f60208284031215614023575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016140635761406361403e565b5060010190565b6020808252600b908201526a1b9bdd08185b1b1bddd95960aa1b604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156140b3575f80fd5b81516130d881613a46565b5f602082840312156140ce575f80fd5b81516130d881613c0d565b80820180821115612ff857612ff861403e565b81810381811115612ff857612ff861403e565b8082028115828204841417612ff857612ff861403e565b5f8261413057634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8161418e5761418e61403e565b505f190190565b5f5b838110156141af578181015183820152602001614197565b50505f910152565b5f82516141c8818460208701614195565b9190910192915050565b602081525f82518060208401526141f0816040850160208701614195565b601f01601f1916919091016040019291505056fea26469706673582212207bca3abae637845772ea1a5c894a7cb09308bd026b0b9bc7b7c0fd73c22ddbd164736f6c63430008150033