More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 3,690 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 5077867 | 2506 days ago | IN | 1.001 ETH | 0.000861 | ||||
Redeem | 4896549 | 2537 days ago | IN | 0 ETH | 0.00098477 | ||||
Redeem | 4896239 | 2537 days ago | IN | 0 ETH | 0.00096076 | ||||
Redeem | 4896191 | 2537 days ago | IN | 0 ETH | 0.00096076 | ||||
Finish | 4893646 | 2538 days ago | IN | 0 ETH | 0.01527696 | ||||
Register Alt Pur... | 4893618 | 2538 days ago | IN | 0 ETH | 0.00863024 | ||||
Whitelist | 4893608 | 2538 days ago | IN | 0 ETH | 0.00459784 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.0048032 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.0048032 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.0048032 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.00480064 | ||||
Register Alt Pur... | 4893478 | 2538 days ago | IN | 0 ETH | 0.0048032 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
4893646 | 2538 days ago | 3 ETH | ||||
4868090 | 2542 days ago | 22,422.17627807 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH | ||||
4864461 | 2543 days ago | 2 ETH |
Loading...
Loading
Contract Name:
TelcoinSale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-12-11 */ pragma solidity 0.4.18; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract Telcoin { using SafeMath for uint256; event Transfer(address indexed _from, address indexed _to, uint _value); event Approval(address indexed _owner, address indexed _spender, uint _value); string public constant name = "Telcoin"; string public constant symbol = "TEL"; uint8 public constant decimals = 2; /// The ERC20 total fixed supply of tokens. uint256 public constant totalSupply = 100000000000 * (10 ** uint256(decimals)); /// Account balances. mapping(address => uint256) balances; /// The transfer allowances. mapping (address => mapping (address => uint256)) internal allowed; /// The initial distributor is responsible for allocating the supply /// into the various pools described in the whitepaper. This can be /// verified later from the event log. function Telcoin(address _distributor) public { balances[_distributor] = totalSupply; Transfer(0x0, _distributor, totalSupply); } /// ERC20 balanceOf(). function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } /// ERC20 transfer(). function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /// ERC20 transferFrom(). function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /// ERC20 approve(). Comes with the standard caveat that an approval /// meant to limit spending may actually allow more to be spent due to /// unfortunate ordering of transactions. For safety, this method /// should only be called if the current allowance is 0. Alternatively, /// non-ERC20 increaseApproval() and decreaseApproval() can be used. function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /// ERC20 allowance(). function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /// Not officially ERC20. Allows an allowance to be increased safely. function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /// Not officially ERC20. Allows an allowance to be decreased safely. function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract TelcoinSaleToken { using SafeMath for uint256; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event Mint(address indexed to, uint256 amount); event MintFinished(); event Redeem(address indexed beneficiary, uint256 sacrificedValue, uint256 grantedValue); event Transfer(address indexed from, address indexed to, uint256 value); /// The owner of the contract. address public owner; /// The total number of minted tokens, excluding destroyed tokens. uint256 public totalSupply; /// The token balance and released amount of each address. mapping(address => uint256) balances; mapping(address => uint256) redeemed; /// Whether the token is still mintable. bool public mintingFinished = false; /// Redeemable telcoin. Telcoin telcoin; uint256 public totalRedeemed; /// Vesting period. uint256 vestingStart; uint256 vestingDuration; modifier onlyOwner() { require(msg.sender == owner); _; } function TelcoinSaleToken( Telcoin _telcoin, uint256 _vestingStart, uint256 _vestingDuration ) public { owner = msg.sender; telcoin = _telcoin; vestingStart = _vestingStart; vestingDuration = _vestingDuration; } function finishMinting() onlyOwner public returns (bool) { require(!mintingFinished); mintingFinished = true; MintFinished(); return true; } function mint(address _to, uint256 _amount) onlyOwner public returns (bool) { require(_to != 0x0); require(!mintingFinished); require(_amount > 0); totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); Transfer(0x0, _to, _amount); return true; } function redeemMany(address[] _beneficiaries) public { for (uint256 i = 0; i < _beneficiaries.length; i++) { redeem(_beneficiaries[i]); } } function redeem(address _beneficiary) public returns (uint256) { require(mintingFinished); require(_beneficiary != 0x0); uint256 balance = redeemableBalance(_beneficiary); if (balance == 0) { return 0; } uint256 totalDistributable = telcoin.balanceOf(this).add(totalRedeemed); // Avoid loss of precision by multiplying and later dividing by // a large value. uint256 amount = balance.mul(10 ** 18).div(totalSupply).mul(totalDistributable).div(10 ** 18); balances[_beneficiary] = balances[_beneficiary].sub(balance); redeemed[_beneficiary] = redeemed[_beneficiary].add(balance); balances[telcoin] = balances[telcoin].add(balance); totalRedeemed = totalRedeemed.add(amount); Transfer(_beneficiary, telcoin, balance); Redeem(_beneficiary, balance, amount); telcoin.transfer(_beneficiary, amount); return amount; } function transferOwnership(address _to) onlyOwner public { require(_to != address(0)); OwnershipTransferred(owner, _to); owner = _to; } function balanceOf(address _owner) public constant returns (uint256) { return balances[_owner]; } function redeemableBalance(address _beneficiary) public constant returns (uint256) { return vestedBalance(_beneficiary).sub(redeemed[_beneficiary]); } function vestedBalance(address _beneficiary) public constant returns (uint256) { uint256 currentBalance = balances[_beneficiary]; uint256 totalBalance = currentBalance.add(redeemed[_beneficiary]); if (now < vestingStart) { return 0; } if (now >= vestingStart.add(vestingDuration)) { return totalBalance; } return totalBalance.mul(now.sub(vestingStart)).div(vestingDuration); } } contract TelcoinSale { using SafeMath for uint256; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event WalletChanged(address indexed previousWallet, address indexed newWallet); event TokenPurchase( address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount, uint256 bonusAmount ); event TokenAltPurchase( address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount, uint256 bonusAmount, string symbol, string transactionId ); event Pause(); event Unpause(); event Withdrawal(address indexed wallet, uint256 weiAmount); event Extended(uint256 until); event Finalized(); event Refunding(); event Refunded(address indexed beneficiary, uint256 weiAmount); event Whitelisted( address indexed participant, uint256 minWeiAmount, uint256 maxWeiAmount, uint32 bonusRate ); event CapFlexed(uint32 flex); /// The owner of the contract. address public owner; /// The temporary token we're selling. Sale tokens can be converted /// immediately upon successful completion of the sale. Bonus tokens /// are on a separate vesting schedule. TelcoinSaleToken public saleToken; TelcoinSaleToken public bonusToken; /// The token we'll convert to after the sale ends. Telcoin public telcoin; /// The minimum and maximum goals to reach. If the soft cap is not reached /// by the end of the sale, the contract will enter refund mode. If the /// hard cap is reached, the contract can be finished early. /// /// Due to our actual soft cap being tied to USD and the assumption that /// the value of Ether will continue to increase during the ICO, we /// implement a fixed minimum softcap that accounts for a 2.5x value /// increase. The capFlex is a scale factor that allows us to scale the /// caps above the fixed minimum values. Initially the scale factor will /// be set so that our effective soft cap is ~10M USD. uint256 public softCap; uint256 public hardCap; uint32 public capFlex; /// The sale period. uint256 public startTime; uint256 public endTime; uint256 public timeExtension; /// The numnber of tokens to mint per wei. uint256 public rate; /// The total number of wei raised. Note that the contract's balance may /// differ from this value if someone has decided to forcefully send us /// ether. uint256 public weiRaised; /// The wallet that will receive the contract's balance once the sale /// finishes and the soft cap is reached. address public wallet; /// The list of addresses that are allowed to participate in the sale, /// up to what amount, and any special rate they may have, provided /// that they do in fact participate with at least the minimum value /// they agreed to. mapping(address => uint256) public whitelistedMin; mapping(address => uint256) public whitelistedMax; mapping(address => uint32) public bonusRates; /// The amount of wei and wei equivalents invested by each investor. mapping(address => uint256) public deposited; mapping(address => uint256) public altDeposited; /// An enumerable list of investors. address[] public investors; /// Whether the sale is paused. bool public paused = false; /// Whether the sale has finished, and when. bool public finished = false; uint256 public finishedAt; /// Whether we're accepting refunds. bool public refunding = false; /// The total number of wei refunded. uint256 public weiRefunded; modifier onlyOwner() { require(msg.sender == owner); _; } modifier saleOpen() { require(!finished); require(!paused); require(now >= startTime); require(now <= endTime + timeExtension); _; } function TelcoinSale( uint256 _softCap, uint256 _hardCap, uint32 _capFlex, uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet, Telcoin _telcoin, uint256 _bonusVestingStart, uint256 _bonusVestingDuration ) public payable { require(msg.value > 0); require(_softCap > 0); require(_hardCap >= _softCap); require(_startTime >= now); require(_endTime >= _startTime); require(_rate > 0); require(_wallet != 0x0); owner = msg.sender; softCap = _softCap; hardCap = _hardCap; capFlex = _capFlex; startTime = _startTime; endTime = _endTime; rate = _rate; wallet = _wallet; telcoin = _telcoin; saleToken = new TelcoinSaleToken(telcoin, 0, 0); bonusToken = new TelcoinSaleToken( telcoin, _bonusVestingStart, _bonusVestingDuration ); wallet.transfer(msg.value); } function () public payable { buyTokens(msg.sender); } function buyTokens(address _beneficiary) saleOpen public payable { require(_beneficiary != address(0)); uint256 weiAmount = msg.value; require(weiAmount > 0); require(weiRaised.add(weiAmount) <= hardCap); uint256 totalPrior = totalDeposited(_beneficiary); uint256 totalAfter = totalPrior.add(weiAmount); require(totalAfter <= whitelistedMax[_beneficiary]); uint256 saleTokens; uint256 bonusTokens; (saleTokens, bonusTokens) = tokensForPurchase(_beneficiary, weiAmount); uint256 newDeposited = deposited[_beneficiary].add(weiAmount); deposited[_beneficiary] = newDeposited; investors.push(_beneficiary); weiRaised = weiRaised.add(weiAmount); saleToken.mint(_beneficiary, saleTokens); if (bonusTokens > 0) { bonusToken.mint(_beneficiary, bonusTokens); } TokenPurchase( msg.sender, _beneficiary, weiAmount, saleTokens, bonusTokens ); } function changeWallet(address _wallet) onlyOwner public payable { require(_wallet != 0x0); require(msg.value > 0); WalletChanged(wallet, _wallet); wallet = _wallet; wallet.transfer(msg.value); } function extendTime(uint256 _timeExtension) onlyOwner public { require(!finished); require(now < endTime + timeExtension); require(_timeExtension > 0); timeExtension = timeExtension.add(_timeExtension); require(timeExtension <= 7 days); Extended(endTime.add(timeExtension)); } function finish() onlyOwner public { require(!finished); require(hardCapReached() || now > endTime + timeExtension); finished = true; finishedAt = now; saleToken.finishMinting(); bonusToken.finishMinting(); uint256 distributableCoins = telcoin.balanceOf(this); if (softCapReached()) { uint256 saleTokens = saleToken.totalSupply(); uint256 bonusTokens = bonusToken.totalSupply(); uint256 totalTokens = saleTokens.add(bonusTokens); // Avoid loss of precision by multiplying and later dividing by // a large value. uint256 bonusPortion = bonusTokens.mul(10 ** 18).div(totalTokens).mul(distributableCoins).div(10 ** 18); uint256 salePortion = distributableCoins.sub(bonusPortion); saleToken.transferOwnership(owner); bonusToken.transferOwnership(owner); telcoin.transfer(saleToken, salePortion); telcoin.transfer(bonusToken, bonusPortion); withdraw(); } else { refunding = true; telcoin.transfer(wallet, distributableCoins); Refunding(); } Finalized(); } function pause() onlyOwner public { require(!paused); paused = true; Pause(); } function refundMany(address[] _investors) public { for (uint256 i = 0; i < _investors.length; i++) { refund(_investors[i]); } } function refund(address _investor) public { require(finished); require(refunding); require(deposited[_investor] > 0); uint256 weiAmount = deposited[_investor]; deposited[_investor] = 0; weiRefunded = weiRefunded.add(weiAmount); Refunded(_investor, weiAmount); _investor.transfer(weiAmount); } function registerAltPurchase( address _beneficiary, string _symbol, string _transactionId, uint256 _weiAmount ) saleOpen onlyOwner public { require(_beneficiary != address(0)); require(totalDeposited(_beneficiary).add(_weiAmount) <= whitelistedMax[_beneficiary]); uint256 saleTokens; uint256 bonusTokens; (saleTokens, bonusTokens) = tokensForPurchase(_beneficiary, _weiAmount); uint256 newAltDeposited = altDeposited[_beneficiary].add(_weiAmount); altDeposited[_beneficiary] = newAltDeposited; investors.push(_beneficiary); weiRaised = weiRaised.add(_weiAmount); saleToken.mint(_beneficiary, saleTokens); if (bonusTokens > 0) { bonusToken.mint(_beneficiary, bonusTokens); } TokenAltPurchase( msg.sender, _beneficiary, _weiAmount, saleTokens, bonusTokens, _symbol, _transactionId ); } function transferOwnership(address _to) onlyOwner public { require(_to != address(0)); OwnershipTransferred(owner, _to); owner = _to; } function unpause() onlyOwner public { require(paused); paused = false; Unpause(); } function updateCapFlex(uint32 _capFlex) onlyOwner public { require(!finished); capFlex = _capFlex; CapFlexed(capFlex); } function whitelistMany( address[] _participants, uint256 _minWeiAmount, uint256 _maxWeiAmount, uint32 _bonusRate ) onlyOwner public { for (uint256 i = 0; i < _participants.length; i++) { whitelist( _participants[i], _minWeiAmount, _maxWeiAmount, _bonusRate ); } } function whitelist( address _participant, uint256 _minWeiAmount, uint256 _maxWeiAmount, uint32 _bonusRate ) onlyOwner public { require(_participant != 0x0); require(_bonusRate <= 400); whitelistedMin[_participant] = _minWeiAmount; whitelistedMax[_participant] = _maxWeiAmount; bonusRates[_participant] = _bonusRate; Whitelisted( _participant, _minWeiAmount, _maxWeiAmount, _bonusRate ); } function withdraw() onlyOwner public { require(softCapReached() || (finished && now > finishedAt + 14 days)); uint256 weiAmount = this.balance; if (weiAmount > 0) { wallet.transfer(weiAmount); Withdrawal(wallet, weiAmount); } } function hardCapReached() public constant returns (bool) { return weiRaised >= hardCap.mul(1000 + capFlex).div(1000); } function tokensForPurchase( address _beneficiary, uint256 _weiAmount ) public constant returns (uint256, uint256) { uint256 baseTokens = _weiAmount.mul(rate); uint256 totalPrior = totalDeposited(_beneficiary); uint256 totalAfter = totalPrior.add(_weiAmount); // Has the beneficiary passed the assigned minimum purchase level? if (totalAfter < whitelistedMin[_beneficiary]) { return (baseTokens, 0); } uint32 bonusRate = bonusRates[_beneficiary]; uint256 baseBonus = baseTokens.mul(1000 + bonusRate).div(1000).sub(baseTokens); // Do we pass the minimum purchase level with this purchase? if (totalPrior < whitelistedMin[_beneficiary]) { uint256 balancePrior = totalPrior.mul(rate); uint256 accumulatedBonus = balancePrior.mul(1000 + bonusRate).div(1000).sub(balancePrior); return (baseTokens, accumulatedBonus.add(baseBonus)); } return (baseTokens, baseBonus); } function totalDeposited(address _investor) public constant returns (uint256) { return deposited[_investor].add(altDeposited[_investor]); } function softCapReached() public constant returns (bool) { return weiRaised >= softCap.mul(1000 + capFlex).div(1000); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"timeExtension","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_weiAmount","type":"uint256"}],"name":"tokensForPurchase","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"},{"name":"_minWeiAmount","type":"uint256"},{"name":"_maxWeiAmount","type":"uint256"},{"name":"_bonusRate","type":"uint32"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"investors","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonusToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finishedAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bonusRates","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistedMin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_investor","type":"address"}],"name":"totalDeposited","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"telcoin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_capFlex","type":"uint32"}],"name":"updateCapFlex","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participants","type":"address[]"},{"name":"_minWeiAmount","type":"uint256"},{"name":"_maxWeiAmount","type":"uint256"},{"name":"_bonusRate","type":"uint32"}],"name":"whitelistMany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistedMax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_symbol","type":"string"},{"name":"_transactionId","type":"string"},{"name":"_weiAmount","type":"uint256"}],"name":"registerAltPurchase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"changeWallet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_timeExtension","type":"uint256"}],"name":"extendTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"deposited","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investors","type":"address[]"}],"name":"refundMany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finish","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"capFlex","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saleToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"refunding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"altDeposited","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investor","type":"address"}],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_softCap","type":"uint256"},{"name":"_hardCap","type":"uint256"},{"name":"_capFlex","type":"uint32"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_telcoin","type":"address"},{"name":"_bonusVestingStart","type":"uint256"},{"name":"_bonusVestingDuration","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousWallet","type":"address"},{"indexed":true,"name":"newWallet","type":"address"}],"name":"WalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"bonusAmount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"bonusAmount","type":"uint256"},{"indexed":false,"name":"symbol","type":"string"},{"indexed":false,"name":"transactionId","type":"string"}],"name":"TokenAltPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"wallet","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"until","type":"uint256"}],"name":"Extended","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[],"name":"Refunding","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Refunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"participant","type":"address"},{"indexed":false,"name":"minWeiAmount","type":"uint256"},{"indexed":false,"name":"maxWeiAmount","type":"uint256"},{"indexed":false,"name":"bonusRate","type":"uint32"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"flex","type":"uint32"}],"name":"CapFlexed","type":"event"}]
Contract Creation Code
60606040526000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055506000601560006101000a81548160ff0219169083151502179055506040516101408062004a4183398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050600034111515620000d457600080fd5b60008a111515620000e457600080fd5b898910151515620000f457600080fd5b4287101515156200010457600080fd5b8686101515156200011457600080fd5b6000851115156200012457600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16141515156200014b57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550896004819055508860058190555087600660006101000a81548163ffffffff021916908363ffffffff160217905550866007819055508560088190555084600a8190555083600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806200028162000459565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050604051809103906000f0801515620002dc57600080fd5b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682826200034b62000459565b808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019350505050604051809103906000f0801515620003a657600080fd5b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156200044957600080fd5b505050505050505050506200046a565b60405161119f80620038a283390190565b613428806200047a6000396000f300606060405260043610610204576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063143551e41461020f5780631514bc48146102385780632b9edee9146102955780632c4e722e146102c25780633197cbb6146102eb5780633ccfd60b146103145780633e3926e4146103295780633f4ba83a146103835780633feb5f2b146103985780634042b66f146103fb57806341d4a1ab1461042457806347d54bff1461047957806349d94871146104a25780635155287a146104fb578063521eb27314610548578063530554811461059d5780635482d88e146105ea5780635c975abb1461063f5780635da89ac01461066c578063710c67051461069557806378e97925146106be5780637fd13532146106e7578063844d65c5146107625780638456cb59146107af5780638da5cb5b146107c4578063906a26e01461081957806390e50ba7146108425780639762f8021461090a57806398b9a2dc14610937578063a27aebbc14610965578063bef4876b14610988578063cb13cddb146109b5578063cee829ea14610a02578063d56b288914610a5c578063dd34c9a314610a71578063e985e36714610aa6578063ec8ac4d814610afb578063f2fde38b14610b29578063f43e98c714610b62578063f614299014610b8f578063fa89401a14610bdc578063fb86a40414610c15575b61020d33610c3e565b005b341561021a57600080fd5b610222611107565b6040518082815260200191505060405180910390f35b341561024357600080fd5b610278600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061110d565b604051808381526020018281526020019250505060405180910390f35b34156102a057600080fd5b6102a8611314565b604051808215151515815260200191505060405180910390f35b34156102cd57600080fd5b6102d5611365565b6040518082815260200191505060405180910390f35b34156102f657600080fd5b6102fe61136b565b6040518082815260200191505060405180910390f35b341561031f57600080fd5b610327611371565b005b341561033457600080fd5b610381600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803563ffffffff16906020019091905050611503565b005b341561038e57600080fd5b6103966116f1565b005b34156103a357600080fd5b6103b960048080359060200190919050506117b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561040657600080fd5b61040e6117ef565b6040518082815260200191505060405180910390f35b341561042f57600080fd5b6104376117f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048457600080fd5b61048c61181b565b6040518082815260200191505060405180910390f35b34156104ad57600080fd5b6104d9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611821565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561050657600080fd5b610532600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611844565b6040518082815260200191505060405180910390f35b341561055357600080fd5b61055b61185c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a857600080fd5b6105d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611882565b6040518082815260200191505060405180910390f35b34156105f557600080fd5b6105fd61191c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561064a57600080fd5b610652611942565b604051808215151515815260200191505060405180910390f35b341561067757600080fd5b61067f611955565b6040518082815260200191505060405180910390f35b34156106a057600080fd5b6106bc600480803563ffffffff1690602001909190505061195b565b005b34156106c957600080fd5b6106d1611a4b565b6040518082815260200191505060405180910390f35b34156106f257600080fd5b61076060048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190803590602001909190803563ffffffff16906020019091905050611a51565b005b341561076d57600080fd5b610799600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611af3565b6040518082815260200191505060405180910390f35b34156107ba57600080fd5b6107c2611b0b565b005b34156107cf57600080fd5b6107d7611bcb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082457600080fd5b61082c611bf0565b6040518082815260200191505060405180910390f35b341561084d57600080fd5b610908600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050611bf6565b005b341561091557600080fd5b61091d6121b4565b604051808215151515815260200191505060405180910390f35b610963600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612205565b005b341561097057600080fd5b61098660048080359060200190919050506123b7565b005b341561099357600080fd5b61099b6124d0565b604051808215151515815260200191505060405180910390f35b34156109c057600080fd5b6109ec600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506124e3565b6040518082815260200191505060405180910390f35b3415610a0d57600080fd5b610a5a6004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506124fb565b005b3415610a6757600080fd5b610a6f61253b565b005b3415610a7c57600080fd5b610a84612faa565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610ab157600080fd5b610ab9612fc0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b27600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c3e565b005b3415610b3457600080fd5b610b60600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fe6565b005b3415610b6d57600080fd5b610b7561313b565b604051808215151515815260200191505060405180910390f35b3415610b9a57600080fd5b610bc6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061314e565b6040518082815260200191505060405180910390f35b3415610be757600080fd5b610c13600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613166565b005b3415610c2057600080fd5b610c28613320565b6040518082815260200191505060405180910390f35b600080600080600080601360019054906101000a900460ff16151515610c6357600080fd5b601360009054906101000a900460ff16151515610c7f57600080fd5b6007544210151515610c9057600080fd5b600954600854014211151515610ca557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610ce157600080fd5b349550600086111515610cf357600080fd5b600554610d0b87600b5461332690919063ffffffff16565b11151515610d1857600080fd5b610d2187611882565b9450610d36868661332690919063ffffffff16565b9350600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411151515610d8657600080fd5b610d90878761110d565b8093508194505050610dea86601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332690919063ffffffff16565b905080601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060128054806001018281610e4491906133ab565b9160005260206000209001600089909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610ea886600b5461332690919063ffffffff16565b600b81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f7b57600080fd5b6102c65a03f11515610f8c57600080fd5b5050506040518051905050600082111561108a57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561106d57600080fd5b6102c65a03f1151561107e57600080fd5b50505060405180519050505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167efe0e12b43090c1fc19a34aefa5cc138a4eeafc60ab800f855c730b3fb9480e88868660405180848152602001838152602001828152602001935050505060405180910390a350505050505050565b60095481565b6000806000806000806000806000611130600a548b61334490919063ffffffff16565b965061113b8b611882565b95506111508a8761332690919063ffffffff16565b9450600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548510156111a85786600080905098509850611306565b600f60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16935061123d8761122f6103e8611221886103e80163ffffffff168c61334490919063ffffffff16565b61337790919063ffffffff16565b61339290919063ffffffff16565b9250600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548610156112ff5761129b600a548761334490919063ffffffff16565b91506112e0826112d26103e86112c4886103e80163ffffffff168761334490919063ffffffff16565b61337790919063ffffffff16565b61339290919063ffffffff16565b9050866112f6848361332690919063ffffffff16565b98509850611306565b8683985098505b505050505050509250929050565b600061135b6103e861134d600660009054906101000a900463ffffffff166103e80163ffffffff1660045461334490919063ffffffff16565b61337790919063ffffffff16565b600b541015905090565b600a5481565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ce57600080fd5b6113d6611314565b806113ff5750601360019054906101000a900460ff1680156113fe5750621275006014540142115b5b151561140a57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16319050600081111561150057600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561148f57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a25b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561155e57600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff161415151561158457600080fd5b6101908163ffffffff161115151561159b57600080fd5b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff167f348378d001a3415ea7735219f65dfd8b280dea9b77ba19ba1fa47d5fe5c9618d848484604051808481526020018381526020018263ffffffff1663ffffffff168152602001935050505060405180910390a250505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b601360009054906101000a900460ff16151561176757600080fd5b6000601360006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6012818154811015156117bf57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b600f6020528060005260406000206000915054906101000a900463ffffffff1681565b600d6020528060005260406000206000915090505481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611915601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332690919063ffffffff16565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900460ff1681565b60165481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b657600080fd5b601360019054906101000a900460ff161515156119d257600080fd5b80600660006101000a81548163ffffffff021916908363ffffffff1602179055507f7cbf2bdce868ab572ec276ff0bb1074b2b14e049c221bc3099d9100fd180e69f600660009054906101000a900463ffffffff16604051808263ffffffff1663ffffffff16815260200191505060405180910390a150565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aae57600080fd5b600090505b8451811015611aec57611adf8582815181101515611acd57fe5b90602001906020020151858585611503565b8080600101915050611ab3565b5050505050565b600e6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6657600080fd5b601360009054906101000a900460ff16151515611b8257600080fd5b6001601360006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6000806000601360019054906101000a900460ff16151515611c1757600080fd5b601360009054906101000a900460ff16151515611c3357600080fd5b6007544210151515611c4457600080fd5b600954600854014211151515611c5957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cb457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515611cf057600080fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4b85611d3d8a611882565b61332690919063ffffffff16565b11151515611d5857600080fd5b611d62878561110d565b8093508194505050611dbc84601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332690919063ffffffff16565b905080601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060128054806001018281611e1691906133ab565b9160005260206000209001600089909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611e7a84600b5461332690919063ffffffff16565b600b81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611f4d57600080fd5b6102c65a03f11515611f5e57600080fd5b5050506040518051905050600082111561205c57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561203f57600080fd5b6102c65a03f1151561205057600080fd5b50505060405180519050505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f673441db3a5fb97b2e1f9feeec16535dcc14d69ea59b26b98ca2bdb31e7e50588686868b8b604051808681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156121065780820151818401526020810190506120eb565b50505050905090810190601f1680156121335780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561216c578082015181840152602081019050612151565b50505050905090810190601f1680156121995780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a350505050505050565b60006121fb6103e86121ed600660009054906101000a900463ffffffff166103e80163ffffffff1660055461334490919063ffffffff16565b61337790919063ffffffff16565b600b541015905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561226057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561228657600080fd5b60003411151561229557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f64cbbd34f3faebfd04eff088ae5832f6d254dbb81820b0055e9d85c534aa700d60405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156123b457600080fd5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561241257600080fd5b601360019054906101000a900460ff1615151561242e57600080fd5b600954600854014210151561244257600080fd5b60008111151561245157600080fd5b6124668160095461332690919063ffffffff16565b60098190555062093a806009541115151561248057600080fd5b7f1c73e1d0cd5dc5067743dac22cf396dbbdde644cc51e2af8e0142666c67b29a96124b860095460085461332690919063ffffffff16565b6040518082815260200191505060405180910390a150565b601360019054906101000a900460ff1681565b60106020528060005260406000206000915090505481565b60008090505b81518110156125375761252a828281518110151561251b57fe5b90602001906020020151613166565b8080600101915050612501565b5050565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561259f57600080fd5b601360019054906101000a900460ff161515156125bb57600080fd5b6125c36121b4565b806125d357506009546008540142115b15156125de57600080fd5b6001601360016101000a81548160ff02191690831515021790555042601481905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561268e57600080fd5b6102c65a03f1151561269f57600080fd5b5050506040518051905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561273857600080fd5b6102c65a03f1151561274957600080fd5b5050506040518051905050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561281957600080fd5b6102c65a03f1151561282a57600080fd5b50505060405180519050955061283e611314565b15612e2357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156128d157600080fd5b6102c65a03f115156128e257600080fd5b505050604051805190509450600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561297c57600080fd5b6102c65a03f1151561298d57600080fd5b5050506040518051905093506129ac848661332690919063ffffffff16565b9250612a07670de0b6b3a76400006129f9886129eb876129dd670de0b6b3a76400008b61334490919063ffffffff16565b61337790919063ffffffff16565b61334490919063ffffffff16565b61337790919063ffffffff16565b9150612a1c828761339290919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515612afb57600080fd5b6102c65a03f11515612b0c57600080fd5b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515612bec57600080fd5b6102c65a03f11515612bfd57600080fd5b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612cef57600080fd5b6102c65a03f11515612d0057600080fd5b5050506040518051905050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612dfa57600080fd5b6102c65a03f11515612e0b57600080fd5b5050506040518051905050612e1e611371565b612f76565b6001601560006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612f2d57600080fd5b6102c65a03f11515612f3e57600080fd5b50505060405180519050507f669a43b03ba463851f494386ef35ad910676134dbe92b542ccba1789cca9dd3860405160405180910390a15b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1505050505050565b600660009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561304157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561307d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601560009054906101000a900460ff1681565b60116020528060005260406000206000915090505481565b6000601360019054906101000a900460ff16151561318357600080fd5b601560009054906101000a900460ff16151561319e57600080fd5b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156131ec57600080fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132888160165461332690919063ffffffff16565b6016819055508173ffffffffffffffffffffffffffffffffffffffff167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561331c57600080fd5b5050565b60055481565b600080828401905083811015151561333a57fe5b8091505092915050565b60008082840290506000841480613365575082848281151561336257fe5b04145b151561336d57fe5b8091505092915050565b600080828481151561338557fe5b0490508091505092915050565b60008282111515156133a057fe5b818303905092915050565b8154818355818115116133d2578183600052602060002091820191016133d191906133d7565b5b505050565b6133f991905b808211156133f55760008160009055506001016133dd565b5090565b905600a165627a7a723058209eaba96f705107864590743b6c475ae35833cb8fe713dd1c46a60672fa514f85002960606040526000600460006101000a81548160ff021916908315150217905550341561002a57600080fd5b60405160608061119f83398101604052808051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600681905550806007819055505050506110a6806100f96000396000f3006060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b146100bf57806318160ddd146100ec57806340c10f191461011557806370a082311461016f5780637d64bcb4146101bc5780638da5cb5b146101e95780639114557e1461023e57806395a2251f1461028b578063a0641288146102d8578063b8216ea814610325578063f2fde38b1461037f578063f35dad40146103b8575b600080fd5b34156100ca57600080fd5b6100d26103e1565b604051808215151515815260200191505060405180910390f35b34156100f757600080fd5b6100ff6103f4565b6040518082815260200191505060405180910390f35b341561012057600080fd5b610155600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506103fa565b604051808215151515815260200191505060405180910390f35b341561017a57600080fd5b6101a6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610600565b6040518082815260200191505060405180910390f35b34156101c757600080fd5b6101cf610649565b604051808215151515815260200191505060405180910390f35b34156101f457600080fd5b6101fc610710565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561024957600080fd5b610275600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610735565b6040518082815260200191505060405180910390f35b341561029657600080fd5b6102c2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061084f565b6040518082815260200191505060405180910390f35b34156102e357600080fd5b61030f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610df6565b6040518082815260200191505060405180910390f35b341561033057600080fd5b61037d600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610e59565b005b341561038a57600080fd5b6103b6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e9a565b005b34156103c357600080fd5b6103cb610fef565b6040518082815260200191505060405180910390f35b600460009054906101000a900460ff1681565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561045757600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415151561047d57600080fd5b600460009054906101000a900460ff1615151561049957600080fd5b6000821115156104a857600080fd5b6104bd82600154610ff590919063ffffffff16565b60018190555061051582600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106a657600080fd5b600460009054906101000a900460ff161515156106c257600080fd5b6001600460006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506107ce600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610ff590919063ffffffff16565b90506006544210156107e35760009250610848565b6107fa600754600654610ff590919063ffffffff16565b4210151561080a57809250610848565b6108456007546108376108286006544261101390919063ffffffff16565b8461102c90919063ffffffff16565b61105f90919063ffffffff16565b92505b5050919050565b600080600080600460009054906101000a900460ff16151561087057600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff161415151561089657600080fd5b61089f85610df6565b925060008314156108b35760009350610dee565b6109a7600554600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561097e57600080fd5b6102c65a03f1151561098f57600080fd5b50505060405180519050610ff590919063ffffffff16565b9150610a04670de0b6b3a76400006109f6846109e86001546109da670de0b6b3a76400008a61102c90919063ffffffff16565b61105f90919063ffffffff16565b61102c90919063ffffffff16565b61105f90919063ffffffff16565b9050610a5883600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461101390919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610aed83600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff590919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ba48360026000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff590919063ffffffff16565b60026000600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c1e81600554610ff590919063ffffffff16565b600581905550600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff167fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a9298483604051808381526020018281526020019250505060405180910390a2600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610dce57600080fd5b6102c65a03f11515610ddf57600080fd5b50505060405180519050508093505b505050919050565b6000610e52600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e4484610735565b61101390919063ffffffff16565b9050919050565b60008090505b8151811015610e9657610e888282815181101515610e7957fe5b9060200190602002015161084f565b508080600101915050610e5f565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ef557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f3157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b600080828401905083811015151561100957fe5b8091505092915050565b600082821115151561102157fe5b818303905092915050565b6000808284029050600084148061104d575082848281151561104a57fe5b04145b151561105557fe5b8091505092915050565b600080828481151561106d57fe5b04905080915050929150505600a165627a7a723058202a9920dea4a50d68c299d33a2363b9333f701856167da6c4862260c0496c3fa300290000000000000000000000000000000000000000000001e7e4171bf4d3a000000000000000000000000000000000000000000000000004c3ba39c5e41110000000000000000000000000000000000000000000000000000000000000000005dc000000000000000000000000000000000000000000000000000000005a2ee3c0000000000000000000000000000000000000000000000000000000005a80a0c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008322c7e7c14b57ff85947f28381421692a1cf26700000000000000000000000085e076361cc813a908ff672f9bad1541474402b2000000000000000000000000000000000000000000000000000000005a81f2400000000000000000000000000000000000000000000000000000000000ed4e00
Deployed Bytecode
0x606060405260043610610204576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063143551e41461020f5780631514bc48146102385780632b9edee9146102955780632c4e722e146102c25780633197cbb6146102eb5780633ccfd60b146103145780633e3926e4146103295780633f4ba83a146103835780633feb5f2b146103985780634042b66f146103fb57806341d4a1ab1461042457806347d54bff1461047957806349d94871146104a25780635155287a146104fb578063521eb27314610548578063530554811461059d5780635482d88e146105ea5780635c975abb1461063f5780635da89ac01461066c578063710c67051461069557806378e97925146106be5780637fd13532146106e7578063844d65c5146107625780638456cb59146107af5780638da5cb5b146107c4578063906a26e01461081957806390e50ba7146108425780639762f8021461090a57806398b9a2dc14610937578063a27aebbc14610965578063bef4876b14610988578063cb13cddb146109b5578063cee829ea14610a02578063d56b288914610a5c578063dd34c9a314610a71578063e985e36714610aa6578063ec8ac4d814610afb578063f2fde38b14610b29578063f43e98c714610b62578063f614299014610b8f578063fa89401a14610bdc578063fb86a40414610c15575b61020d33610c3e565b005b341561021a57600080fd5b610222611107565b6040518082815260200191505060405180910390f35b341561024357600080fd5b610278600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061110d565b604051808381526020018281526020019250505060405180910390f35b34156102a057600080fd5b6102a8611314565b604051808215151515815260200191505060405180910390f35b34156102cd57600080fd5b6102d5611365565b6040518082815260200191505060405180910390f35b34156102f657600080fd5b6102fe61136b565b6040518082815260200191505060405180910390f35b341561031f57600080fd5b610327611371565b005b341561033457600080fd5b610381600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803563ffffffff16906020019091905050611503565b005b341561038e57600080fd5b6103966116f1565b005b34156103a357600080fd5b6103b960048080359060200190919050506117b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561040657600080fd5b61040e6117ef565b6040518082815260200191505060405180910390f35b341561042f57600080fd5b6104376117f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048457600080fd5b61048c61181b565b6040518082815260200191505060405180910390f35b34156104ad57600080fd5b6104d9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611821565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561050657600080fd5b610532600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611844565b6040518082815260200191505060405180910390f35b341561055357600080fd5b61055b61185c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a857600080fd5b6105d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611882565b6040518082815260200191505060405180910390f35b34156105f557600080fd5b6105fd61191c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561064a57600080fd5b610652611942565b604051808215151515815260200191505060405180910390f35b341561067757600080fd5b61067f611955565b6040518082815260200191505060405180910390f35b34156106a057600080fd5b6106bc600480803563ffffffff1690602001909190505061195b565b005b34156106c957600080fd5b6106d1611a4b565b6040518082815260200191505060405180910390f35b34156106f257600080fd5b61076060048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001909190803590602001909190803563ffffffff16906020019091905050611a51565b005b341561076d57600080fd5b610799600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611af3565b6040518082815260200191505060405180910390f35b34156107ba57600080fd5b6107c2611b0b565b005b34156107cf57600080fd5b6107d7611bcb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082457600080fd5b61082c611bf0565b6040518082815260200191505060405180910390f35b341561084d57600080fd5b610908600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050611bf6565b005b341561091557600080fd5b61091d6121b4565b604051808215151515815260200191505060405180910390f35b610963600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612205565b005b341561097057600080fd5b61098660048080359060200190919050506123b7565b005b341561099357600080fd5b61099b6124d0565b604051808215151515815260200191505060405180910390f35b34156109c057600080fd5b6109ec600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506124e3565b6040518082815260200191505060405180910390f35b3415610a0d57600080fd5b610a5a6004808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506124fb565b005b3415610a6757600080fd5b610a6f61253b565b005b3415610a7c57600080fd5b610a84612faa565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3415610ab157600080fd5b610ab9612fc0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b27600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c3e565b005b3415610b3457600080fd5b610b60600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fe6565b005b3415610b6d57600080fd5b610b7561313b565b604051808215151515815260200191505060405180910390f35b3415610b9a57600080fd5b610bc6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061314e565b6040518082815260200191505060405180910390f35b3415610be757600080fd5b610c13600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613166565b005b3415610c2057600080fd5b610c28613320565b6040518082815260200191505060405180910390f35b600080600080600080601360019054906101000a900460ff16151515610c6357600080fd5b601360009054906101000a900460ff16151515610c7f57600080fd5b6007544210151515610c9057600080fd5b600954600854014211151515610ca557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610ce157600080fd5b349550600086111515610cf357600080fd5b600554610d0b87600b5461332690919063ffffffff16565b11151515610d1857600080fd5b610d2187611882565b9450610d36868661332690919063ffffffff16565b9350600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548411151515610d8657600080fd5b610d90878761110d565b8093508194505050610dea86601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332690919063ffffffff16565b905080601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060128054806001018281610e4491906133ab565b9160005260206000209001600089909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610ea886600b5461332690919063ffffffff16565b600b81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610f7b57600080fd5b6102c65a03f11515610f8c57600080fd5b5050506040518051905050600082111561108a57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561106d57600080fd5b6102c65a03f1151561107e57600080fd5b50505060405180519050505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167efe0e12b43090c1fc19a34aefa5cc138a4eeafc60ab800f855c730b3fb9480e88868660405180848152602001838152602001828152602001935050505060405180910390a350505050505050565b60095481565b6000806000806000806000806000611130600a548b61334490919063ffffffff16565b965061113b8b611882565b95506111508a8761332690919063ffffffff16565b9450600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548510156111a85786600080905098509850611306565b600f60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16935061123d8761122f6103e8611221886103e80163ffffffff168c61334490919063ffffffff16565b61337790919063ffffffff16565b61339290919063ffffffff16565b9250600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548610156112ff5761129b600a548761334490919063ffffffff16565b91506112e0826112d26103e86112c4886103e80163ffffffff168761334490919063ffffffff16565b61337790919063ffffffff16565b61339290919063ffffffff16565b9050866112f6848361332690919063ffffffff16565b98509850611306565b8683985098505b505050505050509250929050565b600061135b6103e861134d600660009054906101000a900463ffffffff166103e80163ffffffff1660045461334490919063ffffffff16565b61337790919063ffffffff16565b600b541015905090565b600a5481565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ce57600080fd5b6113d6611314565b806113ff5750601360019054906101000a900460ff1680156113fe5750621275006014540142115b5b151561140a57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16319050600081111561150057600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561148f57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a25b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561155e57600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff161415151561158457600080fd5b6101908163ffffffff161115151561159b57600080fd5b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff167f348378d001a3415ea7735219f65dfd8b280dea9b77ba19ba1fa47d5fe5c9618d848484604051808481526020018381526020018263ffffffff1663ffffffff168152602001935050505060405180910390a250505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561174c57600080fd5b601360009054906101000a900460ff16151561176757600080fd5b6000601360006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6012818154811015156117bf57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b600f6020528060005260406000206000915054906101000a900463ffffffff1681565b600d6020528060005260406000206000915090505481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611915601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332690919063ffffffff16565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900460ff1681565b60165481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b657600080fd5b601360019054906101000a900460ff161515156119d257600080fd5b80600660006101000a81548163ffffffff021916908363ffffffff1602179055507f7cbf2bdce868ab572ec276ff0bb1074b2b14e049c221bc3099d9100fd180e69f600660009054906101000a900463ffffffff16604051808263ffffffff1663ffffffff16815260200191505060405180910390a150565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611aae57600080fd5b600090505b8451811015611aec57611adf8582815181101515611acd57fe5b90602001906020020151858585611503565b8080600101915050611ab3565b5050505050565b600e6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6657600080fd5b601360009054906101000a900460ff16151515611b8257600080fd5b6001601360006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b6000806000601360019054906101000a900460ff16151515611c1757600080fd5b601360009054906101000a900460ff16151515611c3357600080fd5b6007544210151515611c4457600080fd5b600954600854014211151515611c5957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cb457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515611cf057600080fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4b85611d3d8a611882565b61332690919063ffffffff16565b11151515611d5857600080fd5b611d62878561110d565b8093508194505050611dbc84601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461332690919063ffffffff16565b905080601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060128054806001018281611e1691906133ab565b9160005260206000209001600089909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611e7a84600b5461332690919063ffffffff16565b600b81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611f4d57600080fd5b6102c65a03f11515611f5e57600080fd5b5050506040518051905050600082111561205c57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1988846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561203f57600080fd5b6102c65a03f1151561205057600080fd5b50505060405180519050505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f673441db3a5fb97b2e1f9feeec16535dcc14d69ea59b26b98ca2bdb31e7e50588686868b8b604051808681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156121065780820151818401526020810190506120eb565b50505050905090810190601f1680156121335780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561216c578082015181840152602081019050612151565b50505050905090810190601f1680156121995780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a350505050505050565b60006121fb6103e86121ed600660009054906101000a900463ffffffff166103e80163ffffffff1660055461334490919063ffffffff16565b61337790919063ffffffff16565b600b541015905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561226057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561228657600080fd5b60003411151561229557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f64cbbd34f3faebfd04eff088ae5832f6d254dbb81820b0055e9d85c534aa700d60405160405180910390a380600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156123b457600080fd5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561241257600080fd5b601360019054906101000a900460ff1615151561242e57600080fd5b600954600854014210151561244257600080fd5b60008111151561245157600080fd5b6124668160095461332690919063ffffffff16565b60098190555062093a806009541115151561248057600080fd5b7f1c73e1d0cd5dc5067743dac22cf396dbbdde644cc51e2af8e0142666c67b29a96124b860095460085461332690919063ffffffff16565b6040518082815260200191505060405180910390a150565b601360019054906101000a900460ff1681565b60106020528060005260406000206000915090505481565b60008090505b81518110156125375761252a828281518110151561251b57fe5b90602001906020020151613166565b8080600101915050612501565b5050565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561259f57600080fd5b601360019054906101000a900460ff161515156125bb57600080fd5b6125c36121b4565b806125d357506009546008540142115b15156125de57600080fd5b6001601360016101000a81548160ff02191690831515021790555042601481905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561268e57600080fd5b6102c65a03f1151561269f57600080fd5b5050506040518051905050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561273857600080fd5b6102c65a03f1151561274957600080fd5b5050506040518051905050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561281957600080fd5b6102c65a03f1151561282a57600080fd5b50505060405180519050955061283e611314565b15612e2357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156128d157600080fd5b6102c65a03f115156128e257600080fd5b505050604051805190509450600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561297c57600080fd5b6102c65a03f1151561298d57600080fd5b5050506040518051905093506129ac848661332690919063ffffffff16565b9250612a07670de0b6b3a76400006129f9886129eb876129dd670de0b6b3a76400008b61334490919063ffffffff16565b61337790919063ffffffff16565b61334490919063ffffffff16565b61337790919063ffffffff16565b9150612a1c828761339290919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515612afb57600080fd5b6102c65a03f11515612b0c57600080fd5b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1515612bec57600080fd5b6102c65a03f11515612bfd57600080fd5b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612cef57600080fd5b6102c65a03f11515612d0057600080fd5b5050506040518051905050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612dfa57600080fd5b6102c65a03f11515612e0b57600080fd5b5050506040518051905050612e1e611371565b612f76565b6001601560006101000a81548160ff021916908315150217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612f2d57600080fd5b6102c65a03f11515612f3e57600080fd5b50505060405180519050507f669a43b03ba463851f494386ef35ad910676134dbe92b542ccba1789cca9dd3860405160405180910390a15b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a1505050505050565b600660009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561304157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561307d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601560009054906101000a900460ff1681565b60116020528060005260406000206000915090505481565b6000601360019054906101000a900460ff16151561318357600080fd5b601560009054906101000a900460ff16151561319e57600080fd5b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115156131ec57600080fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132888160165461332690919063ffffffff16565b6016819055508173ffffffffffffffffffffffffffffffffffffffff167fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651826040518082815260200191505060405180910390a28173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561331c57600080fd5b5050565b60055481565b600080828401905083811015151561333a57fe5b8091505092915050565b60008082840290506000841480613365575082848281151561336257fe5b04145b151561336d57fe5b8091505092915050565b600080828481151561338557fe5b0490508091505092915050565b60008282111515156133a057fe5b818303905092915050565b8154818355818115116133d2578183600052602060002091820191016133d191906133d7565b5b505050565b6133f991905b808211156133f55760008160009055506001016133dd565b5090565b905600a165627a7a723058209eaba96f705107864590743b6c475ae35833cb8fe713dd1c46a60672fa514f850029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000001e7e4171bf4d3a000000000000000000000000000000000000000000000000004c3ba39c5e41110000000000000000000000000000000000000000000000000000000000000000005dc000000000000000000000000000000000000000000000000000000005a2ee3c0000000000000000000000000000000000000000000000000000000005a80a0c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008322c7e7c14b57ff85947f28381421692a1cf26700000000000000000000000085e076361cc813a908ff672f9bad1541474402b2000000000000000000000000000000000000000000000000000000005a81f2400000000000000000000000000000000000000000000000000000000000ed4e00
-----Decoded View---------------
Arg [0] : _softCap (uint256): 9000000000000000000000
Arg [1] : _hardCap (uint256): 22500000000000000000000
Arg [2] : _capFlex (uint32): 1500
Arg [3] : _startTime (uint256): 1513022400
Arg [4] : _endTime (uint256): 1518379200
Arg [5] : _rate (uint256): 1
Arg [6] : _wallet (address): 0x8322C7E7C14B57Ff85947F28381421692A1cF267
Arg [7] : _telcoin (address): 0x85e076361cc813A908Ff672F9BAd1541474402b2
Arg [8] : _bonusVestingStart (uint256): 1518465600
Arg [9] : _bonusVestingDuration (uint256): 15552000
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000001e7e4171bf4d3a00000
Arg [1] : 0000000000000000000000000000000000000000000004c3ba39c5e411100000
Arg [2] : 00000000000000000000000000000000000000000000000000000000000005dc
Arg [3] : 000000000000000000000000000000000000000000000000000000005a2ee3c0
Arg [4] : 000000000000000000000000000000000000000000000000000000005a80a0c0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [6] : 0000000000000000000000008322c7e7c14b57ff85947f28381421692a1cf267
Arg [7] : 00000000000000000000000085e076361cc813a908ff672f9bad1541474402b2
Arg [8] : 000000000000000000000000000000000000000000000000000000005a81f240
Arg [9] : 0000000000000000000000000000000000000000000000000000000000ed4e00
Swarm Source
bzzr://2a9920dea4a50d68c299d33a2363b9333f701856167da6c4862260c0496c3fa3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.