ETH Price: $2,349.55 (+1.59%)
 

Overview

Max Total Supply

2,000,000,000 ACEX

Holders

211 (0.00%)

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

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:
Ace

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-11-20
*/

pragma solidity ^0.4.18;

// ----------------------------------------------------------------------------------------------
// Ace Token by Ace Limited.
// An ERC20 standard
//
contract ERC20Interface {
  // Get the total token supply
  function totalSupply() public constant returns (uint256 _totalSupply);

  // Get the account balance of another account with address _owner
  function balanceOf(address _owner) public constant returns (uint256 balance);

  // Send _value amount of tokens to address _to
  function transfer(address _to, uint256 _value) public returns (bool success);

  // transfer _value amount of token approved by address _from
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

  // approve an address with _value amount of tokens
  function approve(address _spender, uint256 _value) public returns (bool success);

  // get remaining token approved by _owner to _spender
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining);

  // Triggered when tokens are transferred.
  event Transfer(address indexed _from, address indexed _to, uint256 _value);

  // Triggered whenever approve(address _spender, uint256 _value) is called.
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library SafeMath {
  function add(uint a, uint b) internal pure returns (uint c) {
    c = a + b;
    require(c >= a);
  }
  function sub(uint a, uint b) internal pure returns (uint c) {
    require(b <= a);
    c = a - b;
  }
  function mul(uint a, uint b) internal pure returns (uint c) {
    c = a * b;
    require(a == 0 || c / a == b);
  }
  function div(uint a, uint b) internal pure returns (uint c) {
    require(b > 0);
    c = a / b;
  }
}
contract Ace is ERC20Interface {
  using SafeMath for uint;
  uint256 public constant decimals = 8;

  uint256 public constant oneAce = 10**8;
  uint256 public constant oneEth = 10**18;

  string public constant symbol = "ACEX";
  string public constant name = "ACEX";

  //initial selling
  bool public _selling = true;

  // total supply is 10^17 unit, equivalent to 10^9 Ace, 20bln
  uint256 public _totalSupply = oneAce.mul(2).mul(10 ** 9); //2*(10 ** 9) * oneAce;

  // _originalBuyPrice = how many ACE unit for 1 ETH
  // 1 ACE = 0.033 USD with the fixed rate
  // e.g. suppose 1 ETH = 142.49 USD, so _originalBuyPrice = 142.49 / 0.033 * oneAce = 4318 * oneAce = 4318 * 10**8 ACE unit
  uint256 public _originalBuyPrice = oneAce.mul(4318); //4318 * oneAce;

  // Owner of this contract
  address public owner;

  // Balances Ace for each account
  mapping(address => uint256) private balances;

  // Owner of account approves the transfer of an amount to another account
  mapping(address => mapping (address => uint256)) private allowed;

  // List of approved investors
  mapping(address => bool) private approvedInvestorList;

  // deposit
  mapping(address => uint256) private deposit;

  // icoPercent
  uint256 public _icoPercent = 10;

  // _icoSupply is the avalable unit. Initially, it is _totalSupply
  uint256 public _icoSupply = _totalSupply.mul(_icoPercent).div(100);

  // minimum buy 0.3 ETH, in wei
  uint256 public _minimumBuy = 3 * 10 ** 17;

  // maximum buy 25 ETH, in wei
  uint256 public _maximumBuy = 25 * oneEth;

  // totalTokenSold
  uint256 public totalTokenSold = 0;

  // tradable
  bool public tradable = false;

  // maximum token allowed to burn every time
  uint256 public _maximumBurn = 0;

  // Triggered whenever burn(uint256 _value) is called.
  event Burn(address indexed burner, uint256 value);
  // Triggered whenever turnOnSale()、turnOffSale() is called.
  event Sale(address indexed safer, bool value);
  // Triggered whenever turnOnTradable() is called.
  event Tradable(address indexed safer, bool value);
  //
  event ParamConfig(uint256 paramType, uint256 value);

  /**
   * Functions with this modifier can only be executed by the owner
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * Functions with this modifier check on sale status
   * Only allow sale if _selling is on
   */
  modifier onSale() {
    require(_selling);
    _;
  }

  /**
   * Functions with this modifier check the validity of address is investor
   */
  modifier validInvestor() {
    require(approvedInvestorList[msg.sender]);
    _;
  }

  /**
   * Functions with this modifier check the validity of msg value
   * value must greater than equal minimumBuyPrice
   * total deposit must less than equal maximumBuyPrice
   */
  modifier validValue(){
    // require value >= _minimumBuy AND total deposit of msg.sender <= maximumBuyPrice
    require ( (msg.value >= _minimumBuy) &&
      ( (deposit[msg.sender] + msg.value) <= _maximumBuy) );
    _;
  }

  /**
   * Functions with this modifier check the validity of address is not 0
   */
  modifier validAddress {
    require(address(0) != msg.sender);
    _;
  }

  /**
   *
   */
  modifier isTradable(){
    require(tradable == true || msg.sender == owner);
    _;
  }

  /// @dev Fallback function allows to buy ether.
  function()
  public
  payable {
    buyAce();
  }

  /// @dev buy function allows to buy ether. for using optional data
  function buyAce()
  public
  payable
  onSale
  validValue
  validInvestor {
    // (ETH from msg.sender in wei) * (how many ACE unit for 1 ETH) / (how many wei for 1 ETH)
    //uint256 requestedUnits = (msg.value * _originalBuyPrice) / 10**18;
    uint256 requestedUnits = msg.value.mul(_originalBuyPrice).div(oneEth);
    require(balances[owner] >= requestedUnits);
    // prepare transfer data
    balances[owner] = balances[owner].sub(requestedUnits);
    balances[msg.sender] = balances[owner].add(requestedUnits);
    // increase total deposit amount
    deposit[msg.sender] = deposit[msg.sender].add(msg.value);
    totalTokenSold = totalTokenSold.add(requestedUnits);
    // check total and auto turnOffSale
    if (totalTokenSold >= _icoSupply){
      _selling = false;
    }

    // submit transfer
    Transfer(owner, msg.sender, requestedUnits);
    owner.transfer(msg.value);
  }

  /// @dev Constructor
  function Ace()
  public {
    owner = msg.sender;
    setBuyPrice(_originalBuyPrice);
    balances[owner] = _totalSupply;
    Transfer(0x0, owner, _totalSupply);
  }

  /// @dev Gets totalSupply
  /// @return Total supply
  function totalSupply()
  public
  constant
  returns (uint256) {
    return _totalSupply;
  }

  /// @dev Enables sale
  function turnOnSale() onlyOwner
  public {
    _selling = true;
    Sale(msg.sender, true);
  }

  /// @dev Disables sale
  function turnOffSale() onlyOwner
  public {
    _selling = false;
    Sale(msg.sender, false);
  }

  function turnOnTradable()
  public
  onlyOwner{
    tradable = true;
    Tradable(msg.sender, true);
  }

  /// @dev set new icoPercent
  /// @param newIcoPercent new value of icoPercent
  function setIcoPercent(uint256 newIcoPercent)
  public
  onlyOwner {
    _icoPercent = newIcoPercent;
    //_icoSupply = _totalSupply * _icoPercent / 100;
    _icoSupply = _totalSupply.mul(_icoPercent).div(100);
    ParamConfig(1, _icoPercent);
  }

  /// @dev set new _minimumBuy
  /// @param newMinimumBuy new value of _minimumBuy
  function setMinimumBuy(uint256 newMinimumBuy)
  public
  onlyOwner {
    _minimumBuy = newMinimumBuy;
    ParamConfig(2, _minimumBuy);
  }

  /// @dev set new _maximumBuy
  /// @param newMaximumBuy new value of _maximumBuy
  function setMaximumBuy(uint256 newMaximumBuy)
  public
  onlyOwner {
    _maximumBuy = newMaximumBuy;
    ParamConfig(3, _maximumBuy);
  }

  /// @dev Updates buy price (owner ONLY)
  /// @param newBuyPrice New buy price (in unit)
  function setBuyPrice(uint256 newBuyPrice)
  onlyOwner
  public {
    require(newBuyPrice>0);

    // buy price = how many ACE unit for 1 ETH
    // 1 ACE = 0.012 USD with the fixed rate
    // e.g. suppose 1 ETH = 142.49 USD, so _originalBuyPrice = 142.49 / 0.033 * oneAce = 4318 * oneAce = 4318 * 10**8 ACE unit
    _originalBuyPrice = newBuyPrice;

    // control _maximumBuy_USD = 3,000 USD, Ace price is 0.033 USD
    // maximumBuy_Ace = 3000 / 0.033 = 90910 Ace = 90,910,00000000 unit
    // maximumETH = maximumBuy_Ace / _originalBuyPrice = 90,910,00000000 / 4,318,00000000
    // 90,910,00000000 / 4,318,00000000 ~ 21ETH => change to wei
    // so _maximumBuy = (how many wei for 1 ETH) * maximumBuy_Ace / _originalBuyPrice
    //_maximumBuy = (10**18) * 90910 * oneAce /_originalBuyPrice;
    _maximumBuy = oneAce.mul(90910).mul(oneEth).div(_originalBuyPrice) ;
    ParamConfig(4, _originalBuyPrice);
  }

  /// @dev Gets account's balance
  /// @param _addr Address of the account
  /// @return Account balance
  function balanceOf(address _addr)
  public
  constant
  returns (uint256) {
    return balances[_addr];
  }

  /// @dev check address is approved investor
  /// @param _addr address
  function isApprovedInvestor(address _addr)
  public
  constant
  returns (bool) {
    return approvedInvestorList[_addr];
  }

  /// @dev get ETH deposit
  /// @param _addr address get deposit
  /// @return amount deposit of an buyer
  function getDeposit(address _addr)
  public
  constant
  returns(uint256){
    return deposit[_addr];
  }

  /// @dev Adds list of new investors to the investors list and approve all
  /// @param newInvestorList Array of new investors addresses to be added
  function addInvestorList(address[] newInvestorList)
  onlyOwner
  public {
    // maximum 150 investors per transaction, to avoid out of gas issue
    require(newInvestorList.length <= 150);
    for (uint256 i = 0; i < newInvestorList.length; i++){
      approvedInvestorList[newInvestorList[i]] = true;
    }
  }

  /// @dev Removes list of investors from list
  /// @param investorList Array of addresses of investors to be removed
  function removeInvestorList(address[] investorList)
  onlyOwner
  public {
    // maximum 150 investors per transaction, to avoid out of gas issue
    require(investorList.length <= 150);
    for (uint256 i = 0; i < investorList.length; i++){
      approvedInvestorList[investorList[i]] = false;
    }
  }

  /// @dev Transfers the balance from msg.sender to an account
  /// @param _to Recipient address
  /// @param _amount Transfered amount in unit
  /// @return Transfer status
  function transfer(address _to, uint256 _amount)
  public
  isTradable
  validAddress
  returns (bool) {
    // if sender's balance has enough unit and amount >= 0,
    //      and the sum is not overflow,
    // then do transfer
    require(balances[msg.sender] >= _amount);
    require(_amount >= 0);
    require(balances[_to] + _amount > balances[_to]);
    require(_to != address(0));

    /*balances[msg.sender] -= _amount;
    balances[_to] += _amount;*/
    balances[msg.sender] = balances[msg.sender].sub(_amount);
    balances[_to] = balances[_to].add(_amount);

    Transfer(msg.sender, _to, _amount);
    return true;
  }

  // Send _value amount of tokens from address _from to address _to
  // The transferFrom method is used for a withdraw workflow, allowing contracts to send
  // tokens on your behalf, for example to "deposit" to a contract address and/or to charge
  // fees in sub-currencies; the command should fail unless the _from account has
  // deliberately authorized the sender of the message via some mechanism; we propose
  // these standardized APIs for approval:
  function transferFrom(
    address _from,
    address _to,
    uint256 _amount
  )
  public
  isTradable
  validAddress
  returns (bool success) {
    require(balances[_from] >= _amount);
    require(allowed[_from][msg.sender] >= _amount);
    require(_amount > 0);
    require(balances[_to] + _amount > balances[_to]);
    require(_to != address(0));

    /*balances[_from] -= _amount;
    allowed[_from][msg.sender] -= _amount;
    balances[_to] += _amount;*/

    balances[_from] = balances[_from].sub(_amount);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
    balances[_to] = balances[_to].add(_amount);

    Transfer(_from, _to, _amount);
    return true;
  }

  // Allow _spender to withdraw from your account, multiple times, up to the _value amount.
  // If this function is called again it overwrites the current allowance with _value.
  function approve(address _spender, uint256 _amount)
  public
  isTradable
  validAddress
  returns (bool success) {
    // not allowed to overwrite unless the _amount is 0 to prevent the race condition attack
    // caller must first reduce the spender's allowance to 0 and set the desired value afterwards
    require((_amount == 0) || (allowed[msg.sender][_spender] == 0));
    require(_spender != address(0));
    allowed[msg.sender][_spender] = _amount;
    Approval(msg.sender, _spender, _amount);
    return true;
  }

  // get allowance
  function allowance(address _owner, address _spender)
  public
  constant
  returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /// @dev Withdraws Ether in contract (Owner only)
  /// @return Status of withdrawal
  function withdraw() onlyOwner
  public
  returns (bool) {
    return owner.send(this.balance);
  }

  /// @dev set new _maximumBurn
  /// @param newMaximumBurn new value of _maximumBurn
  function setMaximumBurn(uint256 newMaximumBurn)
  public
  onlyOwner {
    _maximumBurn = newMaximumBurn;
  }

  /// @dev Burns a specific amount of tokens.
  /// @param _value The amount of token to be burned.
  function burn(uint256 _value)
  public
  onlyOwner {
    require(_value > 0 && _value <= _maximumBurn);
    require(balances[msg.sender] >= _value);
    require(_totalSupply >= _value);
    //balances[msg.sender] -= _value;
    balances[msg.sender] = balances[msg.sender].sub(_value);
    _totalSupply = _totalSupply.sub(_value);
    //balances[0x0] += _value;
    //Transfer(msg.sender, 0x0, _value);
    Burn(msg.sender, _value);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"newMaximumBurn","type":"uint256"}],"name":"setMaximumBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMaximumBuy","type":"uint256"}],"name":"setMaximumBuy","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":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"oneEth","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":"turnOffSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"turnOnTradable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oneAce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newIcoPercent","type":"uint256"}],"name":"setIcoPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_icoSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_icoPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tradable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newBuyPrice","type":"uint256"}],"name":"setBuyPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_minimumBuy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMinimumBuy","type":"uint256"}],"name":"setMinimumBuy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_originalBuyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_maximumBuy","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":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isApprovedInvestor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"investorList","type":"address[]"}],"name":"removeInvestorList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyAce","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newInvestorList","type":"address[]"}],"name":"addInvestorList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getDeposit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"turnOnSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_maximumBurn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_selling","outputs":[{"name":"","type":"bool"}],"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":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"safer","type":"address"},{"indexed":false,"name":"value","type":"bool"}],"name":"Sale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"safer","type":"address"},{"indexed":false,"name":"value","type":"bool"}],"name":"Tradable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"paramType","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ParamConfig","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"},{"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"}]

60606040526000805460ff191660011790556200004e633b9aca00620000396305f5e1006002640100000000620013336200018b82021704565b90640100000000620013336200018b82021704565b600155620000716305f5e1006110de640100000000620013336200018b82021704565b600255600a6008819055600154620000b4916064916200009f91640100000000620013336200018b82021704565b9064010000000062001358620001b982021704565b600955670429d069189e0000600a5568015af1d78b58c40000600b556000600c819055600d805460ff19169055600e553415620000f057600080fd5b60038054600160a060020a03191633600160a060020a03161790556002546200012790640100000000620001dc810262000ead1704565b60015460038054600160a060020a0390811660009081526004602052604080822085905592549091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91905190815260200160405180910390a362000283565b818102821580620001a75750818382811515620001a457fe5b04145b1515620001b357600080fd5b92915050565b6000808211620001c857600080fd5b8183811515620001d457fe5b049392505050565b60035433600160a060020a03908116911614620001f857600080fd5b600081116200020657600080fd5b60028190556200023e816200009f670de0b6b3a7640000620000396305f5e1006201631e640100000000620013336200018b82021704565b600b556002547ffb93db5d112d9ac9d7a11e56865bc733c269ce1dd20bac89c8ed905c55526a1e9060049060405191825260208201526040908101905180910390a150565b6113ea80620002936000396000f3006060604052600436106101cb5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416620d5d1081146101d55780630188fdef146101eb57806306fdde0314610201578063095ea7b31461028b57806309a8d3f5146102c157806318160ddd146102e657806323526a34146102f957806323b872dd1461030c5780632fb1746d14610334578063313ce5671461034757806337134e9c1461035a5780633c2d64471461036d5780633c50afe1146103835780633ccfd60b146103965780633eaaf86b146103a957806342966c68146103bc578063501e3a2c146103d257806354840c6e146103e557806363ae8d6c146103f85780636b342eb81461040e57806370a0823114610421578063731f03fc1461044057806378f2144b146104565780637fd2304f146104695780638da5cb5b1461047c57806395d89b41146102015780639b1fe0d4146104ab5780639fc39549146104ca578063a9059cbb14610519578063b5f7f6361461053b578063b754cf80146101cb578063bfb9f0881461054e578063dd62ed3e1461059d578063e1254fba146105c2578063e98cf987146105e1578063f3a88449146105f4578063f9323a3214610607575b6101d361061a565b005b34156101e057600080fd5b6101d360043561083c565b34156101f657600080fd5b6101d360043561085c565b341561020c57600080fd5b6102146108a8565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610250578082015183820152602001610238565b50505050905090810190601f16801561027d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561029657600080fd5b6102ad600160a060020a03600435166024356108df565b604051901515815260200160405180910390f35b34156102cc57600080fd5b6102d46109e0565b60405190815260200160405180910390f35b34156102f157600080fd5b6102d46109ec565b341561030457600080fd5b6101d36109f2565b341561031757600080fd5b6102ad600160a060020a0360043581169060243516604435610a59565b341561033f57600080fd5b6101d3610c55565b341561035257600080fd5b6102d4610cc2565b341561036557600080fd5b6102d4610cc7565b341561037857600080fd5b6101d3600435610ccf565b341561038e57600080fd5b6102d4610d3c565b34156103a157600080fd5b6102ad610d42565b34156103b457600080fd5b6102d4610d92565b34156103c757600080fd5b6101d3600435610d98565b34156103dd57600080fd5b6102d4610e9e565b34156103f057600080fd5b6102ad610ea4565b341561040357600080fd5b6101d3600435610ead565b341561041957600080fd5b6102d4610f40565b341561042c57600080fd5b6102d4600160a060020a0360043516610f46565b341561044b57600080fd5b6101d3600435610f61565b341561046157600080fd5b6102d4610fad565b341561047457600080fd5b6102d4610fb3565b341561048757600080fd5b61048f610fb9565b604051600160a060020a03909116815260200160405180910390f35b34156104b657600080fd5b6102ad600160a060020a0360043516610fc8565b34156104d557600080fd5b6101d36004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610fe695505050505050565b341561052457600080fd5b6102ad600160a060020a0360043516602435611070565b341561054657600080fd5b6102d46111e5565b341561055957600080fd5b6101d360046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506111eb95505050505050565b34156105a857600080fd5b6102d4600160a060020a0360043581169060243516611271565b34156105cd57600080fd5b6102d4600160a060020a036004351661129c565b34156105ec57600080fd5b6101d36112b7565b34156105ff57600080fd5b6102d4611324565b341561061257600080fd5b6102ad61132a565b6000805460ff16151561062c57600080fd5b600a54341015801561065a5750600b54600160a060020a033316600090815260076020526040902054340111155b151561066557600080fd5b600160a060020a03331660009081526006602052604090205460ff16151561068c57600080fd5b6106b9670de0b6b3a76400006106ad6002543461133390919063ffffffff16565b9063ffffffff61135816565b600354600160a060020a0316600090815260046020526040902054909150819010156106e457600080fd5b600354600160a060020a031660009081526004602052604090205461070f908263ffffffff61137916565b60038054600160a060020a039081166000908152600460205260408082209490945591541681522054610748908263ffffffff61138e16565b600160a060020a03331660009081526004602090815260408083209390935560079052205461077d903463ffffffff61138e16565b600160a060020a033316600090815260076020526040902055600c546107a9908263ffffffff61138e16565b600c81905560095490106107c2576000805460ff191690555b600354600160a060020a0333811691167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561083957600080fd5b50565b60035433600160a060020a0390811691161461085757600080fd5b600e55565b60035433600160a060020a0390811691161461087757600080fd5b600b81905560008051602061139f83398151915260038260405191825260208201526040908101905180910390a150565b60408051908101604052600481527f4143455800000000000000000000000000000000000000000000000000000000602082015281565b600d5460009060ff16151560011480610906575060035433600160a060020a039081169116145b151561091157600080fd5b600160a060020a033316151561092657600080fd5b8115806109565750600160a060020a03338116600090815260056020908152604080832093871683529290522054155b151561096157600080fd5b600160a060020a038316151561097657600080fd5b600160a060020a03338116600081815260056020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b670de0b6b3a764000081565b60015490565b60035433600160a060020a03908116911614610a0d57600080fd5b6000805460ff19168155600160a060020a033316907fb9b25ac6830544f89d8d55de2feaf6b00d16c75df203e1b28291c650980509b590604051901515815260200160405180910390a2565b600d5460009060ff16151560011480610a80575060035433600160a060020a039081169116145b1515610a8b57600080fd5b600160a060020a0333161515610aa057600080fd5b600160a060020a03841660009081526004602052604090205482901015610ac657600080fd5b600160a060020a038085166000908152600560209081526040808320339094168352929052205482901015610afa57600080fd5b60008211610b0757600080fd5b600160a060020a03831660009081526004602052604090205482810111610b2d57600080fd5b600160a060020a0383161515610b4257600080fd5b600160a060020a038416600090815260046020526040902054610b6b908363ffffffff61137916565b600160a060020a0380861660009081526004602090815260408083209490945560058152838220339093168252919091522054610bae908363ffffffff61137916565b600160a060020a0380861660009081526005602090815260408083203385168452825280832094909455918616815260049091522054610bf4908363ffffffff61138e16565b600160a060020a03808516600081815260046020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a03908116911614610c7057600080fd5b600d805460ff19166001908117909155600160a060020a033316907f2b3d1440c0f2ecc3f381bd45d5d5062f2ef13e89dc1d79eba8e581b3495fc61490604051901515815260200160405180910390a2565b600881565b6305f5e10081565b60035433600160a060020a03908116911614610cea57600080fd5b6008819055600154610d09906064906106ad908463ffffffff61133316565b60095560085460008051602061139f8339815191529060019060405191825260208201526040908101905180910390a150565b60095481565b60035460009033600160a060020a03908116911614610d6057600080fd5b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f194505050505090565b60015481565b60035433600160a060020a03908116911614610db357600080fd5b600081118015610dc55750600e548111155b1515610dd057600080fd5b600160a060020a03331660009081526004602052604090205481901015610df657600080fd5b60015481901015610e0657600080fd5b600160a060020a033316600090815260046020526040902054610e2f908263ffffffff61137916565b600160a060020a033316600090815260046020526040902055600154610e5b908263ffffffff61137916565b600155600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a250565b60085481565b600d5460ff1681565b60035433600160a060020a03908116911614610ec857600080fd5b60008111610ed557600080fd5b6002819055610f0d816106ad670de0b6b3a7640000610f016305f5e1006201631e63ffffffff61133316565b9063ffffffff61133316565b600b5560025460008051602061139f8339815191529060049060405191825260208201526040908101905180910390a150565b600a5481565b600160a060020a031660009081526004602052604090205490565b60035433600160a060020a03908116911614610f7c57600080fd5b600a81905560008051602061139f83398151915260028260405191825260208201526040908101905180910390a150565b60025481565b600b5481565b600354600160a060020a031681565b600160a060020a031660009081526006602052604090205460ff1690565b60035460009033600160a060020a0390811691161461100457600080fd5b60968251111561101357600080fd5b5060005b815181101561106c5760006006600084848151811061103257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600101611017565b5050565b600d5460009060ff16151560011480611097575060035433600160a060020a039081169116145b15156110a257600080fd5b600160a060020a03331615156110b757600080fd5b600160a060020a033316600090815260046020526040902054829010156110dd57600080fd5b60008210156110eb57600080fd5b600160a060020a0383166000908152600460205260409020548281011161111157600080fd5b600160a060020a038316151561112657600080fd5b600160a060020a03331660009081526004602052604090205461114f908363ffffffff61137916565b600160a060020a033381166000908152600460205260408082209390935590851681522054611184908363ffffffff61138e16565b600160a060020a0380851660008181526004602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600c5481565b60035460009033600160a060020a0390811691161461120957600080fd5b60968251111561121857600080fd5b5060005b815181101561106c5760016006600084848151811061123757fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff191691151591909117905560010161121c565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600160a060020a031660009081526007602052604090205490565b60035433600160a060020a039081169116146112d257600080fd5b6000805460ff19166001908117909155600160a060020a033316907fb9b25ac6830544f89d8d55de2feaf6b00d16c75df203e1b28291c650980509b590604051901515815260200160405180910390a2565b600e5481565b60005460ff1681565b81810282158061134d575081838281151561134a57fe5b04145b15156109da57600080fd5b600080821161136657600080fd5b818381151561137157fe5b049392505050565b60008282111561138857600080fd5b50900390565b818101828110156109da57600080fd00fb93db5d112d9ac9d7a11e56865bc733c269ce1dd20bac89c8ed905c55526a1ea165627a7a7230582055669c552c68ce0a1279a42a21e614f2fd45452cd977af164e4b054258aaac930029

Deployed Bytecode

0x6060604052600436106101cb5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416620d5d1081146101d55780630188fdef146101eb57806306fdde0314610201578063095ea7b31461028b57806309a8d3f5146102c157806318160ddd146102e657806323526a34146102f957806323b872dd1461030c5780632fb1746d14610334578063313ce5671461034757806337134e9c1461035a5780633c2d64471461036d5780633c50afe1146103835780633ccfd60b146103965780633eaaf86b146103a957806342966c68146103bc578063501e3a2c146103d257806354840c6e146103e557806363ae8d6c146103f85780636b342eb81461040e57806370a0823114610421578063731f03fc1461044057806378f2144b146104565780637fd2304f146104695780638da5cb5b1461047c57806395d89b41146102015780639b1fe0d4146104ab5780639fc39549146104ca578063a9059cbb14610519578063b5f7f6361461053b578063b754cf80146101cb578063bfb9f0881461054e578063dd62ed3e1461059d578063e1254fba146105c2578063e98cf987146105e1578063f3a88449146105f4578063f9323a3214610607575b6101d361061a565b005b34156101e057600080fd5b6101d360043561083c565b34156101f657600080fd5b6101d360043561085c565b341561020c57600080fd5b6102146108a8565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610250578082015183820152602001610238565b50505050905090810190601f16801561027d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561029657600080fd5b6102ad600160a060020a03600435166024356108df565b604051901515815260200160405180910390f35b34156102cc57600080fd5b6102d46109e0565b60405190815260200160405180910390f35b34156102f157600080fd5b6102d46109ec565b341561030457600080fd5b6101d36109f2565b341561031757600080fd5b6102ad600160a060020a0360043581169060243516604435610a59565b341561033f57600080fd5b6101d3610c55565b341561035257600080fd5b6102d4610cc2565b341561036557600080fd5b6102d4610cc7565b341561037857600080fd5b6101d3600435610ccf565b341561038e57600080fd5b6102d4610d3c565b34156103a157600080fd5b6102ad610d42565b34156103b457600080fd5b6102d4610d92565b34156103c757600080fd5b6101d3600435610d98565b34156103dd57600080fd5b6102d4610e9e565b34156103f057600080fd5b6102ad610ea4565b341561040357600080fd5b6101d3600435610ead565b341561041957600080fd5b6102d4610f40565b341561042c57600080fd5b6102d4600160a060020a0360043516610f46565b341561044b57600080fd5b6101d3600435610f61565b341561046157600080fd5b6102d4610fad565b341561047457600080fd5b6102d4610fb3565b341561048757600080fd5b61048f610fb9565b604051600160a060020a03909116815260200160405180910390f35b34156104b657600080fd5b6102ad600160a060020a0360043516610fc8565b34156104d557600080fd5b6101d36004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610fe695505050505050565b341561052457600080fd5b6102ad600160a060020a0360043516602435611070565b341561054657600080fd5b6102d46111e5565b341561055957600080fd5b6101d360046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506111eb95505050505050565b34156105a857600080fd5b6102d4600160a060020a0360043581169060243516611271565b34156105cd57600080fd5b6102d4600160a060020a036004351661129c565b34156105ec57600080fd5b6101d36112b7565b34156105ff57600080fd5b6102d4611324565b341561061257600080fd5b6102ad61132a565b6000805460ff16151561062c57600080fd5b600a54341015801561065a5750600b54600160a060020a033316600090815260076020526040902054340111155b151561066557600080fd5b600160a060020a03331660009081526006602052604090205460ff16151561068c57600080fd5b6106b9670de0b6b3a76400006106ad6002543461133390919063ffffffff16565b9063ffffffff61135816565b600354600160a060020a0316600090815260046020526040902054909150819010156106e457600080fd5b600354600160a060020a031660009081526004602052604090205461070f908263ffffffff61137916565b60038054600160a060020a039081166000908152600460205260408082209490945591541681522054610748908263ffffffff61138e16565b600160a060020a03331660009081526004602090815260408083209390935560079052205461077d903463ffffffff61138e16565b600160a060020a033316600090815260076020526040902055600c546107a9908263ffffffff61138e16565b600c81905560095490106107c2576000805460ff191690555b600354600160a060020a0333811691167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561083957600080fd5b50565b60035433600160a060020a0390811691161461085757600080fd5b600e55565b60035433600160a060020a0390811691161461087757600080fd5b600b81905560008051602061139f83398151915260038260405191825260208201526040908101905180910390a150565b60408051908101604052600481527f4143455800000000000000000000000000000000000000000000000000000000602082015281565b600d5460009060ff16151560011480610906575060035433600160a060020a039081169116145b151561091157600080fd5b600160a060020a033316151561092657600080fd5b8115806109565750600160a060020a03338116600090815260056020908152604080832093871683529290522054155b151561096157600080fd5b600160a060020a038316151561097657600080fd5b600160a060020a03338116600081815260056020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b670de0b6b3a764000081565b60015490565b60035433600160a060020a03908116911614610a0d57600080fd5b6000805460ff19168155600160a060020a033316907fb9b25ac6830544f89d8d55de2feaf6b00d16c75df203e1b28291c650980509b590604051901515815260200160405180910390a2565b600d5460009060ff16151560011480610a80575060035433600160a060020a039081169116145b1515610a8b57600080fd5b600160a060020a0333161515610aa057600080fd5b600160a060020a03841660009081526004602052604090205482901015610ac657600080fd5b600160a060020a038085166000908152600560209081526040808320339094168352929052205482901015610afa57600080fd5b60008211610b0757600080fd5b600160a060020a03831660009081526004602052604090205482810111610b2d57600080fd5b600160a060020a0383161515610b4257600080fd5b600160a060020a038416600090815260046020526040902054610b6b908363ffffffff61137916565b600160a060020a0380861660009081526004602090815260408083209490945560058152838220339093168252919091522054610bae908363ffffffff61137916565b600160a060020a0380861660009081526005602090815260408083203385168452825280832094909455918616815260049091522054610bf4908363ffffffff61138e16565b600160a060020a03808516600081815260046020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035433600160a060020a03908116911614610c7057600080fd5b600d805460ff19166001908117909155600160a060020a033316907f2b3d1440c0f2ecc3f381bd45d5d5062f2ef13e89dc1d79eba8e581b3495fc61490604051901515815260200160405180910390a2565b600881565b6305f5e10081565b60035433600160a060020a03908116911614610cea57600080fd5b6008819055600154610d09906064906106ad908463ffffffff61133316565b60095560085460008051602061139f8339815191529060019060405191825260208201526040908101905180910390a150565b60095481565b60035460009033600160a060020a03908116911614610d6057600080fd5b600354600160a060020a039081169030163180156108fc0290604051600060405180830381858888f194505050505090565b60015481565b60035433600160a060020a03908116911614610db357600080fd5b600081118015610dc55750600e548111155b1515610dd057600080fd5b600160a060020a03331660009081526004602052604090205481901015610df657600080fd5b60015481901015610e0657600080fd5b600160a060020a033316600090815260046020526040902054610e2f908263ffffffff61137916565b600160a060020a033316600090815260046020526040902055600154610e5b908263ffffffff61137916565b600155600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a250565b60085481565b600d5460ff1681565b60035433600160a060020a03908116911614610ec857600080fd5b60008111610ed557600080fd5b6002819055610f0d816106ad670de0b6b3a7640000610f016305f5e1006201631e63ffffffff61133316565b9063ffffffff61133316565b600b5560025460008051602061139f8339815191529060049060405191825260208201526040908101905180910390a150565b600a5481565b600160a060020a031660009081526004602052604090205490565b60035433600160a060020a03908116911614610f7c57600080fd5b600a81905560008051602061139f83398151915260028260405191825260208201526040908101905180910390a150565b60025481565b600b5481565b600354600160a060020a031681565b600160a060020a031660009081526006602052604090205460ff1690565b60035460009033600160a060020a0390811691161461100457600080fd5b60968251111561101357600080fd5b5060005b815181101561106c5760006006600084848151811061103257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055600101611017565b5050565b600d5460009060ff16151560011480611097575060035433600160a060020a039081169116145b15156110a257600080fd5b600160a060020a03331615156110b757600080fd5b600160a060020a033316600090815260046020526040902054829010156110dd57600080fd5b60008210156110eb57600080fd5b600160a060020a0383166000908152600460205260409020548281011161111157600080fd5b600160a060020a038316151561112657600080fd5b600160a060020a03331660009081526004602052604090205461114f908363ffffffff61137916565b600160a060020a033381166000908152600460205260408082209390935590851681522054611184908363ffffffff61138e16565b600160a060020a0380851660008181526004602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600c5481565b60035460009033600160a060020a0390811691161461120957600080fd5b60968251111561121857600080fd5b5060005b815181101561106c5760016006600084848151811061123757fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff191691151591909117905560010161121c565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600160a060020a031660009081526007602052604090205490565b60035433600160a060020a039081169116146112d257600080fd5b6000805460ff19166001908117909155600160a060020a033316907fb9b25ac6830544f89d8d55de2feaf6b00d16c75df203e1b28291c650980509b590604051901515815260200160405180910390a2565b600e5481565b60005460ff1681565b81810282158061134d575081838281151561134a57fe5b04145b15156109da57600080fd5b600080821161136657600080fd5b818381151561137157fe5b049392505050565b60008282111561138857600080fd5b50900390565b818101828110156109da57600080fd00fb93db5d112d9ac9d7a11e56865bc733c269ce1dd20bac89c8ed905c55526a1ea165627a7a7230582055669c552c68ce0a1279a42a21e614f2fd45452cd977af164e4b054258aaac930029

Deployed Bytecode Sourcemap

2010:12562:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:8;:6;:8::i;:::-;2010:12562;13901:113;;;;;;;;;;;;;;7930:143;;;;;;;;;;;;;;2249:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12898:535:0;;;;;;;;;;-1:-1:-1;;;;;12898:535:0;;;;;;;;;;;;;;;;;;;;;;;;2160:39;;;;;;;;;;;;;;;;;;;;;;;;;;;6784:98;;;;;;;;;;;;7044:102;;;;;;;;;;;;11993:718;;;;;;;;;;-1:-1:-1;;;;;11993:718:0;;;;;;;;;;;;7152:109;;;;;;;;;;;;2074:36;;;;;;;;;;;;2117:38;;;;;;;;;;;;7350:255;;;;;;;;;;;;;;3369:66;;;;;;;;;;;;13705:102;;;;;;;;;;;;2411:56;;;;;;;;;;;;14122:447;;;;;;;;;;;;;;3262:31;;;;;;;;;;;;3680:28;;;;;;;;;;;;8172:930;;;;;;;;;;;;;;3476:41;;;;;;;;;;;;9217:112;;;;;;;;;;-1:-1:-1;;;;;9217:112:0;;;;;7696:143;;;;;;;;;;;;;;2722:51;;;;;;;;;;;;3557:40;;;;;;;;;;;;2826:20;;;;;;;;;;;;;;;-1:-1:-1;;;;;2826:20:0;;;;;;;;;;;;;;9410:130;;;;;;;;;;-1:-1:-1;;;;;9410:130:0;;;;;10372:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10372:313:0;;-1:-1:-1;10372:313:0;;-1:-1:-1;;;;;;10372:313:0;10870:651;;;;;;;;;;-1:-1:-1;;;;;10870:651:0;;;;;;;3625:33;;;;;;;;;;;;9924:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9924:321:0;;-1:-1:-1;9924:321:0;;-1:-1:-1;;;;;;9924:321:0;13459:151;;;;;;;;;;-1:-1:-1;;;;;13459:151:0;;;;;;;;;;9656:110;;;;;;;;;;-1:-1:-1;;;;;9656:110:0;;;;;6913:99;;;;;;;;;;;;3762:31;;;;;;;;;;;;2313:27;;;;;;;;;;;;5604:916;5861:22;4499:8;;;;4491:17;;;;;;;;5042:11;;5029:9;:24;;5028:88;;;;-1:-1:-1;5104:11:0;;-1:-1:-1;;;;;5076:10:0;5068:19;;;;;:7;:19;;;;;;5090:9;5068:31;5067:48;;5028:88;5018:100;;;;;;;;-1:-1:-1;;;;;4680:10:0;4659:32;;;;;:20;:32;;;;;;;;4651:41;;;;;;;;5886:44;2193:6;5886:32;5900:17;;5886:9;:13;;:32;;;;:::i;:::-;:36;:44;:36;:44;:::i;:::-;5954:5;;-1:-1:-1;;;;;5954:5:0;5945:15;;;;:8;:15;;;;;;5861:69;;-1:-1:-1;5945:33:0;;;;5937:42;;;;;;6043:5;;-1:-1:-1;;;;;6043:5:0;6034:15;;;;:8;:15;;;;;;:35;;6054:14;6034:35;:19;:35;:::i;:::-;6025:5;;;-1:-1:-1;;;;;6025:5:0;;;6016:15;;;;:8;:15;;;;;;:53;;;;6108:5;;;6099:15;;;;:35;;6119:14;6099:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;6085:10:0;6076:20;;;;;:8;:20;;;;;;;;:58;;;;6201:7;:19;;;;:34;;6225:9;6201:34;:23;:34;:::i;:::-;-1:-1:-1;;;;;6187:10:0;6179:19;;;;;:7;:19;;;;;:56;6259:14;;:34;;6278:14;6259:34;:18;:34;:::i;:::-;6242:14;:51;;;6363:10;;6345:28;;6341:66;;6394:5;6383:16;;-1:-1:-1;;6383:16:0;;;6341:66;6448:5;;-1:-1:-1;;;;;6455:10:0;6439:43;;;6448:5;6439:43;6467:14;6439:43;;;;;;;;;;;;;;6489:5;;-1:-1:-1;;;;;6489:5:0;6504:9;6489:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5604:916;:::o;13901:113::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;13979:12;:29;13901:113::o;7930:143::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;8006:11;:27;;;-1:-1:-1;;;;;;;;;;;8052:1:0;8020:13;8040:27;;;;;;;;;;;;;;;;;;;;7930:143;:::o;2249:36::-;;;;;;;;;;;;;;;;;;:::o;12898:535::-;5364:8;;13002:12;;5364:8;;:16;;:8;:16;;:39;;-1:-1:-1;5398:5:0;;5384:10;-1:-1:-1;;;;;5384:19:0;;;5398:5;;5384:19;5364:39;5356:48;;;;;;;;-1:-1:-1;;;;;5277:10:0;5263:24;;;5255:33;;;;;;13225:12;;;13224:54;;-1:-1:-1;;;;;;13251:10:0;13243:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;:34;13224:54;13216:63;;;;;;;;-1:-1:-1;;;;;13294:22:0;;;;13286:31;;;;;;-1:-1:-1;;;;;13332:10:0;13324:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;;:39;;;13370;;13356:7;;13370:39;;;;;;;;;;;;;-1:-1:-1;13423:4:0;5295:1;12898:535;;;;:::o;2160:39::-;2193:6;2160:39;:::o;6784:98::-;6864:12;;6784:98;:::o;7044:102::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;7105:5;7094:16;;-1:-1:-1;;7094:16:0;;;-1:-1:-1;;;;;7122:10:0;7117:23;;;;;;;;;;;;;;;;;;;;7044:102::o;11993:718::-;5364:8;;12132:12;;5364:8;;:16;;:8;:16;;:39;;-1:-1:-1;5398:5:0;;5384:10;-1:-1:-1;;;;;5384:19:0;;;5398:5;;5384:19;5364:39;5356:48;;;;;;;;-1:-1:-1;;;;;5277:10:0;5263:24;;;5255:33;;;;;;-1:-1:-1;;;;;12161:15:0;;;;;;:8;:15;;;;;;:26;;;;12153:35;;;;;;-1:-1:-1;;;;;12203:14:0;;;;;;;:7;:14;;;;;;;;12218:10;12203:26;;;;;;;;;;:37;;;;12195:46;;;;;;12266:1;12256:11;;12248:20;;;;;;-1:-1:-1;;;;;12309:13:0;;;;;;:8;:13;;;;;;12283:23;;;:39;12275:48;;;;;;-1:-1:-1;;;;;12338:17:0;;;;12330:26;;;;;;-1:-1:-1;;;;;12497:15:0;;;;;;:8;:15;;;;;;:28;;12517:7;12497:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;12479:15:0;;;;;;;:8;:15;;;;;;;;:46;;;;12561:7;:14;;;;;12576:10;12561:26;;;;;;;;;;;:39;;12592:7;12561:39;:30;:39;:::i;:::-;-1:-1:-1;;;;;12532:14:0;;;;;;;:7;:14;;;;;;;;12547:10;12532:26;;;;;;;;;:68;;;;12623:13;;;;;:8;:13;;;;;:26;;12641:7;12623:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;12607:13:0;;;;;;;:8;:13;;;;;;;:42;;;;:13;12658:29;;;;;;12679:7;;12658:29;;;;;;;;;;;;;-1:-1:-1;12701:4:0;11993:718;;;;;:::o;7152:109::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;7207:8;:15;;-1:-1:-1;;7207:15:0;7218:4;7207:15;;;;;;-1:-1:-1;;;;;7238:10:0;7229:26;;;;;;;;;;;;;;;;;;;;7152:109::o;2074:36::-;2109:1;2074:36;:::o;2117:38::-;2150:5;2117:38;:::o;7350:255::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;7426:11;:27;;;7527:12;;:38;;7561:3;;7527:29;;7440:13;7527:29;:16;:29;:::i;:38::-;7514:10;:51;7587:11;;-1:-1:-1;;;;;;;;;;;7572:27:0;7584:1;;7572:27;;;;;;;;;;;;;;;;;;;;7350:255;:::o;3369:66::-;;;;:::o;13705:102::-;4330:5;;13757:4;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;13777:5;;-1:-1:-1;;;;;13777:5:0;;;;13788:4;:12;;13777:24;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13705:102:0;:::o;2411:56::-;;;;:::o;14122:447::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;14199:1;14190:6;:10;:36;;;;;14214:12;;14204:6;:22;;14190:36;14182:45;;;;;;;;-1:-1:-1;;;;;14251:10:0;14242:20;;;;;:8;:20;;;;;;:30;;;;14234:39;;;;;;14288:12;;:22;;;;14280:31;;;;;;-1:-1:-1;;;;;14389:10:0;14380:20;;;;;:8;:20;;;;;;:32;;14405:6;14380:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;14366:10:0;14357:20;;;;;:8;:20;;;;;:55;14434:12;;:24;;14451:6;14434:24;:16;:24;:::i;:::-;14419:12;:39;-1:-1:-1;;;;;14544:10:0;14539:24;;14556:6;14539:24;;;;;;;;;;;;;;14122:447;:::o;3262:31::-;;;;:::o;3680:28::-;;;;;;:::o;8172:930::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;8264:1;8252:13;;8244:22;;;;;;8497:17;:31;;;9003:52;8517:11;9003:29;2193:6;9003:17;2150:5;9014;9003:17;:10;:17;:::i;:::-;:21;:29;:21;:29;:::i;:52::-;8989:11;:66;9078:17;;-1:-1:-1;;;;;;;;;;;9063:33:0;9075:1;;9063:33;;;;;;;;;;;;;;;;;;;;8172:930;:::o;3476:41::-;;;;:::o;9217:112::-;-1:-1:-1;;;;;9308:15:0;9285:7;9308:15;;;:8;:15;;;;;;;9217:112::o;7696:143::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;7772:11;:27;;;-1:-1:-1;;;;;;;;;;;7818:1:0;7786:13;7806:27;;;;;;;;;;;;;;;;;;;;7696:143;:::o;2722:51::-;;;;:::o;3557:40::-;;;;:::o;2826:20::-;;;-1:-1:-1;;;;;2826:20:0;;:::o;9410:130::-;-1:-1:-1;;;;;9507:27:0;9487:4;9507:27;;;:20;:27;;;;;;;;;9410:130::o;10372:313::-;4330:5;;10574:9;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;10558:3;10535:12;:19;:26;;10527:35;;;;;;-1:-1:-1;10586:1:0;10569:111;10593:12;:19;10589:1;:23;10569:111;;;10667:5;10627:20;:37;10648:12;10661:1;10648:15;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10627:37:0;;;;;;;;;;;;-1:-1:-1;10627:37:0;:45;;-1:-1:-1;;10627:45:0;;;;;;;;;;-1:-1:-1;10614:3:0;10569:111;;;10372:313;;:::o;10870:651::-;5364:8;;10970:4;;5364:8;;:16;;:8;:16;;:39;;-1:-1:-1;5398:5:0;;5384:10;-1:-1:-1;;;;;5384:19:0;;;5398:5;;5384:19;5364:39;5356:48;;;;;;;;-1:-1:-1;;;;;5277:10:0;5263:24;;;5255:33;;;;;;-1:-1:-1;;;;;11128:10:0;11119:20;;;;;:8;:20;;;;;;:31;;;;11111:40;;;;;;11177:1;11166:12;;;11158:21;;;;;;-1:-1:-1;;;;;11220:13:0;;;;;;:8;:13;;;;;;11194:23;;;:39;11186:48;;;;;;-1:-1:-1;;;;;11249:17:0;;;;11241:26;;;;;;-1:-1:-1;;;;;11381:10:0;11372:20;;;;;:8;:20;;;;;;:33;;11397:7;11372:33;:24;:33;:::i;:::-;-1:-1:-1;;;;;11358:10:0;11349:20;;;;;;:8;:20;;;;;;:56;;;;11428:13;;;;;;;:26;;11446:7;11428:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;11412:13:0;;;;;;;:8;:13;;;;;;;:42;;;;:13;11472:10;11463:34;;;;;;11489:7;;11463:34;;;;;;;;;;;;;-1:-1:-1;11511:4:0;10870:651;;;;:::o;3625:33::-;;;;:::o;9924:321::-;4330:5;;10129:9;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;10113:3;10087:15;:22;:29;;10079:38;;;;;;-1:-1:-1;10141:1:0;10124:116;10148:15;:22;10144:1;:26;10124:116;;;10228:4;10185:20;:40;10206:15;10222:1;10206:18;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10185:40:0;;;;;;;;;;;;-1:-1:-1;10185:40:0;:47;;-1:-1:-1;;10185:47:0;;;;;;;;;;-1:-1:-1;10172:3:0;10124:116;;13459:151;-1:-1:-1;;;;;13579:15:0;;;13546:17;13579:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;13459:151::o;9656:110::-;-1:-1:-1;;;;;9746:14:0;9724:7;9746:14;;;:7;:14;;;;;;;9656:110::o;6913:99::-;4330:5;;4316:10;-1:-1:-1;;;;;4316:19:0;;;4330:5;;4316:19;4308:28;;;;;;6962:8;:15;;-1:-1:-1;;6962:15:0;6973:4;6962:15;;;;;;-1:-1:-1;;;;;6989:10:0;6984:22;;;;;;;;;;;;;;;;;;;;6913:99::o;3762:31::-;;;;:::o;2313:27::-;;;;;;:::o;1780:118::-;1851:5;;;1871:6;;;:20;;;1890:1;1885;1881;:5;;;;;;;;:10;1871:20;1863:29;;;;;;;1902:103;1954:6;1977:5;;;1969:14;;;;;;1998:1;1994;:5;;;;;;;;;1902:103;-1:-1:-1;;;1902:103:0:o;1672:104::-;1724:6;1747;;;;1739:15;;;;;;-1:-1:-1;1765:5:0;;;1672:104::o;1564:::-;1635:5;;;1655:6;;;;1647:15;;;;

Swarm Source

bzzr://55669c552c68ce0a1279a42a21e614f2fd45452cd977af164e4b054258aaac93
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.