ETH Price: $3,082.23 (-1.01%)

Token

SUToken (SU)
 

Overview

Max Total Supply

1,000,000,000 SU

Holders

6,654

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
98 SU

Value
$0.00
0x2A0ba69031C5CAb37DC473b29B952deC96DC8E83
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:
SU

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-17
*/

pragma solidity >=0.4.26 <0.5.0;

// File: contracts/ownership/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;
 
  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

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

}

// File: contracts/math/SafeMath.sol

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

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

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

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

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

// File: contracts/token/ERC20/ERC20Basic.sol

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

// File: contracts/token/ERC20/BasicToken.sol

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

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

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

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

}

// File: contracts/token/ERC20/BurnableToken.sol

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract BurnableToken is BasicToken {

  event Burn(address indexed burner, uint256 value);

  /**
   * @dev Burns a specific amount of tokens.
   * @param _value The amount of token to be burned.
   */
  function burn(uint256 _value) public {
    _burn(msg.sender, _value);
  }

  function _burn(address _who, uint256 _value) internal {
    require(_value <= balances[_who]);
    // no need to require value <= totalSupply, since that would imply the
    // sender's balance is greater than the totalSupply, which *should* be an assertion failure

    balances[_who] = balances[_who].sub(_value);
    totalSupply_ = totalSupply_.sub(_value);
    emit Burn(_who, _value);
    emit Transfer(_who, address(0), _value);
  }
}

// File: contracts/token/ERC20/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: contracts/token/ERC20/StandardToken.sol

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

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

    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

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

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}
 
contract SU is StandardToken, BurnableToken, Ownable {
    // Constants
    string  public constant name = "SUToken";
    string  public constant symbol = "SU";
    uint8   public constant decimals = 18;
    uint256 public constant INITIAL_SUPPLY      = 1000000000 * (10 ** uint256(decimals));
    uint256 public constant D      = 10 ** uint256(decimals);

    mapping(address => uint256) public balanceLocked;   
   
    
    uint public amountRaised;
    uint256 public buyPrice = 88;
    bool public crowdsaleClosed = true;
    bool public transferEnabled = true;


    constructor() public {
      totalSupply_ = INITIAL_SUPPLY;
      balances[msg.sender] = INITIAL_SUPPLY;
      emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
    }


    function _transfer(address _from, address _to, uint _value) internal {     
        require (balances[_from] >= _value);               // Check if the sender has enough
        require (balances[_to] + _value > balances[_to]); // Check for overflows
   
        balances[_from] = balances[_from].sub(_value);                         // Subtract from the sender
        balances[_to] = balances[_to].add(_value);                            // Add the same to the recipient
         
        emit Transfer(_from, _to, _value);
    }

    function setPrice( uint256 newBuyPrice) onlyOwner public {
        buyPrice = newBuyPrice;
    }

    function closeBuy(bool closebuy) onlyOwner public {
        crowdsaleClosed = closebuy;
    }

    function () external payable {
        require(!crowdsaleClosed);
        uint amount = msg.value ;               // calculates the amount
        amountRaised = amountRaised.add(amount);
        _transfer(owner, msg.sender, amount.mul(buyPrice)); 
        owner.transfer(amount);
    }
 
    function enableTransfer(bool _enable) onlyOwner external {
        transferEnabled = _enable;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(transferEnabled);
        require((balances[_from] - _value) >= balanceLocked[_from]);

        return super.transferFrom(_from, _to, _value);
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(transferEnabled);
        require((balances[msg.sender] - _value) >= balanceLocked[msg.sender]);
        
        return super.transfer(_to, _value);
    }    
  
  
    function lock ( address[] _addr ) onlyOwner external  {
        for (uint i = 0; i < _addr.length; i++) {
          balanceLocked[_addr[i]] =  balances[_addr[i]];  
        }
    }


    function lockEx ( address[] _addr , uint256[] _value) onlyOwner external  {
        for (uint i = 0; i < _addr.length; i++) {
          balanceLocked[_addr[i]] = _value[i] * D;
        }
    }
    

    function unlock ( address[] _addr ) onlyOwner external  {
        for (uint i = 0; i < _addr.length; i++) {
          balanceLocked[_addr[i]] =  0;  
        }
    }
 

    function unlockEx ( address[] _addr , uint256[] _value ) onlyOwner external  {
        for (uint i = 0; i < _addr.length; i++) {
          uint256 v = (_value[i] * D) > balanceLocked[_addr[i]] ? balanceLocked[_addr[i]] : (_value[i] * D);
          balanceLocked[_addr[i]] -= v;  
        }
    }
        

   function getFreeBalances( address _addr ) public view returns(uint)  {
      return balances[_addr] - balanceLocked[_addr];      
   }

   
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getFreeBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"D","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":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","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":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address[]"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transferEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceLocked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address[]"},{"name":"_value","type":"uint256[]"}],"name":"lockEx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newBuyPrice","type":"uint256"}],"name":"setPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address[]"},{"name":"_value","type":"uint256[]"}],"name":"unlockEx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"closebuy","type":"bool"}],"name":"closeBuy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address[]"}],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_enable","type":"bool"}],"name":"enableTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

608060405260586006556001600760006101000a81548160ff0219169083151502179055506001600760016101000a81548160ff02191690831515021790555034801561004b57600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a633b9aca0002600181905550601260ff16600a0a633b9aca00026000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a633b9aca00026040518082815260200191505060405180910390a36125ed8061015d6000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630604c5941461025357806306fdde03146102aa578063095ea7b31461033a5780630f529ba21461039f57806318160ddd146103ca57806323b872dd146103f55780632ff2e9dc1461047a578063313ce567146104a557806342966c68146104d657806342f6208e146105035780634cd412d51461053e5780635fc3a3121461056d57806366188463146105c45780636b1ea8d21461062957806370a082311461067c5780637b3e5e7b146106d35780638620410b146106fe5780638da5cb5b1461072957806391b7f5ed1461078057806395d89b41146107ad5780639d3c4c681461083d578063a9059cbb14610890578063ccb07cef146108f5578063d4e17e6d14610924578063d73dd62314610953578063d791de63146109b8578063dd62ed3e146109f3578063ef7ac0e514610a6a575b6000600760009054906101000a900460ff1615151561018857600080fd5b3490506101a081600554610a9990919063ffffffff16565b6005819055506101e7600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336101e260065485610ab590919063ffffffff16565b610aed565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561024f573d6000803e3d6000fd5b5050005b34801561025f57600080fd5b50610294600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d56565b6040518082815260200191505060405180910390f35b3480156102b657600080fd5b506102bf610ddf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ff5780820151818401526020810190506102e4565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034657600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e18565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b506103b4610fa1565b6040518082815260200191505060405180910390f35b3480156103d657600080fd5b506103df610fac565b6040518082815260200191505060405180910390f35b34801561040157600080fd5b50610460600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fb6565b604051808215151515815260200191505060405180910390f35b34801561048657600080fd5b5061048f611075565b6040518082815260200191505060405180910390f35b3480156104b157600080fd5b506104ba611086565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104e257600080fd5b506105016004803603810190808035906020019092919050505061108b565b005b34801561050f57600080fd5b5061053c600480360381019080803590602001908201803590602001919091929391929390505050611098565b005b34801561054a57600080fd5b506105536111ee565b604051808215151515815260200191505060405180910390f35b34801561057957600080fd5b506105ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611201565b6040518082815260200191505060405180910390f35b3480156105d057600080fd5b5061060f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611219565b604051808215151515815260200191505060405180910390f35b34801561063557600080fd5b5061067a6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506114aa565b005b34801561068857600080fd5b506106bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b7565b6040518082815260200191505060405180910390f35b3480156106df57600080fd5b506106e86115ff565b6040518082815260200191505060405180910390f35b34801561070a57600080fd5b50610713611605565b6040518082815260200191505060405180910390f35b34801561073557600080fd5b5061073e61160b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078c57600080fd5b506107ab60048036038101908080359060200190929190505050611631565b005b3480156107b957600080fd5b506107c2611697565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108025780820151818401526020810190506107e7565b50505050905090810190601f16801561082f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084957600080fd5b5061088e6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506116d0565b005b34801561089c57600080fd5b506108db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e8565b604051808215151515815260200191505060405180910390f35b34801561090157600080fd5b5061090a6119a5565b604051808215151515815260200191505060405180910390f35b34801561093057600080fd5b506109516004803603810190808035151590602001909291905050506119b8565b005b34801561095f57600080fd5b5061099e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a31565b604051808215151515815260200191505060405180910390f35b3480156109c457600080fd5b506109f1600480360381019080803590602001908201803590602001919091929391929390505050611c2d565b005b3480156109ff57600080fd5b50610a54600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d1c565b6040518082815260200191505060405180910390f35b348015610a7657600080fd5b50610a97600480360381019080803515159060200190929190505050611da3565b005b60008183019050828110151515610aac57fe5b80905092915050565b600080831415610ac85760009050610ae7565b8183029050818382811515610ad957fe5b04141515610ae357fe5b8090505b92915050565b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610b3a57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401111515610bc657600080fd5b610c17816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610caa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050919050565b6040805190810160405280600781526020017f5355546f6b656e0000000000000000000000000000000000000000000000000081525081565b6000808214158015610ea757506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610eb157600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b601260ff16600a0a81565b6000600154905090565b6000600760019054906101000a900460ff161515610fd357600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054031015151561106157600080fd5b61106c848484611e35565b90509392505050565b601260ff16600a0a633b9aca000281565b601281565b61109533826121ef565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110f657600080fd5b600090505b828290508110156111e957600080848484818110151561111757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000858585818110151561118157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506110fb565b505050565b600760019054906101000a900460ff1681565b60046020528060005260406000206000915090505481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561132a576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113be565b61133d8382611e1c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561150857600080fd5b600090505b848490508110156115b057601260ff16600a0a838383818110151561152e57fe5b905060200201350260046000878785818110151561154857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061150d565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60055481565b60065481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168d57600080fd5b8060068190555050565b6040805190810160405280600281526020017f535500000000000000000000000000000000000000000000000000000000000081525081565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561172f57600080fd5b600091505b858590508210156118e05760046000878785818110151561175157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260ff16600a0a85858581811015156117bf57fe5b9050602002013502116117ef57601260ff16600a0a84848481811015156117e257fe5b905060200201350261185a565b60046000878785818110151561180157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b90508060046000888886818110151561186f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508180600101925050611734565b505050505050565b6000600760019054906101000a900460ff16151561190557600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054031015151561199357600080fd5b61199d83836123a2565b905092915050565b600760009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a1457600080fd5b80600760006101000a81548160ff02191690831515021790555050565b6000611ac282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c8b57600080fd5b600090505b82829050811015611d17576000600460008585858181101515611caf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050611c90565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dff57600080fd5b80600760016101000a81548160ff02191690831515021790555050565b6000828211151515611e2a57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611e7257600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ebf57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611f4a57600080fd5b611f9b826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ff82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561223c57600080fd5b61228d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e481600154611e1c90919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156123df57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561242c57600080fd5b61247d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612510826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820817c8a7ae9c8f9d4639fa6d07e4964cab27721f31b58f88c0b9e9a5b8c5ff7740029

Deployed Bytecode

0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630604c5941461025357806306fdde03146102aa578063095ea7b31461033a5780630f529ba21461039f57806318160ddd146103ca57806323b872dd146103f55780632ff2e9dc1461047a578063313ce567146104a557806342966c68146104d657806342f6208e146105035780634cd412d51461053e5780635fc3a3121461056d57806366188463146105c45780636b1ea8d21461062957806370a082311461067c5780637b3e5e7b146106d35780638620410b146106fe5780638da5cb5b1461072957806391b7f5ed1461078057806395d89b41146107ad5780639d3c4c681461083d578063a9059cbb14610890578063ccb07cef146108f5578063d4e17e6d14610924578063d73dd62314610953578063d791de63146109b8578063dd62ed3e146109f3578063ef7ac0e514610a6a575b6000600760009054906101000a900460ff1615151561018857600080fd5b3490506101a081600554610a9990919063ffffffff16565b6005819055506101e7600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336101e260065485610ab590919063ffffffff16565b610aed565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561024f573d6000803e3d6000fd5b5050005b34801561025f57600080fd5b50610294600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d56565b6040518082815260200191505060405180910390f35b3480156102b657600080fd5b506102bf610ddf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ff5780820151818401526020810190506102e4565b50505050905090810190601f16801561032c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034657600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e18565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b506103b4610fa1565b6040518082815260200191505060405180910390f35b3480156103d657600080fd5b506103df610fac565b6040518082815260200191505060405180910390f35b34801561040157600080fd5b50610460600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fb6565b604051808215151515815260200191505060405180910390f35b34801561048657600080fd5b5061048f611075565b6040518082815260200191505060405180910390f35b3480156104b157600080fd5b506104ba611086565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104e257600080fd5b506105016004803603810190808035906020019092919050505061108b565b005b34801561050f57600080fd5b5061053c600480360381019080803590602001908201803590602001919091929391929390505050611098565b005b34801561054a57600080fd5b506105536111ee565b604051808215151515815260200191505060405180910390f35b34801561057957600080fd5b506105ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611201565b6040518082815260200191505060405180910390f35b3480156105d057600080fd5b5061060f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611219565b604051808215151515815260200191505060405180910390f35b34801561063557600080fd5b5061067a6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506114aa565b005b34801561068857600080fd5b506106bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b7565b6040518082815260200191505060405180910390f35b3480156106df57600080fd5b506106e86115ff565b6040518082815260200191505060405180910390f35b34801561070a57600080fd5b50610713611605565b6040518082815260200191505060405180910390f35b34801561073557600080fd5b5061073e61160b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078c57600080fd5b506107ab60048036038101908080359060200190929190505050611631565b005b3480156107b957600080fd5b506107c2611697565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108025780820151818401526020810190506107e7565b50505050905090810190601f16801561082f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084957600080fd5b5061088e6004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293905050506116d0565b005b34801561089c57600080fd5b506108db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118e8565b604051808215151515815260200191505060405180910390f35b34801561090157600080fd5b5061090a6119a5565b604051808215151515815260200191505060405180910390f35b34801561093057600080fd5b506109516004803603810190808035151590602001909291905050506119b8565b005b34801561095f57600080fd5b5061099e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a31565b604051808215151515815260200191505060405180910390f35b3480156109c457600080fd5b506109f1600480360381019080803590602001908201803590602001919091929391929390505050611c2d565b005b3480156109ff57600080fd5b50610a54600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d1c565b6040518082815260200191505060405180910390f35b348015610a7657600080fd5b50610a97600480360381019080803515159060200190929190505050611da3565b005b60008183019050828110151515610aac57fe5b80905092915050565b600080831415610ac85760009050610ae7565b8183029050818382811515610ad957fe5b04141515610ae357fe5b8090505b92915050565b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610b3a57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401111515610bc657600080fd5b610c17816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610caa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050919050565b6040805190810160405280600781526020017f5355546f6b656e0000000000000000000000000000000000000000000000000081525081565b6000808214158015610ea757506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15610eb157600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b601260ff16600a0a81565b6000600154905090565b6000600760019054906101000a900460ff161515610fd357600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054031015151561106157600080fd5b61106c848484611e35565b90509392505050565b601260ff16600a0a633b9aca000281565b601281565b61109533826121ef565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110f657600080fd5b600090505b828290508110156111e957600080848484818110151561111757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460046000858585818110151561118157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806001019150506110fb565b505050565b600760019054906101000a900460ff1681565b60046020528060005260406000206000915090505481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561132a576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113be565b61133d8382611e1c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561150857600080fd5b600090505b848490508110156115b057601260ff16600a0a838383818110151561152e57fe5b905060200201350260046000878785818110151561154857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808060010191505061150d565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60055481565b60065481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168d57600080fd5b8060068190555050565b6040805190810160405280600281526020017f535500000000000000000000000000000000000000000000000000000000000081525081565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561172f57600080fd5b600091505b858590508210156118e05760046000878785818110151561175157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601260ff16600a0a85858581811015156117bf57fe5b9050602002013502116117ef57601260ff16600a0a84848481811015156117e257fe5b905060200201350261185a565b60046000878785818110151561180157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b90508060046000888886818110151561186f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508180600101925050611734565b505050505050565b6000600760019054906101000a900460ff16151561190557600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054031015151561199357600080fd5b61199d83836123a2565b905092915050565b600760009054906101000a900460ff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a1457600080fd5b80600760006101000a81548160ff02191690831515021790555050565b6000611ac282600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c8b57600080fd5b600090505b82829050811015611d17576000600460008585858181101515611caf57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050611c90565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dff57600080fd5b80600760016101000a81548160ff02191690831515021790555050565b6000828211151515611e2a57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611e7257600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611ebf57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611f4a57600080fd5b611f9b826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ff82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561223c57600080fd5b61228d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e481600154611e1c90919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156123df57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561242c57600080fd5b61247d826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e1c90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612510826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a9990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820817c8a7ae9c8f9d4639fa6d07e4964cab27721f31b58f88c0b9e9a5b8c5ff7740029

Deployed Bytecode Sourcemap

9442:3512:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11041:11;11014:15;;;;;;;;;;;11013:16;11005:25;;;;;;;;11055:9;11041:23;;11130:24;11147:6;11130:12;;:16;;:24;;;;:::i;:::-;11115:12;:39;;;;11165:50;11175:5;;;;;;;;;;;11182:10;11194:20;11205:8;;11194:6;:10;;:20;;;;:::i;:::-;11165:9;:50::i;:::-;11227:5;;;;;;;;;;;:14;;:22;11242:6;11227:22;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11227:22:0;10965:292;9442:3512;12808:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12808:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9520:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9520:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9520:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6796:560;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6796:560:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9746:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9746:56:0;;;;;;;;;;;;;;;;;;;;;;;2682:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2682:85:0;;;;;;;;;;;;;;;;;;;;;;;11375:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11375:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9655:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9655:84:0;;;;;;;;;;;;;;;;;;;;;;;9611:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9611:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3938:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3938:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;11907:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11907:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9987:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9987:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9811:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9811:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9020:412;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9020:412:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12101:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12101:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3466:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3466:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9880:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9880:24:0;;;;;;;;;;;;;;;;;;;;;;;9911:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9911:28:0;;;;;;;;;;;;;;;;;;;;;;;297:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;297:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10756:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10756:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;9567:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9567:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9567:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12491:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12491:300:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11642:247;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11642:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9946:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9946:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10862:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10862:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8280:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8280:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12311:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12311:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7683:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7683:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11266:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:127;1782:9;1808:1;1804;:5;1800:9;;1828:1;1823;:6;;1816:14;;;;;;1844:1;1837:8;;1724:127;;;;:::o;889:174::-;947:9;974:1;969;:6;965:37;;;993:1;986:8;;;;965:37;1016:1;1012;:5;1008:9;;1040:1;1035;1031;:5;;;;;;;;:10;1024:18;;;;;;1056:1;1049:8;;889:174;;;;;:::o;10210:538::-;10323:6;10304:8;:15;10313:5;10304:15;;;;;;;;;;;;;;;;:25;;10295:35;;;;;;;;10423:8;:13;10432:3;10423:13;;;;;;;;;;;;;;;;10414:6;10398:8;:13;10407:3;10398:13;;;;;;;;;;;;;;;;:22;:38;10389:48;;;;;;;;10494:27;10514:6;10494:8;:15;10503:5;10494:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10476:8;:15;10485:5;10476:15;;;;;;;;;;;;;;;:45;;;;10600:25;10618:6;10600:8;:13;10609:3;10600:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;10584:8;:13;10593:3;10584:13;;;;;;;;;;;;;;;:41;;;;10728:3;10712:28;;10721:5;10712:28;;;10733:6;10712:28;;;;;;;;;;;;;;;;;;10210:538;;;:::o;12808:136::-;12870:4;12911:13;:20;12925:5;12911:20;;;;;;;;;;;;;;;;12893:8;:15;12902:5;12893:15;;;;;;;;;;;;;;;;:38;12886:45;;12808:136;;;:::o;9520:40::-;;;;;;;;;;;;;;;;;;;;:::o;6796:560::-;6863:4;7183:1;7173:6;:11;;7172:53;;;;;7223:1;7190:7;:19;7198:10;7190:19;;;;;;;;;;;;;;;:29;7210:8;7190:29;;;;;;;;;;;;;;;;:34;;7172:53;7168:67;;;7227:8;;;7168:67;7276:6;7244:7;:19;7252:10;7244:19;;;;;;;;;;;;;;;:29;7264:8;7244:29;;;;;;;;;;;;;;;:38;;;;7315:8;7294:38;;7303:10;7294:38;;;7325:6;7294:38;;;;;;;;;;;;;;;;;;7346:4;7339:11;;6796:560;;;;:::o;9746:56::-;9646:2;9785:17;;9779:2;:23;9746:56;:::o;2682:85::-;2726:7;2749:12;;2742:19;;2682:85;:::o;11375:259::-;11457:4;11482:15;;;;;;;;;;;11474:24;;;;;;;;11547:13;:20;11561:5;11547:20;;;;;;;;;;;;;;;;11536:6;11518:8;:15;11527:5;11518:15;;;;;;;;;;;;;;;;:24;11517:50;;11509:59;;;;;;;;11588:38;11607:5;11614:3;11619:6;11588:18;:38::i;:::-;11581:45;;11375:259;;;;;:::o;9655:84::-;9646:2;9721:17;;9715:2;:23;9701:10;:38;9655:84;:::o;9611:37::-;9646:2;9611:37;:::o;3938:75::-;3982:25;3988:10;4000:6;3982:5;:25::i;:::-;3938:75;:::o;11907:184::-;11977:6;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;11986:1;11977:10;;11972:112;11993:5;;:12;;11989:1;:16;11972:112;;;12052:8;:18;12061:5;;12067:1;12061:8;;;;;;;;;;;;;;;;;12052:18;;;;;;;;;;;;;;;;12025:13;:23;12039:5;;12045:1;12039:8;;;;;;;;;;;;;;;;;12025:23;;;;;;;;;;;;;;;:45;;;;12007:3;;;;;;;11972:112;;;11907:184;;;:::o;9987:34::-;;;;;;;;;;;;;:::o;9811:48::-;;;;;;;;;;;;;;;;;:::o;9020:412::-;9103:4;9116:13;9132:7;:19;9140:10;9132:19;;;;;;;;;;;;;;;:29;9152:8;9132:29;;;;;;;;;;;;;;;;9116:45;;9191:8;9172:16;:27;9168:168;;;9242:1;9210:7;:19;9218:10;9210:19;;;;;;;;;;;;;;;:29;9230:8;9210:29;;;;;;;;;;;;;;;:33;;;;9168:168;;;9298:30;9311:16;9298:8;:12;;:30;;;;:::i;:::-;9266:7;:19;9274:10;9266:19;;;;;;;;;;;;;;;:29;9286:8;9266:29;;;;;;;;;;;;;;;:62;;;;9168:168;9368:8;9347:61;;9356:10;9347:61;;;9378:7;:19;9386:10;9378:19;;;;;;;;;;;;;;;:29;9398:8;9378:29;;;;;;;;;;;;;;;;9347:61;;;;;;;;;;;;;;;;;;9422:4;9415:11;;9020:412;;;;;:::o;12101:196::-;12191:6;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;12200:1;12191:10;;12186:104;12207:5;;:12;;12203:1;:16;12186:104;;;9646:2;9785:17;;9779:2;:23;12265:6;;12272:1;12265:9;;;;;;;;;;;;;;;:13;12239;:23;12253:5;;12259:1;12253:8;;;;;;;;;;;;;;;;;12239:23;;;;;;;;;;;;;;;:39;;;;12221:3;;;;;;;12186:104;;;12101:196;;;;;:::o;3466:101::-;3522:7;3545:8;:16;3554:6;3545:16;;;;;;;;;;;;;;;;3538:23;;3466:101;;;:::o;9880:24::-;;;;:::o;9911:28::-;;;;:::o;297:20::-;;;;;;;;;;;;;:::o;10756:98::-;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;10835:11;10824:8;:22;;;;10756:98;:::o;9567:37::-;;;;;;;;;;;;;;;;;;;;:::o;12491:300::-;12584:6;12632:9;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;12593:1;12584:10;;12579:205;12600:5;;:12;;12596:1;:16;12579:205;;;12662:13;:23;12676:5;;12682:1;12676:8;;;;;;;;;;;;;;;;;12662:23;;;;;;;;;;;;;;;;9646:2;9785:17;;9779:2;:23;12645:6;;12652:1;12645:9;;;;;;;;;;;;;;;:13;12644:41;:85;;9646:2;9785:17;;9779:2;:23;12715:6;;12722:1;12715:9;;;;;;;;;;;;;;;:13;12644:85;;;12688:13;:23;12702:5;;12708:1;12702:8;;;;;;;;;;;;;;;;;12688:23;;;;;;;;;;;;;;;;12644:85;12632:97;;12769:1;12742:13;:23;12756:5;;12762:1;12756:8;;;;;;;;;;;;;;;;;12742:23;;;;;;;;;;;;;;;;:28;;;;;;;;;;;12614:3;;;;;;;12579:205;;;12491:300;;;;;;:::o;11642:247::-;11705:4;11730:15;;;;;;;;;;;11722:24;;;;;;;;11800:13;:25;11814:10;11800:25;;;;;;;;;;;;;;;;11789:6;11766:8;:20;11775:10;11766:20;;;;;;;;;;;;;;;;:29;11765:60;;11757:69;;;;;;;;11854:27;11869:3;11874:6;11854:14;:27::i;:::-;11847:34;;11642:247;;;;:::o;9946:34::-;;;;;;;;;;;;;:::o;10862:95::-;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;10941:8;10923:15;;:26;;;;;;;;;;;;;;;;;;10862:95;:::o;8280:266::-;8358:4;8403:46;8437:11;8403:7;:19;8411:10;8403:19;;;;;;;;;;;;;;;:29;8423:8;8403:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;8371:7;:19;8379:10;8371:19;;;;;;;;;;;;;;;:29;8391:8;8371:29;;;;;;;;;;;;;;;:78;;;;8482:8;8461:61;;8470:10;8461:61;;;8492:7;:19;8500:10;8492:19;;;;;;;;;;;;;;;:29;8512:8;8492:29;;;;;;;;;;;;;;;;8461:61;;;;;;;;;;;;;;;;;;8536:4;8529:11;;8280:266;;;;:::o;12311:169::-;12383:6;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;12392:1;12383:10;;12378:95;12399:5;;:12;;12395:1;:16;12378:95;;;12458:1;12431:13;:23;12445:5;;12451:1;12445:8;;;;;;;;;;;;;;;;;12431:23;;;;;;;;;;;;;;;:28;;;;12413:3;;;;;;;12378:95;;;12311:169;;;:::o;7683:128::-;7757:7;7780;:15;7788:6;7780:15;;;;;;;;;;;;;;;:25;7796:8;7780:25;;;;;;;;;;;;;;;;7773:32;;7683:128;;;;:::o;11266:101::-;632:5;;;;;;;;;;;618:19;;:10;:19;;;610:28;;;;;;;;11352:7;11334:15;;:25;;;;;;;;;;;;;;;;;;11266:101;:::o;1544:113::-;1602:7;1630:1;1625;:6;;1618:14;;;;;;1650:1;1646;:5;1639:12;;1544:113;;;;:::o;5707:454::-;5789:4;5825:1;5810:17;;:3;:17;;;;5802:26;;;;;;;;5853:8;:15;5862:5;5853:15;;;;;;;;;;;;;;;;5843:6;:25;;5835:34;;;;;;;;5894:7;:14;5902:5;5894:14;;;;;;;;;;;;;;;:26;5909:10;5894:26;;;;;;;;;;;;;;;;5884:6;:36;;5876:45;;;;;;;;5948:27;5968:6;5948:8;:15;5957:5;5948:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5930:8;:15;5939:5;5930:15;;;;;;;;;;;;;;;:45;;;;5998:25;6016:6;5998:8;:13;6007:3;5998:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5982:8;:13;5991:3;5982:13;;;;;;;;;;;;;;;:41;;;;6059:38;6090:6;6059:7;:14;6067:5;6059:14;;;;;;;;;;;;;;;:26;6074:10;6059:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;6030:7;:14;6038:5;6030:14;;;;;;;;;;;;;;;:26;6045:10;6030:26;;;;;;;;;;;;;;;:67;;;;6125:3;6109:28;;6118:5;6109:28;;;6130:6;6109:28;;;;;;;;;;;;;;;;;;6151:4;6144:11;;5707:454;;;;;:::o;4019:447::-;4098:8;:14;4107:4;4098:14;;;;;;;;;;;;;;;;4088:6;:24;;4080:33;;;;;;;;4312:26;4331:6;4312:8;:14;4321:4;4312:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;4295:8;:14;4304:4;4295:14;;;;;;;;;;;;;;;:43;;;;4360:24;4377:6;4360:12;;:16;;:24;;;;:::i;:::-;4345:12;:39;;;;4401:4;4396:18;;;4407:6;4396:18;;;;;;;;;;;;;;;;;;4449:1;4426:34;;4435:4;4426:34;;;4453:6;4426:34;;;;;;;;;;;;;;;;;;4019:447;;:::o;2928:329::-;2991:4;3027:1;3012:17;;:3;:17;;;;3004:26;;;;;;;;3055:8;:20;3064:10;3055:20;;;;;;;;;;;;;;;;3045:6;:30;;3037:39;;;;;;;;3108:32;3133:6;3108:8;:20;3117:10;3108:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;3085:8;:20;3094:10;3085:20;;;;;;;;;;;;;;;:55;;;;3163:25;3181:6;3163:8;:13;3172:3;3163:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;3147:8;:13;3156:3;3147:13;;;;;;;;;;;;;;;:41;;;;3221:3;3200:33;;3209:10;3200:33;;;3226:6;3200:33;;;;;;;;;;;;;;;;;;3247:4;3240:11;;2928:329;;;;:::o

Swarm Source

bzzr://817c8a7ae9c8f9d4639fa6d07e4964cab27721f31b58f88c0b9e9a5b8c5ff774
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.