ETH Price: $2,084.47 (-2.24%)

Contract

0xCd22b66827Bd35c4A6375a960eF6C5d003F98Cc1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Token Transfer found.

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
XDMCCrowdsale

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-07-16
*/

pragma solidity ^0.4.23;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  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 a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

  function transferFrom(address from, address to, uint256 value)
    public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

contract Ownable {
  address public owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }
}

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale,
 * allowing investors to purchase tokens with ether. This contract implements
 * such functionality in its most fundamental form and can be extended to provide additional
 * functionality and/or custom behavior.
 * The external interface represents the basic interface for purchasing tokens, and conform
 * the base architecture for crowdsales. They are *not* intended to be modified / overriden.
 * The internal interface conforms the extensible and modifiable surface of crowdsales. Override
 * the methods to add functionality. Consider using 'super' where appropiate to concatenate
 * behavior.
 */
contract XDMCCrowdsale is Ownable {
  using SafeMath for uint256;

  event Log(string _a, uint256 _b);

  // The token being sold
  ERC20 public token;

  address wallet; //address for contribution receiving

  uint256 public icoRate = 0; // will be set manually when ico starts
  uint256 public icoOver1 = 0; // will be set manually when ico starts
  uint256 public icoBonus1 = 0; // will be set manually when ico starts
  uint256 public icoOver2 = 0; // will be set manually when ico starts
  uint256 public icoBonus2 = 0; // will be set manually when ico starts
  uint256 public icoOver3 = 0; // will be set manually when ico starts
  uint256 public icoBonus3 = 0; // will be set manually when ico starts
  uint256 public icoOver4 = 0; // will be set manually when ico starts
  uint256 public icoBonus4 = 0; // will be set manually when ico starts
  uint256 public icoOver5 = 0; // will be set manually when ico starts
  uint256 public icoBonus5 = 0; // will be set manually when ico starts
  uint256 public ico1cap = uint256(224502081).mul(1 ether);
  uint256 public ico2cap = uint256(190996929).mul(1 ether);
  uint256 public ico3cap = uint256(127331286).mul(1 ether);
  enum Stages {Pause, Ico1, Ico1End, Ico2, Ico2End, Ico3, Ico3End}
  Stages currentStage;
  address public teamAddress = 0x4B58EBeEb96b7551Bb752Ea9512771615C554De3;
  uint256 public vestingStartTime = 0;
  uint256 public vestingPeriod = 15552000; // 180 days
  uint256 public teamTokens = uint256(198639670).mul(1 ether);
  uint256 public teamTokensPerPeriod = uint256(33768743).mul(1 ether);
  uint256 public teamTokensReleased = 0;
  uint256 public devTokensIco1 = uint256(52060948).mul(1 ether);
  uint256 public devTokensIco2 = uint256(52060948).mul(1 ether);
  uint256 public devTokensIco3 = uint256(53638554).mul(1 ether);
  uint256 public ico1endTime = 0;
  uint256 public ico2endTime = 0;
  uint256 public ico3endTime = 0;
  uint256 public getUnsoldPeriod = 8640000; // 100 days
  uint256 public ico1total = 0;
  uint256 public ico2total = 0;
  uint256 public ico3total = 0;
  uint256 public ico1receivedTotal = 0;
  uint256 public ico2receivedTotal = 0;
  uint256 public ico3receivedTotal = 0;
  mapping(address => uint256) ico1amount;
  mapping(address => uint256) ico2amount;
  mapping(address => uint256) ico3amount;
  mapping(address => uint256) ico1received;
  mapping(address => uint256) ico2received;
  mapping(address => uint256) ico3received;

  // Amount of wei raised
  uint256 public weiRaised;

  /**
   * Event for token purchase logging
   * @param purchaser who paid for the tokens
   * @param beneficiary who got the tokens
   * @param value weis paid for purchase
   * @param amount amount of tokens purchased
   */
  event TokenPurchase(
    address indexed purchaser,
    address indexed beneficiary,
    uint256 value,
    uint256 amount
  );

  event TokenPriceDescription(
    uint256 basePrice,
    uint256 bonus,
    uint256 tokens
  );

  /**
   * 
   * @param _owner Address where collected funds will be forwarded to
   * @param _token Address of the token being sold
   */
  constructor(address _owner, address _wallet, ERC20 _token) public {
    require(_owner != address(0));
    require(_wallet != address(0));
    require(_token != address(0));
    currentStage = Stages.Pause;
    vestingStartTime = now;
    owner = _owner;
    token = _token;
    wallet = _wallet;
    teamTokensReleased = teamTokensReleased.add(teamTokensPerPeriod);
  }

  // -----------------------------------------
  // Crowdsale external interface
  // -----------------------------------------

  /**
   * @dev fallback function ***DO NOT OVERRIDE***
   */
  function () external payable {
    buyTokens(msg.sender);
  }

  function startIco1(
    uint256 _rate, 
    uint256 _over1, 
    uint256 _bonus1, 
    uint256 _over2, 
    uint256 _bonus2, 
    uint256 _over3, 
    uint256 _bonus3, 
    uint256 _over4, 
    uint256 _bonus4, 
    uint256 _over5, 
    uint256 _bonus5
  ) public onlyOwner returns (bool) {
    require(currentStage == Stages.Pause);
    require(token.balanceOf(address(this)) >= uint256(865461673).mul(1 ether));
    require(_rate > 0);
    currentStage = Stages.Ico1;
    icoRate = _rate;
    icoOver1 = _over1.mul(1 ether);
    icoBonus1 = _bonus1;
    icoOver2 = _over2.mul(1 ether);
    icoBonus2 = _bonus2;
    icoOver3 = _over3.mul(1 ether);
    icoBonus3 = _bonus3;
    icoOver4 = _over4.mul(1 ether);
    icoBonus4 = _bonus4;
    icoOver5 = _over5.mul(1 ether);
    icoBonus5 = _bonus5;
    require(token.transfer(owner, devTokensIco1));
    return true;
  }

  function endIco1() public onlyOwner returns (bool) {
    require(currentStage == Stages.Ico1);
    currentStage = Stages.Ico1End;
    ico1endTime = now;
    return true;
  }

  function startIco2(
    uint256 _rate, 
    uint256 _over1, 
    uint256 _bonus1, 
    uint256 _over2, 
    uint256 _bonus2, 
    uint256 _over3, 
    uint256 _bonus3, 
    uint256 _over4, 
    uint256 _bonus4, 
    uint256 _over5, 
    uint256 _bonus5
  ) public onlyOwner returns (bool) {
    require(currentStage == Stages.Ico1End);
    currentStage = Stages.Ico2;
    if (_rate > 0) icoRate = _rate;
    icoOver1 = _over1.mul(1 ether);
    icoBonus1 = _bonus1;
    icoOver2 = _over2.mul(1 ether);
    icoBonus2 = _bonus2;
    icoOver3 = _over3.mul(1 ether);
    icoBonus3 = _bonus3;
    icoOver4 = _over4.mul(1 ether);
    icoBonus4 = _bonus4;
    icoOver5 = _over5.mul(1 ether);
    icoBonus5 = _bonus5;
    require(token.transfer(owner, devTokensIco2));
    return true;
  }

  function endIco2() public onlyOwner returns (bool) {
    require(currentStage == Stages.Ico2);
    currentStage = Stages.Ico2End;
    ico2endTime = now;
    return true;
  }

  function startIco3(
    uint256 _rate, 
    uint256 _over1, 
    uint256 _bonus1, 
    uint256 _over2, 
    uint256 _bonus2, 
    uint256 _over3, 
    uint256 _bonus3, 
    uint256 _over4, 
    uint256 _bonus4, 
    uint256 _over5, 
    uint256 _bonus5
  ) public onlyOwner returns (bool) {
    require(currentStage == Stages.Ico2End);
    currentStage = Stages.Ico3;
    if (_rate > 0) icoRate = _rate;
    icoOver1 = _over1.mul(1 ether);
    icoBonus1 = _bonus1;
    icoOver2 = _over2.mul(1 ether);
    icoBonus2 = _bonus2;
    icoOver3 = _over3.mul(1 ether);
    icoBonus3 = _bonus3;
    icoOver4 = _over4.mul(1 ether);
    icoBonus4 = _bonus4;
    icoOver5 = _over5.mul(1 ether);
    icoBonus5 = _bonus5;
    require(token.transfer(owner, devTokensIco3));
    return true;
  }

  function endIco3() public onlyOwner returns (bool) {
    require(currentStage == Stages.Ico3);
    currentStage = Stages.Ico3End;
    ico3endTime = now;
    return true;
  }

  function getUnsoldReceived(uint256 _stage, address _address) public view returns (uint256) {
    if (_stage == 1) return ico1received[_address];
    else if (_stage == 2) return ico2received[_address];
    else if (_stage == 3) return ico3received[_address];
    else return 0;
  }

  function getStageAmount(uint256 _stage, address _address) public view returns (uint256) {
    if (_stage == 1) return ico1amount[_address];
    else if (_stage == 2) return ico2amount[_address];
    else if (_stage == 3) return ico3amount[_address];
    else return 0;
  }

  function getStageName() public view returns (string) {
    if (currentStage == Stages.Pause) return 'ICO is not started yet';
    else if (currentStage == Stages.Ico1) return 'ICO 1';
    else if (currentStage == Stages.Ico1End) return 'ICO 1 end';
    else if (currentStage == Stages.Ico2) return 'ICO 2';
    else if (currentStage == Stages.Ico2End) return 'ICO 2 end';
    else if (currentStage == Stages.Ico3) return 'ICO 3';
    else if (currentStage == Stages.Ico3End) return 'ICO 3 end';
    return 'Undefined';
  }

  function getPrice() public view returns (uint256) {
    if (currentStage == Stages.Ico1) return icoRate;
    else if (currentStage == Stages.Ico2) return icoRate;
    else if (currentStage == Stages.Ico3) return icoRate;
    return 0;
  }

  function getBonus(uint256 _ether) public view returns (uint256) {
    return _getBonus(_ether.mul(1 ether));
  }

  function _getBonus(uint256 _wei) internal view returns (uint256) {
    if (
        currentStage == Stages.Ico1 || 
        currentStage == Stages.Ico2 || 
        currentStage == Stages.Ico3
      ) {
      if (_wei >= icoOver1) return icoBonus1;
      else if (_wei >= icoOver2) return icoBonus2;
      else if (_wei >= icoOver3) return icoBonus3;
      else if (_wei >= icoOver4) return icoBonus4;
      else if (_wei >= icoOver5) return icoBonus5;
      return 0;
    }
    return 0;
  }

  function getVestingPeriodNumber() public view returns (uint256) {
    if (vestingStartTime == 0) return 0;
    return now.sub(vestingStartTime).div(vestingPeriod).add(1);
  }

  function getTeamToken() public {
    uint256 vestingPeriodNumber = getVestingPeriodNumber();
    require(vestingPeriodNumber > 1);
    require(teamTokensReleased < teamTokens);
    uint256 toRelease;
    if (vestingPeriodNumber >= 6) toRelease = teamTokens;
    else toRelease = vestingPeriodNumber.mul(teamTokensPerPeriod);
    if (toRelease > teamTokens) toRelease = teamTokens;
    toRelease = toRelease.sub(teamTokensReleased);
    require(toRelease > 0);
    teamTokensReleased = teamTokensReleased.add(toRelease);
    require(token.transfer(teamAddress, toRelease));
  }

  /**
   * @dev low level token purchase ***DO NOT OVERRIDE***
   * @param _beneficiary Address performing the token purchase
   */
  function buyTokens(address _beneficiary) public payable {

    uint256 weiAmount = msg.value;

    _preValidatePurchase(_beneficiary, weiAmount);

    // calculate token amount to be created
    uint256 tokens = _getTokenAmount(weiAmount);

    _validateTokensAmount(tokens);

    if (currentStage == Stages.Ico1) {
      ico1amount[msg.sender] = ico1amount[msg.sender].add(tokens);
      ico1total = ico1total.add(tokens);
    } else if (currentStage == Stages.Ico2) {
      ico2amount[msg.sender] = ico2amount[msg.sender].add(tokens);
      ico2total = ico2total.add(tokens);
    } else if (currentStage == Stages.Ico3) {
      ico3amount[msg.sender] = ico3amount[msg.sender].add(tokens);
      ico3total = ico3total.add(tokens);
    }

    weiRaised = weiRaised.add(weiAmount);

    _processPurchase(_beneficiary, tokens);

    emit TokenPurchase(msg.sender, _beneficiary, weiAmount, tokens);

    _forwardFunds(weiAmount);
  }

  /**
   * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use super to concatenate validations.
   * @param _beneficiary Address performing the token purchase
   * @param _weiAmount Value in wei involved in the purchase
   */
  function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal view {
    require(_beneficiary != address(0));
    require(_weiAmount >= 100 finney);
    if (currentStage == Stages.Ico1) require(_weiAmount <= 1000 ether);
    else if (currentStage == Stages.Ico2) require(_weiAmount <= 500 ether);
    else if (currentStage == Stages.Ico3) require(_weiAmount <= 500 ether);
    else revert();
  }

  function _validateTokensAmount(uint256 _tokens) internal view {
    require(_tokens > 0);
    if (currentStage == Stages.Ico1) require(_tokens <= ico1cap);
    else if (currentStage == Stages.Ico2) require(_tokens <= ico2cap);
    else if (currentStage == Stages.Ico3) require(_tokens <= ico3cap);
  }

  /**
   * @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends its tokens.
   * @param _beneficiary Address performing the token purchase
   * @param _tokenAmount Number of tokens to be emitted
   */
  function _deliverTokens(address _beneficiary, uint256 _tokenAmount) internal {
    require(token.transfer(_beneficiary, _tokenAmount));
  }

  /**
   * @dev Executed when a purchase has been validated and is ready to be executed. Not necessarily emits/sends tokens.
   * @param _beneficiary Address receiving the tokens
   * @param _tokenAmount Number of tokens to be purchased
   */
  function _processPurchase(address _beneficiary, uint256 _tokenAmount) internal {
    _deliverTokens(_beneficiary, _tokenAmount);
  }


  /**
   * @dev Override to extend the way in which ether is converted to tokens.
   * @param _weiAmount Value in wei to be converted into tokens
   * @return Number of tokens that can be purchased with the specified _weiAmount
   */
  function _getTokenAmount(uint256 _weiAmount) internal returns (uint256) {
    uint256 basePrice = icoRate;
    uint256 tokens = _weiAmount.mul(basePrice);
    uint256 bonuses = _getBonus(_weiAmount);
    if (bonuses > 0) {
      uint256 bonusTokens = tokens.mul(bonuses).div(100);
      tokens = tokens.add(bonusTokens);
    }

    emit TokenPriceDescription(basePrice, bonuses, tokens);
    return tokens;
  }

  /**
   * @dev Determines how ETH is stored/forwarded on purchases.
   */
  function _forwardFunds(uint256 _weiAmount) internal {
    require(wallet != address(0));
    wallet.transfer(_weiAmount);
  }

  function getUnsoldOwner() public onlyOwner returns (bool) {
    uint256 unsoldTokensRemains = 0;
    uint256 stageRemains;
    if (
      ico1endTime > 0 && 
      now.sub(ico1endTime) > getUnsoldPeriod && 
      ico1receivedTotal < ico1cap.sub(ico1total)
    ) {
      stageRemains = ico1cap.sub(ico1total).sub(ico1receivedTotal);
      unsoldTokensRemains = unsoldTokensRemains.add(stageRemains);
      ico1receivedTotal = ico1cap.sub(ico1total);
    }
    if (
      ico2endTime > 0 && 
      now.sub(ico2endTime) > getUnsoldPeriod && 
      ico2receivedTotal < ico2cap.sub(ico1total)
    ) {
      stageRemains = ico2cap.sub(ico2total).sub(ico2receivedTotal);
      unsoldTokensRemains = unsoldTokensRemains.add(stageRemains);
      ico2receivedTotal = ico2cap.sub(ico2total);
    }
    if (
      ico3endTime > 0 && 
      now.sub(ico3endTime) > getUnsoldPeriod && 
      ico3receivedTotal < ico3cap.sub(ico3total)
    ) {
      stageRemains = ico3cap.sub(ico3total).sub(ico3receivedTotal);
      unsoldTokensRemains = unsoldTokensRemains.add(stageRemains);
      ico3receivedTotal = ico3cap.sub(ico3total);
    }

    require(unsoldTokensRemains > 0);
    require(token.transfer(owner, unsoldTokensRemains));

    return true;
  }

  function getUnsold() public returns (bool) {
    uint256 unsoldTokensShare = 0;
    uint256 tokenBalance = token.balanceOf(msg.sender);
    uint256 stageShare;
    uint256 stageRemains;

    if (
      ico1endTime > 0 && 
      now.sub(ico1endTime) < getUnsoldPeriod && 
      ico1received[msg.sender] == 0 &&
      tokenBalance >= ico1amount[msg.sender]
    ) {
      tokenBalance = tokenBalance.sub(ico1amount[msg.sender]);
      stageRemains = ico1cap.sub(ico1total);
      stageShare = stageRemains.mul(ico1amount[msg.sender]).div(ico1total);
      unsoldTokensShare = unsoldTokensShare.add(stageShare);
      ico1received[msg.sender] = stageShare;
      ico1receivedTotal = ico1receivedTotal.add(stageShare);
      require(ico1receivedTotal <= ico1cap.sub(ico1total));
    }

    if (
      ico2endTime > 0 && 
      now.sub(ico2endTime) < getUnsoldPeriod && 
      ico2received[msg.sender] == 0 &&
      tokenBalance >= ico2amount[msg.sender]
    ) {
      tokenBalance = tokenBalance.sub(ico2amount[msg.sender]);
      stageRemains = ico2cap.sub(ico2total);
      stageShare = stageRemains.mul(ico2amount[msg.sender]).div(ico2total);
      unsoldTokensShare = unsoldTokensShare.add(stageShare);
      ico2received[msg.sender] = stageShare;
      ico2receivedTotal = ico2receivedTotal.add(stageShare);
      require(ico2receivedTotal <= ico2cap.sub(ico2total));
    }

    if (
      ico3endTime > 0 && 
      now.sub(ico3endTime) < getUnsoldPeriod && 
      ico3received[msg.sender] == 0 &&
      tokenBalance >= ico3amount[msg.sender]
    ) {
      stageRemains = ico3cap.sub(ico3total);
      stageShare = stageRemains.mul(ico3amount[msg.sender]).div(ico3total);
      unsoldTokensShare = unsoldTokensShare.add(stageShare);
      ico3received[msg.sender] = stageShare;
      ico3receivedTotal = ico3receivedTotal.add(stageShare);
      require(ico3receivedTotal <= ico3cap.sub(ico3total));
    }

    require(unsoldTokensShare > 0);
    require(token.transfer(msg.sender, unsoldTokensShare));

    return true;
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"ico1total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoOver4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devTokensIco1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoOver1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico1receivedTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endIco1","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_over1","type":"uint256"},{"name":"_bonus1","type":"uint256"},{"name":"_over2","type":"uint256"},{"name":"_bonus2","type":"uint256"},{"name":"_over3","type":"uint256"},{"name":"_bonus3","type":"uint256"},{"name":"_over4","type":"uint256"},{"name":"_bonus4","type":"uint256"},{"name":"_over5","type":"uint256"},{"name":"_bonus5","type":"uint256"}],"name":"startIco1","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoOver3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endIco3","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endIco2","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamTokensPerPeriod","outputs":[{"name":"","type":"uint256"}],"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":"getVestingPeriodNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico3cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ether","type":"uint256"}],"name":"getBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoBonus2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getTeamToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"devTokensIco3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getUnsold","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_over1","type":"uint256"},{"name":"_bonus1","type":"uint256"},{"name":"_over2","type":"uint256"},{"name":"_bonus2","type":"uint256"},{"name":"_over3","type":"uint256"},{"name":"_bonus3","type":"uint256"},{"name":"_over4","type":"uint256"},{"name":"_bonus4","type":"uint256"},{"name":"_over5","type":"uint256"},{"name":"_bonus5","type":"uint256"}],"name":"startIco2","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoOver5","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoBonus5","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico2endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vestingPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico1endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getStageName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoBonus4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_stage","type":"uint256"},{"name":"_address","type":"address"}],"name":"getStageAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico3endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico2cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_stage","type":"uint256"},{"name":"_address","type":"address"}],"name":"getUnsoldReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_over1","type":"uint256"},{"name":"_bonus1","type":"uint256"},{"name":"_over2","type":"uint256"},{"name":"_bonus2","type":"uint256"},{"name":"_over3","type":"uint256"},{"name":"_bonus3","type":"uint256"},{"name":"_over4","type":"uint256"},{"name":"_bonus4","type":"uint256"},{"name":"_over5","type":"uint256"},{"name":"_bonus5","type":"uint256"}],"name":"startIco3","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vestingStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico2receivedTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devTokensIco2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico1cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoBonus3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTokensReleased","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUnsoldPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoBonus1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoOver2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getUnsoldOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ico3receivedTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ico3total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"ico2total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_wallet","type":"address"},{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_a","type":"string"},{"indexed":false,"name":"_b","type":"uint256"}],"name":"Log","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"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"basePrice","type":"uint256"},{"indexed":false,"name":"bonus","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"TokenPriceDescription","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405260006003556000600455600060055560006006556000600755600060085560006009556000600a556000600b556000600c556000600d556200006a670de0b6b3a7640000630d61a141620002f864010000000002620021f8179091906401000000009004565b600e5562000093630b6261c1670de0b6b3a7640000640100000000620021f8620002f882021704565b600f55620000bc630796ebd6670de0b6b3a7640000640100000000620021f8620002f882021704565b6010556011805461010060a860020a031916744b58ebeeb96b7551bb752ea9512771615c554de300179055600060125562ed4e0060135562000119630bd70036670de0b6b3a7640000640100000000620002f88102620021f81704565b601455620001426302034527670de0b6b3a7640000640100000000620021f8620002f882021704565b60155560006016556200017063031a6314670de0b6b3a7640000640100000000620021f8620002f882021704565b6017556200019963031a6314670de0b6b3a7640000640100000000620021f8620002f882021704565b601855620001c2630332759a670de0b6b3a7640000640100000000620021f8620002f882021704565b6019556000601a556000601b556000601c556283d600601d556000601e556000601f5560006020556000602155600060225560006023553480156200020657600080fd5b50604051606080620026d183398101604090815281516020830151919092015160008054600160a060020a03191633600160a060020a0390811691909117909155831615156200025557600080fd5b600160a060020a03821615156200026b57600080fd5b600160a060020a03811615156200028157600080fd5b6011805460ff191690554260125560008054600160a060020a03858116600160a060020a031992831617909255600180548484169083161790556002805492851692909116919091179055601554601654620002eb91640100000000620021906200032b82021704565b6016555062000339915050565b60008215156200030b5750600062000325565b508181028183828115156200031c57fe5b04146200032557fe5b92915050565b818101828110156200032557fe5b61238880620003496000396000f3006080604052600436106102865763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662d4b959811461029157806304b370ab146102b85780631b476945146102cd5780631c75f085146102e25780632298b9ce1461031357806324c0db841461032857806328d423501461033d5780632d0d482714610366578063300d9e901461039f57806330fbe411146103b4578063341bcbc1146103c957806336a3668a146103de5780634042b66f146103f357806345fa404514610408578063491737f21461041d5780634aa66b28146104325780634aaceed31461044a5780635403a0e51461045f578063581d1d041461047457806363a3c4521461048957806365f970821461049e5780636889cf86146104d75780636c1f27fe146104ec578063713955e814610501578063715018a6146105165780637313ee5a1461052b578063797bfaf31461054057806382f4ef731461055557806387a3e445146105df5780638da5cb5b146105f45780638f7d7384146106095780638fc6bf7f1461062d57806398d5fdca146106425780639bfba3c6146106575780639cc3e4b41461066c5780639e33118814610690578063a8660a78146106c9578063afef07da146106de578063b155c7d6146106f3578063b298485814610708578063b412b4451461071d578063c0b241d714610732578063c3e3c7bc14610747578063cd8817421461075c578063cda3c00114610771578063d531eeaa14610786578063d723879c1461079b578063d7d1bdbd146107b0578063d8e71b35146107c5578063e644d886146107da578063ec8ac4d8146107ef578063f0e5eeac14610803578063f2fde38b14610818578063fc0c546a14610839575b61028f3361084e565b005b34801561029d57600080fd5b506102a6610a52565b60408051918252519081900360200190f35b3480156102c457600080fd5b506102a6610a58565b3480156102d957600080fd5b506102a6610a5e565b3480156102ee57600080fd5b506102f7610a64565b60408051600160a060020a039092168252519081900360200190f35b34801561031f57600080fd5b506102a6610a78565b34801561033457600080fd5b506102a6610a7e565b34801561034957600080fd5b50610352610a84565b604080519115158252519081900360200190f35b34801561037257600080fd5b5061035260043560243560443560643560843560a43560c43560e435610104356101243561014435610ad5565b3480156103ab57600080fd5b506102a6610d2e565b3480156103c057600080fd5b50610352610d34565b3480156103d557600080fd5b50610352610d84565b3480156103ea57600080fd5b506102a6610dd4565b3480156103ff57600080fd5b506102a6610dda565b34801561041457600080fd5b506102a6610de0565b34801561042957600080fd5b506102a6610e32565b34801561043e57600080fd5b506102a6600435610e38565b34801561045657600080fd5b506102a6610e62565b34801561046b57600080fd5b5061028f610e68565b34801561048057600080fd5b506102a6610f9e565b34801561049557600080fd5b50610352610fa4565b3480156104aa57600080fd5b5061035260043560243560443560643560843560a43560c43560e4356101043561012435610144356114b5565b3480156104e357600080fd5b506102a661160d565b3480156104f857600080fd5b506102a6611613565b34801561050d57600080fd5b506102a6611619565b34801561052257600080fd5b5061028f61161f565b34801561053757600080fd5b506102a661168f565b34801561054c57600080fd5b506102a6611695565b34801561056157600080fd5b5061056a61169b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105a457818101518382015260200161058c565b50505050905090810190601f1680156105d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105eb57600080fd5b506102a661191a565b34801561060057600080fd5b506102f7611920565b34801561061557600080fd5b506102a6600435600160a060020a036024351661192f565b34801561063957600080fd5b506102a66119b3565b34801561064e57600080fd5b506102a66119b9565b34801561066357600080fd5b506102a6611a27565b34801561067857600080fd5b506102a6600435600160a060020a0360243516611a2d565b34801561069c57600080fd5b5061035260043560243560443560643560843560a43560c43560e435610104356101243561014435611aa7565b3480156106d557600080fd5b506102a6611bff565b3480156106ea57600080fd5b506102a6611c05565b3480156106ff57600080fd5b506102a6611c0b565b34801561071457600080fd5b506102a6611c11565b34801561072957600080fd5b506102a6611c17565b34801561073e57600080fd5b506102a6611c1d565b34801561075357600080fd5b506102a6611c23565b34801561076857600080fd5b506102a6611c29565b34801561077d57600080fd5b506102a6611c2f565b34801561079257600080fd5b506102a6611c35565b3480156107a757600080fd5b506102a6611c3b565b3480156107bc57600080fd5b50610352611c41565b3480156107d157600080fd5b506102a6611ee6565b3480156107e657600080fd5b506102a6611eec565b61028f600160a060020a036004351661084e565b34801561080f57600080fd5b506102a6611ef2565b34801561082457600080fd5b5061028f600160a060020a0360043516611ef8565b34801561084557600080fd5b506102f7611f90565b34600061085b8383611f9f565b61086482612060565b905061086f81612103565b600160115460ff16600681111561088257fe5b14156108e557600160a060020a0333166000908152602460205260409020546108b1908263ffffffff61219016565b600160a060020a033316600090815260246020526040902055601e546108dd908263ffffffff61219016565b601e556109d1565b600360115460ff1660068111156108f857fe5b141561095b57600160a060020a033316600090815260256020526040902054610927908263ffffffff61219016565b600160a060020a033316600090815260256020526040902055601f54610953908263ffffffff61219016565b601f556109d1565b600560115460ff16600681111561096e57fe5b14156109d157600160a060020a03331660009081526026602052604090205461099d908263ffffffff61219016565b600160a060020a033316600090815260266020908152604090912091909155546109cd908263ffffffff61219016565b6020555b602a546109e4908363ffffffff61219016565b602a556109f1838261219d565b82600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188484604051808381526020018281526020019250505060405180910390a3610a4d826121a7565b505050565b601e5481565b600a5481565b60175481565b6011546101009004600160a060020a031681565b60045481565b60215481565b6000805433600160a060020a03908116911614610aa057600080fd5b600160115460ff166006811115610ab357fe5b14610abd57600080fd5b506011805460ff1916600217905542601a5560015b90565b6000805433600160a060020a03908116911614610af157600080fd5b600060115460ff166006811115610b0457fe5b14610b0e57600080fd5b610b2a633395e5a9670de0b6b3a764000063ffffffff6121f816565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b50511015610bc957600080fd5b60008c11610bd657600080fd5b6011805460ff1916600117905560038c9055610bfa8b670de0b6b3a76400006121f8565b60045560058a9055610c1a89670de0b6b3a764000063ffffffff6121f816565b6006556007889055610c3a87670de0b6b3a764000063ffffffff6121f816565b6008556009869055610c5a85670de0b6b3a764000063ffffffff6121f816565b600a55600b849055610c7a83670de0b6b3a764000063ffffffff6121f816565b600c55600d829055600154600080546017546040805160e060020a63a9059cbb028152600160a060020a039384166004820152602481019290925251919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015610ce557600080fd5b505af1158015610cf9573d6000803e3d6000fd5b505050506040513d6020811015610d0f57600080fd5b50511515610d1c57600080fd5b5060019b9a5050505050505050505050565b60085481565b6000805433600160a060020a03908116911614610d5057600080fd5b600560115460ff166006811115610d6357fe5b14610d6d57600080fd5b506011805460ff1916600617905542601c55600190565b6000805433600160a060020a03908116911614610da057600080fd5b600360115460ff166006811115610db357fe5b14610dbd57600080fd5b506011805460ff1916600417905542601b55600190565b60155481565b602a5481565b600060125460001415610df557506000610ad2565b610e2d6001610e21601354610e156012544261222190919063ffffffff16565b9063ffffffff61223316565b9063ffffffff61219016565b905090565b60105481565b6000610e5a610e5583670de0b6b3a764000063ffffffff6121f816565b612248565b90505b919050565b60075481565b600080610e73610de0565b915060018211610e8257600080fd5b60145460165410610e9257600080fd5b60068210610ea35750601454610eba565b601554610eb790839063ffffffff6121f816565b90505b601454811115610ec957506014545b601654610edd90829063ffffffff61222116565b905060008111610eec57600080fd5b601654610eff908263ffffffff61219016565b6016556001546011546040805160e060020a63a9059cbb028152610100909204600160a060020a03908116600484015260248301859052905192169163a9059cbb916044808201926020929091908290030181600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b50511515610f9a57600080fd5b5050565b60195481565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301529151600093849384938493849392909216916370a082319160248082019260209290919082900301818787803b15801561101757600080fd5b505af115801561102b573d6000803e3d6000fd5b505050506040513d602081101561104157600080fd5b5051601a54909350600010801561106c5750601d54601a5461106a90429063ffffffff61222116565b105b801561108e5750600160a060020a033316600090815260276020526040902054155b80156110b25750600160a060020a0333166000908152602460205260409020548310155b1561119757600160a060020a0333166000908152602460205260409020546110e190849063ffffffff61222116565b92506110fa601e54600e5461222190919063ffffffff16565b601e54600160a060020a03331660009081526024602052604090205491925061112e91610e1590849063ffffffff6121f816565b9150611140848363ffffffff61219016565b600160a060020a0333166000908152602760205260409020839055602154909450611171908363ffffffff61219016565b602155601e54600e546111899163ffffffff61222116565b602154111561119757600080fd5b6000601b541180156111bd5750601d54601b546111bb90429063ffffffff61222116565b105b80156111df5750600160a060020a033316600090815260286020526040902054155b80156112035750600160a060020a0333166000908152602560205260409020548310155b156112e857600160a060020a03331660009081526025602052604090205461123290849063ffffffff61222116565b925061124b601f54600f5461222190919063ffffffff16565b601f54600160a060020a03331660009081526025602052604090205491925061127f91610e1590849063ffffffff6121f816565b9150611291848363ffffffff61219016565b600160a060020a03331660009081526028602052604090208390556022549094506112c2908363ffffffff61219016565b602255601f54600f546112da9163ffffffff61222116565b60225411156112e857600080fd5b6000601c5411801561130e5750601d54601c5461130c90429063ffffffff61222116565b105b80156113305750600160a060020a033316600090815260296020526040902054155b80156113545750600160a060020a0333166000908152602660205260409020548310155b1561140d5760205460105461136e9163ffffffff61222116565b60208054600160a060020a033316600090815260269092526040909120549192506113a491610e1590849063ffffffff6121f816565b91506113b6848363ffffffff61219016565b600160a060020a03331660009081526029602052604090208390556023549094506113e7908363ffffffff61219016565b6023556020546010546113ff9163ffffffff61222116565b602354111561140d57600080fd5b6000841161141a57600080fd5b6001546040805160e060020a63a9059cbb028152600160a060020a033381166004830152602482018890529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b505050506040513d602081101561149d57600080fd5b505115156114aa57600080fd5b600194505050505090565b6000805433600160a060020a039081169116146114d157600080fd5b600260115460ff1660068111156114e457fe5b146114ee57600080fd5b6011805460ff1916600317905560008c111561150a5760038c90555b6115228b670de0b6b3a764000063ffffffff6121f816565b60045560058a905561154289670de0b6b3a764000063ffffffff6121f816565b600655600788905561156287670de0b6b3a764000063ffffffff6121f816565b600855600986905561158285670de0b6b3a764000063ffffffff6121f816565b600a55600b8490556115a283670de0b6b3a764000063ffffffff6121f816565b600c55600d829055600154600080546018546040805160e060020a63a9059cbb028152600160a060020a039384166004820152602481019290925251919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015610ce557600080fd5b600c5481565b600d5481565b601b5481565b60005433600160a060020a0390811691161461163a57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60135481565b601a5481565b6060600060115460ff1660068111156116b057fe5b14156116f0575060408051808201909152601681527f49434f206973206e6f74207374617274656420796574000000000000000000006020820152610ad2565b600160115460ff16600681111561170357fe5b1415611743575060408051808201909152600581527f49434f20310000000000000000000000000000000000000000000000000000006020820152610ad2565b600260115460ff16600681111561175657fe5b1415611796575060408051808201909152600981527f49434f203120656e6400000000000000000000000000000000000000000000006020820152610ad2565b600360115460ff1660068111156117a957fe5b14156117e9575060408051808201909152600581527f49434f20320000000000000000000000000000000000000000000000000000006020820152610ad2565b600460115460ff1660068111156117fc57fe5b141561183c575060408051808201909152600981527f49434f203220656e6400000000000000000000000000000000000000000000006020820152610ad2565b600560115460ff16600681111561184f57fe5b141561188f575060408051808201909152600581527f49434f20330000000000000000000000000000000000000000000000000000006020820152610ad2565b600660115460ff1660068111156118a257fe5b14156118e2575060408051808201909152600981527f49434f203320656e6400000000000000000000000000000000000000000000006020820152610ad2565b5060408051808201909152600981527f556e646566696e65640000000000000000000000000000000000000000000000602082015290565b600b5481565b600054600160a060020a031681565b600082600114156119595750600160a060020a0381166000908152602460205260409020546119ad565b82600214156119815750600160a060020a0381166000908152602560205260409020546119ad565b82600314156119a95750600160a060020a0381166000908152602660205260409020546119ad565b5060005b92915050565b601c5481565b6000600160115460ff1660068111156119ce57fe5b14156119dd5750600354610ad2565b600360115460ff1660068111156119f057fe5b14156119ff5750600354610ad2565b600560115460ff166006811115611a1257fe5b1415611a215750600354610ad2565b50600090565b600f5481565b60008260011415611a575750600160a060020a0381166000908152602760205260409020546119ad565b8260021415611a7f5750600160a060020a0381166000908152602860205260409020546119ad565b82600314156119a95750600160a060020a0381166000908152602960205260409020546119ad565b6000805433600160a060020a03908116911614611ac357600080fd5b600460115460ff166006811115611ad657fe5b14611ae057600080fd5b6011805460ff1916600517905560008c1115611afc5760038c90555b611b148b670de0b6b3a764000063ffffffff6121f816565b60045560058a9055611b3489670de0b6b3a764000063ffffffff6121f816565b6006556007889055611b5487670de0b6b3a764000063ffffffff6121f816565b6008556009869055611b7485670de0b6b3a764000063ffffffff6121f816565b600a55600b849055611b9483670de0b6b3a764000063ffffffff6121f816565b600c55600d829055600154600080546019546040805160e060020a63a9059cbb028152600160a060020a039384166004820152602481019290925251919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015610ce557600080fd5b60125481565b60225481565b60185481565b600e5481565b60095481565b60035481565b60145481565b60165481565b601d5481565b60055481565b60065481565b600080548190819033600160a060020a03908116911614611c6157600080fd5b600091506000601a54118015611c8b5750601d54601a54611c8990429063ffffffff61222116565b115b8015611cac5750601e54600e54611ca79163ffffffff61222116565b602154105b15611d0957611cda602154611cce601e54600e5461222190919063ffffffff16565b9063ffffffff61222116565b9050611cec828263ffffffff61219016565b9150611d05601e54600e5461222190919063ffffffff16565b6021555b6000601b54118015611d2f5750601d54601b54611d2d90429063ffffffff61222116565b115b8015611d505750601e54600f54611d4b9163ffffffff61222116565b602254105b15611da157611d72602254611cce601f54600f5461222190919063ffffffff16565b9050611d84828263ffffffff61219016565b9150611d9d601f54600f5461222190919063ffffffff16565b6022555b6000601c54118015611dc75750601d54601c54611dc590429063ffffffff61222116565b115b8015611de85750602054601054611de39163ffffffff61222116565b602354105b15611e3957611e0a602354611cce60205460105461222190919063ffffffff16565b9050611e1c828263ffffffff61219016565b9150611e3560205460105461222190919063ffffffff16565b6023555b60008211611e4657600080fd5b600154600080546040805160e060020a63a9059cbb028152600160a060020a039283166004820152602481018790529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015611ea657600080fd5b505af1158015611eba573d6000803e3d6000fd5b505050506040513d6020811015611ed057600080fd5b50511515611edd57600080fd5b60019250505090565b60235481565b60205481565b601f5481565b60005433600160a060020a03908116911614611f1357600080fd5b600160a060020a0381161515611f2857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b600160a060020a0382161515611fb457600080fd5b67016345785d8a0000811015611fc957600080fd5b600160115460ff166006811115611fdc57fe5b1415611ffd57683635c9adc5dea00000811115611ff857600080fd5b610f9a565b600360115460ff16600681111561201057fe5b141561202c57681b1ae4d6e2ef500000811115611ff857600080fd5b600560115460ff16600681111561203f57fe5b141561205b57681b1ae4d6e2ef500000811115611ff857600080fd5b600080fd5b600354600090818080612079868563ffffffff6121f816565b925061208486612248565b915060008211156120b9576120a46064610e15858563ffffffff6121f816565b90506120b6838263ffffffff61219016565b92505b604080518581526020810184905280820185905290517f7cc8a87f4d102e6dc62e1fee572de75e79185381eba451840e8b026937a869109181900360600190a15090949350505050565b6000811161211057600080fd5b600160115460ff16600681111561212357fe5b141561213d57600e5481111561213857600080fd5b61218d565b600360115460ff16600681111561215057fe5b141561216557600f5481111561213857600080fd5b600560115460ff16600681111561217857fe5b141561218d5760105481111561218d57600080fd5b50565b818101828110156119ad57fe5b610f9a8282612303565b600254600160a060020a031615156121be57600080fd5b600254604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610f9a573d6000803e3d6000fd5b6000821515612209575060006119ad565b5081810281838281151561221957fe5b04146119ad57fe5b60008282111561222d57fe5b50900390565b6000818381151561224057fe5b049392505050565b6000600160115460ff16600681111561225d57fe5b14806122795750600360115460ff16600681111561227757fe5b145b806122945750600560115460ff16600681111561229257fe5b145b156122fb5760045482106122ab5750600554610e5d565b60065482106122bd5750600754610e5d565b60085482106122cf5750600954610e5d565b600a5482106122e15750600b54610e5d565b600c5482106122f35750600d54610e5d565b506000610e5d565b506000919050565b6001546040805160e060020a63a9059cbb028152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610f6357600080fd00a165627a7a723058202ae42fbe46c2dd86c3b0483244e1fde335e86888c6773b1532d71d028451e4ec00290000000000000000000000008b906a2dcf3cbc4d3614bcfe9b921ad129c418b6000000000000000000000000f5728d9aba555e4b16e023db42bb8553794720e400000000000000000000000087f0e615ab8e7d5da906036b7efdd5af5ff6a9b7

Deployed Bytecode

0x6080604052600436106102865763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662d4b959811461029157806304b370ab146102b85780631b476945146102cd5780631c75f085146102e25780632298b9ce1461031357806324c0db841461032857806328d423501461033d5780632d0d482714610366578063300d9e901461039f57806330fbe411146103b4578063341bcbc1146103c957806336a3668a146103de5780634042b66f146103f357806345fa404514610408578063491737f21461041d5780634aa66b28146104325780634aaceed31461044a5780635403a0e51461045f578063581d1d041461047457806363a3c4521461048957806365f970821461049e5780636889cf86146104d75780636c1f27fe146104ec578063713955e814610501578063715018a6146105165780637313ee5a1461052b578063797bfaf31461054057806382f4ef731461055557806387a3e445146105df5780638da5cb5b146105f45780638f7d7384146106095780638fc6bf7f1461062d57806398d5fdca146106425780639bfba3c6146106575780639cc3e4b41461066c5780639e33118814610690578063a8660a78146106c9578063afef07da146106de578063b155c7d6146106f3578063b298485814610708578063b412b4451461071d578063c0b241d714610732578063c3e3c7bc14610747578063cd8817421461075c578063cda3c00114610771578063d531eeaa14610786578063d723879c1461079b578063d7d1bdbd146107b0578063d8e71b35146107c5578063e644d886146107da578063ec8ac4d8146107ef578063f0e5eeac14610803578063f2fde38b14610818578063fc0c546a14610839575b61028f3361084e565b005b34801561029d57600080fd5b506102a6610a52565b60408051918252519081900360200190f35b3480156102c457600080fd5b506102a6610a58565b3480156102d957600080fd5b506102a6610a5e565b3480156102ee57600080fd5b506102f7610a64565b60408051600160a060020a039092168252519081900360200190f35b34801561031f57600080fd5b506102a6610a78565b34801561033457600080fd5b506102a6610a7e565b34801561034957600080fd5b50610352610a84565b604080519115158252519081900360200190f35b34801561037257600080fd5b5061035260043560243560443560643560843560a43560c43560e435610104356101243561014435610ad5565b3480156103ab57600080fd5b506102a6610d2e565b3480156103c057600080fd5b50610352610d34565b3480156103d557600080fd5b50610352610d84565b3480156103ea57600080fd5b506102a6610dd4565b3480156103ff57600080fd5b506102a6610dda565b34801561041457600080fd5b506102a6610de0565b34801561042957600080fd5b506102a6610e32565b34801561043e57600080fd5b506102a6600435610e38565b34801561045657600080fd5b506102a6610e62565b34801561046b57600080fd5b5061028f610e68565b34801561048057600080fd5b506102a6610f9e565b34801561049557600080fd5b50610352610fa4565b3480156104aa57600080fd5b5061035260043560243560443560643560843560a43560c43560e4356101043561012435610144356114b5565b3480156104e357600080fd5b506102a661160d565b3480156104f857600080fd5b506102a6611613565b34801561050d57600080fd5b506102a6611619565b34801561052257600080fd5b5061028f61161f565b34801561053757600080fd5b506102a661168f565b34801561054c57600080fd5b506102a6611695565b34801561056157600080fd5b5061056a61169b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105a457818101518382015260200161058c565b50505050905090810190601f1680156105d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105eb57600080fd5b506102a661191a565b34801561060057600080fd5b506102f7611920565b34801561061557600080fd5b506102a6600435600160a060020a036024351661192f565b34801561063957600080fd5b506102a66119b3565b34801561064e57600080fd5b506102a66119b9565b34801561066357600080fd5b506102a6611a27565b34801561067857600080fd5b506102a6600435600160a060020a0360243516611a2d565b34801561069c57600080fd5b5061035260043560243560443560643560843560a43560c43560e435610104356101243561014435611aa7565b3480156106d557600080fd5b506102a6611bff565b3480156106ea57600080fd5b506102a6611c05565b3480156106ff57600080fd5b506102a6611c0b565b34801561071457600080fd5b506102a6611c11565b34801561072957600080fd5b506102a6611c17565b34801561073e57600080fd5b506102a6611c1d565b34801561075357600080fd5b506102a6611c23565b34801561076857600080fd5b506102a6611c29565b34801561077d57600080fd5b506102a6611c2f565b34801561079257600080fd5b506102a6611c35565b3480156107a757600080fd5b506102a6611c3b565b3480156107bc57600080fd5b50610352611c41565b3480156107d157600080fd5b506102a6611ee6565b3480156107e657600080fd5b506102a6611eec565b61028f600160a060020a036004351661084e565b34801561080f57600080fd5b506102a6611ef2565b34801561082457600080fd5b5061028f600160a060020a0360043516611ef8565b34801561084557600080fd5b506102f7611f90565b34600061085b8383611f9f565b61086482612060565b905061086f81612103565b600160115460ff16600681111561088257fe5b14156108e557600160a060020a0333166000908152602460205260409020546108b1908263ffffffff61219016565b600160a060020a033316600090815260246020526040902055601e546108dd908263ffffffff61219016565b601e556109d1565b600360115460ff1660068111156108f857fe5b141561095b57600160a060020a033316600090815260256020526040902054610927908263ffffffff61219016565b600160a060020a033316600090815260256020526040902055601f54610953908263ffffffff61219016565b601f556109d1565b600560115460ff16600681111561096e57fe5b14156109d157600160a060020a03331660009081526026602052604090205461099d908263ffffffff61219016565b600160a060020a033316600090815260266020908152604090912091909155546109cd908263ffffffff61219016565b6020555b602a546109e4908363ffffffff61219016565b602a556109f1838261219d565b82600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188484604051808381526020018281526020019250505060405180910390a3610a4d826121a7565b505050565b601e5481565b600a5481565b60175481565b6011546101009004600160a060020a031681565b60045481565b60215481565b6000805433600160a060020a03908116911614610aa057600080fd5b600160115460ff166006811115610ab357fe5b14610abd57600080fd5b506011805460ff1916600217905542601a5560015b90565b6000805433600160a060020a03908116911614610af157600080fd5b600060115460ff166006811115610b0457fe5b14610b0e57600080fd5b610b2a633395e5a9670de0b6b3a764000063ffffffff6121f816565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a033081166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b50511015610bc957600080fd5b60008c11610bd657600080fd5b6011805460ff1916600117905560038c9055610bfa8b670de0b6b3a76400006121f8565b60045560058a9055610c1a89670de0b6b3a764000063ffffffff6121f816565b6006556007889055610c3a87670de0b6b3a764000063ffffffff6121f816565b6008556009869055610c5a85670de0b6b3a764000063ffffffff6121f816565b600a55600b849055610c7a83670de0b6b3a764000063ffffffff6121f816565b600c55600d829055600154600080546017546040805160e060020a63a9059cbb028152600160a060020a039384166004820152602481019290925251919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015610ce557600080fd5b505af1158015610cf9573d6000803e3d6000fd5b505050506040513d6020811015610d0f57600080fd5b50511515610d1c57600080fd5b5060019b9a5050505050505050505050565b60085481565b6000805433600160a060020a03908116911614610d5057600080fd5b600560115460ff166006811115610d6357fe5b14610d6d57600080fd5b506011805460ff1916600617905542601c55600190565b6000805433600160a060020a03908116911614610da057600080fd5b600360115460ff166006811115610db357fe5b14610dbd57600080fd5b506011805460ff1916600417905542601b55600190565b60155481565b602a5481565b600060125460001415610df557506000610ad2565b610e2d6001610e21601354610e156012544261222190919063ffffffff16565b9063ffffffff61223316565b9063ffffffff61219016565b905090565b60105481565b6000610e5a610e5583670de0b6b3a764000063ffffffff6121f816565b612248565b90505b919050565b60075481565b600080610e73610de0565b915060018211610e8257600080fd5b60145460165410610e9257600080fd5b60068210610ea35750601454610eba565b601554610eb790839063ffffffff6121f816565b90505b601454811115610ec957506014545b601654610edd90829063ffffffff61222116565b905060008111610eec57600080fd5b601654610eff908263ffffffff61219016565b6016556001546011546040805160e060020a63a9059cbb028152610100909204600160a060020a03908116600484015260248301859052905192169163a9059cbb916044808201926020929091908290030181600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b50511515610f9a57600080fd5b5050565b60195481565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301529151600093849384938493849392909216916370a082319160248082019260209290919082900301818787803b15801561101757600080fd5b505af115801561102b573d6000803e3d6000fd5b505050506040513d602081101561104157600080fd5b5051601a54909350600010801561106c5750601d54601a5461106a90429063ffffffff61222116565b105b801561108e5750600160a060020a033316600090815260276020526040902054155b80156110b25750600160a060020a0333166000908152602460205260409020548310155b1561119757600160a060020a0333166000908152602460205260409020546110e190849063ffffffff61222116565b92506110fa601e54600e5461222190919063ffffffff16565b601e54600160a060020a03331660009081526024602052604090205491925061112e91610e1590849063ffffffff6121f816565b9150611140848363ffffffff61219016565b600160a060020a0333166000908152602760205260409020839055602154909450611171908363ffffffff61219016565b602155601e54600e546111899163ffffffff61222116565b602154111561119757600080fd5b6000601b541180156111bd5750601d54601b546111bb90429063ffffffff61222116565b105b80156111df5750600160a060020a033316600090815260286020526040902054155b80156112035750600160a060020a0333166000908152602560205260409020548310155b156112e857600160a060020a03331660009081526025602052604090205461123290849063ffffffff61222116565b925061124b601f54600f5461222190919063ffffffff16565b601f54600160a060020a03331660009081526025602052604090205491925061127f91610e1590849063ffffffff6121f816565b9150611291848363ffffffff61219016565b600160a060020a03331660009081526028602052604090208390556022549094506112c2908363ffffffff61219016565b602255601f54600f546112da9163ffffffff61222116565b60225411156112e857600080fd5b6000601c5411801561130e5750601d54601c5461130c90429063ffffffff61222116565b105b80156113305750600160a060020a033316600090815260296020526040902054155b80156113545750600160a060020a0333166000908152602660205260409020548310155b1561140d5760205460105461136e9163ffffffff61222116565b60208054600160a060020a033316600090815260269092526040909120549192506113a491610e1590849063ffffffff6121f816565b91506113b6848363ffffffff61219016565b600160a060020a03331660009081526029602052604090208390556023549094506113e7908363ffffffff61219016565b6023556020546010546113ff9163ffffffff61222116565b602354111561140d57600080fd5b6000841161141a57600080fd5b6001546040805160e060020a63a9059cbb028152600160a060020a033381166004830152602482018890529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b505050506040513d602081101561149d57600080fd5b505115156114aa57600080fd5b600194505050505090565b6000805433600160a060020a039081169116146114d157600080fd5b600260115460ff1660068111156114e457fe5b146114ee57600080fd5b6011805460ff1916600317905560008c111561150a5760038c90555b6115228b670de0b6b3a764000063ffffffff6121f816565b60045560058a905561154289670de0b6b3a764000063ffffffff6121f816565b600655600788905561156287670de0b6b3a764000063ffffffff6121f816565b600855600986905561158285670de0b6b3a764000063ffffffff6121f816565b600a55600b8490556115a283670de0b6b3a764000063ffffffff6121f816565b600c55600d829055600154600080546018546040805160e060020a63a9059cbb028152600160a060020a039384166004820152602481019290925251919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015610ce557600080fd5b600c5481565b600d5481565b601b5481565b60005433600160a060020a0390811691161461163a57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60135481565b601a5481565b6060600060115460ff1660068111156116b057fe5b14156116f0575060408051808201909152601681527f49434f206973206e6f74207374617274656420796574000000000000000000006020820152610ad2565b600160115460ff16600681111561170357fe5b1415611743575060408051808201909152600581527f49434f20310000000000000000000000000000000000000000000000000000006020820152610ad2565b600260115460ff16600681111561175657fe5b1415611796575060408051808201909152600981527f49434f203120656e6400000000000000000000000000000000000000000000006020820152610ad2565b600360115460ff1660068111156117a957fe5b14156117e9575060408051808201909152600581527f49434f20320000000000000000000000000000000000000000000000000000006020820152610ad2565b600460115460ff1660068111156117fc57fe5b141561183c575060408051808201909152600981527f49434f203220656e6400000000000000000000000000000000000000000000006020820152610ad2565b600560115460ff16600681111561184f57fe5b141561188f575060408051808201909152600581527f49434f20330000000000000000000000000000000000000000000000000000006020820152610ad2565b600660115460ff1660068111156118a257fe5b14156118e2575060408051808201909152600981527f49434f203320656e6400000000000000000000000000000000000000000000006020820152610ad2565b5060408051808201909152600981527f556e646566696e65640000000000000000000000000000000000000000000000602082015290565b600b5481565b600054600160a060020a031681565b600082600114156119595750600160a060020a0381166000908152602460205260409020546119ad565b82600214156119815750600160a060020a0381166000908152602560205260409020546119ad565b82600314156119a95750600160a060020a0381166000908152602660205260409020546119ad565b5060005b92915050565b601c5481565b6000600160115460ff1660068111156119ce57fe5b14156119dd5750600354610ad2565b600360115460ff1660068111156119f057fe5b14156119ff5750600354610ad2565b600560115460ff166006811115611a1257fe5b1415611a215750600354610ad2565b50600090565b600f5481565b60008260011415611a575750600160a060020a0381166000908152602760205260409020546119ad565b8260021415611a7f5750600160a060020a0381166000908152602860205260409020546119ad565b82600314156119a95750600160a060020a0381166000908152602960205260409020546119ad565b6000805433600160a060020a03908116911614611ac357600080fd5b600460115460ff166006811115611ad657fe5b14611ae057600080fd5b6011805460ff1916600517905560008c1115611afc5760038c90555b611b148b670de0b6b3a764000063ffffffff6121f816565b60045560058a9055611b3489670de0b6b3a764000063ffffffff6121f816565b6006556007889055611b5487670de0b6b3a764000063ffffffff6121f816565b6008556009869055611b7485670de0b6b3a764000063ffffffff6121f816565b600a55600b849055611b9483670de0b6b3a764000063ffffffff6121f816565b600c55600d829055600154600080546019546040805160e060020a63a9059cbb028152600160a060020a039384166004820152602481019290925251919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015610ce557600080fd5b60125481565b60225481565b60185481565b600e5481565b60095481565b60035481565b60145481565b60165481565b601d5481565b60055481565b60065481565b600080548190819033600160a060020a03908116911614611c6157600080fd5b600091506000601a54118015611c8b5750601d54601a54611c8990429063ffffffff61222116565b115b8015611cac5750601e54600e54611ca79163ffffffff61222116565b602154105b15611d0957611cda602154611cce601e54600e5461222190919063ffffffff16565b9063ffffffff61222116565b9050611cec828263ffffffff61219016565b9150611d05601e54600e5461222190919063ffffffff16565b6021555b6000601b54118015611d2f5750601d54601b54611d2d90429063ffffffff61222116565b115b8015611d505750601e54600f54611d4b9163ffffffff61222116565b602254105b15611da157611d72602254611cce601f54600f5461222190919063ffffffff16565b9050611d84828263ffffffff61219016565b9150611d9d601f54600f5461222190919063ffffffff16565b6022555b6000601c54118015611dc75750601d54601c54611dc590429063ffffffff61222116565b115b8015611de85750602054601054611de39163ffffffff61222116565b602354105b15611e3957611e0a602354611cce60205460105461222190919063ffffffff16565b9050611e1c828263ffffffff61219016565b9150611e3560205460105461222190919063ffffffff16565b6023555b60008211611e4657600080fd5b600154600080546040805160e060020a63a9059cbb028152600160a060020a039283166004820152602481018790529051919093169263a9059cbb9260448083019360209390929083900390910190829087803b158015611ea657600080fd5b505af1158015611eba573d6000803e3d6000fd5b505050506040513d6020811015611ed057600080fd5b50511515611edd57600080fd5b60019250505090565b60235481565b60205481565b601f5481565b60005433600160a060020a03908116911614611f1357600080fd5b600160a060020a0381161515611f2857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b600160a060020a0382161515611fb457600080fd5b67016345785d8a0000811015611fc957600080fd5b600160115460ff166006811115611fdc57fe5b1415611ffd57683635c9adc5dea00000811115611ff857600080fd5b610f9a565b600360115460ff16600681111561201057fe5b141561202c57681b1ae4d6e2ef500000811115611ff857600080fd5b600560115460ff16600681111561203f57fe5b141561205b57681b1ae4d6e2ef500000811115611ff857600080fd5b600080fd5b600354600090818080612079868563ffffffff6121f816565b925061208486612248565b915060008211156120b9576120a46064610e15858563ffffffff6121f816565b90506120b6838263ffffffff61219016565b92505b604080518581526020810184905280820185905290517f7cc8a87f4d102e6dc62e1fee572de75e79185381eba451840e8b026937a869109181900360600190a15090949350505050565b6000811161211057600080fd5b600160115460ff16600681111561212357fe5b141561213d57600e5481111561213857600080fd5b61218d565b600360115460ff16600681111561215057fe5b141561216557600f5481111561213857600080fd5b600560115460ff16600681111561217857fe5b141561218d5760105481111561218d57600080fd5b50565b818101828110156119ad57fe5b610f9a8282612303565b600254600160a060020a031615156121be57600080fd5b600254604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610f9a573d6000803e3d6000fd5b6000821515612209575060006119ad565b5081810281838281151561221957fe5b04146119ad57fe5b60008282111561222d57fe5b50900390565b6000818381151561224057fe5b049392505050565b6000600160115460ff16600681111561225d57fe5b14806122795750600360115460ff16600681111561227757fe5b145b806122945750600560115460ff16600681111561229257fe5b145b156122fb5760045482106122ab5750600554610e5d565b60065482106122bd5750600754610e5d565b60085482106122cf5750600954610e5d565b600a5482106122e15750600b54610e5d565b600c5482106122f35750600d54610e5d565b506000610e5d565b506000919050565b6001546040805160e060020a63a9059cbb028152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610f6357600080fd00a165627a7a723058202ae42fbe46c2dd86c3b0483244e1fde335e86888c6773b1532d71d028451e4ec0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000008b906a2dcf3cbc4d3614bcfe9b921ad129c418b6000000000000000000000000f5728d9aba555e4b16e023db42bb8553794720e400000000000000000000000087f0e615ab8e7d5da906036b7efdd5af5ff6a9b7

-----Decoded View---------------
Arg [0] : _owner (address): 0x8b906A2DcF3cBC4d3614bCfE9B921Ad129C418B6
Arg [1] : _wallet (address): 0xf5728D9Aba555e4b16E023db42bb8553794720e4
Arg [2] : _token (address): 0x87F0E615aB8E7D5da906036B7efdd5af5FF6A9b7

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008b906a2dcf3cbc4d3614bcfe9b921ad129c418b6
Arg [1] : 000000000000000000000000f5728d9aba555e4b16e023db42bb8553794720e4
Arg [2] : 00000000000000000000000087f0e615ab8e7d5da906036b7efdd5af5ff6a9b7


Swarm Source

bzzr://2ae42fbe46c2dd86c3b0483244e1fde335e86888c6773b1532d71d028451e4ec

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

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.