2.7k txs
2.8k calls
constructor
constructor(address _token, address _fundReceiver)
functions
amountRaised
viewfunction amountRaised() view returns (uint256)
amountRaisedOverall
viewfunction amountRaisedOverall() view returns (uint256)
amountRaisedUSDC
viewfunction amountRaisedUSDC() view returns (uint256)
amountRaisedUSDT
viewfunction amountRaisedUSDT() view returns (uint256)
claimStartTime
viewfunction claimStartTime() view returns (uint256)
currentStage
viewfunction currentStage() view returns (uint256)
fundReceiver
viewfunction fundReceiver() view returns (address)
getLatestPrice
viewfunction getLatestPrice() view returns (uint256)
getPhaseDetail
viewfunction getPhaseDetail(uint256 phaseInd) view returns (uint256 tokenToSell, uint256 soldTokens, uint256 priceUsd)
isExist
viewfunction isExist(address) view returns (bool)
isPresaleEnded
viewfunction isPresaleEnded() view returns (bool)
mainToken
viewfunction mainToken() view returns (address)
nativeToToken
viewfunction nativeToToken(uint256 _amount, uint256 phaseId) view returns (uint256)
nativeToUsd
viewfunction nativeToUsd(uint256 _amount) view returns (uint256)
owner
viewfunction owner() view returns (address)
phases
viewfunction phases(uint256) view returns (uint256 tokensToSell, uint256 totalSoldTokens, uint256 tokenPerUsdPrice)
presaleStatus
viewfunction presaleStatus() view returns (bool)
priceFeed
viewfunction priceFeed() view returns (address)
soldToken
viewfunction soldToken() view returns (uint256)
tokenPerUsdPrice
viewfunction tokenPerUsdPrice(uint256) view returns (uint256)
tokensToSell
viewfunction tokensToSell(uint256) view returns (uint256)
totalStages
viewfunction totalStages() view returns (uint256)
totalUsersCount
viewfunction totalUsersCount() view returns (uint256)
uniqueBuyers
viewfunction uniqueBuyers() view returns (uint256)
USDC
viewfunction USDC() view returns (address)
USDT
viewfunction USDT() view returns (address)
usdtToToken
viewfunction usdtToToken(uint256 _amount, uint256 phaseId) view returns (uint256)
users
viewfunction users(address) view returns (uint256 native_balance, uint256 ethToUsd_balance, uint256 usdt_balance, uint256 usdc_balance, uint256 token_balance)
UsersAddresses
viewfunction UsersAddresses(uint256) view returns (address)
buyToken
payablefunction buyToken() payable
buyTokenUSDC
nonpayablefunction buyTokenUSDC(uint256 amount)
buyTokenUSDT
nonpayablefunction buyTokenUSDT(uint256 amount)
changeFundReciever
nonpayablefunction changeFundReciever(address _addr)
endPresale
nonpayablefunction endPresale(bool _status)
initiateTransfer
nonpayablefunction initiateTransfer(uint256 _value)
renounceOwnership
nonpayablefunction renounceOwnership()
setCurrentStage
nonpayablefunction setCurrentStage(uint256 _stageNum)
setPresaleStatus
nonpayablefunction setPresaleStatus(bool _status)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferTokens
nonpayablefunction transferTokens(address token, uint256 _value)
updatePresale
nonpayablefunction updatePresale(uint256 _phaseId, uint256 _tokensToSell, uint256 _tokenPerUsdPrice)
updatePriceFeed
nonpayablefunction updatePriceFeed(address _priceFeed)
updateStableTokens
nonpayablefunction updateStableTokens(address _USDT, address _USDC)
updateToken
nonpayablefunction updateToken(address _token)
events
BuyToken
event BuyToken(address indexed _user, uint256 indexed _amount)
ClaimToken
event ClaimToken(address indexed _user, uint256 indexed _amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UpdatePrice
event UpdatePrice(uint256 _oldPrice, uint256 _newPrice)
errors
No errors.
creation bytecode
0x608060405273dac17f958d2ee523a2206206994597c13d831ec760025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060e0016040528068056bc75e2d6310000068ffffffffffffffffff16815260200168039d2f941e420aaaaa68ffffffffffffffffff1681526020016802b5e3af16b188000068ffffffffffffffffff1681526020016801efa2a1a27ecedb6d68ffffffffffffffffff16815260200168018c821ae86572492468ffffffffffffffffff1681526020016801158e460913d0000068ffffffffffffffffff16815260200167c6410d7432b9249268ffffffffffffffffff16815250600e90600761017a9291906104e8565b506040518060e001604052806a52b7d2dcc80cd2e40000006affffffffffffffffffffff1681526020016a7c13bc4b2c133c560000006affffffffffffffffffffff1681526020016aa56fa5b99019a5c80000006affffffffffffffffffffff1681526020016aba1d9a70c21cda810000006affffffffffffffffffffff1681526020016acecb8f27f4200f3a0000006affffffffffffffffffffff1681526020016ae37983df262343f30000006affffffffffffffffffffff1681526020016af8277896582678ac0000006affffffffffffffffffffff16815250600f906007610266929190610540565b50348015610272575f5ffd5b506040516137883803806137888339818101604052810190610294919061064e565b6102b06102a561042060201b60201c565b61042760201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b841960045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f90505b600f8054905081101561040c57600f81815481106103aa576103a961068c565b5b905f5260205f20015460055f8381526020019081526020015f205f0181905550600e81815481106103de576103dd61068c565b5b905f5260205f20015460055f8381526020019081526020015f20600201819055508080600101915050610389565b50600f8054905060068190555050506106b9565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255905f5260205f2090810192821561052f579160200282015b8281111561052e578251829068ffffffffffffffffff16905591602001919060010190610506565b5b50905061053c919061059a565b5090565b828054828255905f5260205f20908101928215610589579160200282015b8281111561058857825182906affffffffffffffffffffff1690559160200191906001019061055e565b5b509050610596919061059a565b5090565b5b808211156105b1575f815f90555060010161059b565b5090565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105e2826105b9565b9050919050565b5f6105f3826105d8565b9050919050565b610603816105e9565b811461060d575f5ffd5b50565b5f8151905061061e816105fa565b92915050565b61062d816105d8565b8114610637575f5ffd5b50565b5f8151905061064881610624565b92915050565b5f5f60408385031215610664576106636105b5565b5b5f61067185828601610610565b92505060206106828582860161063a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6130c2806106c65f395ff3fe608060405260043610610265575f3560e01c80638895283f11610143578063b5e75e1c116100b5578063db203b7f11610079578063db203b7f146108f1578063e00e06121461091b578063e9238daf14610957578063f2fde38b14610993578063f86a3529146109bb578063fb4aa0a1146109e557610265565b8063b5e75e1c146107ff578063bec3fa1714610827578063c54e44eb1461084f578063caed938814610879578063cb33365d146108b557610265565b8063a482171911610107578063a48217191461070f578063a6a11bb114610719578063a87430ba14610743578063aa1c3aa514610783578063acfb2355146107ad578063aeaf4b7a146107d757610265565b80638895283f1461064157806389a30271146106695780638da5cb5b146106935780638e15f473146106bd57806395877f78146106e757610265565b8063544b15d2116101dc578063741bef1a116101a0578063741bef1a146105235780637ad3def21461054d5780637b3e5e7b146105755780637decf27f1461059f57806383ced170146105c95780638577d4521461060557610265565b8063544b15d2146104695780635bf5d54c1461049157806361a31e00146104bb5780636769d1f9146104e3578063715018a61461050d57610265565b806338c67b731161022e57806338c67b731461037357806339878eaa1461039b5780633fc15f15146103c5578063405fb944146103ef57806342caa8401461041957806353a29ad21461044157610265565b806213eb4b146102695780631626bf01146102a55780632d2fbfd4146102cf5780632e37eef61461030d578063317d71a51461034b575b5f5ffd5b348015610274575f5ffd5b5061028f600480360381019061028a9190612648565b610a0f565b60405161029c919061268d565b60405180910390f35b3480156102b0575f5ffd5b506102b9610a2c565b6040516102c691906126be565b60405180910390f35b3480156102da575f5ffd5b506102f560048036038101906102f09190612701565b610a32565b6040516103049392919061272c565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190612701565b610a8d565b6040516103429392919061272c565b60405180910390f35b348015610356575f5ffd5b50610371600480360381019061036c9190612701565b610ab3565b005b34801561037e575f5ffd5b5061039960048036038101906103949190612701565b610f42565b005b3480156103a6575f5ffd5b506103af610fc8565b6040516103bc91906126be565b60405180910390f35b3480156103d0575f5ffd5b506103d9610fce565b6040516103e691906127bc565b60405180910390f35b3480156103fa575f5ffd5b50610403610ff3565b60405161041091906126be565b60405180910390f35b348015610424575f5ffd5b5061043f600480360381019061043a9190612810565b610ff9565b005b34801561044c575f5ffd5b5061046760048036038101906104629190612648565b6110f9565b005b348015610474575f5ffd5b5061048f600480360381019061048a919061284e565b6111b8565b005b34801561049c575f5ffd5b506104a56112bf565b6040516104b291906126be565b60405180910390f35b3480156104c6575f5ffd5b506104e160048036038101906104dc9190612701565b6112c5565b005b3480156104ee575f5ffd5b506104f76113a9565b60405161050491906126be565b60405180910390f35b348015610518575f5ffd5b506105216113af565b005b34801561052e575f5ffd5b50610537611436565b60405161054491906128be565b60405180910390f35b348015610558575f5ffd5b50610573600480360381019061056e9190612648565b61145b565b005b348015610580575f5ffd5b5061058961151a565b60405161059691906126be565b60405180910390f35b3480156105aa575f5ffd5b506105b3611520565b6040516105c0919061268d565b60405180910390f35b3480156105d4575f5ffd5b506105ef60048036038101906105ea9190612701565b611533565b6040516105fc91906126be565b60405180910390f35b348015610610575f5ffd5b5061062b60048036038101906106269190612701565b611553565b60405161063891906126be565b60405180910390f35b34801561064c575f5ffd5b5061066760048036038101906106629190612901565b611573565b005b348015610674575f5ffd5b5061067d61160c565b60405161068a91906127bc565b60405180910390f35b34801561069e575f5ffd5b506106a7611631565b6040516106b4919061293b565b60405180910390f35b3480156106c8575f5ffd5b506106d1611658565b6040516106de91906126be565b60405180910390f35b3480156106f2575f5ffd5b5061070d6004803603810190610708919061298f565b6116f5565b005b6107176117b4565b005b348015610724575f5ffd5b5061072d611c5d565b60405161073a91906126be565b60405180910390f35b34801561074e575f5ffd5b5061076960048036038101906107649190612648565b611c63565b60405161077a9594939291906129ba565b60405180910390f35b34801561078e575f5ffd5b50610797611c95565b6040516107a491906126be565b60405180910390f35b3480156107b8575f5ffd5b506107c1611c9b565b6040516107ce919061268d565b60405180910390f35b3480156107e2575f5ffd5b506107fd60048036038101906107f89190612901565b611cae565b005b34801561080a575f5ffd5b5061082560048036038101906108209190612701565b611d47565b005b348015610832575f5ffd5b5061084d60048036038101906108489190612a0b565b6121d6565b005b34801561085a575f5ffd5b506108636122be565b60405161087091906127bc565b60405180910390f35b348015610884575f5ffd5b5061089f600480360381019061089a9190612701565b6122e3565b6040516108ac91906126be565b60405180910390f35b3480156108c0575f5ffd5b506108db60048036038101906108d69190612a49565b612317565b6040516108e891906126be565b60405180910390f35b3480156108fc575f5ffd5b5061090561237e565b60405161091291906126be565b60405180910390f35b348015610926575f5ffd5b50610941600480360381019061093c9190612701565b61238a565b60405161094e919061293b565b60405180910390f35b348015610962575f5ffd5b5061097d60048036038101906109789190612a49565b6123c5565b60405161098a91906126be565b60405180910390f35b34801561099e575f5ffd5b506109b960048036038101906109b49190612648565b612401565b005b3480156109c6575f5ffd5b506109cf6124f7565b6040516109dc91906126be565b60405180910390f35b3480156109f0575f5ffd5b506109f96124fd565b604051610a069190612aa7565b60405180910390f35b6014602052805f5260405f205f915054906101000a900460ff1681565b600b5481565b5f5f5f5f60055f8681526020019081526020015f206040518060600160405290815f8201548152602001600182015481526020016002820154815250509050805f015181602001518260400151935093509350509193909250565b6005602052805f5260405f205f91509050805f0154908060010154908060020154905083565b601060159054906101000a900460ff1615610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90612b1a565b60405180910390fd5b601060149054906101000a900460ff16610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c6d57600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f815480929190610c0790612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610cec93929190612c34565b5f604051808303815f87803b158015610d03575f5ffd5b505af1158015610d15573d5f5f3e3d5ffd5b505050505f610d26826007546123c5565b905060055f60075481526020019081526020015f205f01548160055f60075481526020019081526020015f2060010154610d609190612c69565b1115610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9890612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610dfd929190612d04565b5f604051808303815f87803b158015610e14575f5ffd5b505af1158015610e26573d5f5f3e3d5ffd5b5050505080600854610e389190612c69565b60088190555081600a54610e4c9190612c69565b600a8190555081600c54610e609190612c69565b600c819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f828254610eb59190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f828254610f0b9190612c69565b925050819055508060055f60075481526020019081526020015f206001015f828254610f379190612c69565b925050819055505050565b610f4a612522565b73ffffffffffffffffffffffffffffffffffffffff16610f68611631565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590612d75565b60405180910390fd5b8060078190555050565b600c5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b611001612522565b73ffffffffffffffffffffffffffffffffffffffff1661101f611631565b73ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612d75565b60405180910390fd5b8160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611101612522565b73ffffffffffffffffffffffffffffffffffffffff1661111f611631565b73ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612d75565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111c0612522565b73ffffffffffffffffffffffffffffffffffffffff166111de611631565b73ffffffffffffffffffffffffffffffffffffffff1614611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90612d75565b60405180910390fd5b5f60055f8581526020019081526020015f205f015411611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612ddd565b60405180910390fd5b8160055f8581526020019081526020015f205f01819055508060055f8581526020019081526020015f2060020181905550505050565b60075481565b6112cd612522565b73ffffffffffffffffffffffffffffffffffffffff166112eb611631565b73ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612d75565b60405180910390fd5b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156113a5573d5f5f3e3d5ffd5b5050565b60085481565b6113b7612522565b73ffffffffffffffffffffffffffffffffffffffff166113d5611631565b73ffffffffffffffffffffffffffffffffffffffff161461142b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142290612d75565b60405180910390fd5b6114345f612529565b565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611463612522565b73ffffffffffffffffffffffffffffffffffffffff16611481611631565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612d75565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b601060159054906101000a900460ff1681565b600e8181548110611542575f80fd5b905f5260205f20015f915090505481565b600f8181548110611562575f80fd5b905f5260205f20015f915090505481565b61157b612522565b73ffffffffffffffffffffffffffffffffffffffff16611599611631565b73ffffffffffffffffffffffffffffffffffffffff16146115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690612d75565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156116c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e89190612e81565b5050509150508091505090565b6116fd612522565b73ffffffffffffffffffffffffffffffffffffffff1661171b611631565b73ffffffffffffffffffffffffffffffffffffffff1614611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612d75565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060159054906101000a900460ff1615611804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fb90612b1a565b60405180910390fd5b601060149054906101000a900460ff16611853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a90612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661196e57600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f81548092919061190890612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f193505050501580156119d2573d5f5f3e3d5ffd5b505f5f6119e134600754612317565b915060055f60075481526020019081526020015f205f01548260055f60075481526020019081526020015f2060010154611a1b9190612c69565b1115611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5390612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611ab8929190612d04565b5f604051808303815f87803b158015611acf575f5ffd5b505af1158015611ae1573d5f5f3e3d5ffd5b5050505081600854611af39190612c69565b60088190555034600954611b079190612c69565b600981905550611b16346122e3565b905080600c54611b269190612c69565b600c819055503460135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f828254611b7a9190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015f828254611bd09190612c69565b925050819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f828254611c269190612c69565b925050819055508160055f60075481526020019081526020015f206001015f828254611c529190612c69565b925050819055505050565b60115481565b6013602052805f5260405f205f91509050805f0154908060010154908060020154908060030154908060040154905085565b600d5481565b601060149054906101000a900460ff1681565b611cb6612522565b73ffffffffffffffffffffffffffffffffffffffff16611cd4611631565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190612d75565b60405180910390fd5b80601060156101000a81548160ff02191690831515021790555050565b601060159054906101000a900460ff1615611d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8e90612f42565b60405180910390fd5b601060149054906101000a900460ff16611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f0157600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f815480929190611e9b90612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611f8093929190612c34565b5f604051808303815f87803b158015611f97575f5ffd5b505af1158015611fa9573d5f5f3e3d5ffd5b505050505f611fba826007546123c5565b905060055f60075481526020019081526020015f205f01548160055f60075481526020019081526020015f2060010154611ff49190612c69565b1115612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c90612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612091929190612d04565b5f604051808303815f87803b1580156120a8575f5ffd5b505af11580156120ba573d5f5f3e3d5ffd5b50505050806008546120cc9190612c69565b60088190555081600b546120e09190612c69565b600b8190555081600c546120f49190612c69565b600c819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546121499190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f82825461219f9190612c69565b925050819055508060055f60075481526020019081526020015f206001015f8282546121cb9190612c69565b925050819055505050565b6121de612522565b73ffffffffffffffffffffffffffffffffffffffff166121fc611631565b73ffffffffffffffffffffffffffffffffffffffff1614612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990612d75565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161228d929190612d04565b5f604051808303815f87803b1580156122a4575f5ffd5b505af11580156122b6573d5f5f3e3d5ffd5b505050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f68056bc75e2d631000006122f7611658565b846123029190612f60565b61230c9190612fce565b905080915050919050565b5f5f670de0b6b3a764000061232a611658565b856123359190612f60565b61233f9190612fce565b90505f6305f5e10060055f8681526020019081526020015f2060020154836123679190612f60565b6123719190612fce565b9050809250505092915050565b5f601280549050905090565b60128181548110612399575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f620f424060055f8581526020019081526020015f2060020154856123eb9190612f60565b6123f59190612fce565b90508091505092915050565b612409612522565b73ffffffffffffffffffffffffffffffffffffffff16612427611631565b73ffffffffffffffffffffffffffffffffffffffff161461247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247490612d75565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e29061306e565b60405180910390fd5b6124f481612529565b50565b60065481565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612617826125ee565b9050919050565b6126278161260d565b8114612631575f5ffd5b50565b5f813590506126428161261e565b92915050565b5f6020828403121561265d5761265c6125ea565b5b5f61266a84828501612634565b91505092915050565b5f8115159050919050565b61268781612673565b82525050565b5f6020820190506126a05f83018461267e565b92915050565b5f819050919050565b6126b8816126a6565b82525050565b5f6020820190506126d15f8301846126af565b92915050565b6126e0816126a6565b81146126ea575f5ffd5b50565b5f813590506126fb816126d7565b92915050565b5f60208284031215612716576127156125ea565b5b5f612723848285016126ed565b91505092915050565b5f60608201905061273f5f8301866126af565b61274c60208301856126af565b61275960408301846126af565b949350505050565b5f819050919050565b5f61278461277f61277a846125ee565b612761565b6125ee565b9050919050565b5f6127958261276a565b9050919050565b5f6127a68261278b565b9050919050565b6127b68161279c565b82525050565b5f6020820190506127cf5f8301846127ad565b92915050565b5f6127df8261260d565b9050919050565b6127ef816127d5565b81146127f9575f5ffd5b50565b5f8135905061280a816127e6565b92915050565b5f5f60408385031215612826576128256125ea565b5b5f612833858286016127fc565b9250506020612844858286016127fc565b9150509250929050565b5f5f5f60608486031215612865576128646125ea565b5b5f612872868287016126ed565b9350506020612883868287016126ed565b9250506040612894868287016126ed565b9150509250925092565b5f6128a88261278b565b9050919050565b6128b88161289e565b82525050565b5f6020820190506128d15f8301846128af565b92915050565b6128e081612673565b81146128ea575f5ffd5b50565b5f813590506128fb816128d7565b92915050565b5f60208284031215612916576129156125ea565b5b5f612923848285016128ed565b91505092915050565b6129358161260d565b82525050565b5f60208201905061294e5f83018461292c565b92915050565b5f61295e8261260d565b9050919050565b61296e81612954565b8114612978575f5ffd5b50565b5f8135905061298981612965565b92915050565b5f602082840312156129a4576129a36125ea565b5b5f6129b18482850161297b565b91505092915050565b5f60a0820190506129cd5f8301886126af565b6129da60208301876126af565b6129e760408301866126af565b6129f460608301856126af565b612a0160808301846126af565b9695505050505050565b5f5f60408385031215612a2157612a206125ea565b5b5f612a2e858286016127fc565b9250506020612a3f858286016126ed565b9150509250929050565b5f5f60408385031215612a5f57612a5e6125ea565b5b5f612a6c858286016126ed565b9250506020612a7d858286016126ed565b9150509250929050565b5f612a91826125ee565b9050919050565b612aa181612a87565b82525050565b5f602082019050612aba5f830184612a98565b92915050565b5f82825260208201905092915050565b7f50726573616c6520656e6465642e0000000000000000000000000000000000005f82015250565b5f612b04600e83612ac0565b9150612b0f82612ad0565b602082019050919050565b5f6020820190508181035f830152612b3181612af8565b9050919050565b7f2050726573616c652069732063757272656e746c7920506175736564000000005f82015250565b5f612b6c601c83612ac0565b9150612b7782612b38565b602082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bd7826126a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c0957612c08612ba0565b5b600182019050919050565b5f612c1e8261278b565b9050919050565b612c2e81612c14565b82525050565b5f606082019050612c475f83018661292c565b612c546020830185612c25565b612c6160408301846126af565b949350505050565b5f612c73826126a6565b9150612c7e836126a6565b9250828201905080821115612c9657612c95612ba0565b5b92915050565b7f5068617365204c696d69742052656163686564000000000000000000000000005f82015250565b5f612cd0601383612ac0565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b5f604082019050612d175f83018561292c565b612d2460208301846126af565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d5f602083612ac0565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b7f70726573616c6520646f65736e277420657869737400000000000000000000005f82015250565b5f612dc7601583612ac0565b9150612dd282612d93565b602082019050919050565b5f6020820190508181035f830152612df481612dbb565b9050919050565b5f69ffffffffffffffffffff82169050919050565b612e1981612dfb565b8114612e23575f5ffd5b50565b5f81519050612e3481612e10565b92915050565b5f819050919050565b612e4c81612e3a565b8114612e56575f5ffd5b50565b5f81519050612e6781612e43565b92915050565b5f81519050612e7b816126d7565b92915050565b5f5f5f5f5f60a08688031215612e9a57612e996125ea565b5b5f612ea788828901612e26565b9550506020612eb888828901612e59565b9450506040612ec988828901612e6d565b9350506060612eda88828901612e6d565b9250506080612eeb88828901612e26565b9150509295509295909350565b7f50726573616c6520656e646564000000000000000000000000000000000000005f82015250565b5f612f2c600d83612ac0565b9150612f3782612ef8565b602082019050919050565b5f6020820190508181035f830152612f5981612f20565b9050919050565b5f612f6a826126a6565b9150612f75836126a6565b9250828202612f83816126a6565b91508282048414831517612f9a57612f99612ba0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd8826126a6565b9150612fe3836126a6565b925082612ff357612ff2612fa1565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613058602683612ac0565b915061306382612ffe565b604082019050919050565b5f6020820190508181035f8301526130858161304c565b905091905056fea26469706673582212205c4e835ca527bb7e727c3dab6b641edf0ee659f9ce5978ca0e02f5ad4ddae73364736f6c634300081d0033000000000000000000000000b26fac9e2ca768a2294e74ff11fa9c79a698f307000000000000000000000000db4180fb9fcc3dffcaf2fd86e8e4bcf64538ef38