0 txs
1 call
constructor
constructor(address REFERRAL_, address _free, address marketingAddress_, address _signerAddress, address _fcc, address _fundAddress)
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256 balance)
balances
viewfunction balances(address) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
FCC
viewfunction FCC() view returns (address)
feePercentage
viewfunction feePercentage(uint8) view returns (uint256)
FREE
viewfunction FREE() view returns (address)
fundAddress
viewfunction fundAddress() view returns (address)
getTeamKpi
viewfunction getTeamKpi(address _user) view returns (uint256)
isPreacher
viewfunction isPreacher(address user) view returns (bool)
maxStakeAmount
viewfunction maxStakeAmount() view returns (uint256)
name
viewfunction name() view returns (string)
network1In
viewfunction network1In() view returns (uint256 value)
owner
viewfunction owner() view returns (address)
REFERRAL
viewfunction REFERRAL() view returns (address)
rewardOfSlot
viewfunction rewardOfSlot(address user, uint8 index) view returns (uint256 reward)
signerAddress
viewfunction signerAddress() view returns (address)
stakeCount
viewfunction stakeCount(address user) view returns (uint256 count)
symbol
viewfunction symbol() view returns (string)
t_supply
viewfunction t_supply(uint256) view returns (uint40 stakeTime, uint160 tamount)
teamTotalInvestValue
viewfunction teamTotalInvestValue(address) view returns (uint256)
teamVirtuallyInvestValue
viewfunction teamVirtuallyInvestValue(address) view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
usedSignatures
viewfunction usedSignatures(bytes32) view returns (bool)
userIndex
viewfunction userIndex(address) view returns (uint256)
userStakeRecord
viewfunction userStakeRecord(address, uint256) view returns (uint40 stakeTime, uint160 amount, bool status, uint8 stakeIndex)
setFCC
nonpayablefunction setFCC(address _fcc)
setFeePercentage
nonpayablefunction setFeePercentage(uint8 _stakeIndex, uint256 _feePercentage)
setFREE
nonpayablefunction setFREE(address _free)
setFundAddress
nonpayablefunction setFundAddress(address _fundAddress)
setMarketingAddress
nonpayablefunction setMarketingAddress(address _account)
setReferral
nonpayablefunction setReferral(address _referral)
setSignerAddress
nonpayablefunction setSignerAddress(address _signer)
setTeamVirtuallyInvestValue
nonpayablefunction setTeamVirtuallyInvestValue(address _user, uint256 _value)
stake
nonpayablefunction stake(uint160 _amount, uint256 amountOutMin, uint8 _stakeIndex, bytes message, bytes signature)
stakeWithInviter
nonpayablefunction stakeWithInviter(uint160 _amount, uint256 amountOutMin, uint8 _stakeIndex, address parent, bytes message, bytes signature)
sync
nonpayablefunction sync()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferTokens
nonpayablefunction transferTokens(address _token, address _to, uint256 _amount)
unstake
nonpayablefunction unstake(uint256 index) returns (uint256)
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
RewardPaid
event RewardPaid(address indexed user, uint256 reward, uint40 timestamp, uint256 index)
Staked
event Staked(address indexed user, uint256 amount, uint256 timestamp, uint256 index, uint256 stakeTime)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
PRBMath_MulDiv18_Overflow
error PRBMath_MulDiv18_Overflow(uint256 x, uint256 y)
creation bytecode
0x610100604052670de0b6bbbcfeb9c060a0908152670de0b6c3c63b40a060c052670de0b6d3cc89fcc060e052610039906001906003610352565b506040805160608101825262093a8081526213c680602082015262278d009181019190915261006c90600490600361039b565b50601e60805234801561007d575f5ffd5b506040516144b53803806144b583398101604081905261009c916103ff565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b038881166001600160a01b031992831617909255600d80549287169290911691909117905560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f1960248201527355d398326f99059ff775485246999027b31979559063095ea7b3906044016020604051808303815f875af1158015610175573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610199919061046f565b50600a80546001600160a01b0319166001600160a01b03871690811790915560405163095ea7b360e01b81527310ed43c718714eb63d5aa57b78b54704e256024e60048201525f19602482015263095ea7b3906044016020604051808303815f875af115801561020b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022f919061046f565b50600c80546001600160a01b038085166001600160a01b031992831617909255600e80548484169216919091179055600760205260c87f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df5561012c7fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285560025f526101f47fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d5583166103275760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964207369676e6572206164647265737300000000000000000000604482015260640160405180910390fd5b5050600880546001600160a01b0319166001600160a01b039290921691909117905550610495915050565b826003810192821561038b579160200282015b8281111561038b57825182906001600160401b0316905591602001919060010190610365565b506103979291506103d0565b5090565b826003810192821561038b579160200282015b8281111561038b578251829062ffffff169055916020019190600101906103ae565b5b80821115610397575f81556001016103d1565b80516001600160a01b03811681146103fa575f5ffd5b919050565b5f5f5f5f5f5f60c08789031215610414575f5ffd5b61041d876103e4565b955061042b602088016103e4565b9450610439604088016103e4565b9350610447606088016103e4565b9250610455608088016103e4565b915061046360a088016103e4565b90509295509295509295565b5f6020828403121561047f575f5ffd5b8151801515811461048e575f5ffd5b9392505050565b6080516140016104b45f395f8181610d32015261265501526140015ff3fe608060405234801561000f575f5ffd5b5060043610610234575f3560e01c806370a0823111610135578063c3896b89116100b4578063f293ed8811610079578063f293ed88146105a1578063f2fde38b146105b4578063f4fdf732146105c7578063f978fd61146105da578063fff6cae9146105fc575f5ffd5b8063c3896b8914610536578063c63568c714610549578063c96679fe1461055c578063d5b767051461057b578063e82bef291461058e575f5ffd5b8063916dc266116100fa578063916dc266146104de57806395d89b41146102865780639e5914da146104f1578063a64b6e5f14610504578063b108b4cb14610517575f5ffd5b806370a082311461048b57806372fbab3b1461049e57806385dc3004146104a65780638da5cb5b146104b9578063906e9dd0146104cb575f5ffd5b80632e17de78116101c157806359f0c0e71161018657806359f0c0e7146104025780635b7633d0146104255780635d80ca32146104385780635e61da081461044057806368fe339614610478575f5ffd5b80632e17de7814610363578063313ce5671461037657806333060d901461039057806347998157146103b85780634b413c2a146103e3575f5ffd5b8063077a5a2211610207578063077a5a22146102bd57806308adb4be146102dc578063119b99f21461032857806318160ddd1461033b57806327e235e314610344575f5ffd5b8063046dc166146102385780630547db5d1461024d578063069a8f2d1461026057806306fdde0314610286575b5f5ffd5b61024b6102463660046137e6565b610604565b005b61024b61025b366004613856565b6106a7565b61027361026e366004613903565b6108f0565b6040519081526020015b60405180910390f35b6102b06040518060400160405280600b81526020016a436f6d707574696c69747960a81b81525081565b60405161027d9190613936565b6102736102cb36600461396b565b60076020525f908152604090205481565b6102ef6102ea366004613984565b61093c565b6040805164ffffffffff90951685526001600160a01b0390931660208501529015159183019190915260ff16606082015260800161027d565b61024b610336366004613984565b610993565b610273600f5481565b6102736103523660046137e6565b60106020525f908152604090205481565b6102736103713660046139ae565b6109d7565b61037e601281565b60405160ff909116815260200161027d565b61027361039e3660046137e6565b6001600160a01b03165f9081526012602052604090205490565b600a546103cb906001600160a01b031681565b6040516001600160a01b03909116815260200161027d565b6102736103f13660046137e6565b60146020525f908152604090205481565b6104156104103660046137e6565b611112565b604051901515815260200161027d565b6008546103cb906001600160a01b031681565b610273611138565b61045361044e3660046139ae565b611207565b6040805164ffffffffff90931683526001600160a01b0390911660208301520161027d565b61024b6104863660046139c5565b61123e565b6102736104993660046137e6565b61133e565b6102736113e0565b61024b6104b43660046137e6565b61148f565b5f546103cb906001600160a01b031681565b61024b6104d93660046137e6565b611527565b600c546103cb906001600160a01b031681565b61024b6104ff3660046137e6565b611572565b61024b610512366004613a60565b611613565b6102736105253660046137e6565b60136020525f908152604090205481565b61024b6105443660046137e6565b6116ec565b600b546103cb906001600160a01b031681565b61027361056a3660046137e6565b60116020525f908152604090205481565b61024b610589366004613a9e565b6117af565b600e546103cb906001600160a01b031681565b61024b6105af3660046137e6565b611877565b61024b6105c23660046137e6565b61190e565b6102736105d53660046137e6565b611981565b6104156105e83660046139ae565b60096020525f908152604090205460ff1681565b61024b6119ae565b5f546001600160a01b031633146106365760405162461bcd60e51b815260040161062d90613ab8565b60405180910390fd5b6001600160a01b0381166106855760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964207369676e6572206164647265737360501b604482015260640161062d565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b3233146106c65760405162461bcd60e51b815260040161062d90613ade565b6106ce611138565b886001600160a01b0316111561070e5760405162461bcd60e51b815260206004820152600560248201526403c313030360dc1b604482015260640161062d565b60028660ff1611156107485760405162461bcd60e51b81526020600482015260036024820152621e1e9960e91b604482015260640161062d565b61075484848484611b59565b15610768576107638887611cc7565b610789565b60ff86165f9081526007602052604090205415610789576107898887611e92565b61079388886120d8565b600b54604051633bb1db8160e21b81523360048201819052916001600160a01b03169063eec76e0490602401602060405180830381865afa1580156107da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fe9190613afb565b1580156108725750600b54604051633bb1db8160e21b81526001600160a01b0388811660048301529091169063eec76e0490602401602060405180830381865afa15801561084e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108729190613afb565b156108da57600b54604051631ea690cf60e21b81526001600160a01b038881166004830152838116602483015290911690637a9a433c906044015f604051808303815f87803b1580156108c3575f5ffd5b505af11580156108d5573d5f5f3e3d5ffd5b505050505b6108e5818a8961241b565b505050505050505050565b6001600160a01b0382165f908152601260205260408120805482919060ff851690811061091f5761091f613b1a565b905f5260205f200190506109328161280b565b9150505b92915050565b6012602052815f5260405f208181548110610955575f80fd5b5f9182526020909120015464ffffffffff811692506001600160a01b03600160281b820416915060ff600160c81b8204811691600160d01b90041684565b5f546001600160a01b031633146109bc5760405162461bcd60e51b815260040161062d90613ab8565b6001600160a01b039091165f90815260146020526040902055565b5f3233146109f75760405162461bcd60e51b815260040161062d90613ade565b5f5f610a02846128aa565b600a546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610a50573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a749190613b2e565b6040516370a0823160e01b81523060048201529091505f905f516020613fac5f395f51905f52906370a0823190602401602060405180830381865afa158015610abf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae39190613b2e565b6040805160028082526060820183529293505f9290916020830190803683375050600a5482519293506001600160a01b0316918391505f90610b2757610b27613b1a565b60200260200101906001600160a01b031690816001600160a01b0316815250505f516020613fac5f395f51905f5281600181518110610b6857610b68613b1a565b6001600160a01b0390921660209283029190910190910152604051634401edf760e11b81527310ed43c718714eb63d5aa57b78b54704e256024e90638803dbee90610bbf9088908790869030904290600401613b9c565b5f604051808303815f875af1158015610bda573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c019190810190613c2b565b50600a546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c48573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6c9190613b2e565b6040516370a0823160e01b81523060048201529091505f905f516020613fac5f395f51905f52906370a0823190602401602060405180830381865afa158015610cb7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cdb9190613b2e565b90505f610ce88387613cd5565b90505f610cf58684613cd5565b90505f88821115610d0d57610d0a8983613cd5565b90505b5f610d183383612ae3565b600b5460405163195006c760e11b815233600482015260ff7f00000000000000000000000000000000000000000000000000000000000000001660248201529192505f916001600160a01b03909116906332a00d8e906044015f60405180830381865afa158015610d8b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610db29190810190613ce8565b90505f5b81518160ff161015610e28578b60135f848460ff1681518110610ddb57610ddb613b1a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f828254610e109190613cd5565b90915550819050610e2081613d78565b915050610db6565b505f610e348285612c8d565b90505f6064610e44866009613d96565b610e4e9190613dc1565b90505f6064610e5e876003613d96565b610e689190613dc1565b90508115610f7f576040805160028082526060820183525f926020830190803683370190505090505f516020613fac5f395f51905f52815f81518110610eb057610eb0613b1a565b6001600160a01b039283166020918202929092010152600c54825191169082906001908110610ee157610ee1613b1a565b6001600160a01b03909216602092830291909101909101526040516338ed173960e01b81527310ed43c718714eb63d5aa57b78b54704e256024e906338ed173990610f3a9086905f90869061dead904290600401613b9c565b5f604051808303815f875af1158015610f55573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f7c9190810190613c2b565b50505b801561100457600e5460405163a9059cbb60e01b81525f516020613fac5f395f51905f529163a9059cbb91610fc2916001600160a01b0316908590600401613dd4565b6020604051808303815f875af1158015610fde573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110029190613afb565b505b5f516020613fac5f395f51905f5263a9059cbb338385876110258b8e613cd5565b61102f9190613cd5565b6110399190613cd5565b6110439190613cd5565b6040518363ffffffff1660e01b8152600401611060929190613dd4565b6020604051808303815f875af115801561107c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a09190613afb565b50600a546040516337470d6f60e21b8152600481018a90526001600160a01b039091169063dd1c35bc906024015f604051808303815f87803b1580156110e4575f5ffd5b505af11580156110f6573d5f5f3e3d5ffd5b505050508e9f505050505050505050505050505050505b919050565b6001600160a01b03165f90815260106020526040902054680ad78ebc5ac6200000111590565b5f5f6111426113e0565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b0316631a7abd976040518163ffffffff1660e01b8152600401602060405180830381865afa158015611195573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b99190613ded565b90505f6111c7606483613e13565b6001600160701b03169050808311156111e3575f935050505090565b6111ff6111f08483613cd5565b683635c9adc5dea000006132ab565b935050505090565b60158181548110611216575f80fd5b5f9182526020909120015464ffffffffff81169150600160281b90046001600160a01b031682565b32331461125d5760405162461bcd60e51b815260040161062d90613ade565b611265611138565b876001600160a01b031611156112a55760405162461bcd60e51b815260206004820152600560248201526403c313030360dc1b604482015260640161062d565b60028560ff1611156112df5760405162461bcd60e51b81526020600482015260036024820152621e1e9960e91b604482015260640161062d565b6112eb84848484611b59565b156112ff576112fa8786611cc7565b611320565b60ff85165f9081526007602052604090205415611320576113208786611e92565b61132a87876120d8565b61133533888761241b565b50505050505050565b6001600160a01b0381165f9081526012602052604081208054156113da5780545f9061136c90600190613cd5565b90505b5f82828154811061138257611382613b1a565b5f91825260208220018054909250600160c81b900460ff16151590036113b8576113ab8161280b565b6113b59085613e40565b93505b815f036113c557506113d8565b50806113d081613e53565b91505061136f565b505b50919050565b6015545f908082036113f3575f91505090565b5f6113ff603c42613cd5565b600f549091505f611411600185613cd5565b90505b5f6015828154811061142857611428613b1a565b5f918252602090912001805490915064ffffffffff1684111561144b5750611480565b80546001600160a01b03600160281b909104169250815f0361146d5750611480565b508061147881613e53565b915050611414565b5080600f546111ff9190613cd5565b5f546001600160a01b031633146114b85760405162461bcd60e51b815260040161062d90613ab8565b6001600160a01b0381166115055760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642066756e64206164647265737360601b604482015260640161062d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146115505760405162461bcd60e51b815260040161062d90613ab8565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461159b5760405162461bcd60e51b815260040161062d90613ab8565b6001600160a01b0381166115f15760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420726566657272616c20616464726573730000000000000000604482015260640161062d565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461163c5760405162461bcd60e51b815260040161062d90613ab8565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb9061166a9085908590600401613dd4565b6020604051808303815f875af1158015611686573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116aa9190613afb565b6116e75760405162461bcd60e51b815260206004820152600e60248201526d3a3930b739b332b91032b93937b960911b604482015260640161062d565b505050565b5f546001600160a01b031633146117155760405162461bcd60e51b815260040161062d90613ab8565b600a80546001600160a01b0319166001600160a01b03831690811790915560405163095ea7b360e01b815263095ea7b39061176b907310ed43c718714eb63d5aa57b78b54704e256024e905f1990600401613dd4565b6020604051808303815f875af1158015611787573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ab9190613afb565b5050565b5f546001600160a01b031633146117d85760405162461bcd60e51b815260040161062d90613ab8565b60028260ff1611156118215760405162461bcd60e51b8152602060048201526012602482015271092dcecc2d8d2c840e6e8c2d6ca92dcc8caf60731b604482015260640161062d565b6103e88111156118625760405162461bcd60e51b815260206004820152600c60248201526b08ccaca40e8dede40d0d2ced60a31b604482015260640161062d565b60ff9091165f90815260076020526040902055565b5f546001600160a01b031633146118a05760405162461bcd60e51b815260040161062d90613ab8565b6001600160a01b0381166118ec5760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420464343206164647265737360681b604482015260640161062d565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146119375760405162461bcd60e51b815260040161062d90613ab8565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b0381165f9081526014602090815260408083205460139092528220546109369190613e40565b6040516370a0823160e01b81523060048201525f905f516020613fac5f395f51905f52906370a0823190602401602060405180830381865afa1580156119f6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a1a9190613b2e565b90505f600a5f9054906101000a90046001600160a01b03166001600160a01b031663c816841b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a6d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a919190613e68565b60405163a9059cbb60e01b81529091505f516020613fac5f395f51905f529063a9059cbb90611ac69084908690600401613dd4565b6020604051808303815f875af1158015611ae2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b069190613afb565b50806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611b3f575f5ffd5b505af1158015611b51573d5f5f3e3d5ffd5b505050505050565b5f811580611b65575083155b15611b7157505f611cbf565b611b7b85856132c2565b611b8657505f611cbf565b5f611bc586868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506132ff92505050565b90505f611c078286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061333992505050565b6008549091506001600160a01b03808316911614611c29575f92505050611cbf565b5f8585604051611c3a929190613e83565b60408051918290039091205f8181526009602052919091205490915060ff1615611c9f5760405162461bcd60e51b815260206004820152601660248201527514da59db985d1d5c9948185b1c9958591e481d5cd95960521b604482015260640161062d565b5f908152600960205260409020805460ff19166001908117909155925050505b949350505050565b6040805160028082526060820183525f926020830190803683370190505090505f516020613fac5f395f51905f52815f81518110611d0757611d07613b1a565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110611d3857611d38613b1a565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091611d75918716613d96565b611d7f9190613dc1565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f90611dbd9085908790600401613e92565b5f60405180830381865afa158015611dd7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dfe9190810190613c2b565b600a5481519192506001600160a01b03169063a9059cbb9061dead9084906001908110611e2d57611e2d613b1a565b60200260200101516040518363ffffffff1660e01b8152600401611e52929190613dd4565b6020604051808303815f875af1158015611e6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b519190613afb565b6040805160028082526060820183525f926020830190803683370190505090505f516020613fac5f395f51905f52815f81518110611ed257611ed2613b1a565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110611f0357611f03613b1a565b6001600160a01b0392831660209182029290920181019190915260ff84165f90815260079091526040812054909161271091611f40918716613d96565b611f4a9190613dc1565b60405163d06ca61f60e01b81529091505f907310ed43c718714eb63d5aa57b78b54704e256024e9063d06ca61f90611f889085908790600401613e92565b5f60405180830381865afa158015611fa2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611fc99190810190613c2b565b90505f81600181518110611fdf57611fdf613b1a565b6020908102919091010151600a546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303815f875af115801561203f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120639190613afb565b50600a5460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906120989061dead908590600401613dd4565b6020604051808303815f875af11580156120b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113359190613afb565b6040516323b872dd60e01b81523360048201523060248201526001600160a01b03831660448201525f516020613fac5f395f51905f52906323b872dd906064016020604051808303815f875af1158015612134573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121589190613afb565b506040805160028082526060820183525f926020830190803683370190505090505f516020613fac5f395f51905f52815f8151811061219957612199613b1a565b6001600160a01b039283166020918202929092010152600a548251911690829060019081106121ca576121ca613b1a565b6001600160a01b039283166020918202929092010152600a546040516370a0823160e01b81523060048201525f9291909116906370a0823190602401602060405180830381865afa158015612221573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122459190613b2e565b90507310ed43c718714eb63d5aa57b78b54704e256024e635c11d79561226c600287613eaa565b858530426040518663ffffffff1660e01b8152600401612290959493929190613ed8565b5f604051808303815f87803b1580156122a7575f5ffd5b505af11580156122b9573d5f5f3e3d5ffd5b5050600a546040516370a0823160e01b81523060048201525f93506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015612305573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123299190613b2e565b600a549091507310ed43c718714eb63d5aa57b78b54704e256024e9063e8e33700905f516020613fac5f395f51905f52906001600160a01b031661236e60028a613eaa565b6123788787613cd5565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015260648101919091525f6084820181905260a4820181905260c48201524260e4820152610104016060604051808303815f875af11580156123ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124119190613efe565b5050505050505050565b600b54604051633bb1db8160e21b81526001600160a01b0385811660048301529091169063eec76e0490602401602060405180830381865afa158015612463573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124879190613afb565b6124bc5760405162461bcd60e51b81526020600482015260066024820152650848589a5b9960d21b604482015260640161062d565b60408051808201825264ffffffffff428116808352600f80546001600160a01b039081166020808701918252601580546001810182555f91825288517f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475909101805494518616600160281b026001600160c81b03199095169190981617929092179095558651608081018852968701819052928652871692850183905260ff861660608601528054939493909190612575908490613e40565b90915550506001600160a01b038581165f9081526010602052604081208054928716929091906125a6908490613e40565b90915550506001600160a01b038581165f818152601260209081526040808320805460018101825581855283852088519082018054958a01518a86015160608c015164ffffffffff9094166001600160c81b031990981697909717600160281b918b16919091021761ffff60c81b1916600160c81b9615159690960260ff60d01b191695909517600160d01b60ff9283160217909455600b54925163195006c760e11b815260048101969096527f000000000000000000000000000000000000000000000000000000000000000090931660248601529491939116906332a00d8e906044015f60405180830381865afa1580156126a5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126cc9190810190613ce8565b90505f5b81518160ff16101561274b57876001600160a01b031660135f848460ff16815181106126fe576126fe613b1a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f8282546127339190613e40565b9091555081905061274381613d78565b9150506126d0565b506040516001600160a01b0388811682528916905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3876001600160a01b03167f9cfd25589d1eb8ad71e342a86a8524e83522e3936c0803048c08f6d9ad974f4088428560048b60ff16600381106127d2576127d2613b1a565b0154604080516001600160a01b039095168552602085019390935291830152606082015260800160405180910390a25050505050505050565b80545f906001600160a01b03600160281b8204169064ffffffffff16826128328242613f29565b90506128418162278d00613361565b90508064ffffffffff165f03612859578293506128a2565b845461289f906128989064ffffffffff84169061289290600190600160d01b900460ff166003811061288d5761288d613b1a565b015490565b9061337d565b84906133dc565b93505b505050919050565b335f81815260126020526040812080549192839290919083908290879081106128d5576128d5613b1a565b5f918252602090912001805490915064ffffffffff811690600490600160d01b900460ff166003811061290a5761290a613b1a565b01546129168242613cd5565b101561295c5760405162461bcd60e51b8152602060048201526015602482015274151a19481d1a5b59481a5cc81b9bdd081c9a59da1d605a1b604482015260640161062d565b8154600160c81b900460ff161561299b5760405162461bcd60e51b8152602060048201526003602482015262616c7760e81b604482015260640161062d565b8154600f8054600160281b9092046001600160a01b0316965086915f906129c3908490613cd5565b90915550506001600160a01b0384165f90815260106020526040812080548792906129ef908490613cd5565b90915550506040518581525f906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612a3d8261280b565b825460ff60c81b1916600160c81b1783556001600160a01b0385165f90815260116020526040902054909650612a74906001613e40565b6001600160a01b0385165f8181526011602090815260409182902093909355805189815264ffffffffff4216938101939093528201899052907f48711929c842404f1d698f9525c36a831e8224d0bac22977e91904b3fe9f65649060600160405180910390a250505050915091565b5f6064612af1836005613d96565b612afb9190613dc1565b600b54604051633b0f0f2f60e01b81526001600160a01b0386811660048301529293505f9290911690633b0f0f2f90602401602060405180830381865afa158015612b48573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6c9190613e68565b90506001600160a01b03811615801590612b8a5750612b8a81611112565b15612c075760405163a9059cbb60e01b81525f516020613fac5f395f51905f529063a9059cbb90612bc19084908690600401613dd4565b6020604051808303815f875af1158015612bdd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c019190613afb565b50612c86565b600d5460405163a9059cbb60e01b81525f516020613fac5f395f51905f529163a9059cbb91612c44916001600160a01b0316908690600401613dd4565b6020604051808303815f875af1158015612c60573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c849190613afb565b505b5092915050565b5f80806018816064612c9f8388613d96565b612ca99190613dc1565b94505f5b87518110156131f857878181518110612cc857612cc8613b1a565b60200260200101519450612cdb85611981565b93506a0422ca8b0a00a4250000008410158015612cf757508183115b8015612d075750612d0785611112565b15612da3575f516020613fac5f395f51905f5263a9059cbb866064612d2c8688613cd5565b612d36908c613d96565b612d409190613dc1565b6040518363ffffffff1660e01b8152600401612d5d929190613dd4565b6020604051808303815f875af1158015612d79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d9d9190613afb565b50601891505b69d3c21bcecceda10000008410158015612dc757506a0422ca8b0a00a42500000084105b8015612dd35750601482105b8015612de35750612de385611112565b15612e80575f516020613fac5f395f51905f5263a9059cbb866064612e09866014613cd5565b612e13908c613d96565b612e1d9190613dc1565b6040518363ffffffff1660e01b8152600401612e3a929190613dd4565b6020604051808303815f875af1158015612e56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e7a9190613afb565b50601491505b6969e10de76676d08000008410158015612ea3575069d3c21bcecceda100000084105b8015612eaf5750601082105b8015612ebf5750612ebf85611112565b15612f5c575f516020613fac5f395f51905f5263a9059cbb866064612ee5866010613cd5565b612eef908c613d96565b612ef99190613dc1565b6040518363ffffffff1660e01b8152600401612f16929190613dd4565b6020604051808303815f875af1158015612f32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f569190613afb565b50601091505b69152d02c7e14af68000008410158015612f7f57506969e10de76676d080000084105b8015612f8b5750600c82105b8015612f9b5750612f9b85611112565b15613038575f516020613fac5f395f51905f5263a9059cbb866064612fc186600c613cd5565b612fcb908c613d96565b612fd59190613dc1565b6040518363ffffffff1660e01b8152600401612ff2929190613dd4565b6020604051808303815f875af115801561300e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130329190613afb565b50600c91505b690a968163f0a57b400000841015801561305b575069152d02c7e14af680000084105b80156130675750600882105b8015613077575061307785611112565b15613114575f516020613fac5f395f51905f5263a9059cbb86606461309d866008613cd5565b6130a7908c613d96565b6130b19190613dc1565b6040518363ffffffff1660e01b81526004016130ce929190613dd4565b6020604051808303815f875af11580156130ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061310e9190613afb565b50600891505b69021e19e0c9bab240000084101580156131375750690a968163f0a57b40000084105b80156131435750600482105b8015613153575061315385611112565b156131f0575f516020613fac5f395f51905f5263a9059cbb866064613179866004613cd5565b613183908c613d96565b61318d9190613dc1565b6040518363ffffffff1660e01b81526004016131aa929190613dd4565b6020604051808303815f875af11580156131c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131ea9190613afb565b50600491505b600101612cad565b50808211156132a157600d545f516020613fac5f395f51905f529063a9059cbb906001600160a01b0316606461322e858b613d96565b6132389190613dc1565b6132429089613cd5565b6040518363ffffffff1660e01b815260040161325f929190613dd4565b6020604051808303815f875af115801561327b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061329f9190613afb565b505b5050505092915050565b5f8183106132b957816132bb565b825b9392505050565b5f603982146132d257505f610936565b603583013560e01c804281118015906132f6575061012c6132f38242613cd5565b11155b95945050505050565b5f61330a82516133ed565b8260405160200161331c929190613f5d565b604051602081830303815290604052805190602001209050919050565b5f5f5f5f613347868661347d565b92509250925061335782826134c6565b5090949350505050565b5f8164ffffffffff168364ffffffffff16106132b957816132bb565b5f82816001841661339657670de0b6b3a7640000613398565b815b9050600184901c93505b83156133d6576133b2828361357e565b915060018416156133ca576133c7818361357e565b90505b600184901c93506133a2565b806132f6565b5f6132bb6133ea848461357e565b90565b60605f6133f983613630565b60010190505f8167ffffffffffffffff81111561341857613418613b45565b6040519080825280601f01601f191660200182016040528015613442576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461344c57509392505050565b5f5f5f83516041036134b4576020840151604085015160608601515f1a6134a688828585613707565b9550955095505050506134bf565b505081515f91506002905b9250925092565b5f8260038111156134d9576134d9613f97565b036134e2575050565b60018260038111156134f6576134f6613f97565b036135145760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561352857613528613f97565b036135495760405163fce698f760e01b81526004810182905260240161062d565b600382600381111561355d5761355d613f97565b036117ab576040516335e2f38360e21b81526004810182905260240161062d565b5f80805f19848609848602925082811083820303915050805f036135af5750670de0b6b3a764000090049050610936565b670de0b6b3a764000081106135e157604051635173648d60e01b8152600481018690526024810185905260440161062d565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061366e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061369a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106136b857662386f26fc10000830492506010015b6305f5e10083106136d0576305f5e100830492506008015b61271083106136e457612710830492506004015b606483106136f6576064830492506002015b600a83106109365760010192915050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561374057505f915060039050826137c5565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613791573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166137bc57505f9250600191508290506137c5565b92505f91508190505b9450945094915050565b6001600160a01b03811681146137e3575f5ffd5b50565b5f602082840312156137f6575f5ffd5b81356132bb816137cf565b803560ff8116811461110d575f5ffd5b5f5f83601f840112613821575f5ffd5b50813567ffffffffffffffff811115613838575f5ffd5b60208301915083602082850101111561384f575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b03121561386d575f5ffd5b8835613878816137cf565b97506020890135965061388d60408a01613801565b9550606089013561389d816137cf565b9450608089013567ffffffffffffffff8111156138b8575f5ffd5b6138c48b828c01613811565b90955093505060a089013567ffffffffffffffff8111156138e3575f5ffd5b6138ef8b828c01613811565b999c989b5096995094979396929594505050565b5f5f60408385031215613914575f5ffd5b823561391f816137cf565b915061392d60208401613801565b90509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561397b575f5ffd5b6132bb82613801565b5f5f60408385031215613995575f5ffd5b82356139a0816137cf565b946020939093013593505050565b5f602082840312156139be575f5ffd5b5035919050565b5f5f5f5f5f5f5f60a0888a0312156139db575f5ffd5b87356139e6816137cf565b9650602088013595506139fb60408901613801565b9450606088013567ffffffffffffffff811115613a16575f5ffd5b613a228a828b01613811565b909550935050608088013567ffffffffffffffff811115613a41575f5ffd5b613a4d8a828b01613811565b989b979a50959850939692959293505050565b5f5f5f60608486031215613a72575f5ffd5b8335613a7d816137cf565b92506020840135613a8d816137cf565b929592945050506040919091013590565b5f5f60408385031215613aaf575f5ffd5b6139a083613801565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b602080825260039082015262454f4160e81b604082015260600190565b5f60208284031215613b0b575f5ffd5b815180151581146132bb575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215613b3e575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f8151808452602084019350602083015f5b82811015613b925781516001600160a01b0316865260209586019590910190600101613b6b565b5093949350505050565b85815284602082015260a060408201525f613bba60a0830186613b59565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715613c0057613c00613b45565b604052919050565b5f67ffffffffffffffff821115613c2157613c21613b45565b5060051b60200190565b5f60208284031215613c3b575f5ffd5b815167ffffffffffffffff811115613c51575f5ffd5b8201601f81018413613c61575f5ffd5b8051613c74613c6f82613c08565b613bd7565b8082825260208201915060208360051b850101925086831115613c95575f5ffd5b6020840193505b82841015613cb7578351825260209384019390910190613c9c565b9695505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561093657610936613cc1565b5f60208284031215613cf8575f5ffd5b815167ffffffffffffffff811115613d0e575f5ffd5b8201601f81018413613d1e575f5ffd5b8051613d2c613c6f82613c08565b8082825260208201915060208360051b850101925086831115613d4d575f5ffd5b6020840193505b82841015613cb7578351613d67816137cf565b825260209384019390910190613d54565b5f60ff821660ff8103613d8d57613d8d613cc1565b60010192915050565b808202811582820484141761093657610936613cc1565b634e487b7160e01b5f52601260045260245ffd5b5f82613dcf57613dcf613dad565b500490565b6001600160a01b03929092168252602082015260400190565b5f60208284031215613dfd575f5ffd5b81516001600160701b03811681146132bb575f5ffd5b5f6001600160701b03831680613e2b57613e2b613dad565b806001600160701b0384160491505092915050565b8082018082111561093657610936613cc1565b5f81613e6157613e61613cc1565b505f190190565b5f60208284031215613e78575f5ffd5b81516132bb816137cf565b818382375f9101908152919050565b828152604060208201525f611cbf6040830184613b59565b5f6001600160a01b03831680613ec257613ec2613dad565b6001600160a01b03929092169190910492915050565b60018060a01b038616815284602082015260a060408201525f613bba60a0830186613b59565b5f5f5f60608486031215613f10575f5ffd5b5050815160208301516040909301519094929350919050565b64ffffffffff828116828216039081111561093657610936613cc1565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f611cbf613f91601a840186613f46565b84613f46565b634e487b7160e01b5f52602160045260245ffdfe00000000000000000000000055d398326f99059ff775485246999027b3197955a26469706673582212203e8b759ba4c26de7116d5825b44981699a4abc42d236bfcf4675135b2ed4a5ef64736f6c634300081e0033000000000000000000000000efd1fd68b0d78bfd10264f537725bbbb1b33333300000000000000000000000010c107612196c26e69baf322ae766776dd888888000000000000000000000000fd0c01b851e0d7b7f4215fad3f9f34294f9cc6d0000000000000000000000000869cc0f1cb6b77f6939fa8165ebdea850757bdb7000000000000000000000000e843863ea1a69a4a061ad50268c2965f83666666000000000000000000000000d5e613bf5403a0d5196626d708ad176e4a1c7994