ETH Price: $2,038.64 (+0.62%)

Contract

0xEFA694bc75fBB291bdB0FA86BFAbEd9cBd065aCB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve231862682025-08-21 1:47:11201 days ago1755740831IN
Jacs Tech: JACS Token
0 ETH0.000012060.26
Approve158178282022-10-24 12:00:591233 days ago1666612859IN
Jacs Tech: JACS Token
0 ETH0.0005819712.54336063
Transfer142876332022-02-27 10:20:361472 days ago1645957236IN
Jacs Tech: JACS Token
0 ETH0.0012266226
Approve127090122021-06-26 9:57:321718 days ago1624701452IN
Jacs Tech: JACS Token
0 ETH0.000184344
Approve126918292021-06-23 17:49:391721 days ago1624470579IN
Jacs Tech: JACS Token
0 ETH0.0006495514
Approve126917942021-06-23 17:43:491721 days ago1624470229IN
Jacs Tech: JACS Token
0 ETH0.0006959515
Transfer126510162021-06-17 8:58:361727 days ago1623920316IN
Jacs Tech: JACS Token
0 ETH0.0007794915
Transfer123037282021-04-24 15:23:131781 days ago1619277793IN
Jacs Tech: JACS Token
0 ETH0.0011919660
Transfer123031062021-04-24 13:08:481781 days ago1619269728IN
Jacs Tech: JACS Token
0 ETH0.001172859
Transfer123030622021-04-24 12:57:351781 days ago1619269055IN
Jacs Tech: JACS Token
0 ETH0.0010330352
Transfer119700812021-03-04 6:08:431832 days ago1614838123IN
Jacs Tech: JACS Token
0 ETH0.0030621384
Transfer119484472021-02-28 22:11:341835 days ago1614550294IN
Jacs Tech: JACS Token
0 ETH0.0045279588
Transfer118553152021-02-14 14:19:161850 days ago1613312356IN
Jacs Tech: JACS Token
0 ETH0.00238405111
Transfer118420632021-02-12 13:28:031852 days ago1613136483IN
Jacs Tech: JACS Token
0 ETH0.00550455151
Approve118314612021-02-10 22:16:341853 days ago1612995394IN
Jacs Tech: JACS Token
0 ETH0.00315074127
Approve118314612021-02-10 22:16:341853 days ago1612995394IN
Jacs Tech: JACS Token
0 ETH0.00558914127
Transfer118284162021-02-10 11:12:571854 days ago1612955577IN
Jacs Tech: JACS Token
0 ETH0.00645235177
Transfer118283762021-02-10 11:03:291854 days ago1612955009IN
Jacs Tech: JACS Token
0 ETH0.00637735175
Transfer118283532021-02-10 10:58:201854 days ago1612954700IN
Jacs Tech: JACS Token
0 ETH0.00637735175
Transfer118283352021-02-10 10:53:061854 days ago1612954386IN
Jacs Tech: JACS Token
0 ETH0.00462735175
Transfer117837902021-02-03 14:15:131861 days ago1612361713IN
Jacs Tech: JACS Token
0 ETH0.00488483134
Transfer116851052021-01-19 10:08:571876 days ago1611050937IN
Jacs Tech: JACS Token
0 ETH0.002573350
Transfer116851052021-01-19 10:08:571876 days ago1611050937IN
Jacs Tech: JACS Token
0 ETH0.002572750
Transfer116783232021-01-18 9:04:111877 days ago1610960651IN
Jacs Tech: JACS Token
0 ETH0.0030865260
Transfer116783172021-01-18 9:02:401877 days ago1610960560IN
Jacs Tech: JACS Token
0 ETH0.0030879660
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Balance Of231869452025-08-21 4:03:11201 days ago1755748991
Jacs Tech: JACS Token
0 ETH
Balance Of231869452025-08-21 4:03:11201 days ago1755748991
Jacs Tech: JACS Token
0 ETH
Transfer231869452025-08-21 4:03:11201 days ago1755748991
Jacs Tech: JACS Token
0 ETH
Balance Of231869452025-08-21 4:03:11201 days ago1755748991
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Transfer From231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Balance Of231869442025-08-21 4:02:59201 days ago1755748979
Jacs Tech: JACS Token
0 ETH
Transfer231808872025-08-20 7:46:35202 days ago1755675995
Jacs Tech: JACS Token
0 ETH
Transfer231801602025-08-20 5:20:35202 days ago1755667235
Jacs Tech: JACS Token
0 ETH
Transfer231799392025-08-20 4:35:59202 days ago1755664559
Jacs Tech: JACS Token
0 ETH
Transfer231797972025-08-20 4:07:35202 days ago1755662855
Jacs Tech: JACS Token
0 ETH
Transfer231797582025-08-20 3:59:47202 days ago1755662387
Jacs Tech: JACS Token
0 ETH
Transfer231796542025-08-20 3:38:35202 days ago1755661115
Jacs Tech: JACS Token
0 ETH
Transfer231795642025-08-20 3:20:35202 days ago1755660035
Jacs Tech: JACS Token
0 ETH
Balance Of126918352021-06-23 17:50:571721 days ago1624470657
Jacs Tech: JACS Token
0 ETH
Transfer From126918352021-06-23 17:50:571721 days ago1624470657
Jacs Tech: JACS Token
0 ETH
Balance Of116484192021-01-13 18:50:251882 days ago1610563825
Jacs Tech: JACS Token
0 ETH
Transfer116484192021-01-13 18:50:251882 days ago1610563825
Jacs Tech: JACS Token
0 ETH
Balance Of116465552021-01-13 12:19:121882 days ago1610540352
Jacs Tech: JACS Token
0 ETH
Transfer116465552021-01-13 12:19:121882 days ago1610540352
Jacs Tech: JACS Token
0 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:
JACSToken

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-10-25
*/

pragma solidity ^0.4.26;
 
// -----------------------------------------------------------------------
//
// Symbol      : JACS
// Name        : JACS Token
// Total supply: 536,870,912.000000000000000000
// Decimals    : 18
//  
// -----------------------------------------------------------------------
library SafeMath {
function add(uint a, uint b) internal pure returns (uint c) {
c = a + b;
require(c >= a);
}
function sub(uint a, uint b) internal pure returns (uint c) {
require(b <= a);
c = a - b;
}
function mul(uint a, uint b) internal pure returns (uint c) {
c = a * b;
require(a == 0 || c / a == b);
}
function div(uint a, uint b) internal pure returns (uint c) {
require(b > 0);
c = a / b;
}
}

contract ERC20Interface {
function totalSupply() public view returns (uint);
function balanceOf(address tokenOwner) public view returns (uint balance);
function allowance(address tokenOwner, address spender) public view returns (uint remaining);
function transfer(address to, uint tokens) public returns (bool success);
function approve(address spender, uint tokens) public returns (bool success);
function transferFrom(address from, address to, uint tokens) public returns (bool success);
  
event Transfer(address indexed from, address indexed to, uint tokens);
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract ApproveAndCallFallBack {
function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public;
}

contract Owned {
address public owner;
address public newOwner;
    event OwnershipTransferred(address indexed _from, address indexed _to);
    constructor() public {
owner = msg.sender;
}
    modifier onlyOwner {
require(msg.sender == owner);
_;
}
function transferOwnership(address _newOwner) public onlyOwner {
newOwner = _newOwner;
}
function acceptOwnership() public {
require(msg.sender == newOwner);
 emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
newOwner = address(0);
   }
    
  }

contract Lock {
    
     /**lock
     * @dev Reasons why a user's tokens have been locked
     */
    mapping(address => bytes32[]) public lockReason;
    mapping(address => uint256) public balances;

    /**
     * @dev locked token structure
     */
    struct LockToken {
        uint256 amount;
        uint256 validity;
        bool claimed;
    }

    /**
     * @dev Holds number & validity of tokens locked for a given reason for
     *      a specified address
     */
    mapping(address => mapping(bytes32 => LockToken)) public locked;

    /**
     * @dev Records data of all the tokens Locked
     */
    event Locked(
        address indexed _of,
        bytes32 indexed _reason,
        uint256 _amount,
        uint256 _validity
    );
    /**
     * @dev Records data of all the tokens unlocked
     */
    event Unlocked(
        address indexed _of,
        bytes32 indexed _reason,
        uint256 _amount
    );

    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     */
    function tokensLocked(address _of, bytes32 _reason)
    public view returns(uint256 amount);

    /**
     * @dev Returns unlockable tokens for a specified address for a specified reason
     * @param _of The address to query the the unlockable token count of
     * @param _reason The reason to query the unlockable tokens for
     */
    function tokensUnlockable(address _of, bytes32 _reason)
    public view returns(uint256 amount);

    /**
     * @dev Unlocks the unlockable tokens of a specified address
     * @param _of Address of user, claiming back unlockable tokens
     */
    function unlock(address _of)
    public returns(uint256 unlockableTokens);
}

contract JACSToken is ERC20Interface, Owned, Lock {
    using SafeMath for uint;
    string public symbol;
    string public  name;
    uint8 public decimals;
    uint256 public tokensForTokenSale; 
    address public tokenSaleAddress;                    // address of TokenSale contract
    uint256 public totalAllocatedTokens;                // variable to regulate the funds allocation
    uint256 public ownerHold; 
    uint internal _totalSupply;
    mapping(address => uint) public balances;
    mapping(address => mapping(address => uint)) public allowed;
    
        /**
     * @dev Error messages for require statements
     */
    string internal constant AMOUNT_ZERO = "Amount can not be 0";
    string internal constant ONLY_OWNER = "Only owner has the right to perform this action";
    address public owner = msg.sender;
    
    constructor( address _tokensaleContract) public {
           symbol = "JACS";
           name = "JACS Token";
           decimals = 18;
           tokenSaleAddress = _tokensaleContract;
           _totalSupply = 536870912 * 10**uint(decimals);
           
           tokensForTokenSale = 268435456 * 10**uint(decimals);
           ownerHold = 268435456 * 10**uint(decimals);
           
            balances[tokenSaleAddress] = tokensForTokenSale;
            balances[owner] = ownerHold;
            
            emit Transfer(address(0), tokenSaleAddress, tokensForTokenSale);
            emit Transfer(address(0), owner, ownerHold);
         }
         // ------------------------------------------------------------------
        // Total supply
        // -------------------------------------------------------------------
        function totalSupply() public constant returns (uint) {
             return _totalSupply.sub(balances[address(0)]);
        }
     // ------------------------------------------------------------------
    // modifier
    // ------------------------------------------------------------------
      modifier onlyTokenSale() {
        require(msg.sender == tokenSaleAddress);
    _;
  }
  
    modifier onlyOwner {
        require(msg.sender == owner, ONLY_OWNER);
        _;
    }
    
       /**lock
     * @dev Transfers and Locks a specified amount of tokens,
     *      for a specified reason and time
     * @param _to adress to which tokens are to be transfered
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be transfered and locked
     * @param _days Number of days for locked token
     */
    function transferWithLock(address _to, bytes32 _reason, uint256 _amount, uint256 _days)
    public
    onlyOwner 
    returns(bool) {
        uint256 validUntil = now.add(_days.mul(86400)); //solhint-disable-line
        require(_amount != 0, AMOUNT_ZERO);

        if (locked[_to][_reason].amount == 0)
            lockReason[_to].push(_reason);

        transfer(address(this), _amount);

        locked[_to][_reason] = LockToken(_amount, validUntil, false);

        emit Locked(_to, _reason, _amount, validUntil);
        return true;
    }

    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     */
    function tokensLocked(address _of, bytes32 _reason)
    public
    view
    returns(uint256 amount) {
        if (!locked[_of][_reason].claimed)
            amount = locked[_of][_reason].amount;
    }

    /**
     * @dev Returns unlockable tokens for a specified address for a specified reason
     * @param _of The address to query the the unlockable token count of
     * @param _reason The reason to query the unlockable tokens for
     */
    function tokensUnlockable(address _of, bytes32 _reason)
    public
    view
    returns(uint256 amount) {
        if (locked[_of][_reason].validity <= now && !locked[_of][_reason].claimed) //solhint-disable-line
            amount = locked[_of][_reason].amount;
    }

    /**
     * @dev Unlocks the unlockable tokens of a specified address
     * @param _of Address of user, claiming back unlockable tokens 
     */
    function unlock(address _of)
    public
    returns(uint256 unlockableTokens) {
        uint256 lockedTokens;

        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            lockedTokens = tokensUnlockable(_of, lockReason[_of][i]);
            if (lockedTokens > 0) {
                unlockableTokens = unlockableTokens.add(lockedTokens);
                locked[_of][lockReason[_of][i]].claimed = true;
                emit Unlocked(_of, lockReason[_of][i], lockedTokens); 
                
                if (unlockableTokens > 0){
                    this.transfer(_of, unlockableTokens);
                }
            }
        }
    }

    /**
     *  @dev Internal function that burns an amount of the token
     * @param tokens The amount that will be burnt.
     */

    function burn(uint256 tokens) public onlyOwner  returns(bool) {
        _burn(owner, tokens);
        return true;
    }
    
   /**
   * @dev Internal function that burns an amount of the token of a given
   * account.
   * @param account The account whose tokens will be burnt.
   * @param amount The amount that will be burnt.
   */
  function _burn(address account, uint256 amount) internal {
    require(account != 0);
    require(amount <= balances[account]);

    _totalSupply = _totalSupply.sub(amount);
    balances[account] = balances[account].sub(amount);
    emit Transfer(account, address(0), amount);
  }
  
 /**
      @dev function used to change the supply of total Allocated tokens in the market , it only called by TokenSale
      @param _amount amount is the token quantity added in token supply
  
   */
  function totalAllocatedTokens(uint256 _amount) public onlyTokenSale {
    totalAllocatedTokens += _amount;
  }
  
     // ------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // -------------------------------------------------------------------
     function balanceOf(address tokenOwner) public constant returns (uint balance) {
         return balances[tokenOwner];
    }
     // ------------------------------------------------------------------
     // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
     // - 0 value transfers are allowed
     // ------------------------------------------------------------------
     function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender, to, tokens);
         return true;
     }
     // ------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
     // from the token owner's account
  // recommends that there are no checks for the approval double-spend
 // attack
 // as this should be implemented in user interfaces
     // ------------------------------------------------------------------
    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
         return true;
     }
  // -------------------------------------------------------------------
  // Transfer `tokens` from the `from` account to the `to` account
  //
  // The calling account must already have sufficient tokens
 // approve(...)-d
 // for spending from the `from` account and
  // - From account must have sufficient balance to transfer
  // - Spender must have sufficient allowance to transfer
   // - 0 value transfers are allowed
  // -------------------------------------------------------------------
    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = balances[from].sub(tokens);
         allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
         balances[to] = balances[to].add(tokens);
         emit Transfer(from, to, tokens);
         return true;
     }
    // -------------------------------------------------------------------
     // transferred to the spender's account
     // ------------------------------------------------------------------
     function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {
         return allowed[tokenOwner][spender];
    }
     // ------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
     // `receiveApproval(...)` is then executed
     // ------------------------------------------------------------------
     function approveAndCall(address spender, uint tokens, bytes memory data) public returns (bool success) {
         allowed[msg.sender][spender] = tokens;
         emit Approval(msg.sender, spender, tokens);
         ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
         return true;
     }
    // -------------------------------------------------------------------
     // Don't accept ETH
    // -------------------------------------------------------------------
     function () external payable {
         revert();
     }
// -------------------------------------------------------------------
     // Owner can transfer out any accidentally sent ERC20 tokens
    // -------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalAllocatedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerHold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensForTokenSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"totalAllocatedTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_of","type":"address"}],"name":"unlock","outputs":[{"name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokens","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_reason","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_days","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"},{"name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockReason","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"locked","outputs":[{"name":"amount","type":"uint256"},{"name":"validity","type":"uint256"},{"name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_tokensaleContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_of","type":"address"},{"indexed":true,"name":"_reason","type":"bytes32"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

608060405233600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005257600080fd5b5060405160208062002f2583398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600481526020017f4a41435300000000000000000000000000000000000000000000000000000000815250600590805190602001906200010392919062000400565b506040805190810160405280600a81526020017f4a41435320546f6b656e00000000000000000000000000000000000000000000815250600690805190602001906200015192919062000400565b506012600760006101000a81548160ff021916908360ff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900460ff1660ff16600a0a632000000002600c81905550600760009054906101000a900460ff1660ff16600a0a631000000002600881905550600760009054906101000a900460ff1660ff16600a0a631000000002600b81905550600854600d6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b54600d6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040518082815260200191505060405180910390a350620004af565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200044357805160ff191683800117855562000474565b8280016001018555821562000474579182015b828111156200047357825182559160200191906001019062000456565b5b50905062000483919062000487565b5090565b620004ac91905b80821115620004a85760008160009055506001016200048e565b5090565b90565b612a6680620004bf6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461017a578063095ea7b31461020a5780630c195d991461026f5780630d6791fc1461029a578063137b2954146102c55780631448b3ca146102f057806318160ddd1461034757806323b872dd1461037257806327e235e3146103f757806328650d1a1461044e5780632f6c493c1461047b578063313ce567146104d257806342966c68146105035780634cb5465f146105485780635294d0e8146105c55780635c6581651461062a5780635ca48d8c146106a157806370a082311461070657806371d66f001461075d57806379ba5097146107c65780638da5cb5b146107dd57806395d89b4114610834578063a9059cbb146108c4578063cae9ca5114610929578063d4ee1d90146109d4578063d71be8db14610a2b578063dc39d06d14610aa2578063dd62ed3e14610b07578063f2fde38b14610b7e575b600080fd5b34801561018657600080fd5b5061018f610bc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cf5780820151818401526020810190506101b4565b50505050905090810190601f1680156101fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c5f565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610d51565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102af610d57565b6040518082815260200191505060405180910390f35b3480156102d157600080fd5b506102da610d5d565b6040518082815260200191505060405180910390f35b3480156102fc57600080fd5b50610305610d63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035357600080fd5b5061035c610d89565b6040518082815260200191505060405180910390f35b34801561037e57600080fd5b506103dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de4565b604051808215151515815260200191505060405180910390f35b34801561040357600080fd5b50610438600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108f565b6040518082815260200191505060405180910390f35b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506110a7565b005b34801561048757600080fd5b506104bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611116565b6040518082815260200191505060405180910390f35b3480156104de57600080fd5b506104e761145a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561050f57600080fd5b5061052e6004803603810190808035906020019092919050505061146d565b604051808215151515815260200191505060405180910390f35b34801561055457600080fd5b506105ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b3480156105d157600080fd5b50610614600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050611a58565b6040518082815260200191505060405180910390f35b34801561063657600080fd5b5061068b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b95565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050611bba565b6040518082815260200191505060405180910390f35b34801561071257600080fd5b50610747600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c90565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b506107a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cd9565b60405180826000191660001916815260200191505060405180910390f35b3480156107d257600080fd5b506107db611d09565b005b3480156107e957600080fd5b506107f2611ea8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561084057600080fd5b50610849611ece565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088957808201518184015260208101905061086e565b50505050905090810190601f1680156108b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d057600080fd5b5061090f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f6c565b604051808215151515815260200191505060405180910390f35b34801561093557600080fd5b506109ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612107565b604051808215151515815260200191505060405180910390f35b3480156109e057600080fd5b506109e9612356565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3757600080fd5b50610a7a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919050505061237c565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b348015610aae57600080fd5b50610aed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123c0565b604051808215151515815260200191505060405180910390f35b348015610b1357600080fd5b50610b68600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612621565b6040518082815260200191505060405180910390f35b348015610b8a57600080fd5b50610bbf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126a8565b005b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c575780601f10610c2c57610100808354040283529160200191610c57565b820191906000526020600020905b815481529060010190602001808311610c3a57829003601f168201915b505050505081565b600081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600a5481565b600b5481565b60085481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ddf600d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c5461284390919063ffffffff16565b905090565b6000610e3882600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f0a82600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fdc82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285f90919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600d6020528060005260406000206000915090505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110357600080fd5b80600a6000828254019250508190555050565b60008060008090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611453576111c984600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156111b957fe5b9060005260206000200154611a58565b91506000821115611446576111e7828461285f90919063ffffffff16565b92506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561127857fe5b90600052602060002001546000191660001916815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156112ff57fe5b9060005260206000200154600019168473ffffffffffffffffffffffffffffffffffffffff167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a36000831115611445573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561140857600080fd5b505af115801561141c573d6000803e3d6000fd5b505050506040513d602081101561143257600080fd5b8101908080519060200190929190505050505b5b808060010191505061111f565b5050919050565b600760009054906101000a900460ff1681565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e00000000000000000000000000000000008152509015156115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561158a57808201518184015260208101905061156f565b50505050905090810190601f1680156115b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506115f2600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361287b565b60019050919050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e0000000000000000000000000000000000815250901515611754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117195780820151818401526020810190506116fe565b50505050905090810190601f1680156117465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061177d61176e6201518085612a0990919063ffffffff16565b4261285f90919063ffffffff16565b905060008414156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561182757808201518184015260208101905061180c565b50505050905090810190601f1680156118545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154141561193757600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b6119413085611f6c565b5060606040519081016040528085815260200182815260200160001515815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505084600019168673ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084600019166000191681526020019081526020016000206001015411158015611b2b5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16155b15611b8f57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600e602052816000526040600020602052806000526040600020600091509150505481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff161515611c8a57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260205281600052604060002081815481101515611cf457fe5b90600052602060002001600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d6557600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f645780601f10611f3957610100808354040283529160200191611f64565b820191906000526020600020905b815481529060010190602001808311611f4757829003601f168201915b505050505081565b6000611fc082600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061205582600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285f90919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156122e45780820151818401526020810190506122c9565b50505050905090810190601f1680156123115780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561233357600080fd5b505af1158015612347573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6004602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e0000000000000000000000000000000000815250901515612518576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124dd5780820151818401526020810190506124c2565b50505050905090810190601f16801561250a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156125de57600080fd5b505af11580156125f2573d6000803e3d6000fd5b505050506040513d602081101561260857600080fd5b8101908080519060200190929190505050905092915050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e00000000000000000000000000000000008152509015156127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127c35780820151818401526020810190506127a8565b50505050905090810190601f1680156127f05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561285457600080fd5b818303905092915050565b6000818301905082811015151561287557600080fd5b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156128a157600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156128ef57600080fd5b61290481600c5461284390919063ffffffff16565b600c8190555061295c81600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600081830290506000831480612a295750818382811515612a2657fe5b04145b1515612a3457600080fd5b929150505600a165627a7a723058207d70cbe3f6f81824bdddd0918f797a0a01d9aa2c2869943bd8c8da5be9b9bf3e0029000000000000000000000000f5593372cf8659d224047a18780b28931826f17c

Deployed Bytecode

0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461017a578063095ea7b31461020a5780630c195d991461026f5780630d6791fc1461029a578063137b2954146102c55780631448b3ca146102f057806318160ddd1461034757806323b872dd1461037257806327e235e3146103f757806328650d1a1461044e5780632f6c493c1461047b578063313ce567146104d257806342966c68146105035780634cb5465f146105485780635294d0e8146105c55780635c6581651461062a5780635ca48d8c146106a157806370a082311461070657806371d66f001461075d57806379ba5097146107c65780638da5cb5b146107dd57806395d89b4114610834578063a9059cbb146108c4578063cae9ca5114610929578063d4ee1d90146109d4578063d71be8db14610a2b578063dc39d06d14610aa2578063dd62ed3e14610b07578063f2fde38b14610b7e575b600080fd5b34801561018657600080fd5b5061018f610bc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cf5780820151818401526020810190506101b4565b50505050905090810190601f1680156101fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021657600080fd5b50610255600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c5f565b604051808215151515815260200191505060405180910390f35b34801561027b57600080fd5b50610284610d51565b6040518082815260200191505060405180910390f35b3480156102a657600080fd5b506102af610d57565b6040518082815260200191505060405180910390f35b3480156102d157600080fd5b506102da610d5d565b6040518082815260200191505060405180910390f35b3480156102fc57600080fd5b50610305610d63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035357600080fd5b5061035c610d89565b6040518082815260200191505060405180910390f35b34801561037e57600080fd5b506103dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de4565b604051808215151515815260200191505060405180910390f35b34801561040357600080fd5b50610438600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108f565b6040518082815260200191505060405180910390f35b34801561045a57600080fd5b50610479600480360381019080803590602001909291905050506110a7565b005b34801561048757600080fd5b506104bc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611116565b6040518082815260200191505060405180910390f35b3480156104de57600080fd5b506104e761145a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561050f57600080fd5b5061052e6004803603810190808035906020019092919050505061146d565b604051808215151515815260200191505060405180910390f35b34801561055457600080fd5b506105ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190929190803590602001909291905050506115fb565b604051808215151515815260200191505060405180910390f35b3480156105d157600080fd5b50610614600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050611a58565b6040518082815260200191505060405180910390f35b34801561063657600080fd5b5061068b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b95565b6040518082815260200191505060405180910390f35b3480156106ad57600080fd5b506106f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190505050611bba565b6040518082815260200191505060405180910390f35b34801561071257600080fd5b50610747600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c90565b6040518082815260200191505060405180910390f35b34801561076957600080fd5b506107a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cd9565b60405180826000191660001916815260200191505060405180910390f35b3480156107d257600080fd5b506107db611d09565b005b3480156107e957600080fd5b506107f2611ea8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561084057600080fd5b50610849611ece565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088957808201518184015260208101905061086e565b50505050905090810190601f1680156108b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d057600080fd5b5061090f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f6c565b604051808215151515815260200191505060405180910390f35b34801561093557600080fd5b506109ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612107565b604051808215151515815260200191505060405180910390f35b3480156109e057600080fd5b506109e9612356565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3757600080fd5b50610a7a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919050505061237c565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b348015610aae57600080fd5b50610aed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123c0565b604051808215151515815260200191505060405180910390f35b348015610b1357600080fd5b50610b68600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612621565b6040518082815260200191505060405180910390f35b348015610b8a57600080fd5b50610bbf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126a8565b005b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c575780601f10610c2c57610100808354040283529160200191610c57565b820191906000526020600020905b815481529060010190602001808311610c3a57829003601f168201915b505050505081565b600081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600a5481565b600b5481565b60085481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ddf600d60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c5461284390919063ffffffff16565b905090565b6000610e3882600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f0a82600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610fdc82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285f90919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600d6020528060005260406000206000915090505481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561110357600080fd5b80600a6000828254019250508190555050565b60008060008090505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611453576111c984600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156111b957fe5b9060005260206000200154611a58565b91506000821115611446576111e7828461285f90919063ffffffff16565b92506001600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561127857fe5b90600052602060002001546000191660001916815260200190815260200160002060020160006101000a81548160ff021916908315150217905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156112ff57fe5b9060005260206000200154600019168473ffffffffffffffffffffffffffffffffffffffff167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a36000831115611445573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561140857600080fd5b505af115801561141c573d6000803e3d6000fd5b505050506040513d602081101561143257600080fd5b8101908080519060200190929190505050505b5b808060010191505061111f565b5050919050565b600760009054906101000a900460ff1681565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e00000000000000000000000000000000008152509015156115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561158a57808201518184015260208101905061156f565b50505050905090810190601f1680156115b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506115f2600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361287b565b60019050919050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e0000000000000000000000000000000000815250901515611754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117195780820151818401526020810190506116fe565b50505050905090810190601f1680156117465780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061177d61176e6201518085612a0990919063ffffffff16565b4261285f90919063ffffffff16565b905060008414156040805190810160405280601381526020017f416d6f756e742063616e206e6f74206265203000000000000000000000000000815250901515611862576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561182757808201518184015260208101905061180c565b50505050905090810190601f1680156118545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000876000191660001916815260200190815260200160002060000154141561193757600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b6119413085611f6c565b5060606040519081016040528085815260200182815260200160001515815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008760001916600019168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505084600019168673ffffffffffffffffffffffffffffffffffffffff167fea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafdd8684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084600019166000191681526020019081526020016000206001015411158015611b2b5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff16155b15611b8f57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b600e602052816000526040600020602052806000526040600020600091509150505481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836000191660001916815260200190815260200160002060020160009054906101000a900460ff161515611c8a57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083600019166000191681526020019081526020016000206000015490505b92915050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260205281600052604060002081815481101515611cf457fe5b90600052602060002001600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d6557600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f645780601f10611f3957610100808354040283529160200191611f64565b820191906000526020600020905b815481529060010190602001808311611f4757829003601f168201915b505050505081565b6000611fc082600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061205582600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285f90919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600082600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156122e45780820151818401526020810190506122c9565b50505050905090810190601f1680156123115780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561233357600080fd5b505af1158015612347573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6004602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e0000000000000000000000000000000000815250901515612518576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124dd5780820151818401526020810190506124c2565b50505050905090810190601f16801561250a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156125de57600080fd5b505af11580156125f2573d6000803e3d6000fd5b505050506040513d602081101561260857600080fd5b8101908080519060200190929190505050905092915050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614606060405190810160405280602f81526020017f4f6e6c79206f776e6572206861732074686520726967687420746f207065726681526020017f6f726d207468697320616374696f6e00000000000000000000000000000000008152509015156127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127c35780820151818401526020810190506127a8565b50505050905090810190601f1680156127f05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561285457600080fd5b818303905092915050565b6000818301905082811015151561287557600080fd5b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156128a157600080fd5b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156128ef57600080fd5b61290481600c5461284390919063ffffffff16565b600c8190555061295c81600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284390919063ffffffff16565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600081830290506000831480612a295750818382811515612a2657fe5b04145b1515612a3457600080fd5b929150505600a165627a7a723058207d70cbe3f6f81824bdddd0918f797a0a01d9aa2c2869943bd8c8da5be9b9bf3e0029

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

000000000000000000000000f5593372cf8659d224047a18780b28931826f17c

-----Decoded View---------------
Arg [0] : _tokensaleContract (address): 0xf5593372cf8659d224047A18780B28931826F17c

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f5593372cf8659d224047a18780b28931826f17c


Deployed Bytecode Sourcemap

3971:10203:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13749:8;;;4085:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4085:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4085:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11398:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11398:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4270:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4270:35:0;;;;;;;;;;;;;;;;;;;;;;;4372:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4372:24:0;;;;;;;;;;;;;;;;;;;;;;;4139:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4139:33:0;;;;;;;;;;;;;;;;;;;;;;;4180:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4180:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5692:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5692:127:0;;;;;;;;;;;;;;;;;;;;;;;12124:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12124:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4437:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4437:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9922:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9922:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;8256:668;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8256:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4111:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4111:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9071:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9071:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6562:560;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6562:560:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7822:273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7822:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4484:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4484:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7361:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7361:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10252:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10252:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2173:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2173:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1886:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1886:164:0;;;;;;4790:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4790:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4058:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4058:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4058:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10717:269;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10717:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13185:338;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13185:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1575:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2569:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2569:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13987:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13987:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12677:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12677:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1794:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1794:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4085:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11398:210::-;11461:12;11517:6;11486:7;:19;11494:10;11486:19;;;;;;;;;;;;;;;:28;11506:7;11486:28;;;;;;;;;;;;;;;:37;;;;11560:7;11539:37;;11548:10;11539:37;;;11569:6;11539:37;;;;;;;;;;;;;;;;;;11595:4;11588:11;;11398:210;;;;:::o;4270:35::-;;;;:::o;4372:24::-;;;;:::o;4139:33::-;;;;:::o;4180:31::-;;;;;;;;;;;;;:::o;5692:127::-;5740:4;5769:38;5786:8;:20;5803:1;5786:20;;;;;;;;;;;;;;;;5769:12;;:16;;:38;;;;:::i;:::-;5762:45;;5692:127;:::o;12124:348::-;12201:12;12243:26;12262:6;12243:8;:14;12252:4;12243:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;12226:8;:14;12235:4;12226:14;;;;;;;;;;;;;;;:43;;;;12309:37;12339:6;12309:7;:13;12317:4;12309:13;;;;;;;;;;;;;;;:25;12323:10;12309:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;12281:7;:13;12289:4;12281:13;;;;;;;;;;;;;;;:25;12295:10;12281:25;;;;;;;;;;;;;;;:65;;;;12373:24;12390:6;12373:8;:12;12382:2;12373:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;12358:8;:12;12367:2;12358:12;;;;;;;;;;;;;;;:39;;;;12429:2;12414:26;;12423:4;12414:26;;;12433:6;12414:26;;;;;;;;;;;;;;;;;;12459:4;12452:11;;12124:348;;;;;:::o;4437:40::-;;;;;;;;;;;;;;;;;:::o;9922:112::-;6053:16;;;;;;;;;;;6039:30;;:10;:30;;;6031:39;;;;;;;;10021:7;9997:20;;:31;;;;;;;;;;;9922:112;:::o;8256:668::-;8310:24;8347:20;8385:9;8397:1;8385:13;;8380:537;8404:10;:15;8415:3;8404:15;;;;;;;;;;;;;;;:22;;;;8400:1;:26;8380:537;;;8463:41;8480:3;8485:10;:15;8496:3;8485:15;;;;;;;;;;;;;;;8501:1;8485:18;;;;;;;;;;;;;;;;;;8463:16;:41::i;:::-;8448:56;;8538:1;8523:12;:16;8519:387;;;8579:34;8600:12;8579:16;:20;;:34;;;;:::i;:::-;8560:53;;8674:4;8632:6;:11;8639:3;8632:11;;;;;;;;;;;;;;;:31;8644:10;:15;8655:3;8644:15;;;;;;;;;;;;;;;8660:1;8644:18;;;;;;;;;;;;;;;;;;8632:31;;;;;;;;;;;;;;;;;:39;;;:46;;;;;;;;;;;;;;;;;;8716:10;:15;8727:3;8716:15;;;;;;;;;;;;;;;8732:1;8716:18;;;;;;;;;;;;;;;;;;8702:47;;;8711:3;8702:47;;;8736:12;8702:47;;;;;;;;;;;;;;;;;;8810:1;8791:16;:20;8787:104;;;8835:4;:13;;;8849:3;8854:16;8835:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8835:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8835:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8835:36:0;;;;;;;;;;;;;;;;;8787:104;8519:387;8428:3;;;;;;;8380:537;;;8256:668;;;;;:::o;4111:21::-;;;;;;;;;;;;;:::o;9071:123::-;9127:4;6146:5;;;;;;;;;;;6132:19;;:10;:19;;;6153:10;;;;;;;;;;;;;;;;;;;;;;;6124:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6124:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9144:20;9150:5;;;;;;;;;;;9157:6;9144:5;:20::i;:::-;9182:4;9175:11;;9071:123;;;:::o;6562:560::-;6691:4;6708:18;6146:5;;;;;;;;;;;6132:19;;:10;:19;;;6153:10;;;;;;;;;;;;;;;;;;;;;;;6124:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6124:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6729:25;6737:16;6747:5;6737;:9;;:16;;;;:::i;:::-;6729:3;:7;;:25;;;;:::i;:::-;6708:46;;6807:1;6796:7;:12;;6810:11;;;;;;;;;;;;;;;;;;6788:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6788:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6870:1;6839:6;:11;6846:3;6839:11;;;;;;;;;;;;;;;:20;6851:7;6839:20;;;;;;;;;;;;;;;;;:27;;;:32;6835:80;;;6886:10;:15;6897:3;6886:15;;;;;;;;;;;;;;;6907:7;6886:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6886:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6835:80;6928:32;6945:4;6952:7;6928:8;:32::i;:::-;;6996:37;;;;;;;;;7006:7;6996:37;;;;7015:10;6996:37;;;;7027:5;6996:37;;;;;6973:6;:11;6980:3;6973:11;;;;;;;;;;;;;;;:20;6985:7;6973:20;;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7063:7;7051:41;;;7058:3;7051:41;;;7072:7;7081:10;7051:41;;;;;;;;;;;;;;;;;;;;;;;;7110:4;7103:11;;6562:560;;;;;;;:::o;7822:273::-;7913:14;7977:3;7944:6;:11;7951:3;7944:11;;;;;;;;;;;;;;;:20;7956:7;7944:20;;;;;;;;;;;;;;;;;:29;;;:36;;:69;;;;;7985:6;:11;7992:3;7985:11;;;;;;;;;;;;;;;:20;7997:7;7985:20;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;7984:29;7944:69;7940:147;;;8060:6;:11;8067:3;8060:11;;;;;;;;;;;;;;;:20;8072:7;8060:20;;;;;;;;;;;;;;;;;:27;;;8051:36;;7940:147;7822:273;;;;:::o;4484:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7361:206::-;7448:14;7480:6;:11;7487:3;7480:11;;;;;;;;;;;;;;;:20;7492:7;7480:20;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;7479:29;7475:84;;;7532:6;:11;7539:3;7532:11;;;;;;;;;;;;;;;:20;7544:7;7532:20;;;;;;;;;;;;;;;;;:27;;;7523:36;;7475:84;7361:206;;;;:::o;10252:125::-;10316:12;10349:8;:20;10358:10;10349:20;;;;;;;;;;;;;;;;10342:27;;10252:125;;;:::o;2173:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1886:164::-;1945:8;;;;;;;;;;;1931:22;;:10;:22;;;1923:31;;;;;;;;1991:8;;;;;;;;;;;1963:37;;1984:5;;;;;;;;;;;1963:37;;;;;;;;;;;;2011:8;;;;;;;;;;;2003:5;;:16;;;;;;;;;;;;;;;;;;2041:1;2022:8;;:21;;;;;;;;;;;;;;;;;;1886:164::o;4790:33::-;;;;;;;;;;;;;:::o;4058:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10717:269::-;10776:12;10824:32;10849:6;10824:8;:20;10833:10;10824:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10801:8;:20;10810:10;10801:20;;;;;;;;;;;;;;;:55;;;;10882:24;10899:6;10882:8;:12;10891:2;10882:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;10867:8;:12;10876:2;10867:12;;;;;;;;;;;;;;;:39;;;;10943:2;10922:32;;10931:10;10922:32;;;10947:6;10922:32;;;;;;;;;;;;;;;;;;10973:4;10966:11;;10717:269;;;;:::o;13185:338::-;13274:12;13331:6;13300:7;:19;13308:10;13300:19;;;;;;;;;;;;;;;:28;13320:7;13300:28;;;;;;;;;;;;;;;:37;;;;13375:7;13354:37;;13363:10;13354:37;;;13384:6;13354:37;;;;;;;;;;;;;;;;;;13426:7;13403:47;;;13451:10;13463:6;13479:4;13486;13403:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13403:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13403:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13403:88:0;;;;13510:4;13503:11;;13185:338;;;;;:::o;1575:23::-;;;;;;;;;;;;;:::o;2569:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13987:184::-;14079:12;6146:5;;;;;;;;;;;6132:19;;:10;:19;;;6153:10;;;;;;;;;;;;;;;;;;;;;;;6124:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6124:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14126:12;14111:37;;;14149:5;;;;;;;;;;;14156:6;14111:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14111:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14111:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14111:52:0;;;;;;;;;;;;;;;;14104:59;;13987:184;;;;:::o;12677:152::-;12758:14;12793:7;:19;12801:10;12793:19;;;;;;;;;;;;;;;:28;12813:7;12793:28;;;;;;;;;;;;;;;;12786:35;;12677:152;;;;:::o;1794:90::-;6146:5;;;;;;;;;;;6132:19;;:10;:19;;;6153:10;;;;;;;;;;;;;;;;;;;;;;;6124:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6124:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1871:9;1860:8;;:20;;;;;;;;;;;;;;;;;;1794:90;:::o;429:94::-;481:6;505:1;500;:6;;492:15;;;;;;;;518:1;514;:5;510:9;;429:94;;;;:::o;333:::-;385:6;404:1;400;:5;396:9;;421:1;416;:6;;408:15;;;;;;;;333:94;;;;:::o;9420:287::-;9503:1;9492:7;:12;;;;9484:21;;;;;;;;9530:8;:17;9539:7;9530:17;;;;;;;;;;;;;;;;9520:6;:27;;9512:36;;;;;;;;9572:24;9589:6;9572:12;;:16;;:24;;;;:::i;:::-;9557:12;:39;;;;9623:29;9645:6;9623:8;:17;9632:7;9623:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9603:8;:17;9612:7;9603:17;;;;;;;;;;;;;;;:49;;;;9690:1;9664:37;;9673:7;9664:37;;;9694:6;9664:37;;;;;;;;;;;;;;;;;;9420:287;;:::o;525:108::-;577:6;596:1;592;:5;588:9;;613:1;608;:6;:20;;;;627:1;622;618;:5;;;;;;;;:10;608:20;600:29;;;;;;;;525:108;;;;:::o

Swarm Source

bzzr://7d70cbe3f6f81824bdddd0918f797a0a01d9aa2c2869943bd8c8da5be9b9bf3e

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

OVERVIEW

JACS aims to enable Web 3.0 evolution by providing a decentralised data communication stack that allows existing distributed applications and services to operate and develop.

Loading...
Loading
[ 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.