ETH Price: $3,632.38 (-0.47%)
 
Transaction Hash
Method
Block
From
To
Transfer45714002017-11-17 19:10:462606 days ago1510945846IN
0x81CB9eCa...0EFA13023
0.1 ETH0.0004544621
Transfer45713642017-11-17 19:03:062606 days ago1510945386IN
0x81CB9eCa...0EFA13023
0.0087735 ETH0.00044121
Transfer45713472017-11-17 19:00:172606 days ago1510945217IN
0x81CB9eCa...0EFA13023
0.005 ETH0.00044121
Transfer45701462017-11-17 14:24:222606 days ago1510928662IN
0x81CB9eCa...0EFA13023
0.85 ETH0.0004544621
Transfer45697622017-11-17 12:58:212606 days ago1510923501IN
0x81CB9eCa...0EFA13023
0.5 ETH0.0008656440
Transfer45566022017-11-15 9:56:382608 days ago1510739798IN
0x81CB9eCa...0EFA13023
4 ETH0.0002164110
Transfer45429242017-11-13 4:55:362610 days ago1510548936IN
0x81CB9eCa...0EFA13023
1.8 ETH0.0004328220
Transfer45316782017-11-11 9:49:452612 days ago1510393785IN
0x81CB9eCa...0EFA13023
1.1 ETH0.000021641
Transfer45298332017-11-11 2:47:322612 days ago1510368452IN
0x81CB9eCa...0EFA13023
3.71 ETH0.0004544621
Transfer45291232017-11-10 23:57:482613 days ago1510358268IN
0x81CB9eCa...0EFA13023
6 ETH0.000155817.2
Transfer45290912017-11-10 23:48:422613 days ago1510357722IN
0x81CB9eCa...0EFA13023
0.5 ETH0.000021641
Transfer45283742017-11-10 21:10:432613 days ago1510348243IN
0x81CB9eCa...0EFA13023
4.6096865 ETH0.0004890822.6
Transfer45276512017-11-10 18:31:102613 days ago1510338670IN
0x81CB9eCa...0EFA13023
110.135 ETH0.0005431825.1
Transfer45271722017-11-10 16:39:262613 days ago1510331966IN
0x81CB9eCa...0EFA13023
50 ETH0.0004328220
Transfer45271292017-11-10 16:30:262613 days ago1510331426IN
0x81CB9eCa...0EFA13023
2.99 ETH0.0004587821.2
Transfer45269832017-11-10 15:56:112613 days ago1510329371IN
0x81CB9eCa...0EFA13023
2.99 ETH0.0004587821.2
Transfer45269542017-11-10 15:49:462613 days ago1510328986IN
0x81CB9eCa...0EFA13023
0.465 ETH0.0004544621
Transfer45267892017-11-10 15:15:412613 days ago1510326941IN
0x81CB9eCa...0EFA13023
100 ETH0.000499923.1
Transfer45267862017-11-10 15:14:392613 days ago1510326879IN
0x81CB9eCa...0EFA13023
100 ETH0.0004544621
Transfer45267862017-11-10 15:14:392613 days ago1510326879IN
0x81CB9eCa...0EFA13023
100 ETH0.0004544621
Transfer45267772017-11-10 15:12:442613 days ago1510326764IN
0x81CB9eCa...0EFA13023
100 ETH0.000722833.4
Transfer45267762017-11-10 15:12:352613 days ago1510326755IN
0x81CB9eCa...0EFA13023
100 ETH0.0006059428
Transfer45267622017-11-10 15:10:582613 days ago1510326658IN
0x81CB9eCa...0EFA13023
100 ETH0.0010820550
Transfer45267602017-11-10 15:10:232613 days ago1510326623IN
0x81CB9eCa...0EFA13023
2 ETH0.0004566221.1
Transfer45267552017-11-10 15:08:412613 days ago1510326521IN
0x81CB9eCa...0EFA13023
100 ETH0.00097645.1
View all transactions

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
45264312017-11-10 13:52:112613 days ago1510321931
0x81CB9eCa...0EFA13023
685.68900482 ETH
45232392017-11-10 1:31:002613 days ago1510277460
0x81CB9eCa...0EFA13023
1,874.49928407 ETH
45208122017-11-09 16:10:452614 days ago1510243845
0x81CB9eCa...0EFA13023
504.53253794 ETH
45197752017-11-09 12:12:582614 days ago1510229578
0x81CB9eCa...0EFA13023
629.53 ETH
45192542017-11-09 10:12:562614 days ago1510222376
0x81CB9eCa...0EFA13023
411.95304245 ETH
45190792017-11-09 9:35:242614 days ago1510220124
0x81CB9eCa...0EFA13023
1,447.21266147 ETH
45178362017-11-09 4:27:542614 days ago1510201674
0x81CB9eCa...0EFA13023
178.23 ETH
45172862017-11-09 2:28:232614 days ago1510194503
0x81CB9eCa...0EFA13023
255.11023981 ETH
45165112017-11-08 23:27:432615 days ago1510183663
0x81CB9eCa...0EFA13023
322.99053715 ETH
45158832017-11-08 21:01:552615 days ago1510174915
0x81CB9eCa...0EFA13023
674.18323044 ETH
45155212017-11-08 19:34:232615 days ago1510169663
0x81CB9eCa...0EFA13023
6,957.84038805 ETH
45149832017-11-08 17:27:242615 days ago1510162044
0x81CB9eCa...0EFA13023
0.002 ETH
45149202017-11-08 17:10:562615 days ago1510161056
0x81CB9eCa...0EFA13023
0.0001 ETH
45148032017-11-08 16:45:132615 days ago1510159513
0x81CB9eCa...0EFA13023
0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
QuantstampSale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

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

pragma solidity ^0.4.11;
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }
  function div(uint256 a, uint256 b) internal constant returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }
  function sub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }
  function add(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}
/**
 * @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() {
    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) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}
/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();
  bool public paused = false;
  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }
  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }
  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    Pause();
  }
  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}
/**
 * The QuantstampSale smart contract is used for selling QuantstampToken
 * tokens (QSP). It does so by converting ETH received into a quantity of
 * tokens that are transferred to the contributor via the ERC20-compatible
 * transferFrom() function.
 */
contract QuantstampSale is Pausable {
    using SafeMath for uint256;
    // The beneficiary is the future recipient of the funds
    address public beneficiary;
    // The crowdsale has a funding goal, cap, deadline, and minimum contribution
    uint public fundingCap;
    uint public minContribution;
    bool public fundingCapReached = false;
    bool public saleClosed = false;
    // Whitelist data
    mapping(address => bool) public registry;
    // For each user, specifies the cap (in wei) that can be contributed for each tier
    // Tiers are filled in the order 3, 2, 1, 4
    mapping(address => uint256) public cap1;        // 100% bonus
    mapping(address => uint256) public cap2;        // 40% bonus
    mapping(address => uint256) public cap3;        // 20% bonus
    mapping(address => uint256) public cap4;        // 0% bonus
    // Stores the amount contributed for each tier for a given address
    mapping(address => uint256) public contributed1;
    mapping(address => uint256) public contributed2;
    mapping(address => uint256) public contributed3;
    mapping(address => uint256) public contributed4;
    // Conversion rate by tier (QSP : ETHER)
    uint public rate1 = 10000;
    uint public rate2 = 7000;
    uint public rate3 = 6000;
    uint public rate4 = 5000;
    // Time period of sale (UNIX timestamps)
    uint public startTime;
    uint public endTime;
    // Keeps track of the amount of wei raised
    uint public amountRaised;
    // prevent certain functions from being recursively called
    bool private rentrancy_lock = false;
    // The token being sold
    // QuantstampToken public tokenReward;
    // A map that tracks the amount of wei contributed by address
    mapping(address => uint256) public balanceOf;
    // A map that tracks the amount of QSP tokens that should be allocated to each address
    mapping(address => uint256) public tokenBalanceOf;
    // Events
    event CapReached(address _beneficiary, uint _amountRaised);
    event FundTransfer(address _backer, uint _amount, bool _isContribution);
    event RegistrationStatusChanged(address target, bool isRegistered, uint c1, uint c2, uint c3, uint c4);
    // Modifiers
    modifier beforeDeadline()   { require (currentTime() < endTime); _; }
    // modifier afterDeadline()    { require (currentTime() >= endTime); _; } no longer used without fundingGoal
    modifier afterStartTime()    { require (currentTime() >= startTime); _; }
    modifier saleNotClosed()    { require (!saleClosed); _; }
    modifier nonReentrant() {
        require(!rentrancy_lock);
        rentrancy_lock = true;
        _;
        rentrancy_lock = false;
    }
    /**
     * Constructor for a crowdsale of QuantstampToken tokens.
     *
     * @param ifSuccessfulSendTo            the beneficiary of the fund
     * @param fundingCapInEthers            the cap (maximum) size of the fund
     * @param minimumContributionInWei      minimum contribution (in wei)
     * @param start                         the start time (UNIX timestamp)
     * @param durationInMinutes             the duration of the crowdsale in minutes
     */
    function QuantstampSale(
        address ifSuccessfulSendTo,
        uint fundingCapInEthers,
        uint minimumContributionInWei,
        uint start,
        uint durationInMinutes
        // address addressOfTokenUsedAsReward
    ) {
        require(ifSuccessfulSendTo != address(0) && ifSuccessfulSendTo != address(this));
        //require(addressOfTokenUsedAsReward != address(0) && addressOfTokenUsedAsReward != address(this));
        require(durationInMinutes > 0);
        beneficiary = ifSuccessfulSendTo;
        fundingCap = fundingCapInEthers * 1 ether;
        minContribution = minimumContributionInWei;
        startTime = start;
        endTime = start + (durationInMinutes * 1 minutes);
        // tokenReward = QuantstampToken(addressOfTokenUsedAsReward);
    }
    /**
     * This function is called whenever Ether is sent to the
     * smart contract. It can only be executed when the crowdsale is
     * not paused, not closed, and before the deadline has been reached.
     *
     * This function will update state variables for whether or not the
     * funding goal or cap have been reached. It also ensures that the
     * tokens are transferred to the sender, and that the correct
     * number of tokens are sent according to the current rate.
     */
    function () payable {
        buy();
    }
    function buy ()
        payable public
        whenNotPaused
        beforeDeadline
        afterStartTime
        saleNotClosed
        nonReentrant
    {
        require(msg.value >= minContribution);
        uint amount = msg.value;
        // ensure that the user adheres to whitelist restrictions
        require(registry[msg.sender]);
        uint numTokens = computeTokenAmount(msg.sender, amount);
        assert(numTokens > 0);
        // update the total amount raised
        amountRaised = amountRaised.add(amount);
        require(amountRaised <= fundingCap);
        // update the sender's balance of wei contributed
        balanceOf[msg.sender] = balanceOf[msg.sender].add(amount);
        // add to the token balance of the sender
        tokenBalanceOf[msg.sender] = tokenBalanceOf[msg.sender].add(numTokens);
        FundTransfer(msg.sender, amount, true);
        updateFundingCap();
    }
    /**
    * Computes the amount of QSP that should be issued for the given transaction.
    * Contribution tiers are filled up in the order 3, 2, 1, 4.
    * @param addr      The wallet address of the contributor
    * @param amount    Amount of wei for payment
    */
    function computeTokenAmount(address addr, uint amount) internal
        returns (uint){
        require(amount > 0);
        uint r3 = cap3[addr].sub(contributed3[addr]);
        uint r2 = cap2[addr].sub(contributed2[addr]);
        uint r1 = cap1[addr].sub(contributed1[addr]);
        uint r4 = cap4[addr].sub(contributed4[addr]);
        uint numTokens = 0;
        // cannot contribute more than the remaining sum
        assert(amount <= r3.add(r2).add(r1).add(r4));
        // Compute tokens for tier 3
        if(r3 > 0){
            if(amount <= r3){
                contributed3[addr] = contributed3[addr].add(amount);
                return rate3.mul(amount);
            }
            else{
                numTokens = rate3.mul(r3);
                amount = amount.sub(r3);
                contributed3[addr] = cap3[addr];
            }
        }
        // Compute tokens for tier 2
        if(r2 > 0){
            if(amount <= r2){
                contributed2[addr] = contributed2[addr].add(amount);
                return numTokens.add(rate2.mul(amount));
            }
            else{
                numTokens = numTokens.add(rate2.mul(r2));
                amount = amount.sub(r2);
                contributed2[addr] = cap2[addr];
            }
        }
        // Compute tokens for tier 1
        if(r1 > 0){
            if(amount <= r1){
                contributed1[addr] = contributed1[addr].add(amount);
                return numTokens.add(rate1.mul(amount));
            }
            else{
                numTokens = numTokens.add(rate1.mul(r1));
                amount = amount.sub(r1);
                contributed1[addr] = cap1[addr];
            }
        }
        // Compute tokens for tier 4 (overflow)
        contributed4[addr] = contributed4[addr].add(amount);
        return numTokens.add(rate4.mul(amount));
    }
    /**
     * @dev Check if a contributor was at any point registered.
     *
     * @param contributor Address that will be checked.
     */
    function hasPreviouslyRegistered(address contributor)
        internal
        constant
        onlyOwner returns (bool)
    {
        // if caps for this customer exist, then the customer has previously been registered
        return (cap1[contributor].add(cap2[contributor]).add(cap3[contributor]).add(cap4[contributor])) > 0;
    }
    /*
    * If the user was already registered, ensure that the new caps do not conflict previous contributions
    *
    * NOTE: cannot use SafeMath here, because it exceeds the local variable stack limit.
    * Should be ok since it is onlyOwner, and conditionals should guard the subtractions from underflow.
    */
    function validateUpdatedRegistration(address addr, uint c1, uint c2, uint c3, uint c4)
        internal
        constant
        onlyOwner returns(bool)
    {
        return (contributed3[addr] <= c3) && (contributed2[addr] <= c2)
            && (contributed1[addr] <= c1) && (contributed4[addr] <= c4);
    }
    /**
     * @dev Sets registration status of an address for participation.
     *
     * @param contributor Address that will be registered/deregistered.
     * @param c1 The maximum amount of wei that the user can contribute in tier 1.
     * @param c2 The maximum amount of wei that the user can contribute in tier 2.
     * @param c3 The maximum amount of wei that the user can contribute in tier 3.
     * @param c4 The maximum amount of wei that the user can contribute in tier 4.
     */
    function registerUser(address contributor, uint c1, uint c2, uint c3, uint c4)
        public
        onlyOwner
    {
        require(contributor != address(0));
        // if the user was already registered ensure that the new caps do not contradict their current contributions
        if(hasPreviouslyRegistered(contributor)){
            require(validateUpdatedRegistration(contributor, c1, c2, c3, c4));
        }
        require(c1.add(c2).add(c3).add(c4) >= minContribution);
        registry[contributor] = true;
        cap1[contributor] = c1;
        cap2[contributor] = c2;
        cap3[contributor] = c3;
        cap4[contributor] = c4;
        RegistrationStatusChanged(contributor, true, c1, c2, c3, c4);
    }
     /**
     * @dev Remove registration status of an address for participation.
     *
     * NOTE: if the user made initial contributions to the crowdsale,
     *       this will not return the previously allotted tokens.
     *
     * @param contributor Address to be unregistered.
     */
    function deactivate(address contributor)
        public
        onlyOwner
    {
        require(registry[contributor]);
        registry[contributor] = false;
        RegistrationStatusChanged(contributor, false, cap1[contributor], cap2[contributor], cap3[contributor], cap4[contributor]);
    }
    /**
     * @dev Re-registers an already existing contributor
     *
     * @param contributor Address to be unregistered.
     */
    function reactivate(address contributor)
        public
        onlyOwner
    {
        require(hasPreviouslyRegistered(contributor));
        registry[contributor] = true;
        RegistrationStatusChanged(contributor, true, cap1[contributor], cap2[contributor], cap3[contributor], cap4[contributor]);
    }
    /**
     * @dev Sets registration statuses of addresses for participation.
     * @param contributors Addresses that will be registered/deregistered.
     * @param caps1 The maximum amount of wei that each user can contribute to cap1, in the same order as the addresses.
     * @param caps2 The maximum amount of wei that each user can contribute to cap2, in the same order as the addresses.
     * @param caps3 The maximum amount of wei that each user can contribute to cap3, in the same order as the addresses.
     * @param caps4 The maximum amount of wei that each user can contribute to cap4, in the same order as the addresses.
     */
    function registerUsers(address[] contributors,
                           uint[] caps1,
                           uint[] caps2,
                           uint[] caps3,
                           uint[] caps4)
        external
        onlyOwner
    {
        // check that all arrays have the same length
        require(contributors.length == caps1.length);
        require(contributors.length == caps2.length);
        require(contributors.length == caps3.length);
        require(contributors.length == caps4.length);
        for (uint i = 0; i < contributors.length; i++) {
            registerUser(contributors[i], caps1[i], caps2[i], caps3[i], caps4[i]);
        }
    }
    /**
     * The owner can terminate the crowdsale at any time.
     */
    function terminate() external onlyOwner {
        saleClosed = true;
    }
    /**
     * The owner can allocate the specified amount of tokens from the
     * crowdsale allowance to the recipient addresses.
     *
     * NOTE: be extremely careful to get the amounts correct, which
     * are in units of wei and mini-QSP. Every digit counts.
     *
     * @param addrs          the recipient addresses
     * @param weiAmounts     the amounts contributed in wei
     * @param miniQspAmounts the amounts of tokens transferred in mini-QSP
     */
    function ownerAllocateTokensForList(address[] addrs, uint[] weiAmounts, uint[] miniQspAmounts)
            external onlyOwner
    {
        require(addrs.length == weiAmounts.length);
        require(addrs.length == miniQspAmounts.length);
        for(uint i = 0; i < addrs.length; i++){
            ownerAllocateTokens(addrs[i], weiAmounts[i], miniQspAmounts[i]);
        }
    }
    /**
     *
     * The owner can allocate the specified amount of tokens from the
     * crowdsale allowance to the recipient (_to).
     *
     *
     *
     * NOTE: be extremely careful to get the amounts correct, which
     * are in units of wei and mini-QSP. Every digit counts.
     *
     * @param _to            the recipient of the tokens
     * @param amountWei     the amount contributed in wei
     * @param amountMiniQsp the amount of tokens transferred in mini-QSP
     */
    function ownerAllocateTokens(address _to, uint amountWei, uint amountMiniQsp)
            onlyOwner nonReentrant
    {
        // don't allocate tokens for the admin
        // require(tokenReward.adminAddr() != _to);
        amountRaised = amountRaised.add(amountWei);
        require(amountRaised <= fundingCap);
        tokenBalanceOf[_to] = tokenBalanceOf[_to].add(amountMiniQsp);
        balanceOf[_to] = balanceOf[_to].add(amountWei);
        FundTransfer(_to, amountWei, true);
        updateFundingCap();
    }
    /**
     * The owner can call this function to withdraw the funds that
     * have been sent to this contract for the crowdsale subject to
     * the funding goal having been reached. The funds will be sent
     * to the beneficiary specified when the crowdsale was created.
     */
    function ownerSafeWithdrawal() external onlyOwner nonReentrant {
        uint balanceToSend = this.balance;
        beneficiary.transfer(balanceToSend);
        FundTransfer(beneficiary, balanceToSend, false);
    }
    /**
     * Checks if the funding cap has been reached. If it has, then
     * the CapReached event is triggered.
     */
    function updateFundingCap() internal {
        assert (amountRaised <= fundingCap);
        if (amountRaised == fundingCap) {
            // Check if the funding cap has been reached
            fundingCapReached = true;
            saleClosed = true;
            CapReached(beneficiary, amountRaised);
        }
    }
    /**
     * Returns the current time.
     * Useful to abstract calls to "now" for tests.
    */
    function currentTime() constant returns (uint _currentTime) {
        return now;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"registry","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"terminate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"cap1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributed3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"amountWei","type":"uint256"},{"name":"amountMiniQsp","type":"uint256"}],"name":"ownerAllocateTokens","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":"","type":"address"}],"name":"contributed2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contributor","type":"address"}],"name":"deactivate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contributor","type":"address"},{"name":"c1","type":"uint256"},{"name":"c2","type":"uint256"},{"name":"c3","type":"uint256"},{"name":"c4","type":"uint256"}],"name":"registerUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ownerSafeWithdrawal","outputs":[],"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":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"cap4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contributors","type":"address[]"},{"name":"caps1","type":"uint256[]"},{"name":"caps2","type":"uint256[]"},{"name":"caps3","type":"uint256[]"},{"name":"caps4","type":"uint256[]"}],"name":"registerUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"cap3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minContribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributed4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributed1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"_currentTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"},{"name":"weiAmounts","type":"uint256[]"},{"name":"miniQspAmounts","type":"uint256[]"}],"name":"ownerAllocateTokensForList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"cap2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"contributor","type":"address"}],"name":"reactivate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rate2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"ifSuccessfulSendTo","type":"address"},{"name":"fundingCapInEthers","type":"uint256"},{"name":"minimumContributionInWei","type":"uint256"},{"name":"start","type":"uint256"},{"name":"durationInMinutes","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_amountRaised","type":"uint256"}],"name":"CapReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_backer","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_isContribution","type":"bool"}],"name":"FundTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"isRegistered","type":"bool"},{"indexed":false,"name":"c1","type":"uint256"},{"indexed":false,"name":"c2","type":"uint256"},{"indexed":false,"name":"c3","type":"uint256"},{"indexed":false,"name":"c4","type":"uint256"}],"name":"RegistrationStatusChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405260008060146101000a81548160ff0219169083151502179055506000600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff021916908315150217905550612710600e55611b58600f556117706010556113886011556000601560006101000a81548160ff021916908315150217905550341561009257600080fd5b60405160a0806200303683398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561017c57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b151561018757600080fd5b60008111151561019657600080fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000084026002819055508260038190555081601281905550603c810282016013819055505050505050612e1f80620002176000396000f3006060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063038defd7146101e25780630c08bf881461023357806314606109146102485780631c0804041461029557806328e08186146102e25780633197cbb61461032d57806331aa01c41461035657806338af3eed146103a35780633ea053eb146103f85780633f4ba83a1461043157806357a8c01f146104465780635c975abb146104a35780635dd8eb50146104d057806370a08231146104f9578063782e34c91461054657806378e979251461055b5780637b3e5e7b146105845780638456cb59146105ad578063848b3821146105c25780638adba5a9146105ef5780638da5cb5b1461063c578063930cb83e146106915780639d70085e1461070f578063a6f2ae3a1461075c578063aaffadf314610766578063aff1f15f1461078f578063b4e50c9b146107b8578063b716735914610805578063b8c766b814610852578063cf8549691461087f578063d18e81b3146108a8578063d301c85f146108d1578063e3b2594f14610927578063e42c08f214610950578063e873d02d1461099d578063ebeac2b5146109ea578063f2fde38b14610a23578063f555b81514610a5c575b6101e0610a85565b005b34156101ed57600080fd5b610219600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610da1565b604051808215151515815260200191505060405180910390f35b341561023e57600080fd5b610246610dc1565b005b341561025357600080fd5b61027f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e39565b6040518082815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e51565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b61032b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050610e69565b005b341561033857600080fd5b6103406110f3565b6040518082815260200191505060405180910390f35b341561036157600080fd5b61038d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110f9565b6040518082815260200191505060405180910390f35b34156103ae57600080fd5b6103b6611111565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561040357600080fd5b61042f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611137565b005b341561043c57600080fd5b6104446113d1565b005b341561045157600080fd5b6104a1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803590602001909190803590602001909190505061148f565b005b34156104ae57600080fd5b6104b6611793565b604051808215151515815260200191505060405180910390f35b34156104db57600080fd5b6104e36117a6565b6040518082815260200191505060405180910390f35b341561050457600080fd5b610530600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506117ac565b6040518082815260200191505060405180910390f35b341561055157600080fd5b6105596117c4565b005b341561056657600080fd5b61056e61198c565b6040518082815260200191505060405180910390f35b341561058f57600080fd5b610597611992565b6040518082815260200191505060405180910390f35b34156105b857600080fd5b6105c0611998565b005b34156105cd57600080fd5b6105d5611a58565b604051808215151515815260200191505060405180910390f35b34156105fa57600080fd5b610626600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a6b565b6040518082815260200191505060405180910390f35b341561064757600080fd5b61064f611a83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561069c57600080fd5b61070d600480803590602001908201803590602001919091929080359060200190820180359060200191909192908035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050611aa8565b005b341561071a57600080fd5b610746600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c06565b6040518082815260200191505060405180910390f35b610764610a85565b005b341561077157600080fd5b610779611c1e565b6040518082815260200191505060405180910390f35b341561079a57600080fd5b6107a2611c24565b6040518082815260200191505060405180910390f35b34156107c357600080fd5b6107ef600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c2a565b6040518082815260200191505060405180910390f35b341561081057600080fd5b61083c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c42565b6040518082815260200191505060405180910390f35b341561085d57600080fd5b610865611c5a565b604051808215151515815260200191505060405180910390f35b341561088a57600080fd5b610892611c6d565b6040518082815260200191505060405180910390f35b34156108b357600080fd5b6108bb611c73565b6040518082815260200191505060405180910390f35b34156108dc57600080fd5b6109256004808035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050611c7b565b005b341561093257600080fd5b61093a611d83565b6040518082815260200191505060405180910390f35b341561095b57600080fd5b610987600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d89565b6040518082815260200191505060405180910390f35b34156109a857600080fd5b6109d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611da1565b6040518082815260200191505060405180910390f35b34156109f557600080fd5b610a21600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611db9565b005b3415610a2e57600080fd5b610a5a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061200f565b005b3415610a6757600080fd5b610a6f612164565b6040518082815260200191505060405180910390f35b600080600060149054906101000a900460ff16151515610aa457600080fd5b601354610aaf611c73565b101515610abb57600080fd5b601254610ac6611c73565b10151515610ad357600080fd5b600460019054906101000a900460ff16151515610aef57600080fd5b601560009054906101000a900460ff16151515610b0b57600080fd5b6001601560006101000a81548160ff0219169083151502179055506003543410151515610b3757600080fd5b349150600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b9257600080fd5b610b9c338361216a565b9050600081111515610baa57fe5b610bbf8260145461297f90919063ffffffff16565b60148190555060025460145411151515610bd857600080fd5b610c2a82601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cbf81601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf633836001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a1610d8261299d565b6000601560006101000a81548160ff0219169083151502179055505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e1c57600080fd5b6001600460016101000a81548160ff021916908315150217905550565b60066020528060005260406000206000915090505481565b600c6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec457600080fd5b601560009054906101000a900460ff16151515610ee057600080fd5b6001601560006101000a81548160ff021916908315150217905550610f108260145461297f90919063ffffffff16565b60148190555060025460145411151515610f2957600080fd5b610f7b81601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061101082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf683836001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a16110d361299d565b6000601560006101000a81548160ff021916908315150217905550505050565b60135481565b600b6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119257600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156111ea57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f61bf2829b8b18b9b65315dd8e3ceb7dce4a560fb25407fd453c0cad3fa0c6bb3816000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186151515158152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142c57600080fd5b600060149054906101000a900460ff16151561144757600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561152657600080fd5b61152f85612a81565b1561154d576115418585858585612c1b565b151561154c57600080fd5b5b600354611587826115798561156b888a61297f90919063ffffffff16565b61297f90919063ffffffff16565b61297f90919063ffffffff16565b1015151561159457600080fd5b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f61bf2829b8b18b9b65315dd8e3ceb7dce4a560fb25407fd453c0cad3fa0c6bb385600186868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186151515158152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a15050505050565b600060149054906101000a900460ff1681565b60115481565b60166020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182157600080fd5b601560009054906101000a900460ff1615151561183d57600080fd5b6001601560006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16319050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156118d457600080fd5b7fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a16000601560006101000a81548160ff02191690831515021790555050565b60125481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b600060149054906101000a900460ff16151515611a0f57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600460009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b0557600080fd5b888890508b8b9050141515611b1957600080fd5b868690508b8b9050141515611b2d57600080fd5b848490508b8b9050141515611b4157600080fd5b828290508b8b9050141515611b5557600080fd5b600090505b8a8a9050811015611bf957611bec8b8b838181101515611b7657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a848181101515611ba157fe5b905060200201358989858181101515611bb657fe5b905060200201358888868181101515611bcb57fe5b905060200201358787878181101515611be057fe5b9050602002013561148f565b8080600101915050611b5a565b5050505050505050505050565b60086020528060005260406000206000915090505481565b60035481565b60105481565b600d6020528060005260406000206000915090505481565b600a6020528060005260406000206000915090505481565b600460019054906101000a900460ff1681565b600e5481565b600042905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd857600080fd5b8484905087879050141515611cec57600080fd5b8282905087879050141515611d0057600080fd5b600090505b86869050811015611d7a57611d6d8787838181101515611d2157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686848181101515611d4c57fe5b905060200201358585858181101515611d6157fe5b90506020020135610e69565b8080600101915050611d05565b50505050505050565b60025481565b60176020528060005260406000206000915090505481565b60076020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1457600080fd5b611e1d81612a81565b1515611e2857600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f61bf2829b8b18b9b65315dd8e3ceb7dce4a560fb25407fd453c0cad3fa0c6bb3816001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186151515158152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561206a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156120a657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60008060008060008060008711151561218257600080fd5b612213600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b94506122a6600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b9350612339600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b92506123cc600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b915060009050612409826123fb856123ed888a61297f90919063ffffffff16565b61297f90919063ffffffff16565b61297f90919063ffffffff16565b871115151561241457fe5b60008511156125875784871115156124d75761247887600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d087601054612dc090919063ffffffff16565b9550612974565b6124ec85601054612dc090919063ffffffff16565b90506125018588612da790919063ffffffff16565b9650600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600084111561271e57838711151561265c576125eb87600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265561264688600f54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b9550612974565b61268361267485600f54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b90506126988488612da790919063ffffffff16565b9650600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008311156128b55782871115156127f35761278287600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ec6127dd88600e54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b9550612974565b61281a61280b84600e54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b905061282f8388612da790919063ffffffff16565b9650600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61290787600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297161296288601154612dc090919063ffffffff16565b8261297f90919063ffffffff16565b95505b505050505092915050565b600080828401905083811015151561299357fe5b8091505092915050565b600254601454111515156129ad57fe5b6002546014541415612a7f576001600460006101000a81548160ff0219169083151502179055506001600460016101000a81548160ff0219169083151502179055507f195de8a1ebf5a1244af169b7e0bd0f735307a2626a73abce88f9b488628c6c24600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ade57600080fd5b6000612c13600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c05600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf7600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b61297f90919063ffffffff16565b61297f90919063ffffffff16565b119050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c7857600080fd5b82600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411158015612d06575083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b8015612d51575084600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b8015612d9c575081600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b905095945050505050565b6000828211151515612db557fe5b818303905092915050565b60008082840290506000841480612de15750828482811515612dde57fe5b04145b1515612de957fe5b80915050929150505600a165627a7a7230582053e60d0cdc0b947f88f7cf04b69b1c958b0e117e4bbbfdd9b56062cf4818a7ea002900000000000000000000000022e9c5643d6db3aa4163ae80fca9241315214a370000000000000000000000000000000000000000000000000000000000015e14000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000005a01bc6000000000000000000000000000000000000000000000000000000000000010e0

Deployed Bytecode

0x6060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063038defd7146101e25780630c08bf881461023357806314606109146102485780631c0804041461029557806328e08186146102e25780633197cbb61461032d57806331aa01c41461035657806338af3eed146103a35780633ea053eb146103f85780633f4ba83a1461043157806357a8c01f146104465780635c975abb146104a35780635dd8eb50146104d057806370a08231146104f9578063782e34c91461054657806378e979251461055b5780637b3e5e7b146105845780638456cb59146105ad578063848b3821146105c25780638adba5a9146105ef5780638da5cb5b1461063c578063930cb83e146106915780639d70085e1461070f578063a6f2ae3a1461075c578063aaffadf314610766578063aff1f15f1461078f578063b4e50c9b146107b8578063b716735914610805578063b8c766b814610852578063cf8549691461087f578063d18e81b3146108a8578063d301c85f146108d1578063e3b2594f14610927578063e42c08f214610950578063e873d02d1461099d578063ebeac2b5146109ea578063f2fde38b14610a23578063f555b81514610a5c575b6101e0610a85565b005b34156101ed57600080fd5b610219600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610da1565b604051808215151515815260200191505060405180910390f35b341561023e57600080fd5b610246610dc1565b005b341561025357600080fd5b61027f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e39565b6040518082815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e51565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b61032b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091905050610e69565b005b341561033857600080fd5b6103406110f3565b6040518082815260200191505060405180910390f35b341561036157600080fd5b61038d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110f9565b6040518082815260200191505060405180910390f35b34156103ae57600080fd5b6103b6611111565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561040357600080fd5b61042f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611137565b005b341561043c57600080fd5b6104446113d1565b005b341561045157600080fd5b6104a1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803590602001909190803590602001909190505061148f565b005b34156104ae57600080fd5b6104b6611793565b604051808215151515815260200191505060405180910390f35b34156104db57600080fd5b6104e36117a6565b6040518082815260200191505060405180910390f35b341561050457600080fd5b610530600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506117ac565b6040518082815260200191505060405180910390f35b341561055157600080fd5b6105596117c4565b005b341561056657600080fd5b61056e61198c565b6040518082815260200191505060405180910390f35b341561058f57600080fd5b610597611992565b6040518082815260200191505060405180910390f35b34156105b857600080fd5b6105c0611998565b005b34156105cd57600080fd5b6105d5611a58565b604051808215151515815260200191505060405180910390f35b34156105fa57600080fd5b610626600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a6b565b6040518082815260200191505060405180910390f35b341561064757600080fd5b61064f611a83565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561069c57600080fd5b61070d600480803590602001908201803590602001919091929080359060200190820180359060200191909192908035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050611aa8565b005b341561071a57600080fd5b610746600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c06565b6040518082815260200191505060405180910390f35b610764610a85565b005b341561077157600080fd5b610779611c1e565b6040518082815260200191505060405180910390f35b341561079a57600080fd5b6107a2611c24565b6040518082815260200191505060405180910390f35b34156107c357600080fd5b6107ef600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c2a565b6040518082815260200191505060405180910390f35b341561081057600080fd5b61083c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c42565b6040518082815260200191505060405180910390f35b341561085d57600080fd5b610865611c5a565b604051808215151515815260200191505060405180910390f35b341561088a57600080fd5b610892611c6d565b6040518082815260200191505060405180910390f35b34156108b357600080fd5b6108bb611c73565b6040518082815260200191505060405180910390f35b34156108dc57600080fd5b6109256004808035906020019082018035906020019190919290803590602001908201803590602001919091929080359060200190820180359060200191909192905050611c7b565b005b341561093257600080fd5b61093a611d83565b6040518082815260200191505060405180910390f35b341561095b57600080fd5b610987600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d89565b6040518082815260200191505060405180910390f35b34156109a857600080fd5b6109d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611da1565b6040518082815260200191505060405180910390f35b34156109f557600080fd5b610a21600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611db9565b005b3415610a2e57600080fd5b610a5a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061200f565b005b3415610a6757600080fd5b610a6f612164565b6040518082815260200191505060405180910390f35b600080600060149054906101000a900460ff16151515610aa457600080fd5b601354610aaf611c73565b101515610abb57600080fd5b601254610ac6611c73565b10151515610ad357600080fd5b600460019054906101000a900460ff16151515610aef57600080fd5b601560009054906101000a900460ff16151515610b0b57600080fd5b6001601560006101000a81548160ff0219169083151502179055506003543410151515610b3757600080fd5b349150600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b9257600080fd5b610b9c338361216a565b9050600081111515610baa57fe5b610bbf8260145461297f90919063ffffffff16565b60148190555060025460145411151515610bd857600080fd5b610c2a82601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cbf81601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf633836001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a1610d8261299d565b6000601560006101000a81548160ff0219169083151502179055505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e1c57600080fd5b6001600460016101000a81548160ff021916908315150217905550565b60066020528060005260406000206000915090505481565b600c6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ec457600080fd5b601560009054906101000a900460ff16151515610ee057600080fd5b6001601560006101000a81548160ff021916908315150217905550610f108260145461297f90919063ffffffff16565b60148190555060025460145411151515610f2957600080fd5b610f7b81601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061101082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf683836001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a16110d361299d565b6000601560006101000a81548160ff021916908315150217905550505050565b60135481565b600b6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119257600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156111ea57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f61bf2829b8b18b9b65315dd8e3ceb7dce4a560fb25407fd453c0cad3fa0c6bb3816000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186151515158152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142c57600080fd5b600060149054906101000a900460ff16151561144757600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ea57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561152657600080fd5b61152f85612a81565b1561154d576115418585858585612c1b565b151561154c57600080fd5b5b600354611587826115798561156b888a61297f90919063ffffffff16565b61297f90919063ffffffff16565b61297f90919063ffffffff16565b1015151561159457600080fd5b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f61bf2829b8b18b9b65315dd8e3ceb7dce4a560fb25407fd453c0cad3fa0c6bb385600186868686604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186151515158152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a15050505050565b600060149054906101000a900460ff1681565b60115481565b60166020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182157600080fd5b601560009054906101000a900460ff1615151561183d57600080fd5b6001601560006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16319050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156118d457600080fd5b7fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826000604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151515158152602001935050505060405180910390a16000601560006101000a81548160ff02191690831515021790555050565b60125481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119f357600080fd5b600060149054906101000a900460ff16151515611a0f57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600460009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b0557600080fd5b888890508b8b9050141515611b1957600080fd5b868690508b8b9050141515611b2d57600080fd5b848490508b8b9050141515611b4157600080fd5b828290508b8b9050141515611b5557600080fd5b600090505b8a8a9050811015611bf957611bec8b8b838181101515611b7657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a848181101515611ba157fe5b905060200201358989858181101515611bb657fe5b905060200201358888868181101515611bcb57fe5b905060200201358787878181101515611be057fe5b9050602002013561148f565b8080600101915050611b5a565b5050505050505050505050565b60086020528060005260406000206000915090505481565b60035481565b60105481565b600d6020528060005260406000206000915090505481565b600a6020528060005260406000206000915090505481565b600460019054906101000a900460ff1681565b600e5481565b600042905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd857600080fd5b8484905087879050141515611cec57600080fd5b8282905087879050141515611d0057600080fd5b600090505b86869050811015611d7a57611d6d8787838181101515611d2157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168686848181101515611d4c57fe5b905060200201358585858181101515611d6157fe5b90506020020135610e69565b8080600101915050611d05565b50505050505050565b60025481565b60176020528060005260406000206000915090505481565b60076020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1457600080fd5b611e1d81612a81565b1515611e2857600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f61bf2829b8b18b9b65315dd8e3ceb7dce4a560fb25407fd453c0cad3fa0c6bb3816001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186151515158152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561206a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156120a657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60008060008060008060008711151561218257600080fd5b612213600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b94506122a6600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b9350612339600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b92506123cc600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da790919063ffffffff16565b915060009050612409826123fb856123ed888a61297f90919063ffffffff16565b61297f90919063ffffffff16565b61297f90919063ffffffff16565b871115151561241457fe5b60008511156125875784871115156124d75761247887600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124d087601054612dc090919063ffffffff16565b9550612974565b6124ec85601054612dc090919063ffffffff16565b90506125018588612da790919063ffffffff16565b9650600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600084111561271e57838711151561265c576125eb87600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061265561264688600f54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b9550612974565b61268361267485600f54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b90506126988488612da790919063ffffffff16565b9650600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008311156128b55782871115156127f35761278287600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ec6127dd88600e54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b9550612974565b61281a61280b84600e54612dc090919063ffffffff16565b8261297f90919063ffffffff16565b905061282f8388612da790919063ffffffff16565b9650600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61290787600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061297161296288601154612dc090919063ffffffff16565b8261297f90919063ffffffff16565b95505b505050505092915050565b600080828401905083811015151561299357fe5b8091505092915050565b600254601454111515156129ad57fe5b6002546014541415612a7f576001600460006101000a81548160ff0219169083151502179055506001600460016101000a81548160ff0219169083151502179055507f195de8a1ebf5a1244af169b7e0bd0f735307a2626a73abce88f9b488628c6c24600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601454604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ade57600080fd5b6000612c13600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c05600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf7600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461297f90919063ffffffff16565b61297f90919063ffffffff16565b61297f90919063ffffffff16565b119050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c7857600080fd5b82600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411158015612d06575083600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b8015612d51575084600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b8015612d9c575081600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b905095945050505050565b6000828211151515612db557fe5b818303905092915050565b60008082840290506000841480612de15750828482811515612dde57fe5b04145b1515612de957fe5b80915050929150505600a165627a7a7230582053e60d0cdc0b947f88f7cf04b69b1c958b0e117e4bbbfdd9b56062cf4818a7ea0029

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

00000000000000000000000022e9c5643d6db3aa4163ae80fca9241315214a370000000000000000000000000000000000000000000000000000000000015e14000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000005a01bc6000000000000000000000000000000000000000000000000000000000000010e0

-----Decoded View---------------
Arg [0] : ifSuccessfulSendTo (address): 0x22e9c5643D6db3aA4163Ae80Fca9241315214a37
Arg [1] : fundingCapInEthers (uint256): 89620
Arg [2] : minimumContributionInWei (uint256): 100000000000000000
Arg [3] : start (uint256): 1510063200
Arg [4] : durationInMinutes (uint256): 4320

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000022e9c5643d6db3aa4163ae80fca9241315214a37
Arg [1] : 0000000000000000000000000000000000000000000000000000000000015e14
Arg [2] : 000000000000000000000000000000000000000000000000016345785d8a0000
Arg [3] : 000000000000000000000000000000000000000000000000000000005a01bc60
Arg [4] : 00000000000000000000000000000000000000000000000000000000000010e0


Swarm Source

bzzr://53e60d0cdc0b947f88f7cf04b69b1c958b0e117e4bbbfdd9b56062cf4818a7ea

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.