ETH Price: $2,638.01 (+0.08%)
Gas: 1 Gwei

Token

KAASY.AI Token (KAAS)
 

Overview

Max Total Supply

200,005,307 KAAS

Holders

5,281

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
150.67 KAAS

Value
$0.00
0x983510030b1703a491dd589dd10c205f2c324008
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
KaasyToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-02
*/

pragma solidity ^0.4.24;

// ----------------------------------------------------------------------------
// 'Kaasy' CROWDSALE token contract
//
// Deployed to : 0x714c1ef3854591d4118bd6887d4740bc4d5f5412
// Symbol      : KAAS
// Name        : KAASY.AI Token
// Total supply: 500000000
// Decimals    : 18
//
// Enjoy.
//
// (c) by KAASY AI LTD. The MIT Licence.
// ----------------------------------------------------------------------------


// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
contract SafeMath {
    function safeAdd(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function safeSub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function safeMul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function safeDiv(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}


// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant 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 function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}


// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;
    
    address public ownerAPI;
    address public newOwnerAPI;

    event OwnershipTransferred(address indexed _from, address indexed _to);
    event OwnershipAPITransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
        ownerAPI = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyOwnerAPI {
        require(msg.sender == ownerAPI);
        _;
    }

    modifier onlyOwnerOrOwnerAPI {
        require(msg.sender == owner || msg.sender == ownerAPI);
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    function transferAPIOwnership(address _newOwnerAPI) public onlyOwner {
        newOwnerAPI = _newOwnerAPI;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
    function acceptOwnershipAPI() public {
        require(msg.sender == newOwnerAPI);
        emit OwnershipAPITransferred(ownerAPI, newOwnerAPI);
        ownerAPI = newOwnerAPI;
        newOwnerAPI = address(0);
    }
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Owned {
  event Pause();
  event Unpause();

  bool public isPaused = false;

  function paused() public view returns (bool currentlyPaused) {
      return isPaused;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!isPaused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(isPaused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() public onlyOwner whenNotPaused {
    isPaused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() public onlyOwner whenPaused {
    isPaused = false;
    emit Unpause();
  }
}


// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and assisted
// token transfers
// ----------------------------------------------------------------------------
contract KaasyToken is ERC20Interface, Pausable, SafeMath {
    string public symbol = "KAAS";
    string public  name  = "KAASY.AI Token";
    uint8 public decimals = 18;
    uint public _totalSupply;
    uint public startDate;
    uint public bonusEnd20;
    uint public bonusEnd10;
    uint public bonusEnd05;
    uint public endDate;
    uint public tradingDate;
    uint public exchangeRate = 25000; // IN Euro cents = 300E
    uint256 public maxSupply;
    uint256 public soldSupply;
    uint256 public maxSellable;
    uint8 private teamWOVestingPercentage = 5;
    
    uint256 public minAmountETH;
    uint256 public maxAmountETH;
    
    address public currentRunningAddress;

    mapping(address => uint256) balances; //keeps ERC20 balances, in Symbol
    mapping(address => uint256) ethDeposits; //keeps balances, in ETH
    mapping(address => bool) kycAddressState; //keeps list of addresses which can send ETH without direct fail
    mapping(address => mapping(address => uint256)) allowed;
    mapping(address => uint256) burnedBalances; //keeps ERC20 balances, in Symbol

    //event KYCStateUpdate(address indexed addr, bool state);
    
    event MintingFinished(uint indexed moment);
    bool isMintingFinished = false;
    
    event OwnBlockchainLaunched(uint indexed moment);
    event TokensBurned(address indexed exOwner, uint256 indexed amount, uint indexed moment);
    bool isOwnBlockchainLaunched = false;
    uint momentOwnBlockchainLaunched = 0;
    
    uint8 public versionIndex = 1;
    
    address addrUniversity;
    address addrEarlySkills;
    address addrHackathons;
    address addrLegal;
    address addrMarketing;

    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public {
        maxSupply = 500000000 * (10 ** 18);
        maxSellable = maxSupply * 60 / 100;
        
        currentRunningAddress = address(this);
        
        soldSupply = 0;
        
        startDate = 1535760000;  // September 1st
        bonusEnd20 = 1536969600; // September 15th
        bonusEnd10 = 1538179200; // September 29th
        bonusEnd05 = 1539388800; // October 13th
        endDate = 1542240000;    // November 15th
        tradingDate = 1543536000;// November 30th
        
        minAmountETH = safeDiv(1 ether, 10);
        maxAmountETH = safeMul(1 ether, 5000);
        
        uint256 teamAmount = maxSupply * 150 / 1000;
        
        balances[address(this)] = teamAmount * (100 - teamWOVestingPercentage) / 100; //team with vesting
        emit Transfer(address(0), address(this), balances[address(this)]);
        
        balances[owner] = teamAmount * teamWOVestingPercentage / 100; //team without vesting
        kycAddressState[owner] = true;
        emit Transfer(address(0), owner, balances[owner]);
        
        addrUniversity = 0x20D9846AB6c348AfF24e762150aBfa15D99e4Af5;
        balances[addrUniversity] =  maxSupply * 50 / 1000; //univ
        kycAddressState[addrUniversity] = true;
        emit Transfer(address(0), addrUniversity, balances[addrUniversity]);
        
        addrEarlySkills = 0x3CF15B214734bB3C9040f18033440a35d18746Ca;
        balances[addrEarlySkills] = maxSupply * 50 / 1000; //skills
        kycAddressState[addrEarlySkills] = true;
        emit Transfer(address(0), addrEarlySkills, balances[addrEarlySkills]);
        
        addrHackathons = 0x3ACEB78ff4B064aEE870dcb844cCa43FC6DcBe7d;
        balances[addrHackathons] =  maxSupply * 45 / 1000; //hackathons and bug bounties
        kycAddressState[addrHackathons] = true;
        emit Transfer(address(0), addrHackathons, balances[addrHackathons]);
        
        addrLegal = 0x65e1af8d76af6d1d3E47F14014F3105286FFBcF2;
        balances[addrLegal] =       maxSupply * 30 / 1000; //legal fees & backup
        kycAddressState[addrLegal] = true;
        emit Transfer(address(0), addrLegal, balances[addrLegal]);
        
        addrMarketing = 0x3d7Db960837aF96C457bdB481C3De7cE80366b2c;
        balances[addrMarketing] =   maxSupply * 75 / 1000; //marketing
        kycAddressState[addrMarketing] = true;
        emit Transfer(address(0), addrMarketing, balances[addrMarketing]);
        
        _totalSupply = maxSupply * 40 / 100;
        
        
    }

    // ------------------------------------------------------------------------
    // token minter function
    // ------------------------------------------------------------------------
    function () public payable whenNotPaused {
        if(now > endDate && isMintingFinished == false) {
            finishMinting();
            msg.sender.transfer(msg.value); //return this transfer, as it is too late.
        } else {
            require(now >= startDate && now <= endDate && isMintingFinished == false);
            
            require(msg.value >= minAmountETH && msg.value <= maxAmountETH);
            require(msg.value + ethDeposits[msg.sender] <= maxAmountETH);
            
            require(kycAddressState[msg.sender] == true);
            
            uint tokens = getAmountToIssue(msg.value);
            require(safeAdd(soldSupply, tokens) <= maxSellable);
            
            soldSupply = safeAdd(soldSupply, tokens);
            _totalSupply = safeAdd(_totalSupply, tokens);
            balances[msg.sender] = safeAdd(balances[msg.sender], tokens);
            ethDeposits[msg.sender] = safeAdd(ethDeposits[msg.sender], msg.value);
            emit Transfer(address(0), msg.sender, tokens);
            
            ownerAPI.transfer(msg.value * 15 / 100);   //transfer 15% of the ETH now, the other 85% at the end of the ICO process
        }
    }
    
    // ------------------------------------------------------------------------
    // Burns tokens of `msg.sender` and sets them as redeemable on KAASY blokchain
    // ------------------------------------------------------------------------
    function BurnMyTokensAndSetAmountForNewBlockchain() public  {
        require(isOwnBlockchainLaunched);
        
        uint senderBalance = balances[msg.sender];
        burnedBalances[msg.sender] = safeAdd(burnedBalances[msg.sender], senderBalance);
        balances[msg.sender] = 0;
        emit TokensBurned(msg.sender, senderBalance, now);
        emit Transfer(msg.sender, address(0), senderBalance);
    }
    
    // ------------------------------------------------------------------------
    // Burns tokens of `exOwner` and sets them as redeemable on KAASY blokchain
    // ------------------------------------------------------------------------
    function BurnTokensAndSetAmountForNewBlockchain(address exOwner) onlyOwnerOrOwnerAPI public {
        require(isOwnBlockchainLaunched);
        
        uint exBalance = balances[exOwner];
        burnedBalances[exOwner] = safeAdd(burnedBalances[exOwner], exBalance);
        balances[exOwner] = 0;
        emit TokensBurned(exOwner, exBalance, now);
        emit Transfer(exOwner, address(0), exBalance);
    }
    
    // ------------------------------------------------------------------------
    // Enables the burning of tokens to move to the new KAASY blockchain
    // ------------------------------------------------------------------------
    function SetNewBlockchainEnabled() onlyOwner public {
        require(isMintingFinished && isOwnBlockchainLaunched == false);
        isOwnBlockchainLaunched = true;
        momentOwnBlockchainLaunched = now;
        emit OwnBlockchainLaunched(now);
    }

    // ------------------------------------------------------------------------
    // Evaluates conditions for finishing the ICO and does that if conditions are met
    // ------------------------------------------------------------------------
    function finishMinting() public returns (bool finished) {
        if(now > endDate && isMintingFinished == false) {
            internalFinishMinting();
            return true;
        } else if (_totalSupply >= maxSupply) {
            internalFinishMinting();
            return true;
        }
        if(now > endDate && address(this).balance > 0) {
            owner.transfer(address(this).balance);
        }
        return false;
    }
    
    // ------------------------------------------------------------------------
    // Actually executes the finish of the ICO, 
    //  no longer minting tokens, 
    //  releasing the 85% of ETH kept by contract and
    //  enables trading 15 days after this moment
    // ------------------------------------------------------------------------
    function internalFinishMinting() internal {
        tradingDate = now + 3600;// * 24 * 15; // 2 weeks after ICO end moment
        isMintingFinished = true;
        emit MintingFinished(now);
        owner.transfer(address(this).balance); //transfer all ETH left (the 85% not sent instantly) to the owner address
    }

    // ------------------------------------------------------------------------
    // Calculates amount of KAAS to issue to `msg.sender` for `ethAmount`
    // Can be called by any interested party, to evaluate the amount of KAAS obtained for `ethAmount` specified
    // ------------------------------------------------------------------------
    function getAmountToIssue(uint256 ethAmount) public view returns(uint256) {
        //price is 10c/KAAS
        uint256 euroAmount = exchangeEthToEur(ethAmount);
        uint256 ret = euroAmount / 10; // 1kaas=0.1EUR, exchange rate is in cents, so *10/100 = /10
        if(now < bonusEnd20) {
            ret = euroAmount * 12 / 100;            //weeks 1+2, 20% bonus
            
        } else if(now < bonusEnd10) {
            ret = euroAmount * 11 / 100;            //weeks 3+4, 10% bonus
            
        } else if(now < bonusEnd05) {
            ret = euroAmount * 105 / 1000;          //weeks 5+6, 5% bonus
            
        }
        
        //rate is in CENTS, so * 100
        if(euroAmount >= 50000 * 100) {
            ret = ret * 13 / 10;
            
        } else if(euroAmount >= 10000 * 100) {
            ret = ret * 12 / 10;
        }
        
        
        return ret  * (uint256)(10) ** (uint256)(decimals);
    }
    
    // ------------------------------------------------------------------------
    // Calculates EUR amount for ethAmount
    // ------------------------------------------------------------------------
    function exchangeEthToEur(uint256 ethAmount) internal view returns(uint256 rate) {
        return safeDiv(safeMul(ethAmount, exchangeRate), 1 ether);
    }
    
    // ------------------------------------------------------------------------
    // Calculates KAAS amount for eurAmount
    // ------------------------------------------------------------------------
    function exchangeEurToEth(uint256 eurAmount) internal view returns(uint256 rate) {
        return safeDiv(safeMul(safeDiv(safeMul(eurAmount, 1000000000000000000), exchangeRate), 1 ether), 1000000000000000000);
    }
    
    // ------------------------------------------------------------------------
    // Calculates and transfers monthly vesting amount to founders, into the balance of `owner` address
    // ------------------------------------------------------------------------
    function transferVestingMonthlyAmount(address destination) public onlyOwner returns (bool) {
        require(destination != address(0));
        uint monthsSinceLaunch = (now - tradingDate) / 3600 / 24 / 30;
        uint256 totalAmountInVesting = maxSupply * 15 / 100 * (100 - teamWOVestingPercentage) / 100; //15% of total, of which 5% instant and 95% with vesting
        uint256 releaseableUpToToday = (monthsSinceLaunch + 1) * totalAmountInVesting / 24; // 15% of total, across 24 months
        
        //address(this) holds the vestable amount left
        uint256 alreadyReleased = totalAmountInVesting - balances[address(this)];
        uint256 releaseableNow = releaseableUpToToday - alreadyReleased;
        require (releaseableNow > 0);
        transferFrom(address(this), destination, releaseableNow);
        
        if(now > tradingDate + 3600 * 24 * 365 * 2 ){
            transferFrom(address(this), destination, balances[address(this)]);
        }
        
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Set KYC state for `depositer` to `isAllowed`, by admins
    // ------------------------------------------------------------------------
    function setAddressKYC(address depositer, bool isAllowed) public onlyOwnerOrOwnerAPI returns (bool) {
        kycAddressState[depositer] = isAllowed;
        //emit KYCStateUpdate(depositer, isAllowed);
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Get an addresses KYC state
    // ------------------------------------------------------------------------
    function getAddressKYCState(address depositer) public view returns (bool) {
        return kycAddressState[depositer];
    }
    
    // ------------------------------------------------------------------------
    // Token name, as seen by the network
    // ------------------------------------------------------------------------
    function name() public view returns (string) {
        return name;
    }
    
    // ------------------------------------------------------------------------
    // Token symbol, as seen by the network
    // ------------------------------------------------------------------------
    function symbol() public view returns (string) {
        return symbol;
    }
    
    // ------------------------------------------------------------------------
    // Token decimals
    // ------------------------------------------------------------------------
    function decimals() public view returns (uint8) {
        return decimals;
    }

    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply() public constant returns (uint) {
        return _totalSupply  - balances[address(0)]; //address(0) represents burned tokens
    }
    
    // ------------------------------------------------------------------------
    // Circulating supply
    // ------------------------------------------------------------------------
    function circulatingSupply() public constant returns (uint) {
        return _totalSupply - balances[address(0)] - balances[address(this)]; //address(0) represents burned tokens
    }

    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) public constant returns (uint balance) {
        return balances[tokenOwner];
    }
    
    // ------------------------------------------------------------------------
    // Get the total ETH deposited by `depositer`
    // ------------------------------------------------------------------------
    function depositsOf(address depositer) public constant returns (uint balance) {
        return ethDeposits[depositer];
    }
    
    // ------------------------------------------------------------------------
    // Get the total KAAS burned by `exOwner`
    // ------------------------------------------------------------------------
    function burnedBalanceOf(address exOwner) public constant returns (uint balance) {
        return burnedBalances[exOwner];
    }

    // ------------------------------------------------------------------------
    // 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
    //  !! fund source is the address calling this function !!
    // ------------------------------------------------------------------------
    function transfer(address to, uint tokens) public whenNotPaused returns (bool success) {
        if(now > endDate && isMintingFinished == false) {
            finishMinting();
        }
        require(now >= tradingDate || kycAddressState[to] == true || msg.sender == addrMarketing); //allow internal transfers before tradingDate
        balances[msg.sender] = safeSub(balances[msg.sender], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }

    // ------------------------------------------------------------------------
    // Token owner can approve for `destination` to transferFrom(...) `tokens`
    // from the token owner's account
    //
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
    // recommends that there are no checks for the approval double-spend attack
    // as this should be implemented in user interfaces
    
    // !!! When called, the amount of tokens DESTINATION can retrieve from MSG.SENDER is set to AMOUNT
    // !!! This is used when another account C calls and pays gas for the transfer between A and B, like bank cheques
    // !!! meaning: Allow DESTINATION to transfer a total AMOUNT from ME=callerOfThisFunction, from this point on, ignoring previous allows
    
    // ------------------------------------------------------------------------
    function approve(address destination, uint amount) public returns (bool success) {
        allowed[msg.sender][destination] = amount;
        emit Approval(msg.sender, destination, amount);
        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 whenNotPaused returns (bool success) {
        if(now > endDate && isMintingFinished == false) {
            finishMinting();
        }
        require(now >= tradingDate || kycAddressState[to] == true); //allow internal transfers before tradingDate
        allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens);
        balances[from] = safeSub(balances[from], tokens);
        balances[to] = safeAdd(balances[to], tokens);
        emit Transfer(from, to, tokens);
        return true;
    }

    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the requester's account
    // ------------------------------------------------------------------------
    function allowance(address tokenOwner, address requester) public constant returns (uint remaining) {
        return allowed[tokenOwner][requester];
    }

    // ------------------------------------------------------------------------
    // Token owner can approve for `requester` to transferFrom(...) `tokens`
    // from the token owner's account. The `requester` contract function
    // `receiveApproval(...)` is then executed
    // ------------------------------------------------------------------------
    function approveAndCall(address requester, uint tokens, bytes data) public whenNotPaused returns (bool success) {
        allowed[msg.sender][requester] = tokens;
        emit Approval(msg.sender, requester, tokens);
        ApproveAndCallFallBack(requester).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Owner can transfer out `tokens` amount of accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAllERC20Token(address tokenAddress, uint tokens) public onlyOwnerOrOwnerAPI returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
    
    // ------------------------------------------------------------------------
    // Owner can transfer out all accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress) public onlyOwnerOrOwnerAPI returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, ERC20Interface(tokenAddress).balanceOf(this));
    }
    
    // ------------------------------------------------------------------------
    // Set the new ETH-EUR exchange rate, in cents
    // ------------------------------------------------------------------------
    function updateExchangeRate(uint newEthEurRate) public onlyOwnerOrOwnerAPI returns (bool success) {
        exchangeRate = newEthEurRate;
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Get the current ETH-EUR exchange rate, in cents
    // ------------------------------------------------------------------------
    function getExchangeRate() public view returns (uint256 rate) {
        return exchangeRate;
    }
    
    // ------------------------------------------------------------------------
    // Set the new EndDate
    // ------------------------------------------------------------------------
    function updateEndDate(uint256 newDate) public onlyOwnerOrOwnerAPI returns (bool success) {
        require(!isMintingFinished);
        require(!isOwnBlockchainLaunched);
        
        endDate = newDate;
        
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Set the new Token name, Symbol, Contract address when updating
    // ------------------------------------------------------------------------
    function updateTokenNameSymbolAddress(string newTokenName, string newSymbol, address newContractAddress) public whenPaused onlyOwnerOrOwnerAPI returns (bool success) {
        name = newTokenName;
        symbol = newSymbol;
        currentRunningAddress = newContractAddress;
        
        return true;
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"acceptOwnershipAPI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"SetNewBlockchainEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startDate","outputs":[{"name":"","type":"uint256"}],"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":"maxSellable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minAmountETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeRate","outputs":[{"name":"","type":"uint256"}],"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":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tradingDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerAPI","type":"address"}],"name":"transferAPIOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bonusEnd10","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"currentlyPaused","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"}],"name":"transferVestingMonthlyAmount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"finished","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentRunningAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"BurnMyTokensAndSetAmountForNewBlockchain","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":"exOwner","type":"address"}],"name":"burnedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"circulatingSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonusEnd20","outputs":[{"name":"","type":"uint256"}],"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":"newTokenName","type":"string"},{"name":"newSymbol","type":"string"},{"name":"newContractAddress","type":"address"}],"name":"updateTokenNameSymbolAddress","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newEthEurRate","type":"uint256"}],"name":"updateExchangeRate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bonusEnd05","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ethAmount","type":"uint256"}],"name":"getAmountToIssue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"requester","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":"ownerAPI","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAllERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"requester","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"exOwner","type":"address"}],"name":"BurnTokensAndSetAmountForNewBlockchain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"depositer","type":"address"}],"name":"depositsOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExchangeRate","outputs":[{"name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDate","type":"uint256"}],"name":"updateEndDate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"depositer","type":"address"},{"name":"isAllowed","type":"bool"}],"name":"setAddressKYC","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"depositer","type":"address"}],"name":"getAddressKYCState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerAPI","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxAmountETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"versionIndex","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"moment","type":"uint256"}],"name":"MintingFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"moment","type":"uint256"}],"name":"OwnBlockchainLaunched","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"exOwner","type":"address"},{"indexed":true,"name":"amount","type":"uint256"},{"indexed":true,"name":"moment","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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"}],"name":"OwnershipAPITransferred","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"}]

60806040526000600360146101000a81548160ff0219169083151502179055506040805190810160405280600481526020017f4b41415300000000000000000000000000000000000000000000000000000000815250600490805190602001906200006c92919062001165565b506040805190810160405280600e81526020017f4b414153592e414920546f6b656e00000000000000000000000000000000000081525060059080519060200190620000ba92919062001165565b506012600660006101000a81548160ff021916908360ff1602179055506161a8600e556005601260006101000a81548160ff021916908360ff1602179055506000601b60006101000a81548160ff0219169083151502179055506000601b60016101000a81548160ff0219169083151502179055506000601c556001601d60006101000a81548160ff021916908360ff1602179055503480156200015d57600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b019d971e4fe8401e74000000600f819055506064603c600f54028115156200020657fe5b0460118190555030601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601081905550635b89d680600881905550635b9c4b80600981905550635baec080600a81905550635bc13580600b81905550635becb700600c81905550635c007d80600d81905550620002bc670de0b6b3a7640000600a6200110b640100000000026401000000009004565b601381905550620002e7670de0b6b3a764000061138862001131640100000000026401000000009004565b6014819055506103e86096600f54028115156200030057fe5b0490506064601260009054906101000a900460ff1660640360ff1682028115156200032757fe5b04601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36064601260009054906101000a900460ff1660ff1682028115156200043157fe5b04601660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a37320d9846ab6c348aff24e762150abfa15d99e4af5601d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86032600f54028115156200065e57fe5b0460166000601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3733cf15b214734bb3c9040f18033440a35d18746ca601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86032600f54028115156200088f57fe5b0460166000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3733aceb78ff4b064aee870dcb844cca43fc6dcbe7d601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8602d600f540281151562000ac057fe5b0460166000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a37365e1af8d76af6d1d3e47f14014f3105286ffbcf2602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8601e600f540281151562000cf157fe5b0460166000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3733d7db960837af96c457bdb481c3de7ce80366b2c602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8604b600f540281151562000f2257fe5b0460166000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360646028600f5402811515620010fd57fe5b046007819055505062001214565b600080821115156200111c57600080fd5b81838115156200112857fe5b04905092915050565b6000818302905060008314806200115357508183828115156200115057fe5b04145b15156200115f57600080fd5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620011a857805160ff1916838001178555620011d9565b82800160010185558215620011d9579182015b82811115620011d8578251825591602001919060010190620011bb565b5b509050620011e89190620011ec565b5090565b6200121191905b808211156200120d576000816000905550600101620011f3565b5090565b90565b613db280620012246000396000f300608060405260043610610288576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063039e9e001461067757806306fdde031461068e57806308b27e3e1461071e578063095ea7b3146107795780630b58dc38146107de5780630b97bc86146107f557806318160ddd1461082057806323b872dd1461084b578063313354dc146108d0578063313ce567146108fb578063350a64291461092c5780633ba0b9a9146109575780633eaaf86b146109825780633f4ba83a146109ad57806343f98a56146109c45780634978ddcc146109ef578063541ee05014610a325780635c975abb14610a5d578063705b5c2714610a8c57806370a0823114610ae757806379ba509714610b3e5780637d64bcb414610b555780638456cb5914610b845780638561d13614610b9b5780638d44c90b14610bf25780638da5cb5b14610c0957806391c1e2c114610c605780639358928b14610cb757806394c70cb114610ce257806395d89b4114610d0d578063a7b2fc0014610d9d578063a9059cbb14610e84578063b187bd2614610ee9578063b9e205ae14610f18578063ba16e00e14610f5d578063c24a0f8b14610f88578063c3f17ae814610fb3578063cae9ca5114610ff4578063cb09b0d01461109f578063d4ee1d90146110f6578063d5abeb011461114d578063d9c1ac2514611178578063dd62ed3e146111dd578063de49bd5414611254578063e3a9db1a14611297578063e6aa216c146112ee578063ef2bbbdf14611319578063f2fde38b1461135e578063f45ce8d7146113a1578063f74c67b314611408578063fa2299ee14611463578063fbaeac891461148e578063fe9b7f2f146114e5578063ff1d271214611510575b6000600360149054906101000a900460ff161515156102a657600080fd5b600c54421180156102ca575060001515601b60009054906101000a900460ff161515145b15610324576102d7611541565b503373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561031e573d6000803e3d6000fd5b50610674565b60085442101580156103385750600c544211155b8015610357575060001515601b60009054906101000a900460ff161515145b151561036257600080fd5b601354341015801561037657506014543411155b151561038157600080fd5b601454601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543401111515156103d357600080fd5b60011515601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561043257600080fd5b61043b34611650565b905060115461044c60105483611735565b1115151561045957600080fd5b61046560105482611735565b60108190555061047760075482611735565b6007819055506104c6601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610552601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205434611735565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600f340281151561064657fe5b049081150290604051600060405180830381858888f19350505050158015610672573d6000803e3d6000fd5b505b50005b34801561068357600080fd5b5061068c611751565b005b34801561069a57600080fd5b506106a36118f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e35780820151818401526020810190506106c8565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611994565b604051808215151515815260200191505060405180910390f35b34801561078557600080fd5b506107c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c24565b604051808215151515815260200191505060405180910390f35b3480156107ea57600080fd5b506107f3611d16565b005b34801561080157600080fd5b5061080a611dfc565b6040518082815260200191505060405180910390f35b34801561082c57600080fd5b50610835611e02565b6040518082815260200191505060405180910390f35b34801561085757600080fd5b506108b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e4d565b604051808215151515815260200191505060405180910390f35b3480156108dc57600080fd5b506108e5612198565b6040518082815260200191505060405180910390f35b34801561090757600080fd5b5061091061219e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561093857600080fd5b506109416121b5565b6040518082815260200191505060405180910390f35b34801561096357600080fd5b5061096c6121bb565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b506109976121c1565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c26121c7565b005b3480156109d057600080fd5b506109d9612286565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a30600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061228c565b005b348015610a3e57600080fd5b50610a4761232b565b6040518082815260200191505060405180910390f35b348015610a6957600080fd5b50610a72612331565b604051808215151515815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612348565b604051808215151515815260200191505060405180910390f35b348015610af357600080fd5b50610b28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252c565b6040518082815260200191505060405180910390f35b348015610b4a57600080fd5b50610b53612575565b005b348015610b6157600080fd5b50610b6a611541565b604051808215151515815260200191505060405180910390f35b348015610b9057600080fd5b50610b99612714565b005b348015610ba757600080fd5b50610bb06127d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfe57600080fd5b50610c076127fa565b005b348015610c1557600080fd5b50610c1e6129d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6c57600080fd5b50610ca1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129fd565b6040518082815260200191505060405180910390f35b348015610cc357600080fd5b50610ccc612a46565b6040518082815260200191505060405180910390f35b348015610cee57600080fd5b50610cf7612ad2565b6040518082815260200191505060405180910390f35b348015610d1957600080fd5b50610d22612ad8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d62578082015181840152602081019050610d47565b50505050905090810190601f168015610d8f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610da957600080fd5b50610e6a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b7a565b604051808215151515815260200191505060405180910390f35b348015610e9057600080fd5b50610ecf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cc4565b604051808215151515815260200191505060405180910390f35b348015610ef557600080fd5b50610efe612f60565b604051808215151515815260200191505060405180910390f35b348015610f2457600080fd5b50610f4360048036038101908080359060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610f6957600080fd5b50610f72613038565b6040518082815260200191505060405180910390f35b348015610f9457600080fd5b50610f9d61303e565b6040518082815260200191505060405180910390f35b348015610fbf57600080fd5b50610fde60048036038101908080359060200190929190505050611650565b6040518082815260200191505060405180910390f35b34801561100057600080fd5b50611085600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613044565b604051808215151515815260200191505060405180910390f35b3480156110ab57600080fd5b506110b46132af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110257600080fd5b5061110b6132d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561115957600080fd5b506111626132fb565b6040518082815260200191505060405180910390f35b34801561118457600080fd5b506111c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613301565b604051808215151515815260200191505060405180910390f35b3480156111e957600080fd5b5061123e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134bd565b6040518082815260200191505060405180910390f35b34801561126057600080fd5b50611295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613544565b005b3480156112a357600080fd5b506112d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137d6565b6040518082815260200191505060405180910390f35b3480156112fa57600080fd5b5061130361381f565b6040518082815260200191505060405180910390f35b34801561132557600080fd5b5061134460048036038101908080359060200190929190505050613829565b604051808215151515815260200191505060405180910390f35b34801561136a57600080fd5b5061139f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613926565b005b3480156113ad57600080fd5b506113ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506139c5565b604051808215151515815260200191505060405180910390f35b34801561141457600080fd5b50611449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613adb565b604051808215151515815260200191505060405180910390f35b34801561146f57600080fd5b50611478613b31565b6040518082815260200191505060405180910390f35b34801561149a57600080fd5b506114a3613b37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114f157600080fd5b506114fa613b5d565b6040518082815260200191505060405180910390f35b34801561151c57600080fd5b50611525613b63565b604051808260ff1660ff16815260200191505060405180910390f35b6000600c5442118015611567575060001515601b60009054906101000a900460ff161515145b1561157d57611574613b76565b6001905061164d565b600f5460075410151561159b57611592613b76565b6001905061164d565b600c54421180156115c3575060003073ffffffffffffffffffffffffffffffffffffffff1631115b15611648576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611646573d6000803e3d6000fd5b505b600090505b90565b600080600061165e84613c4a565b9150600a8281151561166c57fe5b049050600954421015611690576064600c830281151561168857fe5b0490506116d1565b600a544210156116b1576064600b83028115156116a957fe5b0490506116d0565b600b544210156116cf576103e8606983028115156116cb57fe5b0490505b5b5b624c4b40821015156116f457600a600d82028115156116ec57fe5b049050611714565b620f42408210151561171357600a600c820281151561170f57fe5b0490505b5b600660009054906101000a900460ff1660ff16600a0a810292505050919050565b6000818301905082811015151561174b57600080fd5b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ad57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1fd2d1a8cc84fd3ec53680ba1d026371bce2e990ca952143223748a0ee5b170260405160405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561198a5780601f1061195f5761010080835404028352916020019161198a565b820191906000526020600020905b81548152906001019060200180831161196d57829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a3e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611a4957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b2257600080fd5b505af1158015611b36573d6000803e3d6000fd5b505050506040513d6020811015611b4c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611be257600080fd5b505af1158015611bf6573d6000803e3d6000fd5b505050506040513d6020811015611c0c57600080fd5b81019080805190602001909291905050509050919050565b600081601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7157600080fd5b601b60009054906101000a900460ff168015611da0575060001515601b60019054906101000a900460ff161515145b1515611dab57600080fd5b6001601b60016101000a81548160ff02191690831515021790555042601c81905550427f35faa1e328b369ae53ce7c8a27cacbeeb13c4ebc77e84160b7e96afea7c5867960405160405180910390a2565b60085481565b6000601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460075403905090565b6000600360149054906101000a900460ff16151515611e6b57600080fd5b600c5442118015611e8f575060001515601b60009054906101000a900460ff161515145b15611e9e57611e9c611541565b505b600d5442101580611eff575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611f0a57600080fd5b611f90601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612059601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e5601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60115481565b6000600660009054906101000a900460ff16905090565b60135481565b600e5481565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561222257600080fd5b600360149054906101000a900460ff16151561223d57600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e757600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b6000600360149054906101000a900460ff16905090565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ac57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156123e857600080fd5b601e6018610e10600d5442038115156123fd57fe5b0481151561240757fe5b0481151561241157fe5b0494506064601260009054906101000a900460ff1660640360ff166064600f80540281151561243c57fe5b040281151561244757fe5b049350601884600187010281151561245b57fe5b049250601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548403915081830390506000811115156124b657600080fd5b6124c1308883611e4d565b506303c26700600d540142111561251e5761251c3088601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d565b505b600195505050505050919050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561276f57600080fd5b600360149054906101000a900460ff1615151561278b57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b60019054906101000a900460ff16151561281757600080fd5b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506128a2601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042813373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007540303905090565b60095481565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b705780601f10612b4557610100808354040283529160200191612b70565b820191906000526020600020905b815481529060010190602001808311612b5357829003601f168201915b5050505050905090565b6000600360149054906101000a900460ff161515612b9757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c3f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612c4a57600080fd5b8360059080519060200190612c60929190613ce1565b508260049080519060200190612c77929190613ce1565b5081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190509392505050565b6000600360149054906101000a900460ff16151515612ce257600080fd5b600c5442118015612d06575060001515601b60009054906101000a900460ff161515145b15612d1557612d13611541565b505b600d5442101580612d76575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80612dce5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612dd957600080fd5b612e22601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eae601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061301d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561302857600080fd5b81600e8190555060019050919050565b600b5481565b600c5481565b6000600360149054906101000a900460ff1615151561306257600080fd5b82601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561323d578082015181840152602081019050613222565b50505050905090810190601f16801561326a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561328c57600080fd5b505af11580156132a0573d6000803e3d6000fd5b50505050600190509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133ab5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156133b657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561347a57600080fd5b505af115801561348e573d6000803e3d6000fd5b505050506040513d60208110156134a457600080fd5b8101908080519060200190929190505050905092915050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135ee5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156135f957600080fd5b601b60019054906101000a900460ff16151561361457600080fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061369f601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042818373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138d35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156138de57600080fd5b601b60009054906101000a900460ff161515156138fa57600080fd5b601b60019054906101000a900460ff1615151561391657600080fd5b81600c8190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561398157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613a6f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613a7a57600080fd5b81601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60009054906101000a900460ff1681565b610e104201600d819055506001601b60006101000a81548160ff021916908315150217905550427ff6af8e1d23f8a5997a11116c1e59bd11c947226b74890b8e0fde60d95a7c076a60405160405180910390a26000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015613c47573d6000803e3d6000fd5b50565b6000613c69613c5b83600e54613c8c565b670de0b6b3a7640000613cbd565b9050919050565b6000828211151515613c8157600080fd5b818303905092915050565b600081830290506000831480613cac5750818382811515613ca957fe5b04145b1515613cb757600080fd5b92915050565b60008082111515613ccd57600080fd5b8183811515613cd857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2257805160ff1916838001178555613d50565b82800160010185558215613d50579182015b82811115613d4f578251825591602001919060010190613d34565b5b509050613d5d9190613d61565b5090565b613d8391905b80821115613d7f576000816000905550600101613d67565b5090565b905600a165627a7a7230582016637a766d63481a097fb2d90fa501f0c10d58f47f3a9af58d2e508773a1b6be0029

Deployed Bytecode

0x608060405260043610610288576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063039e9e001461067757806306fdde031461068e57806308b27e3e1461071e578063095ea7b3146107795780630b58dc38146107de5780630b97bc86146107f557806318160ddd1461082057806323b872dd1461084b578063313354dc146108d0578063313ce567146108fb578063350a64291461092c5780633ba0b9a9146109575780633eaaf86b146109825780633f4ba83a146109ad57806343f98a56146109c45780634978ddcc146109ef578063541ee05014610a325780635c975abb14610a5d578063705b5c2714610a8c57806370a0823114610ae757806379ba509714610b3e5780637d64bcb414610b555780638456cb5914610b845780638561d13614610b9b5780638d44c90b14610bf25780638da5cb5b14610c0957806391c1e2c114610c605780639358928b14610cb757806394c70cb114610ce257806395d89b4114610d0d578063a7b2fc0014610d9d578063a9059cbb14610e84578063b187bd2614610ee9578063b9e205ae14610f18578063ba16e00e14610f5d578063c24a0f8b14610f88578063c3f17ae814610fb3578063cae9ca5114610ff4578063cb09b0d01461109f578063d4ee1d90146110f6578063d5abeb011461114d578063d9c1ac2514611178578063dd62ed3e146111dd578063de49bd5414611254578063e3a9db1a14611297578063e6aa216c146112ee578063ef2bbbdf14611319578063f2fde38b1461135e578063f45ce8d7146113a1578063f74c67b314611408578063fa2299ee14611463578063fbaeac891461148e578063fe9b7f2f146114e5578063ff1d271214611510575b6000600360149054906101000a900460ff161515156102a657600080fd5b600c54421180156102ca575060001515601b60009054906101000a900460ff161515145b15610324576102d7611541565b503373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561031e573d6000803e3d6000fd5b50610674565b60085442101580156103385750600c544211155b8015610357575060001515601b60009054906101000a900460ff161515145b151561036257600080fd5b601354341015801561037657506014543411155b151561038157600080fd5b601454601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543401111515156103d357600080fd5b60011515601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561043257600080fd5b61043b34611650565b905060115461044c60105483611735565b1115151561045957600080fd5b61046560105482611735565b60108190555061047760075482611735565b6007819055506104c6601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610552601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205434611735565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600f340281151561064657fe5b049081150290604051600060405180830381858888f19350505050158015610672573d6000803e3d6000fd5b505b50005b34801561068357600080fd5b5061068c611751565b005b34801561069a57600080fd5b506106a36118f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e35780820151818401526020810190506106c8565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611994565b604051808215151515815260200191505060405180910390f35b34801561078557600080fd5b506107c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c24565b604051808215151515815260200191505060405180910390f35b3480156107ea57600080fd5b506107f3611d16565b005b34801561080157600080fd5b5061080a611dfc565b6040518082815260200191505060405180910390f35b34801561082c57600080fd5b50610835611e02565b6040518082815260200191505060405180910390f35b34801561085757600080fd5b506108b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e4d565b604051808215151515815260200191505060405180910390f35b3480156108dc57600080fd5b506108e5612198565b6040518082815260200191505060405180910390f35b34801561090757600080fd5b5061091061219e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561093857600080fd5b506109416121b5565b6040518082815260200191505060405180910390f35b34801561096357600080fd5b5061096c6121bb565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b506109976121c1565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c26121c7565b005b3480156109d057600080fd5b506109d9612286565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a30600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061228c565b005b348015610a3e57600080fd5b50610a4761232b565b6040518082815260200191505060405180910390f35b348015610a6957600080fd5b50610a72612331565b604051808215151515815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612348565b604051808215151515815260200191505060405180910390f35b348015610af357600080fd5b50610b28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252c565b6040518082815260200191505060405180910390f35b348015610b4a57600080fd5b50610b53612575565b005b348015610b6157600080fd5b50610b6a611541565b604051808215151515815260200191505060405180910390f35b348015610b9057600080fd5b50610b99612714565b005b348015610ba757600080fd5b50610bb06127d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfe57600080fd5b50610c076127fa565b005b348015610c1557600080fd5b50610c1e6129d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6c57600080fd5b50610ca1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129fd565b6040518082815260200191505060405180910390f35b348015610cc357600080fd5b50610ccc612a46565b6040518082815260200191505060405180910390f35b348015610cee57600080fd5b50610cf7612ad2565b6040518082815260200191505060405180910390f35b348015610d1957600080fd5b50610d22612ad8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d62578082015181840152602081019050610d47565b50505050905090810190601f168015610d8f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610da957600080fd5b50610e6a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b7a565b604051808215151515815260200191505060405180910390f35b348015610e9057600080fd5b50610ecf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cc4565b604051808215151515815260200191505060405180910390f35b348015610ef557600080fd5b50610efe612f60565b604051808215151515815260200191505060405180910390f35b348015610f2457600080fd5b50610f4360048036038101908080359060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610f6957600080fd5b50610f72613038565b6040518082815260200191505060405180910390f35b348015610f9457600080fd5b50610f9d61303e565b6040518082815260200191505060405180910390f35b348015610fbf57600080fd5b50610fde60048036038101908080359060200190929190505050611650565b6040518082815260200191505060405180910390f35b34801561100057600080fd5b50611085600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613044565b604051808215151515815260200191505060405180910390f35b3480156110ab57600080fd5b506110b46132af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110257600080fd5b5061110b6132d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561115957600080fd5b506111626132fb565b6040518082815260200191505060405180910390f35b34801561118457600080fd5b506111c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613301565b604051808215151515815260200191505060405180910390f35b3480156111e957600080fd5b5061123e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134bd565b6040518082815260200191505060405180910390f35b34801561126057600080fd5b50611295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613544565b005b3480156112a357600080fd5b506112d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137d6565b6040518082815260200191505060405180910390f35b3480156112fa57600080fd5b5061130361381f565b6040518082815260200191505060405180910390f35b34801561132557600080fd5b5061134460048036038101908080359060200190929190505050613829565b604051808215151515815260200191505060405180910390f35b34801561136a57600080fd5b5061139f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613926565b005b3480156113ad57600080fd5b506113ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506139c5565b604051808215151515815260200191505060405180910390f35b34801561141457600080fd5b50611449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613adb565b604051808215151515815260200191505060405180910390f35b34801561146f57600080fd5b50611478613b31565b6040518082815260200191505060405180910390f35b34801561149a57600080fd5b506114a3613b37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114f157600080fd5b506114fa613b5d565b6040518082815260200191505060405180910390f35b34801561151c57600080fd5b50611525613b63565b604051808260ff1660ff16815260200191505060405180910390f35b6000600c5442118015611567575060001515601b60009054906101000a900460ff161515145b1561157d57611574613b76565b6001905061164d565b600f5460075410151561159b57611592613b76565b6001905061164d565b600c54421180156115c3575060003073ffffffffffffffffffffffffffffffffffffffff1631115b15611648576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611646573d6000803e3d6000fd5b505b600090505b90565b600080600061165e84613c4a565b9150600a8281151561166c57fe5b049050600954421015611690576064600c830281151561168857fe5b0490506116d1565b600a544210156116b1576064600b83028115156116a957fe5b0490506116d0565b600b544210156116cf576103e8606983028115156116cb57fe5b0490505b5b5b624c4b40821015156116f457600a600d82028115156116ec57fe5b049050611714565b620f42408210151561171357600a600c820281151561170f57fe5b0490505b5b600660009054906101000a900460ff1660ff16600a0a810292505050919050565b6000818301905082811015151561174b57600080fd5b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ad57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1fd2d1a8cc84fd3ec53680ba1d026371bce2e990ca952143223748a0ee5b170260405160405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561198a5780601f1061195f5761010080835404028352916020019161198a565b820191906000526020600020905b81548152906001019060200180831161196d57829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a3e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611a4957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b2257600080fd5b505af1158015611b36573d6000803e3d6000fd5b505050506040513d6020811015611b4c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611be257600080fd5b505af1158015611bf6573d6000803e3d6000fd5b505050506040513d6020811015611c0c57600080fd5b81019080805190602001909291905050509050919050565b600081601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7157600080fd5b601b60009054906101000a900460ff168015611da0575060001515601b60019054906101000a900460ff161515145b1515611dab57600080fd5b6001601b60016101000a81548160ff02191690831515021790555042601c81905550427f35faa1e328b369ae53ce7c8a27cacbeeb13c4ebc77e84160b7e96afea7c5867960405160405180910390a2565b60085481565b6000601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460075403905090565b6000600360149054906101000a900460ff16151515611e6b57600080fd5b600c5442118015611e8f575060001515601b60009054906101000a900460ff161515145b15611e9e57611e9c611541565b505b600d5442101580611eff575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611f0a57600080fd5b611f90601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612059601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e5601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60115481565b6000600660009054906101000a900460ff16905090565b60135481565b600e5481565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561222257600080fd5b600360149054906101000a900460ff16151561223d57600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e757600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b6000600360149054906101000a900460ff16905090565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ac57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156123e857600080fd5b601e6018610e10600d5442038115156123fd57fe5b0481151561240757fe5b0481151561241157fe5b0494506064601260009054906101000a900460ff1660640360ff166064600f80540281151561243c57fe5b040281151561244757fe5b049350601884600187010281151561245b57fe5b049250601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548403915081830390506000811115156124b657600080fd5b6124c1308883611e4d565b506303c26700600d540142111561251e5761251c3088601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d565b505b600195505050505050919050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561276f57600080fd5b600360149054906101000a900460ff1615151561278b57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b60019054906101000a900460ff16151561281757600080fd5b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506128a2601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042813373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007540303905090565b60095481565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b705780601f10612b4557610100808354040283529160200191612b70565b820191906000526020600020905b815481529060010190602001808311612b5357829003601f168201915b5050505050905090565b6000600360149054906101000a900460ff161515612b9757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c3f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612c4a57600080fd5b8360059080519060200190612c60929190613ce1565b508260049080519060200190612c77929190613ce1565b5081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190509392505050565b6000600360149054906101000a900460ff16151515612ce257600080fd5b600c5442118015612d06575060001515601b60009054906101000a900460ff161515145b15612d1557612d13611541565b505b600d5442101580612d76575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80612dce5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612dd957600080fd5b612e22601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eae601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061301d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561302857600080fd5b81600e8190555060019050919050565b600b5481565b600c5481565b6000600360149054906101000a900460ff1615151561306257600080fd5b82601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561323d578082015181840152602081019050613222565b50505050905090810190601f16801561326a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561328c57600080fd5b505af11580156132a0573d6000803e3d6000fd5b50505050600190509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133ab5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156133b657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561347a57600080fd5b505af115801561348e573d6000803e3d6000fd5b505050506040513d60208110156134a457600080fd5b8101908080519060200190929190505050905092915050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135ee5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156135f957600080fd5b601b60019054906101000a900460ff16151561361457600080fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061369f601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042818373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138d35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156138de57600080fd5b601b60009054906101000a900460ff161515156138fa57600080fd5b601b60019054906101000a900460ff1615151561391657600080fd5b81600c8190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561398157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613a6f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613a7a57600080fd5b81601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60009054906101000a900460ff1681565b610e104201600d819055506001601b60006101000a81548160ff021916908315150217905550427ff6af8e1d23f8a5997a11116c1e59bd11c947226b74890b8e0fde60d95a7c076a60405160405180910390a26000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015613c47573d6000803e3d6000fd5b50565b6000613c69613c5b83600e54613c8c565b670de0b6b3a7640000613cbd565b9050919050565b6000828211151515613c8157600080fd5b818303905092915050565b600081830290506000831480613cac5750818382811515613ca957fe5b04145b1515613cb757600080fd5b92915050565b60008082111515613ccd57600080fd5b8183811515613cd857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2257805160ff1916838001178555613d50565b82800160010185558215613d50579182015b82811115613d4f578251825591602001919060010190613d34565b5b509050613d5d9190613d61565b5090565b613d8391905b80821115613d7f576000816000905550600101613d67565b5090565b905600a165627a7a7230582016637a766d63481a097fb2d90fa501f0c10d58f47f3a9af58d2e508773a1b6be0029

Swarm Source

bzzr://16637a766d63481a097fb2d90fa501f0c10d58f47f3a9af58d2e508773a1b6be
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.