ETH Price: $1,926.35 (-5.65%)
 

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
Transfer Token O...77333922019-05-10 14:51:172485 days ago1557499877IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0009914730
Start Transfer55235362018-04-29 0:56:512862 days ago1524963411IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0008994330
Mint And Allocat...55149042018-04-27 12:55:452863 days ago1524833745IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...55030172018-04-25 11:33:312865 days ago1524656011IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...54561982018-04-17 10:03:422873 days ago1523959422IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...53238092018-03-26 6:52:052895 days ago1522047125IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017665230
Mint And Allocat...53238092018-03-26 6:52:052895 days ago1522047125IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001314630
Mint And Allocat...53010512018-03-22 12:11:152899 days ago1521720675IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...53010512018-03-22 12:11:152899 days ago1521720675IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017665230
Transfer52922812018-03-21 0:51:252901 days ago1521593485IN
0x5Af9Ec6d...dEb000B31
0.62 ETH00.00017
Mint And Allocat...52640712018-03-16 6:33:312905 days ago1521182011IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...52640672018-03-16 6:31:332905 days ago1521181893IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...52640592018-03-16 6:29:362905 days ago1521181776IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0013126830
Mint And Allocat...52640522018-03-16 6:27:402905 days ago1521181660IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0013107630
Mint And Allocat...52640492018-03-16 6:25:492905 days ago1521181549IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0013107630
Mint And Allocat...52640442018-03-16 6:24:262905 days ago1521181466IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017607630
Transfer52116392018-03-07 8:38:442914 days ago1520411924IN
0x5Af9Ec6d...dEb000B31
0.62 ETH0.0012660
Mint And Allocat...52114382018-03-07 7:43:442914 days ago1520408624IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017626830
Mint And Allocat...52114272018-03-07 7:42:022914 days ago1520408522IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...52114172018-03-07 7:39:472914 days ago1520408387IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017626830
Mint And Allocat...52113972018-03-07 7:36:122914 days ago1520408172IN
0x5Af9Ec6d...dEb000B31
0 ETH0.001764630
Mint And Allocat...52113882018-03-07 7:33:262914 days ago1520408006IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017665230
Mint And Allocat...52113592018-03-07 7:26:572914 days ago1520407617IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017665230
Mint And Allocat...52113522018-03-07 7:24:582914 days ago1520407498IN
0x5Af9Ec6d...dEb000B31
0 ETH0.0017607630
Transfer52105492018-03-07 4:15:232915 days ago1520396123IN
0x5Af9Ec6d...dEb000B31
0.2 ETH0.0014128141
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer52020042018-03-05 17:30:022916 days ago1520271002
0x5Af9Ec6d...dEb000B31
108.74388246 ETH
Transfer52020042018-03-05 17:30:022916 days ago1520271002
0x5Af9Ec6d...dEb000B31
146.25611753 ETH
Transfer52020042018-03-05 17:30:022916 days ago1520271002
0x5Af9Ec6d...dEb000B31
278 ETH
Transfer52020032018-03-05 17:29:312916 days ago1520270971
0x5Af9Ec6d...dEb000B31
0.5 ETH
Transfer52019992018-03-05 17:28:312916 days ago1520270911
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019962018-03-05 17:28:052916 days ago1520270885
0x5Af9Ec6d...dEb000B31
0.61 ETH
Transfer52019942018-03-05 17:27:432916 days ago1520270863
0x5Af9Ec6d...dEb000B31
0.5 ETH
Transfer52019932018-03-05 17:27:142916 days ago1520270834
0x5Af9Ec6d...dEb000B31
0.6198 ETH
Transfer52019892018-03-05 17:26:362916 days ago1520270796
0x5Af9Ec6d...dEb000B31
0.53523475 ETH
Transfer52019832018-03-05 17:25:452916 days ago1520270745
0x5Af9Ec6d...dEb000B31
0.48 ETH
Transfer52019822018-03-05 17:25:222916 days ago1520270722
0x5Af9Ec6d...dEb000B31
0.6019065 ETH
Transfer52019822018-03-05 17:25:222916 days ago1520270722
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019792018-03-05 17:24:372916 days ago1520270677
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019792018-03-05 17:24:372916 days ago1520270677
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019792018-03-05 17:24:372916 days ago1520270677
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019772018-03-05 17:23:292916 days ago1520270609
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019762018-03-05 17:23:182916 days ago1520270598
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019762018-03-05 17:23:182916 days ago1520270598
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019752018-03-05 17:23:092916 days ago1520270589
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019752018-03-05 17:23:092916 days ago1520270589
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019742018-03-05 17:22:202916 days ago1520270540
0x5Af9Ec6d...dEb000B31
0.2 ETH
Transfer52019712018-03-05 17:21:292916 days ago1520270489
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019682018-03-05 17:21:032916 days ago1520270463
0x5Af9Ec6d...dEb000B31
0.62 ETH
Transfer52019562018-03-05 17:18:132916 days ago1520270293
0x5Af9Ec6d...dEb000B31
0.57 ETH
Transfer52019512018-03-05 17:17:372916 days ago1520270257
0x5Af9Ec6d...dEb000B31
0.62 ETH
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:
ZebiMainCrowdsale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.18;


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() 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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}



/**
 * @title ERC20Basic
 */
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);
}




/**
 * @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) {
    if (a == 0) {
      return 0;
    }
    uint256 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 c;
  }

  /**
  * @dev Substracts 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) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


/**
 * @title Basic token
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  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;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }

}



contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  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;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  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;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  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;
  }

}





/**
 * @title Mintable token
 */
contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();
  event Burn(address sender,uint256 tokencount);

  bool public mintingFinished = false ;
  bool public transferAllowed = false ;

  modifier canMint() {
    require(!mintingFinished);
    _;
  }
 
  
  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(address(0), _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner canMint public returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
  
  function resumeMinting() onlyOwner public returns (bool) {
    mintingFinished = false;
    return true;
  }

  function burn(address _from) external onlyOwner returns (bool success) {
	require(balances[_from] != 0);
    uint256 tokencount = balances[_from];
	//address sender = _from;
	balances[_from] = 0;
    totalSupply_ = totalSupply_.sub(tokencount);
    Burn(_from, tokencount);
    return true;
  }


function startTransfer() external onlyOwner
  {
  transferAllowed = true ;
  }
  
  
  function endTransfer() external onlyOwner
  {
  transferAllowed = false ;
  }


function transfer(address _to, uint256 _value) public returns (bool) {
require(transferAllowed);
super.transfer(_to,_value);
return true;
}

function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(transferAllowed);
super.transferFrom(_from,_to,_value);
return true;
}


}


  
contract ZebiCoin is MintableToken {
  string public constant name = "Zebi Coin";
  string public constant symbol = "ZCO";
  uint64 public constant decimals = 8;
}




/**
 * @title ZCrowdsale
*/
contract ZCrowdsale is Ownable{
  using SafeMath for uint256;

  // The token being sold
   MintableToken public token;
   
  uint64 public tokenDecimals;

  // start and end timestamps where investments are allowed (both inclusive)
  uint256 public startTime;
  uint256 public endTime;
  uint256 public minTransAmount;
  uint256 public mintedTokensCap; //max 87 million tokens in presale.
  
   //contribution
  mapping(address => uint256) contribution;
  
  //bad contributor
  mapping(address => bool) cancelledList;

  // address where funds are collected
  address public wallet;

  bool public withinRefundPeriod; 
  
  // how many token units a buyer gets per ether
  uint256 public ETHtoZCOrate;

  // amount of raised money in wei without factoring refunds
  uint256 public weiRaised;
  
  bool public stopped;
  
   modifier stopInEmergency {
    require (!stopped);
    _;
  }
  
  
  
  modifier inCancelledList {
    require(cancelledList[msg.sender]);
    _;
  }
  
  modifier inRefundPeriod {
  require(withinRefundPeriod);
  _;
 }  

  /**
   * event for token purchase logging
   */
  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
  
  event TakeEth(address sender,uint256 value);
  
  event Withdraw(uint256 _value);
  
  event SetParticipantStatus(address _participant);
   
  event Refund(address sender,uint256 refundBalance);


  function ZCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _ETHtoZCOrate, address _wallet,uint256 _minTransAmount,uint256 _mintedTokensCap) public {
  
	require(_startTime >= now);
    require(_endTime >= _startTime);
    require(_ETHtoZCOrate > 0);
    require(_wallet != address(0));
	
	token = new ZebiCoin();
	//token = createTokenContract();
    startTime = _startTime;
    endTime = _endTime;
    ETHtoZCOrate = _ETHtoZCOrate;
    wallet = _wallet;
    minTransAmount = _minTransAmount;
	tokenDecimals = 8;
    mintedTokensCap = _mintedTokensCap.mul(10**tokenDecimals);            // mintedTokensCap is in Zwei 
	
  }

  // fallback function can be used to buy tokens
  function () external payable {
    buyTokens(msg.sender);
  }
  
    function finishMint() onlyOwner public returns (bool) {
    token.finishMinting();
    return true;
  }
  
  function resumeMint() onlyOwner public returns (bool) {
    token.resumeMinting();
    return true;
  }
 
 
  function startTransfer() external onlyOwner
  {
  token.startTransfer() ;
  }
  
  
   function endTransfer() external onlyOwner
  {
  token.endTransfer() ;
  }
  
  function transferTokenOwnership(address owner) external onlyOwner
  {
    
	token.transferOwnership(owner);
  }
  
   
  function viewCancelledList(address participant) public view returns(bool){
  return cancelledList[participant];
  
  }  

  // low level token purchase function
  function buyTokens(address beneficiary) public payable {
    require(beneficiary != address(0));
    require(validPurchase());

    uint256 weiAmount = msg.value;

    // calculate token amount to be created
    uint256 tokens = getTokenAmount(weiAmount);
   
    // update state
    weiRaised = weiRaised.add(weiAmount);
    token.mint(beneficiary, tokens);
	contribution[beneficiary] = contribution[beneficiary].add(weiAmount);
    TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);

    forwardFunds();
  }

  
  // creates the token to be sold.
  // override this method to have crowdsale of a specific mintable token.
  //function createTokenContract() internal returns (MintableToken) {
  //  return new MintableToken();
  // }

  // returns value in zwei
  // Override this method to have a way to add business logic to your crowdsale when buying
  function getTokenAmount(uint256 weiAmount) public view returns(uint256) {                      
  
	uint256 ETHtoZweiRate = ETHtoZCOrate.mul(10**tokenDecimals);
    return  SafeMath.div((weiAmount.mul(ETHtoZweiRate)),(1 ether));
  }

  // send ether to the fund collection wallet
  function forwardFunds() internal {
    wallet.transfer(msg.value);
  }

  
  function enableRefundPeriod() external onlyOwner{
  withinRefundPeriod = true;
  }
  
  function disableRefundPeriod() external onlyOwner{
  withinRefundPeriod = false;
  }
  
  
   // called by the owner on emergency, triggers stopped state
  function emergencyStop() external onlyOwner {
    stopped = true;
  }

  // called by the owner on end of emergency, returns to normal state
  function release() external onlyOwner {
    stopped = false;
  }

  function viewContribution(address participant) public view returns(uint256){
  return contribution[participant];
  }  
  
  
  // @return true if the transaction can buy tokens
  function validPurchase() internal view returns (bool) {
    bool withinPeriod = now >= startTime && now <= endTime;
	//Value(msg.value);
    //bool nonZeroPurchase = msg.value != 0;
	bool validAmount = msg.value >= minTransAmount;
	bool withinmintedTokensCap = mintedTokensCap >= (token.totalSupply() + getTokenAmount(msg.value));
    return withinPeriod && validAmount && withinmintedTokensCap;
  }
  
   function refund() external inCancelledList inRefundPeriod {                                                    
        require((contribution[msg.sender] > 0) && token.balanceOf(msg.sender)>0);
       uint256 refundBalance = contribution[msg.sender];	   
       contribution[msg.sender] = 0;
		token.burn(msg.sender);
        msg.sender.transfer(refundBalance); 
		Refund(msg.sender,refundBalance);
    } 
	
	function forcedRefund(address _from) external onlyOwner {
	   require(cancelledList[_from]);
	   require((contribution[_from] > 0) && token.balanceOf(_from)>0);
       uint256 refundBalance = contribution[_from];	  
       contribution[_from] = 0;
		token.burn(_from);
        _from.transfer(refundBalance); 
		Refund(_from,refundBalance);
	
	}
	
	
	
	//takes ethers from zebiwallet to smart contract 
    function takeEth() external payable {
		TakeEth(msg.sender,msg.value);
    }
	
	//transfers ether from smartcontract to zebiwallet
     function withdraw(uint256 _value) public onlyOwner {
        wallet.transfer(_value);
		Withdraw(_value);
    }
	 function addCancellation (address _participant) external onlyOwner returns (bool success) {
           cancelledList[_participant] = true;
		   return true;
   } 
}



contract ZebiCoinCrowdsale is ZCrowdsale {

  function ZebiCoinCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet,uint256 _minTransAmount,uint256 _mintedTokensCap)
  ZCrowdsale(_startTime, _endTime, _rate, _wallet , _minTransAmount,_mintedTokensCap){
  }

 // creates the token to be sold.
 // function createTokenContract() internal returns (MintableToken) {
 //  return new ZebiCoin();
 // }
}

contract ZebiCoinTempMgr is Ownable{
  using SafeMath for uint256;

  // address where funds are collected
  address public wallet;
  
  // instance of presale contract  
  ZebiCoinCrowdsale public preSaleCSSC;
  
  // instance of token contract
  ZebiCoin public tsc;
   
  // number of decimals allowed in ZCO 
  uint64 tokenDecimals;
   
  //bad contributor of presale
  mapping(address => bool) preSaleCancelledList;

  // contains token value in zwei
  mapping(address => uint256) noncsAllocations;
  
  // check for refund period
  bool public withinRefundPeriod; 
  
  // amount refunded to each investor
  mapping(address => uint256)  preSaleRefunds;
  
  
  
  modifier inPreSaleCancelledList {
    require(preSaleCancelledList[msg.sender]);
    _;
  }
  
  modifier inRefundPeriod {
  require(withinRefundPeriod);
  _;
 }
 
 
  event TakeEth(address sender,uint256 value);
  event Withdraw(uint256 _value);
  event PreSaleRefund(address sender,uint256 refundBalance);
  event AllocatenonCSTokens(address indexed beneficiary,uint256 amount);

  
  function ZebiCoinTempMgr(address presaleCrowdsale, address tokenAddress, address _wallet) public {
 
    wallet = _wallet;
    preSaleCSSC = ZebiCoinCrowdsale(presaleCrowdsale);
	tsc = ZebiCoin(tokenAddress);
    tokenDecimals = tsc.decimals();
  }
  
  function finishMint() onlyOwner public returns (bool) {
    tsc.finishMinting();
    return true;
  }
  
  function resumeMint() onlyOwner public returns (bool) {
    tsc.resumeMinting();
    return true;
  }
 
 
  function startTransfer() external onlyOwner{
    tsc.startTransfer() ;
  }
  
  function endTransfer() external onlyOwner{
    tsc.endTransfer() ;
  }
  
  function transferTokenOwnership(address owner) external onlyOwner{
    tsc.transferOwnership(owner);
  }
  
  function allocatenonCSTokens(address beneficiary,uint256 tokens) external onlyOwner
  {
	require(beneficiary != address(0));
	uint256 Zweitokens = tokens.mul(10**(tokenDecimals ));
	noncsAllocations[beneficiary]= Zweitokens.add(noncsAllocations[beneficiary]);
	tsc.mint(beneficiary, Zweitokens);
	AllocatenonCSTokens(beneficiary,Zweitokens);
  }
	
  function revertNoncsallocation(address beneficiary) external onlyOwner
  {
	require(noncsAllocations[beneficiary]!=0);
	noncsAllocations[beneficiary]=0;
	tsc.burn(beneficiary);
  }
 
  function viewNoncsallocations(address participant) public view returns(uint256){
    return noncsAllocations[participant];
  }
  
  function viewPreSaleCancelledList(address participant) public view returns(bool){
    return preSaleCancelledList[participant];
  } 
  
  function viewPreSaleRefunds(address participant) public view returns(uint256){
    return preSaleRefunds[participant];
  } 
  
  function enableRefundPeriod() external onlyOwner{
    withinRefundPeriod = true;
  }
  
  function disableRefundPeriod() external onlyOwner{
    withinRefundPeriod = false;
  }
  
  function refund() external inPreSaleCancelledList inRefundPeriod {                                                    
    require((preSaleCSSC.viewContribution(msg.sender) > 0) && tsc.balanceOf(msg.sender)>0);
    uint256 refundBalance = preSaleCSSC.viewContribution(msg.sender);	   
    preSaleRefunds[msg.sender] = refundBalance;
    tsc.burn(msg.sender);
    msg.sender.transfer(refundBalance); 
	PreSaleRefund(msg.sender,refundBalance);
  } 
	
  function forcedRefund(address _from) external onlyOwner {
	require(preSaleCancelledList[_from]);
	require((preSaleCSSC.viewContribution(_from) > 0) && tsc.balanceOf(_from)>0);
    uint256 refundBalance = preSaleCSSC.viewContribution(_from);	  
    preSaleRefunds[_from] = refundBalance;
	tsc.burn(_from);
    _from.transfer(refundBalance); 
	PreSaleRefund(_from,refundBalance);
  }
  
  //takes ethers from zebiwallet to smart contract 
  function takeEth() external payable {
	TakeEth(msg.sender,msg.value);
  }
	
  //transfers ether from smartcontract to zebiwallet
  function withdraw(uint256 _value) public onlyOwner {
    wallet.transfer(_value);
	Withdraw(_value);
  }
	
  function addCancellation (address _participant) external onlyOwner returns (bool success) {
    preSaleCancelledList[_participant] = true;
	return true;
  }
  
}



/**
 * @title ZebiMainCrowdsale
*/
contract ZebiMainCrowdsale is Ownable{
 
  using SafeMath for uint256;

  // The token being sold
  ZebiCoin public token;
  
  //calender year count;
  //uint256 calenderYearCounter;
  
  //lockeed tokens minted in current calender year
  uint256 currentYearMinted;
  
  //calenderYearMintCap for Zebi
  uint256 calenderYearMintCap;
  //calender year start
  uint256 calenderYearStart;
  
  //calenderYearEnd
  uint256 calenderYearEnd;
  
  //mintinge vested token start time
  uint256 vestedMintStartTime;
  
  
  //flag : whethere remainingZCO after crowdsale allocated or not
  //bool remainingZCOAllocated;
  
  //TODO
  uint256 zebiZCOShare;
  //TODO 
  uint256 crowdsaleZCOCap;
  
  //transaction Start time
  uint256 transStartTime;
  
  // presale instance
  ZebiCoinCrowdsale public zcc;
  
  // tempMngr instance
  ZebiCoinTempMgr public tempMngr;
   
  // Number of decimals allowed for ZCO
  uint64 public tokenDecimals;

  // start and end timestamps where investments are allowed (both inclusive)
  uint256 public startTime;
  uint256 public endTime;
  //In seconds initialized in constructor only gold list members can buy
  uint256 public goldListPeriod;
  
  //endTime of 2nd bonus period minus startTime in seconds initialized in constructor: 2nd period for bonuses
  uint256 public postGoldPeriod;
  
  // Minimum amount to be invested in wei
  uint256 public minTransAmount;
  
  // Hardcap in wei
  uint256 public ethCap; 
  
  // Contribution of each investor in main crowdsale
  mapping(address => uint256) mainContribution;
    
  // Bad contributor
  mapping(address => bool) mainCancelledList;
  
  // Gold Period Cap per address
  uint256 goldPeriodCap;
  
  //is the transaction occurring during gold list period
  bool goldListPeriodFlag;
  
  //goldListPeriod Contribution TODO
  mapping(address=>uint256) goldListContribution;
  // Gold List 
  mapping(address => bool) goldList;
  //discounts mapping number of coins to percentage discount
  // mapping(uint256 => uint256) discounts;
  
  // KYC Accepted List 
  mapping(address => bool) kycAcceptedList;
  // Address where funds are collected
  address public wallet;

  bool public withinRefundPeriod; 
  
  // amount refunded to each investor 
  mapping(address => uint256)  preSaleRefundsInMainSale;
  
  
  uint256 public tokens;
  
  // net wei used to buy ZCOs in the transaction
  uint256 public weiAmount;
  
  // how many token units a buyer gets per ether
  uint256 public ETHtoZWeirate;

  // amount of raised money in wei without factoring refunds
  uint256 public mainWeiRaised;  
  
   
  
  modifier inCancelledList {
    require(mainCancelledList[msg.sender]);
    _;
  }
  
  modifier inRefundPeriod {
  require(withinRefundPeriod);
  _;
  }  


  event TokenPurchase(address indexed purchaser, uint256 value, uint256 amount);
  
  event TakeEth(address sender,uint256 value);
  
  event Withdraw(uint256 _value);
  
  event SetParticipantStatus(address _participant);
   
  event Refund(address sender,uint256 refundBalance);


  function ZebiMainCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _ETHtoZWeirate, address _wallet,uint256 _minTransAmount,uint256 _ethCap, address tokenAddress, address presaleAddress,address tempMngrAddress,uint256 _goldListPeriod,uint256 _postGoldPeriod,uint256 _goldPeriodCap,uint256 _vestedMintStartTime,uint256 _calenderYearStart) public {
  
	require(_startTime >= now);
    require(_endTime >= _startTime);
    require(_ETHtoZWeirate > 0);
    require(_wallet != address(0));
	
	token = ZebiCoin(tokenAddress);	
	zcc = ZebiCoinCrowdsale(presaleAddress);
    startTime = _startTime;
    endTime = _endTime;
    ETHtoZWeirate = _ETHtoZWeirate;
    wallet = _wallet;
    minTransAmount = _minTransAmount;
	tokenDecimals = token.decimals();
    ethCap = _ethCap;       
	tempMngr=ZebiCoinTempMgr(tempMngrAddress);
	goldListPeriod=_goldListPeriod;
	postGoldPeriod=_postGoldPeriod;
	zebiZCOShare=SafeMath.mul(500000000,(10**tokenDecimals));
	crowdsaleZCOCap=zebiZCOShare;
	goldPeriodCap=_goldPeriodCap;
	calenderYearMintCap = SafeMath.div((zebiZCOShare.mul(2)),8);
	//vestedMintStartTime=(startTime +((18 *30)*1 days)); 
	//vestedMintStartTime=1567296000; //1 Sep 2019
	vestedMintStartTime=_vestedMintStartTime;
	//calenderYearStart=1546300800; //1 Jan 2019 0:0:0
	calenderYearStart=_calenderYearStart;
	//calenderYearEnd=1577836799;   // 31 Dec 2019 23:59:59
	calenderYearEnd=(calenderYearStart+1 years )- 1;
  }

  // Fallback function used to buy tokens
  function () external payable {
    buyTokens(msg.sender);
  }
  
  function finishMint() onlyOwner public returns (bool) {
    token.finishMinting();
    return true;
  }
  
  function resumeMint() onlyOwner public returns (bool) {
    token.resumeMinting();
    return true;
  }
 
  function startTransfer() external onlyOwner{
    token.startTransfer() ;
  }
  
  function endTransfer() external onlyOwner{
    token.endTransfer() ;
  }
  
  function transferTokenOwnership(address owner) external onlyOwner{
    token.transferOwnership(owner);
  }
  
  function viewCancelledList(address participant) public view returns(bool){
    return mainCancelledList[participant];
  } 
  
  function viewGoldList(address participant) public view returns(bool){
    return goldList[participant];
  }
  function addToGoldList (address _participant) external onlyOwner returns (bool ) {
    goldList[_participant] = true;
	return true;
  }
  function removeFromGoldList(address _participant) external onlyOwner returns(bool ){
      goldList[_participant]=false;
      return true;
  }
  function viewKYCAccepted(address participant) public view returns(bool){
    return kycAcceptedList[participant];
  }
  function addToKYCList (address _participant) external onlyOwner returns (bool ) {
    kycAcceptedList[_participant] = true;
	return true;
  }
  function removeFromKYCList (address _participant) external onlyOwner returns (bool){
      kycAcceptedList[_participant]=false;
  }
  function viewPreSaleRefundsInMainSale(address participant) public view returns(uint256){
    return preSaleRefundsInMainSale[participant];
  }
  /*function addToPreSaleRefunds(address participant,uint256 amountInEth) external onlyOwner returns(bool){
      preSaleRefundsInMainSale[participant]=amountInEth.add(preSaleRefundsInMainSale[participant]);
      
  }
  function removeFromPreSaleRefunds(address participant,uint256 amountInEth) external onlyOwner returns(bool){
      preSaleRefundsInMainSale[participant]=(preSaleRefundsInMainSale[participant]).sub(amountInEth);
      
  }*/

  // Low level token purchase function
  function buyTokens(address beneficiary) public payable {
    transStartTime=now;
    require(goldList[beneficiary]||kycAcceptedList[beneficiary]);
    goldListPeriodFlag=false;
	require(beneficiary != address(0));
    require(validPurchase());
    uint256 extraEth=0;
    weiAmount = msg.value;
   /* if(goldListPeriodFlag){
        weiAmount=goldPeriodCap.sub(goldListContribution[msg.sender]);
        extraEth=(msg.value).sub(weiAmount);
    }*/
    
    //for partial fulfilment feature : return extra ether transferred by investor
    if((msg.value>ethCap.sub(mainWeiRaised)) && !goldListPeriodFlag){
		weiAmount=ethCap.sub(mainWeiRaised);
		extraEth=(msg.value).sub(weiAmount);
	 }
	 
    // calculate token amount to be alloted
     tokens = getTokenAmount(weiAmount);
   
    // update state
    mainWeiRaised = mainWeiRaised.add(weiAmount);
    token.mint(beneficiary, tokens);
	mainContribution[beneficiary] = mainContribution[beneficiary].add(weiAmount);
	if(goldListPeriodFlag){
	    goldListContribution[beneficiary] = goldListContribution[beneficiary].add(weiAmount);
	}
	
    //TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
    TokenPurchase(beneficiary, weiAmount, tokens);

    forwardFunds();
    if(extraEth>0){
        beneficiary.transfer(extraEth);
    }
    
 
  }


  // returns value in zwei calculating number of tokens including bonuses
  
  function getTokenAmount(uint256 weiAmount1) public view returns(uint256) {                      
    
	//uint256 ETHtoZweiRate = ETHtoZWeirate;
    uint256 number = SafeMath.div((weiAmount1.mul(ETHtoZWeirate)),(1 ether));
	uint256 volumeBonus;
	uint256 timeBonus;
	if(number >= 400000000000000)
	{
	volumeBonus = SafeMath.div((number.mul(25)),100);
	}
	else if(number>= 150000000000000) {
	volumeBonus = SafeMath.div((number.mul(20)),100);
	    }
	else if(number>= 80000000000000) {
	volumeBonus = SafeMath.div((number.mul(15)),100);
	    }
	else if(number>= 40000000000000) {
	volumeBonus = SafeMath.div((number.mul(10)),100);
	    }
	else if(number>= 7500000000000) {
	volumeBonus = SafeMath.div((number.mul(5)),100);
	    }
	 else{
	     volumeBonus=0;
	 }
	//
	if(goldListPeriodFlag){
	    timeBonus = SafeMath.div((number.mul(15)),100);
	}
	else if(transStartTime <= startTime + postGoldPeriod){
	    timeBonus = SafeMath.div((number.mul(10)),100);
	}
	else{
	    timeBonus=0;
	}
    number=number+timeBonus+volumeBonus;
    return number; 
	
  }
	
	
	
  // send ether to the fund collection wallet
  function forwardFunds() internal {
    wallet.transfer(weiAmount);
  }

  
  function enableRefundPeriod() external onlyOwner{
    withinRefundPeriod = true;
  }
  
  function disableRefundPeriod() external onlyOwner{
    withinRefundPeriod = false;
  }
 
  function viewContribution(address participant) public view returns(uint256){
    return mainContribution[participant];
  }  
  
  
  // checks if the investor can buy tokens
  
  function validPurchase() internal view returns (bool) {
    bool withinPeriod = transStartTime >= startTime && transStartTime <= endTime;
	bool validAmount = msg.value >= minTransAmount;
	//bool withinEthCap = ethCap >= (msg.value + mainWeiRaised);
	bool withinEthCap = ((ethCap.sub(mainWeiRaised))>0);
	bool goldPeriodValid=true;
	if(transStartTime <= (startTime + goldListPeriod)){
	    goldPeriodValid=(goldList[msg.sender])&&(goldListContribution[msg.sender]+msg.value <= goldPeriodCap);
	    goldListPeriodFlag=true;
	    
	}
    return withinPeriod && validAmount && withinEthCap && goldPeriodValid;
  }
  
  /*function mintLeftOverZCOToWallet() external onlyOwner returns (bool){
      //uint256 Zweitokens = amount;
      require(!remainingZCOAllocated);
      require(now>endTime);
      
      //uint256 ETHtoZweiRate = ETHtoZWeirate.mul(10**tokenDecimals);
      //uint256 remainingCap=ethCap.sub(mainWeiRaised);
      //uint256 amount = SafeMath.div((remainingCap.mul(ETHtoZweiRate)),(1 ether));
      //mainWeiRaised = mainWeiRaised.add(amount);
      //uint256 zweitokens = SafeMath.mul(500000000,10**(tokenDecimals ));
      uint256 zweitokens=crowdsaleZCOCap.sub(token.totalSupply());
      //zweitokens=zweitokens.sub(token.totalSupply());
      token.mint(wallet, zweitokens);
      remainingZCOAllocated=true;
      return true;
  }*/
  function mintAndAllocateZCO(address partnerAddress,uint256 amountInZWei) external onlyOwner returns(bool){
      require((crowdsaleZCOCap.sub(token.totalSupply()))>=amountInZWei);
      require(partnerAddress!=address(0));
      //require(now>endTime);
      //require(!remainingZCOAllocated);
      token.mint(partnerAddress,amountInZWei);
      return true;
  }
  
  function mintvestedTokens (address partnerAddress,uint256 zweitokens) external onlyOwner returns(bool){
      require(zweitokens<=zebiZCOShare && zweitokens>0);
      
      require(partnerAddress!=address(0));
      require(now>=vestedMintStartTime);
      //year
      uint256 currentYearCounter=SafeMath.div((SafeMath.sub(now,calenderYearStart)),1 years);
      //if(currentYearCounter>calenderYearCounter){
      if(now>calenderYearEnd && currentYearCounter>=1){
          //calenderYearCounter=currentYearCounter;
          currentYearMinted=0;
          calenderYearStart=calenderYearEnd+((currentYearCounter-1)*1 years) +1;
          calenderYearEnd=(calenderYearStart+ 1 years )- 1;
      }
      
      require(currentYearMinted+zweitokens<=calenderYearMintCap);
      currentYearMinted=currentYearMinted+zweitokens;
      token.mint(partnerAddress,zweitokens);
      zebiZCOShare=zebiZCOShare.sub(zweitokens);
  }
  
  
  
  function refund() external inCancelledList inRefundPeriod {  
    require(mainCancelledList[msg.sender]);  
    require((mainContribution[msg.sender] > 0) && token.balanceOf(msg.sender)>0);
	uint256 presaleContribution = zcc.viewContribution(msg.sender);
    uint256 refundBalance = (mainContribution[msg.sender]).add(presaleContribution) ;
    uint256 preSaleRefundTemp= tempMngr.viewPreSaleRefunds(msg.sender);
    uint256 preSaleRefundMain=presaleContribution.sub(preSaleRefundTemp);
    refundBalance=refundBalance.sub(preSaleRefundTemp);
    refundBalance=refundBalance.sub(preSaleRefundsInMainSale[msg.sender]);
    preSaleRefundsInMainSale[msg.sender]=preSaleRefundMain;
    
    mainContribution[msg.sender] = 0;
	token.burn(msg.sender);
    msg.sender.transfer(refundBalance); 
	Refund(msg.sender,refundBalance);
  } 
	
  function forcedRefund(address _from) external onlyOwner {
	require(mainCancelledList[_from]);
	require((mainContribution[_from] > 0) && token.balanceOf(_from)>0);
	uint256 presaleContribution = zcc.viewContribution(_from);
    uint256 refundBalance = (mainContribution[_from]).add(presaleContribution) ;
    uint256 preSaleRefundTemp= tempMngr.viewPreSaleRefunds(_from);
    uint256 preSaleRefundMain=presaleContribution.sub(preSaleRefundTemp);
    refundBalance=refundBalance.sub(preSaleRefundTemp);
    refundBalance=refundBalance.sub(preSaleRefundsInMainSale[_from]);
    preSaleRefundsInMainSale[_from]=preSaleRefundMain;
    mainContribution[_from] = 0;
	token.burn(_from);
    _from.transfer(refundBalance); 
	Refund(_from,refundBalance);
  }
	
	
  //takes ethers from zebiwallet to smart contract 
  function takeEth() external payable {
	TakeEth(msg.sender,msg.value);
  }
	
  //transfers ether from smartcontract to zebiwallet
  function withdraw(uint256 _value) public onlyOwner {
    wallet.transfer(_value);
	Withdraw(_value);
  }
	
  //Maintains list of investors with failed KYC validation
  function addCancellation (address _participant) external onlyOwner returns (bool success) {
    mainCancelledList[_participant] = true;
	return true;
  } 

  }

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"zcc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"removeFromGoldList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"}],"name":"viewGoldList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ETHtoZWeirate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"transferTokenOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"}],"name":"viewKYCAccepted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenDecimals","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"}],"name":"viewPreSaleRefundsInMainSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minTransAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"}],"name":"viewContribution","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":false,"inputs":[{"name":"partnerAddress","type":"address"},{"name":"zweitokens","type":"uint256"}],"name":"mintvestedTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"goldListPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableRefundPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"partnerAddress","type":"address"},{"name":"amountInZWei","type":"uint256"}],"name":"mintAndAllocateZCO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"withinRefundPeriod","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"removeFromKYCList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableRefundPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"takeEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"addCancellation","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mainWeiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"postGoldPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"addToKYCList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"weiAmount1","type":"uint256"}],"name":"getTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tempMngr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"}],"name":"viewCancelledList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"addToGoldList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"}],"name":"forcedRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_ETHtoZWeirate","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_minTransAmount","type":"uint256"},{"name":"_ethCap","type":"uint256"},{"name":"tokenAddress","type":"address"},{"name":"presaleAddress","type":"address"},{"name":"tempMngrAddress","type":"address"},{"name":"_goldListPeriod","type":"uint256"},{"name":"_postGoldPeriod","type":"uint256"},{"name":"_goldPeriodCap","type":"uint256"},{"name":"_vestedMintStartTime","type":"uint256"},{"name":"_calenderYearStart","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TakeEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_participant","type":"address"}],"name":"SetParticipantStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"refundBalance","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405234156200001057600080fd5b6040516101c08062003a5583398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428e10151515620000f357600080fd5b8d8d101515156200010357600080fd5b60008c1115156200011357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff16141515156200015057600080fd5b87600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508d600c819055508c600d819055508b601d819055508a601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555089601081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620002be57600080fd5b6102c65a03f11515620002d057600080fd5b50505060405180519050600b60146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508860118190555085600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600e8190555083600f819055506200039f631dcd6500600b60149054906101000a900467ffffffffffffffff16600a0a67ffffffffffffffff1662000435640100000000026200354e176401000000009004565b60078190555060075460088190555082601481905550620003fb620003df600260075462000435640100000000026200354e179091906401000000009004565b6008620004746401000000000262003533176401000000009004565b600381905550816006819055508060048190555060016301e133806004540103600581905550505050505050505050505050505062000490565b60008060008414156200044c57600091506200046d565b82840290508284828115156200045e57fe5b041415156200046957fe5b8091505b5092915050565b60008082848115156200048357fe5b0490508091505092915050565b6135b580620004a06000396000f30060606040526004361061020f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063069f74c71461021a5780630d10e8421461026f5780630d301c75146102985780630eb05d49146102e95780631da975441461033a5780631fe7b6241461036357806321e6b53d146103905780632e1a7d4d146103c95780633197cbb6146103ec5780633a8d6e5e146104155780633b97e85614610466578063477d47b5146104a35780634c80b03b146104f05780635052abad14610519578063521eb2731461056657806356a807d9146105bb578063590e1ae3146106155780635fb42c591461062a5780636494cde1146106535780636585dc121461066857806377e75b071461067d57806378e97925146106d75780637a468170146107005780637f070a9b14610729578063829c342814610756578063836a107f1461076b578063848f1470146107bc5780638a13aa4b146107d15780638da5cb5b146107db57806393b7e7cb146108305780639458434f14610881578063963c6017146108aa5780639d63848a146108d3578063bea51f81146108fc578063c2507ac11461094d578063cc86566c14610984578063e3bb01ac146109d9578063e4cc18be14610a2a578063ec8ac4d814610a57578063f2fde38b14610a85578063f469707f14610abe578063f83eb5dc14610b0f578063fc0c546a14610b48575b61021833610b9d565b005b341561022557600080fd5b61022d611040565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561027a57600080fd5b610282611066565b6040518082815260200191505060405180910390f35b34156102a357600080fd5b6102cf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061106c565b604051808215151515815260200191505060405180910390f35b34156102f457600080fd5b610320600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061112a565b604051808215151515815260200191505060405180910390f35b341561034557600080fd5b61034d611180565b6040518082815260200191505060405180910390f35b341561036e57600080fd5b610376611186565b604051808215151515815260200191505060405180910390f35b341561039b57600080fd5b6103c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611294565b005b34156103d457600080fd5b6103ea60048080359060200190919050506113c2565b005b34156103f757600080fd5b6103ff6114b9565b6040518082815260200191505060405180910390f35b341561042057600080fd5b61044c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114bf565b604051808215151515815260200191505060405180910390f35b341561047157600080fd5b610479611515565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156104ae57600080fd5b6104da600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061152f565b6040518082815260200191505060405180910390f35b34156104fb57600080fd5b610503611578565b6040518082815260200191505060405180910390f35b341561052457600080fd5b610550600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061157e565b6040518082815260200191505060405180910390f35b341561057157600080fd5b6105796115c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105c657600080fd5b6105fb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115ed565b604051808215151515815260200191505060405180910390f35b341561062057600080fd5b610628611844565b005b341561063557600080fd5b61063d611eff565b6040518082815260200191505060405180910390f35b341561065e57600080fd5b610666611f05565b005b341561067357600080fd5b61067b611ffb565b005b341561068857600080fd5b6106bd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612073565b604051808215151515815260200191505060405180910390f35b34156106e257600080fd5b6106ea6122ca565b6040518082815260200191505060405180910390f35b341561070b57600080fd5b6107136122d0565b6040518082815260200191505060405180910390f35b341561073457600080fd5b61073c6122d6565b604051808215151515815260200191505060405180910390f35b341561076157600080fd5b6107696122e9565b005b341561077657600080fd5b6107a2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506123df565b604051808215151515815260200191505060405180910390f35b34156107c757600080fd5b6107cf612499565b005b6107d9612511565b005b34156107e657600080fd5b6107ee61257e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083b57600080fd5b610867600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125a3565b604051808215151515815260200191505060405180910390f35b341561088c57600080fd5b610894612661565b6040518082815260200191505060405180910390f35b34156108b557600080fd5b6108bd612667565b6040518082815260200191505060405180910390f35b34156108de57600080fd5b6108e661266d565b6040518082815260200191505060405180910390f35b341561090757600080fd5b610933600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612673565b604051808215151515815260200191505060405180910390f35b341561095857600080fd5b61096e6004808035906020019091905050612731565b6040518082815260200191505060405180910390f35b341561098f57600080fd5b6109976128f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109e457600080fd5b610a10600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061291b565b604051808215151515815260200191505060405180910390f35b3415610a3557600080fd5b610a3d612971565b604051808215151515815260200191505060405180910390f35b610a83600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b9d565b005b3415610a9057600080fd5b610abc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612a7f565b005b3415610ac957600080fd5b610af5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612bd4565b604051808215151515815260200191505060405180910390f35b3415610b1a57600080fd5b610b46600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c92565b005b3415610b5357600080fd5b610b5b613336565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600042600981905550601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610c475750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610c5257600080fd5b6000601560006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610ca957600080fd5b610cb161335c565b1515610cbc57600080fd5b6000905034601c81905550610cde601e5460115461349690919063ffffffff16565b34118015610cf95750601560009054906101000a900460ff16155b15610d3357610d15601e5460115461349690919063ffffffff16565b601c81905550610d30601c543461349690919063ffffffff16565b90505b610d3e601c54612731565b601b81905550610d5b601c54601e546134af90919063ffffffff16565b601e81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983601b546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e3057600080fd5b6102c65a03f11515610e4157600080fd5b5050506040518051905050610ea0601c54601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900460ff1615610f9057610f4c601c54601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f601c54601b54604051808381526020018281526020019250505060405180910390a2610ff26134cd565b600081111561103c578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561103b57600080fd5b5b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c957600080fd5b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359ae340e6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561127157600080fd5b6102c65a03f1151561128257600080fd5b50505060405180519050506001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ef57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156113ab57600080fd5b6102c65a03f115156113bc57600080fd5b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561141d57600080fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561147f57600080fd5b7f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d816040518082815260200191505060405180910390a150565b600d5481565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b60149054906101000a900467ffffffffffffffff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60105481565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164b57600080fd5b600754831115801561165d5750600083115b151561166857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156116a457600080fd5b60065442101515156116b557600080fd5b6116ce6116c442600454613496565b6301e13380613533565b9050600554421180156116e2575060018110155b1561171957600060028190555060016301e133806001830302600554010160048190555060016301e1338060045401036005819055505b60035483600254011115151561172e57600080fd5b8260025401600281905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1985856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561180657600080fd5b6102c65a03f1151561181757600080fd5b50505060405180519050506118378360075461349690919063ffffffff16565b6007819055505092915050565b600080600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156118a257600080fd5b601960149054906101000a900460ff1615156118bd57600080fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561191557600080fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611a4357506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611a2657600080fd5b6102c65a03f11515611a3757600080fd5b50505060405180519050115b1515611a4e57600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635052abad336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611b1357600080fd5b6102c65a03f11515611b2457600080fd5b505050604051805190509350611b8284601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b9250600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322eb2c02336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611c4957600080fd5b6102c65a03f11515611c5a57600080fd5b505050604051805190509150611c79828561349690919063ffffffff16565b9050611c8e828461349690919063ffffffff16565b9250611ce2601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461349690919063ffffffff16565b925080601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166389afcb44336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611e3257600080fd5b6102c65a03f11515611e4357600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611e8e57600080fd5b7fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d3384604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f6057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636494cde16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515611fe557600080fd5b6102c65a03f11515611ff657600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561205657600080fd5b6001601960146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120d057600080fd5b8161218e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561216257600080fd5b6102c65a03f1151561217357600080fd5b5050506040518051905060085461349690919063ffffffff16565b1015151561219b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156121d757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1984846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156122a457600080fd5b6102c65a03f115156122b557600080fd5b50505060405180519050506001905092915050565b600c5481565b60115481565b601960149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561234457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663829c34286040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156123c957600080fd5b6102c65a03f115156123da57600080fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243c57600080fd5b6000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124f457600080fd5b6000601960146101000a81548160ff021916908315150217905550565b7fcd18c1683fcd49ac98a87d5fd5a82c5f375b4061b05f491883e0edc785b694d13334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561260057600080fd5b6001601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b601e5481565b600f5481565b601b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126d057600080fd5b6001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60008060008061275d61274f601d548761354e90919063ffffffff16565b670de0b6b3a7640000613533565b925066016bcc41e90000831015156127945761278d61278660198561354e90919063ffffffff16565b6064613533565b915061286d565b65886c98b76000831015156127c8576127c16127ba60148561354e90919063ffffffff16565b6064613533565b915061286c565b6548c273950000831015156127fc576127f56127ee600f8561354e90919063ffffffff16565b6064613533565b915061286b565b65246139ca80008310151561283057612829612822600a8561354e90919063ffffffff16565b6064613533565b915061286a565b6506d23ad5f800831015156128645761285d61285660058561354e90919063ffffffff16565b6064613533565b9150612869565b600091505b5b5b5b5b601560009054906101000a900460ff16156128a7576128a0612899600f8561354e90919063ffffffff16565b6064613533565b90506128e3565b600f54600c54016009541115156128dd576128d66128cf600a8561354e90919063ffffffff16565b6064613533565b90506128e2565b600090505b5b81818401019250829350505050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ce57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612a5c57600080fd5b6102c65a03f11515612a6d57600080fd5b50505060405180519050506001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ada57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b1657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c3157600080fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cf357600080fd5b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d4b57600080fd5b6000601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015612e7957506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515612e5c57600080fd5b6102c65a03f11515612e6d57600080fd5b50505060405180519050115b1515612e8457600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635052abad866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515612f4957600080fd5b6102c65a03f11515612f5a57600080fd5b505050604051805190509350612fb884601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b9250600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322eb2c02866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561307f57600080fd5b6102c65a03f1151561309057600080fd5b5050506040518051905091506130af828561349690919063ffffffff16565b90506130c4828461349690919063ffffffff16565b9250613118601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461349690919063ffffffff16565b925080601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166389afcb44866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561326857600080fd5b6102c65a03f1151561327957600080fd5b50505060405180519050508473ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156132c457600080fd5b7fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8584604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600c546009541015801561337c5750600d5460095411155b93506010543410159250600061339f601e5460115461349690919063ffffffff16565b11915060019050600e54600c540160095411151561347157601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613453575060145434601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b90506001601560006101000a81548160ff0219169083151502179055505b83801561347b5750825b80156134845750815b801561348d5750805b94505050505090565b60008282111515156134a457fe5b818303905092915050565b60008082840190508381101515156134c357fe5b8091505092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601c549081150290604051600060405180830381858888f19350505050151561353157600080fd5b565b600080828481151561354157fe5b0490508091505092915050565b60008060008414156135635760009150613582565b828402905082848281151561357457fe5b0414151561357e57fe5b8091505b50929150505600a165627a7a7230582071127c85b92702d6d0c5fe80727977a8e4311e46cc42ad295f17e581ae5a71580029000000000000000000000000000000000000000000000000000000005a9d3848000000000000000000000000000000000000000000000000000000005abf9b68000000000000000000000000000000000000000000000000000002bb30ed607b000000000000000000000000d75496c0a6a36308cfda58e317ab97ea46b8f6b5000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000005675bb890d6be43c000000000000000000000000002008e3057bd734e10ad13c9eae45ff132abc1722000000000000000000000000ef90b9fea51c983827ba3b79c3c19a9751fc7e990000000000000000000000001eb48c64ad71837a6ed57e4a2dab88173c8330540000000000000000000000000000000000000000000000000000000000004650000000000000000000000000000000000000000000000000000000000002bf20000000000000000000000000000000000000000000000000089aaeb710be0000000000000000000000000000000000000000000000000000000000005d6b0a00000000000000000000000000000000000000000000000000000000005c2aad80

Deployed Bytecode

0x60606040526004361061020f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063069f74c71461021a5780630d10e8421461026f5780630d301c75146102985780630eb05d49146102e95780631da975441461033a5780631fe7b6241461036357806321e6b53d146103905780632e1a7d4d146103c95780633197cbb6146103ec5780633a8d6e5e146104155780633b97e85614610466578063477d47b5146104a35780634c80b03b146104f05780635052abad14610519578063521eb2731461056657806356a807d9146105bb578063590e1ae3146106155780635fb42c591461062a5780636494cde1146106535780636585dc121461066857806377e75b071461067d57806378e97925146106d75780637a468170146107005780637f070a9b14610729578063829c342814610756578063836a107f1461076b578063848f1470146107bc5780638a13aa4b146107d15780638da5cb5b146107db57806393b7e7cb146108305780639458434f14610881578063963c6017146108aa5780639d63848a146108d3578063bea51f81146108fc578063c2507ac11461094d578063cc86566c14610984578063e3bb01ac146109d9578063e4cc18be14610a2a578063ec8ac4d814610a57578063f2fde38b14610a85578063f469707f14610abe578063f83eb5dc14610b0f578063fc0c546a14610b48575b61021833610b9d565b005b341561022557600080fd5b61022d611040565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561027a57600080fd5b610282611066565b6040518082815260200191505060405180910390f35b34156102a357600080fd5b6102cf600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061106c565b604051808215151515815260200191505060405180910390f35b34156102f457600080fd5b610320600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061112a565b604051808215151515815260200191505060405180910390f35b341561034557600080fd5b61034d611180565b6040518082815260200191505060405180910390f35b341561036e57600080fd5b610376611186565b604051808215151515815260200191505060405180910390f35b341561039b57600080fd5b6103c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611294565b005b34156103d457600080fd5b6103ea60048080359060200190919050506113c2565b005b34156103f757600080fd5b6103ff6114b9565b6040518082815260200191505060405180910390f35b341561042057600080fd5b61044c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114bf565b604051808215151515815260200191505060405180910390f35b341561047157600080fd5b610479611515565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156104ae57600080fd5b6104da600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061152f565b6040518082815260200191505060405180910390f35b34156104fb57600080fd5b610503611578565b6040518082815260200191505060405180910390f35b341561052457600080fd5b610550600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061157e565b6040518082815260200191505060405180910390f35b341561057157600080fd5b6105796115c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105c657600080fd5b6105fb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115ed565b604051808215151515815260200191505060405180910390f35b341561062057600080fd5b610628611844565b005b341561063557600080fd5b61063d611eff565b6040518082815260200191505060405180910390f35b341561065e57600080fd5b610666611f05565b005b341561067357600080fd5b61067b611ffb565b005b341561068857600080fd5b6106bd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612073565b604051808215151515815260200191505060405180910390f35b34156106e257600080fd5b6106ea6122ca565b6040518082815260200191505060405180910390f35b341561070b57600080fd5b6107136122d0565b6040518082815260200191505060405180910390f35b341561073457600080fd5b61073c6122d6565b604051808215151515815260200191505060405180910390f35b341561076157600080fd5b6107696122e9565b005b341561077657600080fd5b6107a2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506123df565b604051808215151515815260200191505060405180910390f35b34156107c757600080fd5b6107cf612499565b005b6107d9612511565b005b34156107e657600080fd5b6107ee61257e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083b57600080fd5b610867600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125a3565b604051808215151515815260200191505060405180910390f35b341561088c57600080fd5b610894612661565b6040518082815260200191505060405180910390f35b34156108b557600080fd5b6108bd612667565b6040518082815260200191505060405180910390f35b34156108de57600080fd5b6108e661266d565b6040518082815260200191505060405180910390f35b341561090757600080fd5b610933600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612673565b604051808215151515815260200191505060405180910390f35b341561095857600080fd5b61096e6004808035906020019091905050612731565b6040518082815260200191505060405180910390f35b341561098f57600080fd5b6109976128f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109e457600080fd5b610a10600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061291b565b604051808215151515815260200191505060405180910390f35b3415610a3557600080fd5b610a3d612971565b604051808215151515815260200191505060405180910390f35b610a83600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b9d565b005b3415610a9057600080fd5b610abc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612a7f565b005b3415610ac957600080fd5b610af5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612bd4565b604051808215151515815260200191505060405180910390f35b3415610b1a57600080fd5b610b46600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c92565b005b3415610b5357600080fd5b610b5b613336565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600042600981905550601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610c475750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610c5257600080fd5b6000601560006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610ca957600080fd5b610cb161335c565b1515610cbc57600080fd5b6000905034601c81905550610cde601e5460115461349690919063ffffffff16565b34118015610cf95750601560009054906101000a900460ff16155b15610d3357610d15601e5460115461349690919063ffffffff16565b601c81905550610d30601c543461349690919063ffffffff16565b90505b610d3e601c54612731565b601b81905550610d5b601c54601e546134af90919063ffffffff16565b601e81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983601b546000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610e3057600080fd5b6102c65a03f11515610e4157600080fd5b5050506040518051905050610ea0601c54601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560009054906101000a900460ff1615610f9057610f4c601c54601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8173ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f601c54601b54604051808381526020018281526020019250505060405180910390a2610ff26134cd565b600081111561103c578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561103b57600080fd5b5b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c957600080fd5b6000601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359ae340e6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561127157600080fd5b6102c65a03f1151561128257600080fd5b50505060405180519050506001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ef57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156113ab57600080fd5b6102c65a03f115156113bc57600080fd5b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561141d57600080fd5b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561147f57600080fd5b7f5b6b431d4476a211bb7d41c20d1aab9ae2321deee0d20be3d9fc9b1093fa6e3d816040518082815260200191505060405180910390a150565b600d5481565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b60149054906101000a900467ffffffffffffffff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60105481565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561164b57600080fd5b600754831115801561165d5750600083115b151561166857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156116a457600080fd5b60065442101515156116b557600080fd5b6116ce6116c442600454613496565b6301e13380613533565b9050600554421180156116e2575060018110155b1561171957600060028190555060016301e133806001830302600554010160048190555060016301e1338060045401036005819055505b60035483600254011115151561172e57600080fd5b8260025401600281905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1985856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561180657600080fd5b6102c65a03f1151561181757600080fd5b50505060405180519050506118378360075461349690919063ffffffff16565b6007819055505092915050565b600080600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156118a257600080fd5b601960149054906101000a900460ff1615156118bd57600080fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561191557600080fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611a4357506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611a2657600080fd5b6102c65a03f11515611a3757600080fd5b50505060405180519050115b1515611a4e57600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635052abad336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611b1357600080fd5b6102c65a03f11515611b2457600080fd5b505050604051805190509350611b8284601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b9250600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322eb2c02336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611c4957600080fd5b6102c65a03f11515611c5a57600080fd5b505050604051805190509150611c79828561349690919063ffffffff16565b9050611c8e828461349690919063ffffffff16565b9250611ce2601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461349690919063ffffffff16565b925080601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166389afcb44336000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611e3257600080fd5b6102c65a03f11515611e4357600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611e8e57600080fd5b7fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d3384604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150505050565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f6057600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636494cde16040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515611fe557600080fd5b6102c65a03f11515611ff657600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561205657600080fd5b6001601960146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120d057600080fd5b8161218e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561216257600080fd5b6102c65a03f1151561217357600080fd5b5050506040518051905060085461349690919063ffffffff16565b1015151561219b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156121d757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1984846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156122a457600080fd5b6102c65a03f115156122b557600080fd5b50505060405180519050506001905092915050565b600c5481565b60115481565b601960149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561234457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663829c34286040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156123c957600080fd5b6102c65a03f115156123da57600080fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561243c57600080fd5b6000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124f457600080fd5b6000601960146101000a81548160ff021916908315150217905550565b7fcd18c1683fcd49ac98a87d5fd5a82c5f375b4061b05f491883e0edc785b694d13334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561260057600080fd5b6001601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b601e5481565b600f5481565b601b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126d057600080fd5b6001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60008060008061275d61274f601d548761354e90919063ffffffff16565b670de0b6b3a7640000613533565b925066016bcc41e90000831015156127945761278d61278660198561354e90919063ffffffff16565b6064613533565b915061286d565b65886c98b76000831015156127c8576127c16127ba60148561354e90919063ffffffff16565b6064613533565b915061286c565b6548c273950000831015156127fc576127f56127ee600f8561354e90919063ffffffff16565b6064613533565b915061286b565b65246139ca80008310151561283057612829612822600a8561354e90919063ffffffff16565b6064613533565b915061286a565b6506d23ad5f800831015156128645761285d61285660058561354e90919063ffffffff16565b6064613533565b9150612869565b600091505b5b5b5b5b601560009054906101000a900460ff16156128a7576128a0612899600f8561354e90919063ffffffff16565b6064613533565b90506128e3565b600f54600c54016009541115156128dd576128d66128cf600a8561354e90919063ffffffff16565b6064613533565b90506128e2565b600090505b5b81818401019250829350505050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ce57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612a5c57600080fd5b6102c65a03f11515612a6d57600080fd5b50505060405180519050506001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ada57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b1657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c3157600080fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cf357600080fd5b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d4b57600080fd5b6000601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015612e7957506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515612e5c57600080fd5b6102c65a03f11515612e6d57600080fd5b50505060405180519050115b1515612e8457600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635052abad866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515612f4957600080fd5b6102c65a03f11515612f5a57600080fd5b505050604051805190509350612fb884601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546134af90919063ffffffff16565b9250600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166322eb2c02866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561307f57600080fd5b6102c65a03f1151561309057600080fd5b5050506040518051905091506130af828561349690919063ffffffff16565b90506130c4828461349690919063ffffffff16565b9250613118601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461349690919063ffffffff16565b925080601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166389afcb44866000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561326857600080fd5b6102c65a03f1151561327957600080fd5b50505060405180519050508473ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015156132c457600080fd5b7fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d8584604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600c546009541015801561337c5750600d5460095411155b93506010543410159250600061339f601e5460115461349690919063ffffffff16565b11915060019050600e54600c540160095411151561347157601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613453575060145434601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b90506001601560006101000a81548160ff0219169083151502179055505b83801561347b5750825b80156134845750815b801561348d5750805b94505050505090565b60008282111515156134a457fe5b818303905092915050565b60008082840190508381101515156134c357fe5b8091505092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601c549081150290604051600060405180830381858888f19350505050151561353157600080fd5b565b600080828481151561354157fe5b0490508091505092915050565b60008060008414156135635760009150613582565b828402905082848281151561357457fe5b0414151561357e57fe5b8091505b50929150505600a165627a7a7230582071127c85b92702d6d0c5fe80727977a8e4311e46cc42ad295f17e581ae5a71580029

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

000000000000000000000000000000000000000000000000000000005a9d3848000000000000000000000000000000000000000000000000000000005abf9b68000000000000000000000000000000000000000000000000000002bb30ed607b000000000000000000000000d75496c0a6a36308cfda58e317ab97ea46b8f6b5000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000005675bb890d6be43c000000000000000000000000002008e3057bd734e10ad13c9eae45ff132abc1722000000000000000000000000ef90b9fea51c983827ba3b79c3c19a9751fc7e990000000000000000000000001eb48c64ad71837a6ed57e4a2dab88173c8330540000000000000000000000000000000000000000000000000000000000004650000000000000000000000000000000000000000000000000000000000002bf20000000000000000000000000000000000000000000000000089aaeb710be0000000000000000000000000000000000000000000000000000000000005d6b0a00000000000000000000000000000000000000000000000000000000005c2aad80

-----Decoded View---------------
Arg [0] : _startTime (uint256): 1520253000
Arg [1] : _endTime (uint256): 1522506600
Arg [2] : _ETHtoZWeirate (uint256): 3003003003003
Arg [3] : _wallet (address): 0xd75496c0a6a36308cfda58E317aB97eA46b8F6B5
Arg [4] : _minTransAmount (uint256): 100000000000000000
Arg [5] : _ethCap (uint256): 1594903515352841600000
Arg [6] : tokenAddress (address): 0x2008e3057BD734e10AD13c9EAe45Ff132aBc1722
Arg [7] : presaleAddress (address): 0xef90b9fEA51C983827BA3b79c3c19A9751fc7e99
Arg [8] : tempMngrAddress (address): 0x1eb48c64AD71837A6ed57E4a2daB88173c833054
Arg [9] : _goldListPeriod (uint256): 18000
Arg [10] : _postGoldPeriod (uint256): 180000
Arg [11] : _goldPeriodCap (uint256): 620000000000000000
Arg [12] : _vestedMintStartTime (uint256): 1567296000
Arg [13] : _calenderYearStart (uint256): 1546300800

-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a9d3848
Arg [1] : 000000000000000000000000000000000000000000000000000000005abf9b68
Arg [2] : 000000000000000000000000000000000000000000000000000002bb30ed607b
Arg [3] : 000000000000000000000000d75496c0a6a36308cfda58e317ab97ea46b8f6b5
Arg [4] : 000000000000000000000000000000000000000000000000016345785d8a0000
Arg [5] : 00000000000000000000000000000000000000000000005675bb890d6be43c00
Arg [6] : 0000000000000000000000002008e3057bd734e10ad13c9eae45ff132abc1722
Arg [7] : 000000000000000000000000ef90b9fea51c983827ba3b79c3c19a9751fc7e99
Arg [8] : 0000000000000000000000001eb48c64ad71837a6ed57e4a2dab88173c833054
Arg [9] : 0000000000000000000000000000000000000000000000000000000000004650
Arg [10] : 000000000000000000000000000000000000000000000000000000000002bf20
Arg [11] : 000000000000000000000000000000000000000000000000089aaeb710be0000
Arg [12] : 000000000000000000000000000000000000000000000000000000005d6b0a00
Arg [13] : 000000000000000000000000000000000000000000000000000000005c2aad80


Swarm Source

bzzr://71127c85b92702d6d0c5fe80727977a8e4311e46cc42ad295f17e581ae5a7158

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.