ETH Price: $2,668.54 (-2.75%)

Token

Dithritium (DITH)
 

Overview

Max Total Supply

1,030,495 DITH

Holders

6,008

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 5 Decimals)

Balance
50 DITH

Value
$0.00
0x0308e15b7caf38fc6e413285e834af736b3d553c
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:
Dithritium

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-07-16
*/

pragma solidity "0.4.24";

interface Icollectible {

  function timeofcontract() external view returns (uint256);
  
  function totalSupply() external view returns (uint256);

  function balanceOf(address who) external view returns (uint256);

  function allowance(address owner, address spender)
    external view returns (uint256);

  function transfer(address to, uint256 value) external returns (bool);

  function approve(address spender, uint256 value)
    external returns (bool);

  function transferFrom(address from, address to, uint256 value)
    external returns (bool);

  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
   
}

library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

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

    return c;
  }

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

    return c;
  }

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

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}


contract Ownable {
  address private _owner;

  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    _owner = msg.sender;
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

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

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(_owner);
    _owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}


contract Collectible is Icollectible {
  string private _name;
  string private _symbol;
  uint8 private _decimals;

  constructor(string name, string symbol, uint8 decimals) public {
    _name = name;
    _symbol = symbol;
    _decimals = decimals;
  }

  /**
   * @return the name of the token.
   */
  function name() public view returns(string) {
    return _name;
  }

  /**
   * @return the symbol of the token.
   */
  function symbol() public view returns(string) {
    return _symbol;
  }

  /**
   * @return the number of decimals of the token.
   */
  function decimals() public view returns(uint8) {
    return _decimals;
  }
}


contract Dithritium is Collectible, Ownable {

    string   constant TOKEN_NAME = "Dithritium";
    string   constant TOKEN_SYMBOL = "DITH";
    uint8    constant TOKEN_DECIMALS = 5;
    uint256 timenow = now;
    uint256 sandclock;
    uint256 thefinalclock = 0;
    uint256 shifter = 0;
    

    uint256  TOTAL_SUPPLY = 1030500 * (10 ** uint256(TOKEN_DECIMALS));
    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint)) allowed;
    mapping(address => uint256) timesheet;

    constructor() public payable
        Collectible(TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS)
        Ownable() {

        _mint(owner(), TOTAL_SUPPLY);
    }
    
    using SafeMath for uint256;

  mapping (address => uint256) private _balances;
  
  mapping(address => uint256) private _timesheet;

  mapping (address => mapping (address => uint256)) private _allowed;

  uint256 private _totalSupply;
  

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

  function timeofcontract() public view returns (uint256) {
      return timenow;
  }
  
  function balanceOf(address owner) public view returns (uint256) {
    return _balances[owner];
  }
  
  function timesheetNumber(address owner) public view returns (uint256) {
      return _timesheet[owner];
  }
  
  function timesheetCheck(address owner) public view returns (bool) {
      if (now >= _timesheet[owner] + (1 * 180 days)) {
          return true;
      } else if (_timesheet[owner] == 0) {
          return true;
      } else {
          return false;
      }
  }

  function allowance(
    address owner,
    address spender
   )
    public
    view
    returns (uint256)
  {
    return _allowed[owner][spender];
  }
  
  function calculatetimepercentage() public returns (uint256) {
      if (now >= timenow + (1 * 365 days) && _totalSupply >= 92000000000 && now <= timenow + (1 * 1460 days)) {
          sandclock = 1;
          shifter = 1;
          return sandclock;
      } else if (now >= timenow + (1 * 730 days) && _totalSupply >= 86000000000 && shifter == 1  && now <= timenow + (1 * 1825 days)) {
          sandclock = 2;
          shifter = 2;
          return sandclock; }
        else if (now >= timenow + (1 * 1095 days) && _totalSupply >= 77000000000 && shifter == 2)  {
            sandclock = 0;
            thefinalclock = 1;
            return thefinalclock;
      } else {
          sandclock = 0;
          return sandclock;
      }
      
  }
  
    function findPercentage() public returns (uint256)  {
        uint256 percentage;
        calculatetimepercentage();
        if (sandclock == 1) {
            percentage = 7;
            return percentage;
        } else if (sandclock == 2) {
             percentage = 10;
            return percentage;
        } else if (thefinalclock == 1) {
            percentage = 0;
            return percentage;
        } else if (now <= timenow + (1 * 365 days)) {
            percentage = 4;
            return percentage;
        } else if (now <= timenow + (1 * 730 days)) {
            percentage = 5;
            return percentage;
        } else if (now <= timenow + (1 * 1095 days)) {
            percentage = 7;
            return percentage;
        } else if (now <= timenow + (1 * 1460 days)){
            percentage = 8;
            return percentage;
        } else if (now <= timenow + (1 * 1825 days)) {
            percentage = 10;
            return percentage;
        } else {
            percentage = 0;
            return percentage;
        }
  }


  /**
  * @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(value <= _balances[msg.sender]);
    require(to != address(0));
    require(value <= 1000000 || msg.sender == owner());
    require(balanceOf(to) <= (_totalSupply / 10));
   
    _balances[msg.sender] = _balances[msg.sender].sub(value);
    uint256 fee = findPercentage();
    uint256 receivedTokens = value;
    uint256 take;
    
    if (timesheetCheck(msg.sender) == true) {
        take = 0;
    } else if (fee == 0) {
        take = 0;
    } else if (msg.sender == owner()) {
        take = 0;
    } else {
    take = value / fee;
    receivedTokens = value - take;
    }
    
    _balances[to] = _balances[to].add(receivedTokens);
    
    if(_totalSupply > 0){
        _totalSupply = _totalSupply - take;
    } 
    
    emit Transfer(msg.sender, to, receivedTokens);
    _timesheet[msg.sender] = now;
    return true;
  }

  function approve(address spender, uint256 value) public returns (bool) {
    require(spender != address(0));

    _allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function transferFrom(
    address from,
    address to,
    uint256 value
  )
    public
    returns (bool)
  {
    require(value <= _balances[from]);
    require(value <= _allowed[from][msg.sender]);
    require(to != address(0));
    require(value <= 1000000 || msg.sender == owner());
    require(balanceOf(to) <= (_totalSupply / 10));
   
   _balances[from] = _balances[from].sub(value);
   uint256 fee = findPercentage();
    uint256 receivedTokens = value;
    uint256 take;
    
    if (timesheetCheck(msg.sender) == true) {
        take = 0;
    } else if (fee == 0) {
        take = 0;
    } else if (msg.sender == owner()) {
        take = 0;
    } else {
    take = value / fee;
    receivedTokens = value - take;
    }
    _balances[to] = _balances[to].add(receivedTokens);
    _totalSupply = _totalSupply - take;
    
    
    _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
    emit Transfer(from, to, receivedTokens);
    _timesheet[msg.sender] = now;
    return true;
  }


  /**
   * @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 increaseAllowance(
    address spender,
    uint256 addedValue
  )
    public
    returns (bool)
  {
    require(spender != address(0));

    _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 decreaseAllowance(
    address spender,
    uint256 subtractedValue
  )
    public
    returns (bool)
  {
    require(spender != address(0));

    _allowed[msg.sender][spender] = (
      _allowed[msg.sender][spender].sub(subtractedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  /**
   * @dev Internal function that mints an amount of the token and assigns it to
   * an account. This encapsulates the modification of balances such that the
   * proper events are emitted.
   * @param account The account that will receive the created tokens.
   * @param amount The amount that will be created.
   */
  function _mint(address account, uint256 amount) internal {
    require(account != 0);
    _totalSupply = _totalSupply.add(amount);
    _balances[account] = _balances[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

  /**
   * @dev Internal function that burns an amount of the token of a given
   * account.
   * @param account The account whose tokens will be burnt.
   * @param amount The amount that will be burnt.
   */
  function _burn(address account, uint256 amount) internal {
    require(account != 0);
    require(amount <= _balances[account]);

    _totalSupply = _totalSupply.sub(amount);
    _balances[account] = _balances[account].sub(amount);
    emit Transfer(account, address(0), amount);
  }

  /**
   * @dev Internal function that burns an amount of the token of a given
   * account, deducting from the sender's allowance for said account. Uses the
   * internal burn function.
   * @param account The account whose tokens will be burnt.
   * @param amount The amount that will be burnt.
   */
  function _burnFrom(address account, uint256 amount) internal {
    require(amount <= _allowed[account][msg.sender]);

    // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
    // this function needs to emit an event with the updated approval.
    _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(
      amount);
    _burn(account, amount);
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"findPercentage","outputs":[{"name":"","type":"uint256"}],"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":"value","type":"uint256"}],"name":"approve","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":true,"inputs":[],"name":"timeofcontract","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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"timesheetNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"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":false,"inputs":[],"name":"calculatetimepercentage","outputs":[{"name":"","type":"uint256"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"timesheetCheck","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

60806040524260035560006005556000600655600560ff16600a0a620fb964026007556040805190810160405280600a81526020017f4469746872697469756d000000000000000000000000000000000000000000008152506040805190810160405280600481526020017f444954480000000000000000000000000000000000000000000000000000000081525060058260009080519060200190620000a892919062000309565b508160019080519060200190620000c192919062000309565b5080600260006101000a81548160ff021916908360ff16021790555050505033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001566200013e6200015c640100000000026401000000009004565b60075462000186640100000000026401000000009004565b620003b8565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515620001ad57600080fd5b620001d281600e54620002e76401000000000262001c92179091906401000000009004565b600e819055506200023a81600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620002e76401000000000262001c92179091906401000000009004565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808284019050838110151515620002ff57600080fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200034c57805160ff19168380011785556200037d565b828001600101855582156200037d579182015b828111156200037c5782518255916020019190600101906200035f565b5b5090506200038c919062000390565b5090565b620003b591905b80821115620003b157600081600090555060010162000397565b5090565b90565b611ddb80620003c86000396000f300608060405260043610610111576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680624f0a4a1461011657806306fdde0314610141578063095ea7b3146101d157806318160ddd146102365780631a626fea1461026157806323b872dd1461028c578063313ce56714610311578063395093511461034257806370a08231146103a7578063715018a6146103fe5780638da5cb5b146104155780638e407dc11461046c5780638f32d59b146104c357806395d89b41146104f2578063a457c2d714610582578063a9059cbb146105e7578063c84b8f9b1461064c578063dd62ed3e14610677578063f2fde38b146106ee578063fdb835a414610731575b600080fd5b34801561012257600080fd5b5061012b61078c565b6040518082815260200191505060405180910390f35b34801561014d57600080fd5b5061015661087a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101dd57600080fd5b5061021c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061091c565b604051808215151515815260200191505060405180910390f35b34801561024257600080fd5b5061024b610a49565b6040518082815260200191505060405180910390f35b34801561026d57600080fd5b50610276610a53565b6040518082815260200191505060405180910390f35b34801561029857600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a5d565b604051808215151515815260200191505060405180910390f35b34801561031d57600080fd5b50610326610f7e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034e57600080fd5b5061038d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f95565b604051808215151515815260200191505060405180910390f35b3480156103b357600080fd5b506103e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111cc565b6040518082815260200191505060405180910390f35b34801561040a57600080fd5b50610413611215565b005b34801561042157600080fd5b5061042a6112d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047857600080fd5b506104ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fb565b6040518082815260200191505060405180910390f35b3480156104cf57600080fd5b506104d8611344565b604051808215151515815260200191505060405180910390f35b3480156104fe57600080fd5b5061050761139c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054757808201518184015260208101905061052c565b50505050905090810190601f1680156105745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058e57600080fd5b506105cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061143e565b604051808215151515815260200191505060405180910390f35b3480156105f357600080fd5b50610632600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611675565b604051808215151515815260200191505060405180910390f35b34801561065857600080fd5b50610661611a07565b6040518082815260200191505060405180910390f35b34801561068357600080fd5b506106d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b18565b6040518082815260200191505060405180910390f35b3480156106fa57600080fd5b5061072f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b9f565b005b34801561073d57600080fd5b50610772600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bbe565b604051808215151515815260200191505060405180910390f35b600080610797611a07565b50600160045414156107af5760079050809150610876565b600260045414156107c657600a9050809150610876565b600160055414156107dd5760009050809150610876565b6301e1338060035401421115156107fa5760049050809150610876565b6303c2670060035401421115156108175760059050809150610876565b6305a39a8060035401421115156108345760079050809150610876565b630784ce0060035401421115156108515760089050809150610876565b6309660180600354014211151561086e57600a9050809150610876565b600090508091505b5090565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561095957600080fd5b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600e54905090565b6000600354905090565b600080600080600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515610ab157600080fd5b600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515610b3c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515610b7857600080fd5b620f424085111580610bbc5750610b8d6112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610bc757600080fd5b600a600e54811515610bd557fe5b04610bdf876111cc565b11151515610bec57600080fd5b610c3e85600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8961078c565b925084915060011515610c9b33611bbe565b15151415610cac5760009050610d18565b6000831415610cbe5760009050610d17565b610cc66112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610d025760009050610d16565b8285811515610d0d57fe5b04905080850391505b5b5b610d6a82600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600e5403600e81905550610e4785600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a342600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610fd257600080fd5b61106182600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61121d611344565b151561122857600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114345780601f1061140957610100808354040283529160200191611434565b820191906000526020600020905b81548152906001019060200180831161141757829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561147b57600080fd5b61150a82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600080600080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156116c957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561170557600080fd5b620f424085111580611749575061171a6112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561175457600080fd5b600a600e5481151561176257fe5b0461176c876111cc565b1115151561177957600080fd5b6117cb85600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061181661078c565b92508491506001151561182833611bbe565b1515141561183957600090506118a5565b600083141561184b57600090506118a4565b6118536112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561188f57600090506118a3565b828581151561189a57fe5b04905080850391505b5b5b6118f782600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e5411156119515780600e5403600e819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a342600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001935050505092915050565b60006301e13380600354014210158015611a28575064156ba09800600e5410155b8015611a3c5750630784ce00600354014211155b15611a5b57600160048190555060016006819055506004549050611b15565b6303c26700600354014210158015611a7a5750641405ffdc00600e5410155b8015611a8857506001600654145b8015611a9c57506309660180600354014211155b15611abb57600260048190555060026006819055506004549050611b15565b6305a39a80600354014210158015611ada57506411ed8ec200600e5410155b8015611ae857506002600654145b15611b0757600060048190555060016005819055506005549050611b15565b600060048190555060045490505b90565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ba7611344565b1515611bb257600080fd5b611bbb81611cb3565b50565b600062ed4e00600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540142101515611c165760019050611c6c565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611c675760019050611c6c565b600090505b919050565b600080838311151515611c8357600080fd5b82840390508091505092915050565b6000808284019050838110151515611ca957600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cef57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582056eb7a7ebbe5bdd448c4023e6a51a674de4835680fa19f97c207bc4f936e8e680029

Deployed Bytecode

0x608060405260043610610111576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680624f0a4a1461011657806306fdde0314610141578063095ea7b3146101d157806318160ddd146102365780631a626fea1461026157806323b872dd1461028c578063313ce56714610311578063395093511461034257806370a08231146103a7578063715018a6146103fe5780638da5cb5b146104155780638e407dc11461046c5780638f32d59b146104c357806395d89b41146104f2578063a457c2d714610582578063a9059cbb146105e7578063c84b8f9b1461064c578063dd62ed3e14610677578063f2fde38b146106ee578063fdb835a414610731575b600080fd5b34801561012257600080fd5b5061012b61078c565b6040518082815260200191505060405180910390f35b34801561014d57600080fd5b5061015661087a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101dd57600080fd5b5061021c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061091c565b604051808215151515815260200191505060405180910390f35b34801561024257600080fd5b5061024b610a49565b6040518082815260200191505060405180910390f35b34801561026d57600080fd5b50610276610a53565b6040518082815260200191505060405180910390f35b34801561029857600080fd5b506102f7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a5d565b604051808215151515815260200191505060405180910390f35b34801561031d57600080fd5b50610326610f7e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034e57600080fd5b5061038d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f95565b604051808215151515815260200191505060405180910390f35b3480156103b357600080fd5b506103e8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111cc565b6040518082815260200191505060405180910390f35b34801561040a57600080fd5b50610413611215565b005b34801561042157600080fd5b5061042a6112d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047857600080fd5b506104ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fb565b6040518082815260200191505060405180910390f35b3480156104cf57600080fd5b506104d8611344565b604051808215151515815260200191505060405180910390f35b3480156104fe57600080fd5b5061050761139c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054757808201518184015260208101905061052c565b50505050905090810190601f1680156105745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058e57600080fd5b506105cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061143e565b604051808215151515815260200191505060405180910390f35b3480156105f357600080fd5b50610632600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611675565b604051808215151515815260200191505060405180910390f35b34801561065857600080fd5b50610661611a07565b6040518082815260200191505060405180910390f35b34801561068357600080fd5b506106d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b18565b6040518082815260200191505060405180910390f35b3480156106fa57600080fd5b5061072f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b9f565b005b34801561073d57600080fd5b50610772600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bbe565b604051808215151515815260200191505060405180910390f35b600080610797611a07565b50600160045414156107af5760079050809150610876565b600260045414156107c657600a9050809150610876565b600160055414156107dd5760009050809150610876565b6301e1338060035401421115156107fa5760049050809150610876565b6303c2670060035401421115156108175760059050809150610876565b6305a39a8060035401421115156108345760079050809150610876565b630784ce0060035401421115156108515760089050809150610876565b6309660180600354014211151561086e57600a9050809150610876565b600090508091505b5090565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561095957600080fd5b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600e54905090565b6000600354905090565b600080600080600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515610ab157600080fd5b600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515610b3c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515610b7857600080fd5b620f424085111580610bbc5750610b8d6112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610bc757600080fd5b600a600e54811515610bd557fe5b04610bdf876111cc565b11151515610bec57600080fd5b610c3e85600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c8961078c565b925084915060011515610c9b33611bbe565b15151415610cac5760009050610d18565b6000831415610cbe5760009050610d17565b610cc66112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610d025760009050610d16565b8285811515610d0d57fe5b04905080850391505b5b5b610d6a82600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600e5403600e81905550610e4785600d60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a342600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600193505050509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610fd257600080fd5b61106182600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61121d611344565b151561122857600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114345780601f1061140957610100808354040283529160200191611434565b820191906000526020600020905b81548152906001019060200180831161141757829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561147b57600080fd5b61150a82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600080600080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156116c957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561170557600080fd5b620f424085111580611749575061171a6112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561175457600080fd5b600a600e5481151561176257fe5b0461176c876111cc565b1115151561177957600080fd5b6117cb85600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7190919063ffffffff16565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061181661078c565b92508491506001151561182833611bbe565b1515141561183957600090506118a5565b600083141561184b57600090506118a4565b6118536112d1565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561188f57600090506118a3565b828581151561189a57fe5b04905080850391505b5b5b6118f782600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e5411156119515780600e5403600e819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a342600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001935050505092915050565b60006301e13380600354014210158015611a28575064156ba09800600e5410155b8015611a3c5750630784ce00600354014211155b15611a5b57600160048190555060016006819055506004549050611b15565b6303c26700600354014210158015611a7a5750641405ffdc00600e5410155b8015611a8857506001600654145b8015611a9c57506309660180600354014211155b15611abb57600260048190555060026006819055506004549050611b15565b6305a39a80600354014210158015611ada57506411ed8ec200600e5410155b8015611ae857506002600654145b15611b0757600060048190555060016005819055506005549050611b15565b600060048190555060045490505b90565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ba7611344565b1515611bb257600080fd5b611bbb81611cb3565b50565b600062ed4e00600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540142101515611c165760019050611c6c565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611c675760019050611c6c565b600090505b919050565b600080838311151515611c8357600080fd5b82840390508091505092915050565b6000808284019050838110151515611ca957600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611cef57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582056eb7a7ebbe5bdd448c4023e6a51a674de4835680fa19f97c207bc4f936e8e680029

Deployed Bytecode Sourcemap

4624:9554:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7261:1092;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7261:1092:0;;;;;;;;;;;;;;;;;;;;;;;4267:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4267:69: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;4267:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9461:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9461:226:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5638:85:0;;;;;;;;;;;;;;;;;;;;;;;5729;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5729:85:0;;;;;;;;;;;;;;;;;;;;;;;9693:1045;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9693:1045:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4539:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11202:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11202:343:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5822:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5822:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3240:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3240:116:0;;;;;;2581:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2581:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5930:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5930:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2883:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2883:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4395:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4395:73: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;4395:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12012:353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12012:353:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8514:941;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8514:941:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6490:761;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6490:761:0;;;;;;;;;;;;;;;;;;;;;;;6323:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6323:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3523:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3523:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6047:270;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6047:270:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7261:1092;7303:7;7324:18;7353:25;:23;:25::i;:::-;;7406:1;7393:9;;:14;7389:959;;;7437:1;7424:14;;7460:10;7453:17;;;;7389:959;7505:1;7492:9;;:14;7488:860;;;7537:2;7524:15;;7561:10;7554:17;;;;7488:860;7610:1;7593:13;;:18;7589:759;;;7641:1;7628:14;;7664:10;7657:17;;;;7589:759;7714:12;7703:7;;:24;7696:3;:31;;7692:656;;;7757:1;7744:14;;7780:10;7773:17;;;;7692:656;7830:12;7819:7;;:24;7812:3;:31;;7808:540;;;7873:1;7860:14;;7896:10;7889:17;;;;7808:540;7946:13;7935:7;;:25;7928:3;:32;;7924:424;;;7990:1;7977:14;;8013:10;8006:17;;;;7924:424;8063:13;8052:7;;:25;8045:3;:32;;8041:307;;;8106:1;8093:14;;8129:10;8122:17;;;;8041:307;8179:13;8168:7;;:25;8161:3;:32;;8157:191;;;8223:2;8210:15;;8247:10;8240:17;;;;8157:191;8303:1;8290:14;;8326:10;8319:17;;7261:1092;;;:::o;4267:69::-;4303:6;4325:5;4318:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:69;:::o;9461:226::-;9526:4;9566:1;9547:21;;:7;:21;;;;9539:30;;;;;;;;9610:5;9578:8;:20;9587:10;9578:20;;;;;;;;;;;;;;;:29;9599:7;9578:29;;;;;;;;;;;;;;;:37;;;;9648:7;9627:36;;9636:10;9627:36;;;9657:5;9627:36;;;;;;;;;;;;;;;;;;9677:4;9670:11;;9461:226;;;;:::o;5638:85::-;5682:7;5705:12;;5698:19;;5638:85;:::o;5729:::-;5776:7;5801;;5794:14;;5729:85;:::o;9693:1045::-;9802:4;10104:11;10141:22;10178:12;9835:9;:15;9845:4;9835:15;;;;;;;;;;;;;;;;9826:5;:24;;9818:33;;;;;;;;9875:8;:14;9884:4;9875:14;;;;;;;;;;;;;;;:26;9890:10;9875:26;;;;;;;;;;;;;;;;9866:5;:35;;9858:44;;;;;;;;9931:1;9917:16;;:2;:16;;;;9909:25;;;;;;;;9958:7;9949:5;:16;;:41;;;;9983:7;:5;:7::i;:::-;9969:21;;:10;:21;;;9949:41;9941:50;;;;;;;;10039:2;10024:12;;:17;;;;;;;;10006:13;10016:2;10006:9;:13::i;:::-;:36;;9998:45;;;;;;;;10072:26;10092:5;10072:9;:15;10082:4;10072:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;10054:9;:15;10064:4;10054:15;;;;;;;;;;;;;;;:44;;;;10118:16;:14;:16::i;:::-;10104:30;;10166:5;10141:30;;10237:4;10207:34;;:26;10222:10;10207:14;:26::i;:::-;:34;;;10203:249;;;10261:1;10254:8;;10203:249;;;10287:1;10280:3;:8;10276:176;;;10308:1;10301:8;;10276:176;;;10341:7;:5;:7::i;:::-;10327:21;;:10;:21;;;10323:129;;;10368:1;10361:8;;10323:129;;;10405:3;10397:5;:11;;;;;;;;10390:18;;10440:4;10432:5;:12;10415:29;;10323:129;10276:176;10203:249;10474:33;10492:14;10474:9;:13;10484:2;10474:13;;;;;;;;;;;;;;;;:17;;:33;;;;:::i;:::-;10458:9;:13;10468:2;10458:13;;;;;;;;;;;;;;;:49;;;;10544:4;10529:12;;:19;10514:12;:34;;;;10596:37;10627:5;10596:8;:14;10605:4;10596:14;;;;;;;;;;;;;;;:26;10611:10;10596:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;10567:8;:14;10576:4;10567:14;;;;;;;;;;;;;;;:26;10582:10;10567:26;;;;;;;;;;;;;;;:66;;;;10660:2;10645:34;;10654:4;10645:34;;;10664:14;10645:34;;;;;;;;;;;;;;;;;;10711:3;10686:10;:22;10697:10;10686:22;;;;;;;;;;;;;;;:28;;;;10728:4;10721:11;;9693:1045;;;;;;;;:::o;4539:76::-;4579:5;4600:9;;;;;;;;;;;4593:16;;4539:76;:::o;11202:343::-;11307:4;11350:1;11331:21;;:7;:21;;;;11323:30;;;;;;;;11403:45;11437:10;11403:8;:20;11412:10;11403:20;;;;;;;;;;;;;;;:29;11424:7;11403:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;11362:8;:20;11371:10;11362:20;;;;;;;;;;;;;;;:29;11383:7;11362:29;;;;;;;;;;;;;;;:87;;;;11482:7;11461:60;;11470:10;11461:60;;;11491:8;:20;11500:10;11491:20;;;;;;;;;;;;;;;:29;11512:7;11491:29;;;;;;;;;;;;;;;;11461:60;;;;;;;;;;;;;;;;;;11535:4;11528:11;;11202:343;;;;:::o;5822:100::-;5877:7;5900:9;:16;5910:5;5900:16;;;;;;;;;;;;;;;;5893:23;;5822:100;;;:::o;3240:116::-;2774:9;:7;:9::i;:::-;2766:18;;;;;;;;3317:6;;;;;;;;;;;3298:26;;;;;;;;;;;;3348:1;3331:6;;:19;;;;;;;;;;;;;;;;;;3240:116::o;2581:72::-;2618:7;2641:6;;;;;;;;;;;2634:13;;2581:72;:::o;5930:109::-;5991:7;6016:10;:17;6027:5;6016:17;;;;;;;;;;;;;;;;6009:24;;5930:109;;;:::o;2883:85::-;2922:4;2956:6;;;;;;;;;;;2942:20;;:10;:20;;;2935:27;;2883:85;:::o;4395:73::-;4433:6;4455:7;4448:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4395:73;:::o;12012:353::-;12122:4;12165:1;12146:21;;:7;:21;;;;12138:30;;;;;;;;12218:50;12252:15;12218:8;:20;12227:10;12218:20;;;;;;;;;;;;;;;:29;12239:7;12218:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;12177:8;:20;12186:10;12177:20;;;;;;;;;;;;;;;:29;12198:7;12177:29;;;;;;;;;;;;;;;:92;;;;12302:7;12281:60;;12290:10;12281:60;;;12311:8;:20;12320:10;12311:20;;;;;;;;;;;;;;;:29;12332:7;12311:29;;;;;;;;;;;;;;;;12281:60;;;;;;;;;;;;;;;;;;12355:4;12348:11;;12012:353;;;;:::o;8514:941::-;8575:4;8843:11;8880:22;8917:12;8605:9;:21;8615:10;8605:21;;;;;;;;;;;;;;;;8596:5;:30;;8588:39;;;;;;;;8656:1;8642:16;;:2;:16;;;;8634:25;;;;;;;;8683:7;8674:5;:16;;:41;;;;8708:7;:5;:7::i;:::-;8694:21;;:10;:21;;;8674:41;8666:50;;;;;;;;8764:2;8749:12;;:17;;;;;;;;8731:13;8741:2;8731:9;:13::i;:::-;:36;;8723:45;;;;;;;;8804:32;8830:5;8804:9;:21;8814:10;8804:21;;;;;;;;;;;;;;;;:25;;:32;;;;:::i;:::-;8780:9;:21;8790:10;8780:21;;;;;;;;;;;;;;;:56;;;;8857:16;:14;:16::i;:::-;8843:30;;8905:5;8880:30;;8976:4;8946:34;;:26;8961:10;8946:14;:26::i;:::-;:34;;;8942:249;;;9000:1;8993:8;;8942:249;;;9026:1;9019:3;:8;9015:176;;;9047:1;9040:8;;9015:176;;;9080:7;:5;:7::i;:::-;9066:21;;:10;:21;;;9062:129;;;9107:1;9100:8;;9062:129;;;9144:3;9136:5;:11;;;;;;;;9129:18;;9179:4;9171:5;:12;9154:29;;9062:129;9015:176;8942:249;9219:33;9237:14;9219:9;:13;9229:2;9219:13;;;;;;;;;;;;;;;;:17;;:33;;;;:::i;:::-;9203:9;:13;9213:2;9203:13;;;;;;;;;;;;;;;:49;;;;9283:1;9268:12;;:16;9265:73;;;9326:4;9311:12;;:19;9296:12;:34;;;;9265:73;9377:2;9356:40;;9365:10;9356:40;;;9381:14;9356:40;;;;;;;;;;;;;;;;;;9428:3;9403:10;:22;9414:10;9403:22;;;;;;;;;;;;;;;:28;;;;9445:4;9438:11;;8514:941;;;;;;;:::o;6490:761::-;6541:7;6581:12;6570:7;;:24;6563:3;:31;;:62;;;;;6614:11;6598:12;;:27;;6563:62;:98;;;;;6647:13;6636:7;;:25;6629:3;:32;;6563:98;6559:679;;;6688:1;6676:9;:13;;;;6712:1;6702:7;:11;;;;6733:9;;6726:16;;;;6559:679;6780:12;6769:7;;:24;6762:3;:31;;:62;;;;;6813:11;6797:12;;:27;;6762:62;:78;;;;;6839:1;6828:7;;:12;6762:78;:115;;;;;6863:13;6852:7;;:25;6845:3;:32;;6762:115;6758:480;;;6904:1;6892:9;:13;;;;6928:1;6918:7;:11;;;;6949:9;;6942:16;;;;6758:480;6998:13;6987:7;;:25;6980:3;:32;;:63;;;;;7032:11;7016:12;;:27;;6980:63;:79;;;;;7058:1;7047:7;;:12;6980:79;6976:262;;;7089:1;7077:9;:13;;;;7121:1;7105:13;:17;;;;7144:13;;7137:20;;;;6976:262;7198:1;7186:9;:13;;;;7219:9;;7212:16;;6490:761;;:::o;6323:159::-;6426:7;6452:8;:15;6461:5;6452:15;;;;;;;;;;;;;;;:24;6468:7;6452:24;;;;;;;;;;;;;;;;6445:31;;6323:159;;;;:::o;3523:103::-;2774:9;:7;:9::i;:::-;2766:18;;;;;;;;3592:28;3611:8;3592:18;:28::i;:::-;3523:103;:::o;6047:270::-;6107:4;6154:12;6133:10;:17;6144:5;6133:17;;;;;;;;;;;;;;;;:34;6126:3;:41;;6122:190;;;6189:4;6182:11;;;;6122:190;6234:1;6213:10;:17;6224:5;6213:17;;;;;;;;;;;;;;;;:22;6209:103;;;6257:4;6250:11;;;;6209:103;6297:5;6290:12;;6047:270;;;;:::o;1531:136::-;1589:7;1627:9;1618:1;1613;:6;;1605:15;;;;;;;;1643:1;1639;:5;1627:17;;1660:1;1653:8;;1531:136;;;;;:::o;1735:::-;1793:7;1809:9;1825:1;1821;:5;1809:17;;1846:1;1841;:6;;1833:15;;;;;;;;1864:1;1857:8;;1735:136;;;;;:::o;3766:173::-;3856:1;3836:22;;:8;:22;;;;3828:31;;;;;;;;3900:8;3871:38;;3892:6;;;;;;;;;;;3871:38;;;;;;;;;;;;3925:8;3916:6;;:17;;;;;;;;;;;;;;;;;;3766:173;:::o

Swarm Source

bzzr://56eb7a7ebbe5bdd448c4023e6a51a674de4835680fa19f97c207bc4f936e8e68
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.