ETH Price: $3,892.68 (-0.59%)

Token

Ether Tulips (ETHT)
 

Overview

Max Total Supply

9,839 ETHT

Holders

1,472 (0.00%)

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
*øbalance.eth
Balance
1 ETHT
0x3d03f8ec826df6cef898add75e0bba67737c2375
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Token migration announcement. Ether Tulips token contract has migrated to 0xf7f6dee46c6bdcf32c14a825f3a714262960c361

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TulipCore

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-22
*/

pragma solidity ^0.4.18;

contract AccessControl {
  address public owner;
  address[] public admins;

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

  modifier onlyAdmins {
    bool found = false;

    for (uint i = 0; i < admins.length; i++) {
      if (admins[i] == msg.sender) {
        found = true;
        break;
      }
    }

    require(found);
    _;
  }

  function addAdmin(address _adminAddress) public onlyOwner {
    admins.push(_adminAddress);
  }
}

contract ERC721 {
    // Required Functions
    function implementsERC721() public pure returns (bool);
    function totalSupply() public view returns (uint256);
    function balanceOf(address _owner) public view returns (uint256);
    function ownerOf(uint256 _tokenId) public view returns (address);
    function transfer(address _to, uint _tokenId) public;
    function approve(address _to, uint256 _tokenId) public;
    function transferFrom(address _from, address _to, uint256 _tokenId) public;

    // Optional Functions
    function name() public pure returns (string);
    function symbol() public pure returns (string);
    function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256);
    // function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl);

    // Required Events
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
}

contract TulipBase is AccessControl {
  struct Tulip {
    uint256 genes;
    uint256 createTime;
    bytes32 name;
  }

  Tulip[] public tulips;
  mapping (uint256 => address) public tulipToOwner;
  mapping (address => uint256[]) internal ownerToTulips;
  mapping (uint256 => address) public tulipToApproved;

  function _generateTulip(bytes32 _name, address _owner, uint16 _gen) internal returns (uint256 id) {
    id = tulips.length;
    uint256 createTime = block.timestamp;

    // Insecure RNG, but good enough for our purposes
    uint256 seed = uint(block.blockhash(block.number - 1)) + uint(block.blockhash(block.number - 100))
      + uint(block.coinbase) + createTime + id;
    uint256 traits = uint256(keccak256(seed));
    // last 16 bits are generation number
    uint256 genes = traits / 0x10000 * 0x10000 + _gen;

    Tulip memory newTulip = Tulip(genes, createTime, _name);
    tulips.push(newTulip);
    tulipToOwner[id] = _owner;
    ownerToTulips[_owner].push(id);
  }

  function _transferTulip(address _from, address _to, uint256 _id) internal {
    tulipToOwner[_id] = _to;
    ownerToTulips[_to].push(_id);
    tulipToApproved[_id] = address(0);

    uint256[] storage fromTulips = ownerToTulips[_from];
    for (uint256 i = 0; i < fromTulips.length; i++) {
      if (fromTulips[i] == _id) {
        break;
      }
    }
    assert(i < fromTulips.length);

    fromTulips[i] = fromTulips[fromTulips.length - 1];
    delete fromTulips[fromTulips.length - 1];
    fromTulips.length--;
  }
}

contract TulipToken is TulipBase, ERC721 {

  function implementsERC721() public pure returns (bool) {
    return true;
  }

  function totalSupply() public view returns (uint256) {
    return tulips.length;
  }

  function balanceOf(address _owner) public view returns (uint256 balance) {
    return ownerToTulips[_owner].length;
  }

  function ownerOf(uint256 _tokenId) public view returns (address owner) {
    owner = tulipToOwner[_tokenId];
    require(owner != address(0));
  }

  function transfer(address _to, uint256 _tokenId) public {
    require(_to != address(0));
    require(tulipToOwner[_tokenId] == msg.sender);

    _transferTulip(msg.sender, _to, _tokenId);
    Transfer(msg.sender, _to, _tokenId);
  }

  function approve(address _to, uint256 _tokenId) public {
    require(tulipToOwner[_tokenId] == msg.sender);
    tulipToApproved[_tokenId] = _to;

    Approval(msg.sender, _to, _tokenId);
  }

  function transferFrom(address _from, address _to, uint256 _tokenId) public {
    require(_to != address(0));
    require(tulipToApproved[_tokenId] == msg.sender);
    require(tulipToOwner[_tokenId] == _from);

    _transferTulip(_from, _to, _tokenId);
    Transfer(_from, _to, _tokenId);
  }

  function name() public pure returns (string) {
    return "Ether Tulips";
  }

  function symbol() public pure returns (string) {
    return "ETHT";
  }

  function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256) {
    require(_index < ownerToTulips[_owner].length);
    return ownerToTulips[_owner][_index];
  }

  // function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl);
}

contract TulipSales is TulipToken {
  event Purchase(address indexed owner, uint256 unitPrice, uint32 amount);

  uint128 public increasePeriod = 6000; // around 1 day
  uint128 public startBlock;
  uint256[] public genToStartPrice;
  uint256[23] internal exp15;

  function TulipSales() public {
    startBlock = uint128(block.number);
    genToStartPrice.push(10 finney);
    _setExp15();
  }

  // The price increases from the starting price at a rate of 1.5x a day, until
  // a max of 10000x the original price. For gen 0, this corresponds to a cap
  // of 100 ETH.
  function price(uint16 _gen) public view returns (uint256) {
    require(_gen < genToStartPrice.length);

    uint128 periodsElapsed = (uint128(block.number) - startBlock) / increasePeriod;
    return _priceAtPeriod(periodsElapsed, _gen);
  }

  function nextPrice(uint16 _gen) public view returns (uint256 futurePrice, uint128 blocksRemaining, uint128 changeBlock) {
    require(_gen < genToStartPrice.length);

    uint128 periodsElapsed = (uint128(block.number) - startBlock) / increasePeriod;
    futurePrice = _priceAtPeriod(periodsElapsed + 1, _gen);
    blocksRemaining = increasePeriod - (uint128(block.number) - startBlock) % increasePeriod;
    changeBlock = uint128(block.number) + blocksRemaining;
  }

  function buyTulip(bytes32 _name, uint16 _gen) public payable returns (uint256 id) {
    require(_gen < genToStartPrice.length);
    require(msg.value == price(_gen));

    id = _generateTulip(_name, msg.sender, _gen);
    Transfer(address(0), msg.sender, id);
    Purchase(msg.sender, price(_gen), 1);
  }

  function buyTulips(uint32 _amount, uint16 _gen) public payable returns (uint256 firstId) {
    require(_gen < genToStartPrice.length);
    require(msg.value == price(_gen) * _amount);
    require(_amount <= 100);

    for (uint32 i = 0; i < _amount; i++) {
      uint256 id = _generateTulip("", msg.sender, _gen);
      Transfer(address(0), msg.sender, id);

      if (i == 0) {
        firstId = id;
      }
    }
    Purchase(msg.sender, price(_gen), _amount);
  }

  function renameTulip(uint256 _id, bytes32 _name) public {
    require(tulipToOwner[_id] == msg.sender);

    tulips[_id].name = _name;
  }

  function addGen(uint256 _startPrice) public onlyAdmins {
    require(genToStartPrice.length < 65535);

    genToStartPrice.push(_startPrice);
  }

  function withdrawBalance(uint256 _amount) external onlyAdmins {
    require(_amount <= this.balance);

    msg.sender.transfer(_amount);
  }

  function _priceAtPeriod(uint128 _period, uint16 _gen) internal view returns (uint256) {
    if (_period >= exp15.length) {
      return genToStartPrice[_gen] * 10000;
    } else {
      return genToStartPrice[_gen] * exp15[_period] / 1 ether;
    }
  }

  // Set 1 ETH * 1.5^i for 0 <= i <= 22 with 3 significant figures
  function _setExp15() internal {
    exp15 = [
      1000 finney,
      1500 finney,
      2250 finney,
      3380 finney,
      5060 finney,
      7590 finney,
      11400 finney,
      17100 finney,
      25600 finney,
      38400 finney,
      57700 finney,
      86500 finney,
      130 ether,
      195 ether,
      292 ether,
      438 ether,
      657 ether,
      985 ether,
      1480 ether,
      2220 ether,
      3330 ether,
      4990 ether,
      7480 ether
    ];
  }
}

contract TulipCore is TulipSales {
  event ContractUpgrade(address newContract);
  event MaintenanceUpdate(bool maintenance);

  bool public underMaintenance = false;
  bool public deprecated = false;
  address public newContractAddress;

  function TulipCore() public {
    owner = msg.sender;
  }

  function getTulip(uint256 _id) public view returns (
    uint256 genes,
    uint256 createTime,
    string name
  ) {
    Tulip storage tulip = tulips[_id];
    genes = tulip.genes;
    createTime = tulip.createTime;

    bytes memory byteArray = new bytes(32);
    for (uint8 i = 0; i < 32; i++) {
      byteArray[i] = tulip.name[i];
    }
    name = string(byteArray);
  }

  function myTulips() public view returns (uint256[]) {
    uint256[] memory tulipsMemory = ownerToTulips[msg.sender];
    return tulipsMemory;
  }

  function myTulipsBatched(uint256 _startIndex, uint16 _maxAmount) public view returns (
    uint256[] tulipIds,
    uint256 amountRemaining
  ) {
    uint256[] storage tulipArr = ownerToTulips[msg.sender];
    int256 j = int256(tulipArr.length) - 1 - int256(_startIndex);
    uint256 amount = _maxAmount;

    if (j < 0) {
      return (
        new uint256[](0),
        0
      );
    } else if (j + 1 < _maxAmount) {
      amount = uint256(j + 1);
    }
    uint256[] memory resultIds = new uint256[](amount);

    for (uint16 i = 0; i < amount; i++) {
      resultIds[i] = tulipArr[uint256(j)];
      j--;
    }

    return (
      resultIds,
      uint256(j+1)
    );
  }

  function setMaintenance(bool _underMaintenance) public onlyAdmins {
    underMaintenance = _underMaintenance;
    MaintenanceUpdate(underMaintenance);
  }

  function upgradeContract(address _newContractAddress) public onlyAdmins {
    newContractAddress = _newContractAddress;
    deprecated = true;
    ContractUpgrade(_newContractAddress);
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"myTulips","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"admins","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_name","type":"bytes32"}],"name":"renameTulip","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tulipToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"genToStartPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"underMaintenance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_underMaintenance","type":"bool"}],"name":"setMaintenance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tulipToApproved","outputs":[{"name":"","type":"address"}],"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":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_startIndex","type":"uint256"},{"name":"_maxAmount","type":"uint16"}],"name":"myTulipsBatched","outputs":[{"name":"tulipIds","type":"uint256[]"},{"name":"amountRemaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_startPrice","type":"uint256"}],"name":"addGen","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tulips","outputs":[{"name":"genes","type":"uint256"},{"name":"createTime","type":"uint256"},{"name":"name","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint32"},{"name":"_gen","type":"uint16"}],"name":"buyTulips","outputs":[{"name":"firstId","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_gen","type":"uint16"}],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"increasePeriod","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_gen","type":"uint16"}],"name":"nextPrice","outputs":[{"name":"futurePrice","type":"uint256"},{"name":"blocksRemaining","type":"uint128"},{"name":"changeBlock","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newContractAddress","type":"address"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_gen","type":"uint16"}],"name":"buyTulip","outputs":[{"name":"id","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getTulip","outputs":[{"name":"genes","type":"uint256"},{"name":"createTime","type":"uint256"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newContract","type":"address"}],"name":"ContractUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"maintenance","type":"bool"}],"name":"MaintenanceUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"unitPrice","type":"uint256"},{"indexed":false,"name":"amount","type":"uint32"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

6060604052611770600660006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000601f60006101000a81548160ff0219169083151502179055506000601f60016101000a81548160ff02191690831515021790555034156200008157600080fd5b43600660106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060078054806001018281620000d09190620003d7565b91600052602060002090016000662386f26fc10000909190915055506200010a6200015064010000000002620026b0176401000000009004565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000481565b6102e060405190810160405280670de0b6b3a764000069ffffffffffffffffffff1681526020016714d1120d7b16000069ffffffffffffffffffff168152602001671f399b1438a1000069ffffffffffffffffffff168152602001672ee82c178cd2000069ffffffffffffffffffff168152602001674638bb30e37a000069ffffffffffffffffffff16815260200167695518c95537000069ffffffffffffffffffff168152602001679e34ef99a774000069ffffffffffffffffffff16815260200167ed4f67667b2e000069ffffffffffffffffffff16815260200168016345785d8a00000069ffffffffffffffffffff168152602001680214e8348c4f00000069ffffffffffffffffffff168152602001680320bf944ad40a000069ffffffffffffffffffff1681526020016804b06dbbb40f4a000069ffffffffffffffffffff16815260200168070c1cc73b00c8000069ffffffffffffffffffff168152602001680a922b2ad8812c000069ffffffffffffffffffff168152602001680fd45064eaee10000069ffffffffffffffffffff1681526020016817be7897606518000069ffffffffffffffffffff16815260200168239db4e31097a4000069ffffffffffffffffffff1681526020016835659ef93f0fc4000069ffffffffffffffffffff16815260200168503b203e9fba20000069ffffffffffffffffffff168152602001687858b05def9730000069ffffffffffffffffffff16815260200168b485088ce762c8000069ffffffffffffffffffff16815260200169010e822941d8cf38000069ffffffffffffffffffff1681526020016901957dda5142f1e0000069ffffffffffffffffffff168152506008906017620003d492919062000406565b50565b815481835581811511620004015781836000526020600020918201910162000400919062000459565b5b505050565b826017810192821562000446579160200282015b8281111562000445578251829069ffffffffffffffffffff169055916020019190600101906200041a565b5b50905062000455919062000459565b5090565b6200047e91905b808211156200047a57600081600090555060010162000460565b5090565b90565b6129af80620004916000396000f3006060604052600436106101ac576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ebebf2146101b157806306fdde031461021b578063095ea7b3146102a95780630e136b19146102eb5780631051db341461031857806314bfd6d01461034557806318160ddd146103a857806323b872dd146103d157806326605772146104325780632f745c591461046257806336e4e8fd146104b857806345f28e771461051b57806348cd4cb1146105525780635a41217e1461059f578063612f2f37146105cc5780636352211e146105f15780636af04a571461065457806370480275146106a957806370a08231146106e257806372a0c16e1461072f5780638da5cb5b1461079257806395d89b41146107e75780639d5708ff14610875578063a9059cbb14610901578063aed2e7d414610943578063af794a4f14610966578063b7c9da33146109b3578063b95bb4f8146109f2578063d63e6ce714610a2d578063da76d5cd14610a7a578063df0c7a5514610a9d578063eb2c022314610b2e578063ee0f809e14610b67578063fecd348614610ba4575b600080fd5b34156101bc57600080fd5b6101c4610c4e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102075780820151818401526020810190506101ec565b505050509050019250505060405180910390f35b341561022657600080fd5b61022e610cf5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026e578082015181840152602081019050610253565b50505050905090810190601f16801561029b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102b457600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d38565b005b34156102f657600080fd5b6102fe610e56565b604051808215151515815260200191505060405180910390f35b341561032357600080fd5b61032b610e69565b604051808215151515815260200191505060405180910390f35b341561035057600080fd5b6103666004808035906020019091905050610e72565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b357600080fd5b6103bb610eb1565b6040518082815260200191505060405180910390f35b34156103dc57600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ebe565b005b341561043d57600080fd5b61046060048080359060200190919080356000191690602001909190505061103f565b005b341561046d57600080fd5b6104a2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110d9565b6040518082815260200191505060405180910390f35b34156104c357600080fd5b6104d9600480803590602001909190505061118b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052657600080fd5b61053c60048080359060200190919050506111be565b6040518082815260200191505060405180910390f35b341561055d57600080fd5b6105656111e2565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105aa57600080fd5b6105b2611204565b604051808215151515815260200191505060405180910390f35b34156105d757600080fd5b6105ef60048080351515906020019091905050611217565b005b34156105fc57600080fd5b6106126004808035906020019091905050611329565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561065f57600080fd5b6106676113a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106b457600080fd5b6106e0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113c8565b005b34156106ed57600080fd5b610719600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611489565b6040518082815260200191505060405180910390f35b341561073a57600080fd5b61075060048080359060200190919050506114d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079d57600080fd5b6107a5611508565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107f257600080fd5b6107fa61152d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083a57808201518184015260208101905061081f565b50505050905090810190601f1680156108675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561088057600080fd5b6108a3600480803590602001909190803561ffff16906020019091905050611570565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156108ec5780820151818401526020810190506108d1565b50505050905001935050505060405180910390f35b341561090c57600080fd5b610941600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116c4565b005b341561094e57600080fd5b61096460048080359060200190919050506117d7565b005b341561097157600080fd5b61098760048080359060200190919050506118c3565b604051808481526020018381526020018260001916600019168152602001935050505060405180910390f35b6109dc600480803563ffffffff1690602001909190803561ffff169060200190919050506118fc565b6040518082815260200191505060405180910390f35b34156109fd57600080fd5b610a17600480803561ffff16906020019091905050611a61565b6040518082815260200191505060405180910390f35b3415610a3857600080fd5b610a40611afd565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a8557600080fd5b610a9b6004808035906020019091905050611b1f565b005b3415610aa857600080fd5b610ac2600480803561ffff16906020019091905050611c33565b60405180848152602001836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b3415610b3957600080fd5b610b65600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d6c565b005b610b8e60048080356000191690602001909190803561ffff16906020019091905050611ed9565b6040518082815260200191505060405180910390f35b3415610baf57600080fd5b610bc56004808035906020019091905050611fdc565b6040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c11578082015181840152602081019050610bf6565b50505050905090810190601f168015610c3e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610c56612569565b610c5e612569565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610ce757602002820191906000526020600020905b815481526020019060010190808311610cd3575b505050505090508091505090565b610cfd61257d565b6040805190810160405280600c81526020017f45746865722054756c6970730000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610da557600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b601f60019054906101000a900460ff1681565b60006001905090565b600181815481101515610e8157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610efa57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f6757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fd457600080fd5b610fdf8383836120ea565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b3373ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110ac57600080fd5b806002838154811015156110bc57fe5b906000526020600020906003020160020181600019169055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210151561112b57600080fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561117757fe5b906000526020600020900154905092915050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156111cd57fe5b90600052602060002090016000915090505481565b600660109054906101000a90046fffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b60008060009150600090505b6001805490508110156112b4573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561125657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112a757600191506112b4565b8080600101915050611223565b8115156112c057600080fd5b82601f60006101000a81548160ff0219169083151502179055507fa74f277a6df77bc82a78197c46ad925095d31e26f4860f2273e09a82a66c06af601f60009054906101000a900460ff16604051808215151515815260200191505060405180910390a1505050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561139d57600080fd5b919050565b601f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142357600080fd5b600180548060010182816114379190612591565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61153561257d565b6040805190810160405280600481526020017f4554485400000000000000000000000000000000000000000000000000000000815250905090565b611578612569565b600080600080611586612569565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002094508860018680549050030393508761ffff16925060008412156116165760006040518059106115f45750595b90808252806020026020018201604052506000819150809050965096506116b8565b8761ffff1660018501121561162c576001840192505b8260405180591061163a5750595b90808252806020026020018201604052509150600090505b828161ffff1610156116ae57848481548110151561166c57fe5b906000526020600020900154828261ffff1681518110151561168a57fe5b90602001906020020181815250508380600190039450508080600101915050611652565b8160018501965096505b50505050509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561170057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561176d57600080fd5b6117783383836120ea565b808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60008060009150600090505b600180549050811015611874573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561181657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118675760019150611874565b80806001019150506117e3565b81151561188057600080fd5b61ffff60078054905010151561189557600080fd5b600780548060010182816118a991906125bd565b916000526020600020900160008590919091505550505050565b6002818154811015156118d257fe5b90600052602060002090600302016000915090508060000154908060010154908060020154905083565b60008060006007805490508461ffff1610151561191857600080fd5b8463ffffffff1661192885611a61565b023414151561193657600080fd5b60648563ffffffff161115151561194c57600080fd5b600091505b8463ffffffff168263ffffffff1610156119ef576119716000338661230a565b9050803373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a460008263ffffffff1614156119e2578092505b8180600101925050611951565b3373ffffffffffffffffffffffffffffffffffffffff167f433740f8fe758f5e94cce874551487537d73ef9c50141dd28124b9f7ea331395611a3086611a61565b87604051808381526020018263ffffffff1663ffffffff1681526020019250505060405180910390a2505092915050565b6000806007805490508361ffff16101515611a7b57600080fd5b600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16600660109054906101000a90046fffffffffffffffffffffffffffffffff1643036fffffffffffffffffffffffffffffffff16811515611ae857fe5b049050611af581846124c2565b915050919050565b600660009054906101000a90046fffffffffffffffffffffffffffffffff1681565b60008060009150600090505b600180549050811015611bbc573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611b5e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611baf5760019150611bbc565b8080600101915050611b2b565b811515611bc857600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318311151515611bee57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611c2e57600080fd5b505050565b6000806000806007805490508561ffff16101515611c5057600080fd5b600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16600660109054906101000a90046fffffffffffffffffffffffffffffffff1643036fffffffffffffffffffffffffffffffff16811515611cbd57fe5b049050611ccd60018201866124c2565b9350600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16600660109054906101000a90046fffffffffffffffffffffffffffffffff1643036fffffffffffffffffffffffffffffffff16811515611d3c57fe5b06600660009054906101000a90046fffffffffffffffffffffffffffffffff160392508243019150509193909250565b60008060009150600090505b600180549050811015611e09573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611dab57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611dfc5760019150611e09565b8080600101915050611d78565b811515611e1557600080fd5b82601f60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601f60016101000a81548160ff0219169083151502179055507f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930583604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b60006007805490508261ffff16101515611ef257600080fd5b611efb82611a61565b34141515611f0857600080fd5b611f1383338461230a565b9050803373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a43373ffffffffffffffffffffffffffffffffffffffff167f433740f8fe758f5e94cce874551487537d73ef9c50141dd28124b9f7ea331395611fb284611a61565b6001604051808381526020018263ffffffff1681526020019250505060405180910390a292915050565b600080611fe761257d565b6000611ff16125e9565b600060028781548110151561200257fe5b906000526020600020906003020192508260000154955082600101549450602060405180591061202f5750595b9080825280601f01601f19166020018201604052509150600090505b60208160ff1610156120dd5782600201548160ff1660208110151561206c57fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002828260ff168151811015156120a057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061204b565b8193505050509193909250565b600080836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161219091906125bd565b91600052602060002090016000859091909150555060006005600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600090505b818054905081101561227d5782828281548110151561225957fe5b90600052602060002090015414156122705761227d565b808060010191505061223e565b81805490508110151561228c57fe5b8160018380549050038154811015156122a157fe5b90600052602060002090015482828154811015156122bb57fe5b9060005260206000209001819055508160018380549050038154811015156122df57fe5b9060005260206000209001600090558180548091906001900361230291906125bd565b505050505050565b600080600080600061231a6125fd565b600280549050955042945085854173ffffffffffffffffffffffffffffffffffffffff16606443034060019004600143034060019004010101019350836040518082815260200191505060405180910390206001900492508661ffff1662010000808581151561238657fe5b04020191506060604051908101604052808381526020018681526020018a600019168152509050600280548060010182816123c19190612622565b91600052602060002090600302016000839091909150600082015181600001556020820151816001015560408201518160020190600019169055505050876003600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816124a191906125bd565b91600052602060002090016000889091909150555050505050509392505050565b60006017836fffffffffffffffffffffffffffffffff1610151561250a5761271060078361ffff168154811015156124f657fe5b906000526020600020900154029050612563565b670de0b6b3a76400006008846fffffffffffffffffffffffffffffffff1660178110151561253457fe5b015460078461ffff1681548110151561254957fe5b9060005260206000209001540281151561255f57fe5b0490505b92915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b8154818355818115116125b8578183600052602060002091820191016125b79190612654565b5b505050565b8154818355818115116125e4578183600052602060002091820191016125e39190612654565b5b505050565b602060405190810160405280600081525090565b6060604051908101604052806000815260200160008152602001600080191681525090565b81548183558181151161264f5760030281600302836000526020600020918201910161264e9190612679565b5b505050565b61267691905b8082111561267257600081600090555060010161265a565b5090565b90565b6126ad91905b808211156126a957600080820160009055600182016000905560028201600090555060030161267f565b5090565b90565b6102e060405190810160405280670de0b6b3a764000069ffffffffffffffffffff1681526020016714d1120d7b16000069ffffffffffffffffffff168152602001671f399b1438a1000069ffffffffffffffffffff168152602001672ee82c178cd2000069ffffffffffffffffffff168152602001674638bb30e37a000069ffffffffffffffffffff16815260200167695518c95537000069ffffffffffffffffffff168152602001679e34ef99a774000069ffffffffffffffffffff16815260200167ed4f67667b2e000069ffffffffffffffffffff16815260200168016345785d8a00000069ffffffffffffffffffff168152602001680214e8348c4f00000069ffffffffffffffffffff168152602001680320bf944ad40a000069ffffffffffffffffffff1681526020016804b06dbbb40f4a000069ffffffffffffffffffff16815260200168070c1cc73b00c8000069ffffffffffffffffffff168152602001680a922b2ad8812c000069ffffffffffffffffffff168152602001680fd45064eaee10000069ffffffffffffffffffff1681526020016817be7897606518000069ffffffffffffffffffff16815260200168239db4e31097a4000069ffffffffffffffffffff1681526020016835659ef93f0fc4000069ffffffffffffffffffff16815260200168503b203e9fba20000069ffffffffffffffffffff168152602001687858b05def9730000069ffffffffffffffffffff16815260200168b485088ce762c8000069ffffffffffffffffffff16815260200169010e822941d8cf38000069ffffffffffffffffffff1681526020016901957dda5142f1e0000069ffffffffffffffffffff168152506008906017612932929190612935565b50565b8260178101928215612972579160200282015b82811115612971578251829069ffffffffffffffffffff16905591602001919060010190612948565b5b50905061297f9190612654565b50905600a165627a7a72305820042129687ba89f2763e1e2f1e9d45c1068190b0da0fa136f1ca2027af5b79bae0029

Deployed Bytecode

0x6060604052600436106101ac576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ebebf2146101b157806306fdde031461021b578063095ea7b3146102a95780630e136b19146102eb5780631051db341461031857806314bfd6d01461034557806318160ddd146103a857806323b872dd146103d157806326605772146104325780632f745c591461046257806336e4e8fd146104b857806345f28e771461051b57806348cd4cb1146105525780635a41217e1461059f578063612f2f37146105cc5780636352211e146105f15780636af04a571461065457806370480275146106a957806370a08231146106e257806372a0c16e1461072f5780638da5cb5b1461079257806395d89b41146107e75780639d5708ff14610875578063a9059cbb14610901578063aed2e7d414610943578063af794a4f14610966578063b7c9da33146109b3578063b95bb4f8146109f2578063d63e6ce714610a2d578063da76d5cd14610a7a578063df0c7a5514610a9d578063eb2c022314610b2e578063ee0f809e14610b67578063fecd348614610ba4575b600080fd5b34156101bc57600080fd5b6101c4610c4e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102075780820151818401526020810190506101ec565b505050509050019250505060405180910390f35b341561022657600080fd5b61022e610cf5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026e578082015181840152602081019050610253565b50505050905090810190601f16801561029b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102b457600080fd5b6102e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d38565b005b34156102f657600080fd5b6102fe610e56565b604051808215151515815260200191505060405180910390f35b341561032357600080fd5b61032b610e69565b604051808215151515815260200191505060405180910390f35b341561035057600080fd5b6103666004808035906020019091905050610e72565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103b357600080fd5b6103bb610eb1565b6040518082815260200191505060405180910390f35b34156103dc57600080fd5b610430600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ebe565b005b341561043d57600080fd5b61046060048080359060200190919080356000191690602001909190505061103f565b005b341561046d57600080fd5b6104a2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110d9565b6040518082815260200191505060405180910390f35b34156104c357600080fd5b6104d9600480803590602001909190505061118b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052657600080fd5b61053c60048080359060200190919050506111be565b6040518082815260200191505060405180910390f35b341561055d57600080fd5b6105656111e2565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105aa57600080fd5b6105b2611204565b604051808215151515815260200191505060405180910390f35b34156105d757600080fd5b6105ef60048080351515906020019091905050611217565b005b34156105fc57600080fd5b6106126004808035906020019091905050611329565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561065f57600080fd5b6106676113a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106b457600080fd5b6106e0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113c8565b005b34156106ed57600080fd5b610719600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611489565b6040518082815260200191505060405180910390f35b341561073a57600080fd5b61075060048080359060200190919050506114d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079d57600080fd5b6107a5611508565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107f257600080fd5b6107fa61152d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083a57808201518184015260208101905061081f565b50505050905090810190601f1680156108675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561088057600080fd5b6108a3600480803590602001909190803561ffff16906020019091905050611570565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156108ec5780820151818401526020810190506108d1565b50505050905001935050505060405180910390f35b341561090c57600080fd5b610941600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116c4565b005b341561094e57600080fd5b61096460048080359060200190919050506117d7565b005b341561097157600080fd5b61098760048080359060200190919050506118c3565b604051808481526020018381526020018260001916600019168152602001935050505060405180910390f35b6109dc600480803563ffffffff1690602001909190803561ffff169060200190919050506118fc565b6040518082815260200191505060405180910390f35b34156109fd57600080fd5b610a17600480803561ffff16906020019091905050611a61565b6040518082815260200191505060405180910390f35b3415610a3857600080fd5b610a40611afd565b60405180826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a8557600080fd5b610a9b6004808035906020019091905050611b1f565b005b3415610aa857600080fd5b610ac2600480803561ffff16906020019091905050611c33565b60405180848152602001836fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b3415610b3957600080fd5b610b65600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d6c565b005b610b8e60048080356000191690602001909190803561ffff16906020019091905050611ed9565b6040518082815260200191505060405180910390f35b3415610baf57600080fd5b610bc56004808035906020019091905050611fdc565b6040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610c11578082015181840152602081019050610bf6565b50505050905090810190601f168015610c3e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610c56612569565b610c5e612569565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610ce757602002820191906000526020600020905b815481526020019060010190808311610cd3575b505050505090508091505090565b610cfd61257d565b6040805190810160405280600c81526020017f45746865722054756c6970730000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610da557600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b601f60019054906101000a900460ff1681565b60006001905090565b600181815481101515610e8157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600280549050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610efa57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f6757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fd457600080fd5b610fdf8383836120ea565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b3373ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110ac57600080fd5b806002838154811015156110bc57fe5b906000526020600020906003020160020181600019169055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210151561112b57600080fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561117757fe5b906000526020600020900154905092915050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007818154811015156111cd57fe5b90600052602060002090016000915090505481565b600660109054906101000a90046fffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b60008060009150600090505b6001805490508110156112b4573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561125657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112a757600191506112b4565b8080600101915050611223565b8115156112c057600080fd5b82601f60006101000a81548160ff0219169083151502179055507fa74f277a6df77bc82a78197c46ad925095d31e26f4860f2273e09a82a66c06af601f60009054906101000a900460ff16604051808215151515815260200191505060405180910390a1505050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561139d57600080fd5b919050565b601f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142357600080fd5b600180548060010182816114379190612591565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61153561257d565b6040805190810160405280600481526020017f4554485400000000000000000000000000000000000000000000000000000000815250905090565b611578612569565b600080600080611586612569565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002094508860018680549050030393508761ffff16925060008412156116165760006040518059106115f45750595b90808252806020026020018201604052506000819150809050965096506116b8565b8761ffff1660018501121561162c576001840192505b8260405180591061163a5750595b90808252806020026020018201604052509150600090505b828161ffff1610156116ae57848481548110151561166c57fe5b906000526020600020900154828261ffff1681518110151561168a57fe5b90602001906020020181815250508380600190039450508080600101915050611652565b8160018501965096505b50505050509250929050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561170057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561176d57600080fd5b6117783383836120ea565b808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60008060009150600090505b600180549050811015611874573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561181657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156118675760019150611874565b80806001019150506117e3565b81151561188057600080fd5b61ffff60078054905010151561189557600080fd5b600780548060010182816118a991906125bd565b916000526020600020900160008590919091505550505050565b6002818154811015156118d257fe5b90600052602060002090600302016000915090508060000154908060010154908060020154905083565b60008060006007805490508461ffff1610151561191857600080fd5b8463ffffffff1661192885611a61565b023414151561193657600080fd5b60648563ffffffff161115151561194c57600080fd5b600091505b8463ffffffff168263ffffffff1610156119ef576119716000338661230a565b9050803373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a460008263ffffffff1614156119e2578092505b8180600101925050611951565b3373ffffffffffffffffffffffffffffffffffffffff167f433740f8fe758f5e94cce874551487537d73ef9c50141dd28124b9f7ea331395611a3086611a61565b87604051808381526020018263ffffffff1663ffffffff1681526020019250505060405180910390a2505092915050565b6000806007805490508361ffff16101515611a7b57600080fd5b600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16600660109054906101000a90046fffffffffffffffffffffffffffffffff1643036fffffffffffffffffffffffffffffffff16811515611ae857fe5b049050611af581846124c2565b915050919050565b600660009054906101000a90046fffffffffffffffffffffffffffffffff1681565b60008060009150600090505b600180549050811015611bbc573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611b5e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611baf5760019150611bbc565b8080600101915050611b2b565b811515611bc857600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318311151515611bee57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611c2e57600080fd5b505050565b6000806000806007805490508561ffff16101515611c5057600080fd5b600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16600660109054906101000a90046fffffffffffffffffffffffffffffffff1643036fffffffffffffffffffffffffffffffff16811515611cbd57fe5b049050611ccd60018201866124c2565b9350600660009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16600660109054906101000a90046fffffffffffffffffffffffffffffffff1643036fffffffffffffffffffffffffffffffff16811515611d3c57fe5b06600660009054906101000a90046fffffffffffffffffffffffffffffffff160392508243019150509193909250565b60008060009150600090505b600180549050811015611e09573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611dab57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611dfc5760019150611e09565b8080600101915050611d78565b811515611e1557600080fd5b82601f60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601f60016101000a81548160ff0219169083151502179055507f450db8da6efbe9c22f2347f7c2021231df1fc58d3ae9a2fa75d39fa44619930583604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b60006007805490508261ffff16101515611ef257600080fd5b611efb82611a61565b34141515611f0857600080fd5b611f1383338461230a565b9050803373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a43373ffffffffffffffffffffffffffffffffffffffff167f433740f8fe758f5e94cce874551487537d73ef9c50141dd28124b9f7ea331395611fb284611a61565b6001604051808381526020018263ffffffff1681526020019250505060405180910390a292915050565b600080611fe761257d565b6000611ff16125e9565b600060028781548110151561200257fe5b906000526020600020906003020192508260000154955082600101549450602060405180591061202f5750595b9080825280601f01601f19166020018201604052509150600090505b60208160ff1610156120dd5782600201548160ff1660208110151561206c57fe5b1a7f010000000000000000000000000000000000000000000000000000000000000002828260ff168151811015156120a057fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061204b565b8193505050509193909250565b600080836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161219091906125bd565b91600052602060002090016000859091909150555060006005600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600090505b818054905081101561227d5782828281548110151561225957fe5b90600052602060002090015414156122705761227d565b808060010191505061223e565b81805490508110151561228c57fe5b8160018380549050038154811015156122a157fe5b90600052602060002090015482828154811015156122bb57fe5b9060005260206000209001819055508160018380549050038154811015156122df57fe5b9060005260206000209001600090558180548091906001900361230291906125bd565b505050505050565b600080600080600061231a6125fd565b600280549050955042945085854173ffffffffffffffffffffffffffffffffffffffff16606443034060019004600143034060019004010101019350836040518082815260200191505060405180910390206001900492508661ffff1662010000808581151561238657fe5b04020191506060604051908101604052808381526020018681526020018a600019168152509050600280548060010182816123c19190612622565b91600052602060002090600302016000839091909150600082015181600001556020820151816001015560408201518160020190600019169055505050876003600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816124a191906125bd565b91600052602060002090016000889091909150555050505050509392505050565b60006017836fffffffffffffffffffffffffffffffff1610151561250a5761271060078361ffff168154811015156124f657fe5b906000526020600020900154029050612563565b670de0b6b3a76400006008846fffffffffffffffffffffffffffffffff1660178110151561253457fe5b015460078461ffff1681548110151561254957fe5b9060005260206000209001540281151561255f57fe5b0490505b92915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b8154818355818115116125b8578183600052602060002091820191016125b79190612654565b5b505050565b8154818355818115116125e4578183600052602060002091820191016125e39190612654565b5b505050565b602060405190810160405280600081525090565b6060604051908101604052806000815260200160008152602001600080191681525090565b81548183558181151161264f5760030281600302836000526020600020918201910161264e9190612679565b5b505050565b61267691905b8082111561267257600081600090555060010161265a565b5090565b90565b6126ad91905b808211156126a957600080820160009055600182016000905560028201600090555060030161267f565b5090565b90565b6102e060405190810160405280670de0b6b3a764000069ffffffffffffffffffff1681526020016714d1120d7b16000069ffffffffffffffffffff168152602001671f399b1438a1000069ffffffffffffffffffff168152602001672ee82c178cd2000069ffffffffffffffffffff168152602001674638bb30e37a000069ffffffffffffffffffff16815260200167695518c95537000069ffffffffffffffffffff168152602001679e34ef99a774000069ffffffffffffffffffff16815260200167ed4f67667b2e000069ffffffffffffffffffff16815260200168016345785d8a00000069ffffffffffffffffffff168152602001680214e8348c4f00000069ffffffffffffffffffff168152602001680320bf944ad40a000069ffffffffffffffffffff1681526020016804b06dbbb40f4a000069ffffffffffffffffffff16815260200168070c1cc73b00c8000069ffffffffffffffffffff168152602001680a922b2ad8812c000069ffffffffffffffffffff168152602001680fd45064eaee10000069ffffffffffffffffffff1681526020016817be7897606518000069ffffffffffffffffffff16815260200168239db4e31097a4000069ffffffffffffffffffff1681526020016835659ef93f0fc4000069ffffffffffffffffffff16815260200168503b203e9fba20000069ffffffffffffffffffff168152602001687858b05def9730000069ffffffffffffffffffff16815260200168b485088ce762c8000069ffffffffffffffffffff16815260200169010e822941d8cf38000069ffffffffffffffffffff1681526020016901957dda5142f1e0000069ffffffffffffffffffff168152506008906017612932929190612935565b50565b8260178101928215612972579160200282015b82811115612971578251829069ffffffffffffffffffff16905591602001919060010190612948565b5b50905061297f9190612654565b50905600a165627a7a72305820042129687ba89f2763e1e2f1e9d45c1068190b0da0fa136f1ca2027af5b79bae0029

Swarm Source

bzzr://042129687ba89f2763e1e2f1e9d45c1068190b0da0fa136f1ca2027af5b79bae
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.