Sponsored:   Ubex.com - World roadshow: Seoul Sep 17-19, Singapore Sep 19-20, Dubai 18-23. Meet us!.
Contract Overview
Balance: 25.951933885018132145 Ether
Ether Value: $5,417.21 (@ $208.74/ETH)
Transactions: 51729 txns
Token Tracker: ChickenHuntStock (CHS)
 Latest 25 txns From a total of 51729 Transactions
(+5 PendingTxns)

TxHash Age From To Value [TxFee]
0x5957eab5db1e09cfb8ec37e569899c1e39ee2178c83424444c1d3f8272352d4a(pending)0x26a24b3b5aa16e539e6bde37597a484c4242f156  IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether(Pending)
0x19739b489517e353ed9980b7db2c6cb8ad3a2ce7758371496a8817c8dced2a77(pending)0x7a8ece4f13555e7b21c43df827d092c3a2802497  IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether(Pending)
0xc67060c21e7a808984fed6ef6515fcf7eb4b645a8cc2b4076146382c1119d4db(pending)0xa081e78c46a27056b321a963b1321e43a644c6f4  IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether(Pending)
0x4979a7724d2a8844af3ea811497e7233cccbd05f952b0ccf5a5b7bf953494318(pending)0xb0c7e19dfc98cadda659ccb8e399d09acaf29e1c  IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether(Pending)
0x7df4673e527825a00301f0740e28bb82e3566919befccdcd01732e3923579457(pending)0xb0c7e19dfc98cadda659ccb8e399d09acaf29e1c  IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940.00204 Ether(Pending)
0xeb746b261849b0f28668a0a9b0e58a556fb0e2cabe577b6a1d32ed2ae1e940522 mins ago0x62eb3e90696d302f80c48d859943f0e244823436  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000318954
0xde49da945704f6dd62ea251a6e2738afe63311b57c5c5c928b2ac3d59e58761d4 mins ago0x62eb3e90696d302f80c48d859943f0e244823436  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000369456
0x12415c944b2d42064b03e234ab7e7875e9eb37398d89eed45de5f1f993d6bd127 mins ago0x8d70074cf6d6a6eba4bb2825efd2adfba63b4629  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00030788
0x16979930d0dc1a151d28bf307c82cb6209375d766aa0cd168b43a536b7c0839f7 mins ago0xfbe00d5fd051a5b1753a673e268277552f8d9d92  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0003201952
0x61ca8fa5a247621b61f16f96dc875d2cb612336e4a853c4ec49df5d5f44ea0827 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000265795
0xb6af45c54b454c2a2e007256fcfb1d9a7818c47c631c0744ed7797afa81bdbe29 mins ago0x983961f34fc4cfc5eafec371cdba9d56ff8c1935  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00030788
0xde466f74535ced5b45b957687f63e86ac730a79018ebaaa8529349a034e863339 mins ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0002711109
0xb9149001269741d9334c53629a38c98d60e809377283206be1c40ed528542e229 mins ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0003140376
0x2c925747deea3c66a9de2155e85b5d3e054b4f4a1d8f5fb257edf0cc21a5018b12 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00030756
0x8e5b787724419a35256a632ccbb9dc04b13b1b1bfeb488c288b818c536dfa04d15 mins ago0x62eb3e90696d302f80c48d859943f0e244823436  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000369456
0x954dc2be03bd0dc19bf28099ebdc29d185f2cf8c29cbd675960148406e7b96c818 mins ago0xfbe00d5fd051a5b1753a673e268277552f8d9d92  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0003325104
0x446ba184a4814c8344994284b7522546d374007a508fe5f78111cb3231ce8de621 mins ago0x778f7434956b899303708fa3c5fad85bf9d93e06  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000369456
0xfb7303d045f13a9ad532f30bc7022daacd233e17352c00124effa2600fc2ef0824 mins ago0xf50e790c7061eb704cda1dc10b3ce5ab66df8499  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000369456
0x16026e547cee88d540ba0f14d62035307d703cb2ecf8261335bf0920d14a80d229 mins ago0x5ec38047bf18fad55ffd4e140f6a62cba566c9fa  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0003325104
0x54f7f267cecc6693912f84afad2720f6d7e8dac3b4fb57e01360928500d7de0f31 mins ago0xfbe00d5fd051a5b1753a673e268277552f8d9d92  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0003325104
0x1f5d318d1d7a43ef95eddb47b9f214834bc55ae23f1677402510f317b1d483e131 mins ago0x62eb3e90696d302f80c48d859943f0e244823436  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000369456
0xe755212e62d6691b6b14461462247673df6442eaa6f89d02e513fdf1877b2d4131 mins ago0x778f7434956b899303708fa3c5fad85bf9d93e06  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000372113
0x3e3c69290dc855e9c090d8a11b0163d6a96d711e6fef61617021efaacda28cc333 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00030788
0xdfc8ac018b65d06298e576fb780379f86ccc1a9025658206dbb6c53bd0ce1a3d33 mins ago0x8d70074cf6d6a6eba4bb2825efd2adfba63b4629  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940.2313 Ether0.00053962
0x8aa97fbe633c5a96bc1f177e51f3670d1300b06f6ed1565e5c8aade3e267c6b036 mins ago0x778f7434956b899303708fa3c5fad85bf9d93e06  IN   0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000400244
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0xb6bc32e8bd073fc77e260165f9eeb5f61db88a76927ca7e0e49860e94ef3bb6363556413 hrs 28 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xf50e790c7061eb704cda1dc10b3ce5ab66df84990.015395841400847272 Ether
0x8dcd853f69a4cf6790cb8989c187392bbf1e4cb8fb580abbee4e29c264f616da63552175 hrs 11 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x2845a83d2a6cb264a5e35103ef10472746f43c4d0.015618692091229657 Ether
0x2c3305b0e9970d40217ddbc469af97ad97dd7b7edc5058aee04c4e66abce5e1163551215 hrs 38 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.156212194468570975 Ether
0x46c2b156a523ae6a1e78ffb1deed1b46bec26a781ea189e4ade35ee29382131463550755 hrs 49 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.077630478732835656 Ether
0x9bb1a3de021faf7fd65cd04c56968b477a5f48af2264d4395c2734fb8f69dc1363550246 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x62eb3e90696d302f80c48d859943f0e2448234360.015595512230772331 Ether
0x42c2c9c4d3b1066c922debb013f19c7b9aea7c361c53bc2b6f868d9e9d99086b63550166 hrs 1 min ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x46acaf03cbdca1399f6784d51bd3cb6df0008a9b0.008065344344304318 Ether
0x2aaf392971703b4c56ebefe9af11df0db9dd2b9faf464d31aad115f45a166ccf635379810 hrs 57 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x778f7434956b899303708fa3c5fad85bf9d93e060.042017605663630868 Ether
0xa02d37bc13563ef470f7ea07500848ef9da71c7083dbdbd998517ac21f380df3635281414 hrs 58 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x17914c91f4948fc126cd90b4657fb497a76b57e50.018102631042786835 Ether
0x745ddc977db848136be3e5c0d01274b90c63783a0a074bf3d89c878b9cf483c4635225817 hrs 10 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x46acaf03cbdca1399f6784d51bd3cb6df0008a9b0.005865202486834011 Ether
0x04486041f30f985c9464f89ae39b995a08352192a3fd628db902c7017afccb1f635200118 hrs 15 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x7f2f933ee22b802935449911fc8c7f35fb00409c0.022539844104395848 Ether
0x0047a14387e6601b3a6932bbe25e739eacc3e8e272a1300d246759acec68b67f635140120 hrs 35 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xa63c72f57eaec7bef6cf6ce5c61cfde05dae9fcf0.02011751694853364 Ether
0x51e026d9f0bbf07fcd7928fcd50476782b2322590210f2f88c3e157391ffdadb635130420 hrs 56 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x694ccab8fbe06350147fcd3f12d885e34f79ea850.011466959346993407 Ether
0xd15dcdb4d38dc5454fcedc14336686c66c3e6825cdbe59abb1f6c215a50d282763502941 day 53 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x62eb3e90696d302f80c48d859943f0e2448234360.028101800880458782 Ether
0x647811ef656b8dc396c2a410869239d35a0594927ee2a691a52c8f54c50a724863501791 day 1 hr ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.066218570661086412 Ether
0xb9f37dd5ffacd41cb3144814594023df815cef52839bb1758840fc65140c8dbf63501221 day 1 hr ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xe116bb99d8cc19ad792ca8c7e5166882b34751920.001796137329487673 Ether
0xe1d3c743b27c40867bc17687d5aa3749099a07f2ae1512520fcd015196cfa8db63499811 day 2 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x5ec38047bf18fad55ffd4e140f6a62cba566c9fa0.03019541512919149 Ether
0xe80e5a5e552645b3138fdf99c74035d3d8ab9991e5bb620114890dde1f63fe6e63492271 day 4 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd90b6034afee46bd3c337d298ea3afb786d56d4b0.009634823063485016 Ether
0x2b05c0d4ac328200c687ccdf0ec6e1441333c35e02a1edc2d6e87fa79165be3263492111 day 5 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x2845a83d2a6cb264a5e35103ef10472746f43c4d0.012476660467606867 Ether
0x1420e18e341ce2521b3ebd824b501a8af6adce5a2f0acb8402123183347e920d63490521 day 5 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x983961f34fc4cfc5eafec371cdba9d56ff8c19350.044071740761067409 Ether
0x225e753f7777ab8b3ce083bed4682478921956046415eebdc8a139a25e70cd8163490451 day 5 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.126454620531444025 Ether
0x8c1ef1fe39151bb016a154c84c8a951cb06663db993f07924ff7982cdd41d6bc63470611 day 13 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x2a73f607741ae1a91a1107c7173ee5051a95bade4.360293491692222634 Ether
0xbae9404eb7610f70f983925d35ce54af0b13108110dbd8ee5e6aa26f81d6914d63460631 day 17 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x0687a4170979c0505b1336d1b12ccbe25a6ef4bf0.00360738064531576 Ether
0xc5457f88d91cd6acd007170524188fcbfcf5db4009b20ec8b7640380eb4ef09e63460451 day 17 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x983961f34fc4cfc5eafec371cdba9d56ff8c19350.084983022340776938 Ether
0xe1b032cf2f9d846e6df0ccef3d167294a16fe3900736bf4b85f47240498bc71363458241 day 18 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x46acaf03cbdca1399f6784d51bd3cb6df0008a9b0.008950675487074769 Ether
0xa595ad8114b9c9bfba2ccb9db54a8b99dc3689e865036fcfb29fc5cbbe9d9a5863456051 day 19 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x0ae4c14352fd3eaa17d74dab43f248658883474c0.055826243394758137 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ChickenHunt
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.24;


library SafeMath {

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

  function square(uint256 a) internal pure returns (uint256) {
    return mul(a, a);
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
  }

}


contract ERC20Interface {

  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );

  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );

  function totalSupply() public view returns (uint256);
  function balanceOf(address _owner) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
  function approve(address _spender, uint256 _value) public returns (bool);
  function allowance( address _owner, address _spender) public view returns (uint256);

}


/**
 * @title CHStock
 * @author M.H. Kang
 */
contract CHStock is ERC20Interface {

  using SafeMath for uint256;

  /* EVENT */

  event RedeemShares(
    address indexed user,
    uint256 shares,
    uint256 dividends
  );

  /* STORAGE */

  string public name = "ChickenHuntStock";
  string public symbol = "CHS";
  uint8 public decimals = 18;
  uint256 public totalShares;
  uint256 public dividendsPerShare;
  uint256 public constant CORRECTION = 1 << 64;
  mapping (address => uint256) public ethereumBalance;
  mapping (address => uint256) internal shares;
  mapping (address => uint256) internal refund;
  mapping (address => uint256) internal deduction;
  mapping (address => mapping (address => uint256)) internal allowed;

  /* FUNCTION */

  function redeemShares() public {
    uint256 _shares = shares[msg.sender];
    uint256 _dividends = dividendsOf(msg.sender);

    delete shares[msg.sender];
    delete refund[msg.sender];
    delete deduction[msg.sender];
    totalShares = totalShares.sub(_shares);
    ethereumBalance[msg.sender] = ethereumBalance[msg.sender].add(_dividends);

    emit RedeemShares(msg.sender, _shares, _dividends);
  }

  function transfer(address _to, uint256 _value) public returns (bool) {
    _transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value)
    public
    returns (bool)
  {
    require(_value <= allowed[_from][msg.sender]);
    allowed[_from][msg.sender] -= _value;
    _transfer(_from, _to, _value);
    return true;
  }

  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  function dividendsOf(address _shareholder) public view returns (uint256) {
    return dividendsPerShare.mul(shares[_shareholder]).add(refund[_shareholder]).sub(deduction[_shareholder]) / CORRECTION;
  }

  function totalSupply() public view returns (uint256) {
    return totalShares;
  }

  function balanceOf(address _owner) public view returns (uint256) {
    return shares[_owner];
  }

  function allowance(address _owner, address _spender)
    public
    view
    returns (uint256)
  {
    return allowed[_owner][_spender];
  }

  /* INTERNAL FUNCTION */

  function _giveShares(address _user, uint256 _ethereum) internal {
    if (_ethereum > 0) {
      totalShares = totalShares.add(_ethereum);
      deduction[_user] = deduction[_user].add(dividendsPerShare.mul(_ethereum));
      shares[_user] = shares[_user].add(_ethereum);
      dividendsPerShare = dividendsPerShare.add(_ethereum.mul(CORRECTION) / totalShares);

      emit Transfer(address(0), _user, _ethereum);
    }
  }

  function _transfer(address _from, address _to, uint256 _value) internal {
    require(_to != address(0));
    require(_value <= shares[_from]);
    uint256 _rawProfit = dividendsPerShare.mul(_value);

    uint256 _refund = refund[_from].add(_rawProfit);
    uint256 _min = _refund < deduction[_from] ? _refund : deduction[_from];
    refund[_from] = _refund.sub(_min);
    deduction[_from] = deduction[_from].sub(_min);
    deduction[_to] = deduction[_to].add(_rawProfit);

    shares[_from] = shares[_from].sub(_value);
    shares[_to] = shares[_to].add(_value);

    emit Transfer(_from, _to, _value);
  }

}


/**
 * @title CHGameBase
 * @author M.H. Kang
 */
contract CHGameBase is CHStock {

  /* DATA STRUCT */

  struct House {
    Hunter hunter;
    uint256 huntingPower;
    uint256 offensePower;
    uint256 defensePower;
    uint256 huntingMultiplier;
    uint256 offenseMultiplier;
    uint256 defenseMultiplier;
    uint256 depots;
    uint256[] pets;
  }

  struct Hunter {
    uint256 strength;
    uint256 dexterity;
    uint256 constitution;
    uint256 resistance;
  }

  struct Store {
    address owner;
    uint256 cut;
    uint256 cost;
    uint256 balance;
  }

  /* STORAGE */

  Store public store;
  uint256 public devCut;
  uint256 public devFee;
  uint256 public altarCut;
  uint256 public altarFund;
  uint256 public dividendRate;
  uint256 public totalChicken;
  address public chickenTokenDelegator;
  mapping (address => uint256) public lastSaveTime;
  mapping (address => uint256) public savedChickenOf;
  mapping (address => House) internal houses;

  /* FUNCTION */

  function saveChickenOf(address _user) public returns (uint256) {
    uint256 _unclaimedChicken = _unclaimedChickenOf(_user);
    totalChicken = totalChicken.add(_unclaimedChicken);
    uint256 _chicken = savedChickenOf[_user].add(_unclaimedChicken);
    savedChickenOf[_user] = _chicken;
    lastSaveTime[_user] = block.timestamp;
    return _chicken;
  }

  function transferChickenFrom(address _from, address _to, uint256 _value)
    public
    returns (bool)
  {
    require(msg.sender == chickenTokenDelegator);
    require(saveChickenOf(_from) >= _value);
    savedChickenOf[_from] = savedChickenOf[_from] - _value;
    savedChickenOf[_to] = savedChickenOf[_to].add(_value);

    return true;
  }

  function chickenOf(address _user) public view returns (uint256) {
    return savedChickenOf[_user].add(_unclaimedChickenOf(_user));
  }

  /* INTERNAL FUNCTION */

  function _payChicken(address _user, uint256 _chicken) internal {
    uint256 _unclaimedChicken = _unclaimedChickenOf(_user);
    uint256 _extraChicken;

    if (_chicken > _unclaimedChicken) {
      _extraChicken = _chicken - _unclaimedChicken;
      require(savedChickenOf[_user] >= _extraChicken);
      savedChickenOf[_user] -= _extraChicken;
      totalChicken -= _extraChicken;
    } else {
      _extraChicken = _unclaimedChicken - _chicken;
      totalChicken = totalChicken.add(_extraChicken);
      savedChickenOf[_user] += _extraChicken;
    }

    lastSaveTime[_user] = block.timestamp;
  }

  function _payEthereumAndDistribute(uint256 _cost) internal {
    require(_cost * 100 / 100 == _cost);
    _payEthereum(_cost);

    uint256 _toShareholders = _cost * dividendRate / 100;
    uint256 _toAltar = _cost * altarCut / 100;
    uint256 _toStore = _cost * store.cut / 100;
    devFee = devFee.add(_cost - _toShareholders - _toAltar - _toStore);

    _giveShares(msg.sender, _toShareholders);
    altarFund = altarFund.add(_toAltar);
    store.balance = store.balance.add(_toStore);
  }

  function _payEthereum(uint256 _cost) internal {
    uint256 _extra;
    if (_cost > msg.value) {
      _extra = _cost - msg.value;
      require(ethereumBalance[msg.sender] >= _extra);
      ethereumBalance[msg.sender] -= _extra;
    } else {
      _extra = msg.value - _cost;
      ethereumBalance[msg.sender] = ethereumBalance[msg.sender].add(_extra);
    }
  }

  function _unclaimedChickenOf(address _user) internal view returns (uint256) {
    uint256 _timestamp = lastSaveTime[_user];
    if (_timestamp > 0 && _timestamp < block.timestamp) {
      return houses[_user].huntingPower.mul(
        houses[_user].huntingMultiplier
      ).mul(block.timestamp - _timestamp) / 100;
    } else {
      return 0;
    }
  }

  function _houseOf(address _user)
    internal
    view
    returns (House storage _house)
  {
    _house = houses[_user];
    require(_house.depots > 0);
  }

}


/**
 * @title CHHunter
 * @author M.H. Kang
 */
contract CHHunter is CHGameBase {

  /* EVENT */

  event UpgradeHunter(
    address indexed user,
    string attribute,
    uint256 to
  );

  /* DATA STRUCT */

  struct Config {
    uint256 chicken;
    uint256 ethereum;
    uint256 max;
  }

  /* STORAGE */

  Config public typeA;
  Config public typeB;

  /* FUNCTION */

  function upgradeStrength(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.strength;
    require(typeA.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeA);

    uint256 _increment = _house.hunter.dexterity.mul(2).add(8).mul(_to.square() - _from ** 2);
    _house.hunter.strength = _to;
    _house.huntingPower = _house.huntingPower.add(_increment);
    _house.offensePower = _house.offensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "strength", _to);
  }

  function upgradeDexterity(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.dexterity;
    require(typeB.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeB);

    uint256 _increment = _house.hunter.strength.square().mul((_to - _from).mul(2));
    _house.hunter.dexterity = _to;
    _house.huntingPower = _house.huntingPower.add(_increment);
    _house.offensePower = _house.offensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "dexterity", _to);
  }

  function upgradeConstitution(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.constitution;
    require(typeA.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeA);

    uint256 _increment = _house.hunter.resistance.mul(2).add(8).mul(_to.square() - _from ** 2);
    _house.hunter.constitution = _to;
    _house.defensePower = _house.defensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "constitution", _to);
  }

  function upgradeResistance(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.resistance;
    require(typeB.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeB);

    uint256 _increment = _house.hunter.constitution.square().mul((_to - _from).mul(2));
    _house.hunter.resistance = _to;
    _house.defensePower = _house.defensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "resistance", _to);
  }

  /* INTERNAL FUNCTION */

  function _payForUpgrade(uint256 _from, uint256 _to, Config _type) internal {
    uint256 _chickenCost = _type.chicken.mul(_gapOfCubeSum(_from, _to));
    _payChicken(msg.sender, _chickenCost);
    uint256 _ethereumCost = _type.ethereum.mul(_gapOfSquareSum(_from, _to));
    _payEthereumAndDistribute(_ethereumCost);
  }

  function _gapOfSquareSum(uint256 _before, uint256 _after)
    internal
    pure
    returns (uint256)
  {
    // max value is capped to uint32
    return (_after * (_after - 1) * (2 * _after - 1) - _before * (_before - 1) * (2 * _before - 1)) / 6;
  }

  function _gapOfCubeSum(uint256 _before, uint256 _after)
    internal
    pure
    returns (uint256)
  {
    // max value is capped to uint32
    return ((_after * (_after - 1)) ** 2 - (_before * (_before - 1)) ** 2) >> 2;
  }

}


/**
 * @title CHHouse
 * @author M.H. Kang
 */
contract CHHouse is CHHunter {

  /* EVENT */

  event UpgradePet(
    address indexed user,
    uint256 id,
    uint256 to
  );

  event UpgradeDepot(
    address indexed user,
    uint256 to
  );

  event BuyItem(
    address indexed from,
    address indexed to,
    uint256 indexed id,
    uint256 cost
  );

  event BuyStore(
    address indexed from,
    address indexed to,
    uint256 cost
  );

  /* DATA STRUCT */

  struct Pet {
    uint256 huntingPower;
    uint256 offensePower;
    uint256 defensePower;
    uint256 chicken;
    uint256 ethereum;
    uint256 max;
  }

  struct Item {
    address owner;
    uint256 huntingMultiplier;
    uint256 offenseMultiplier;
    uint256 defenseMultiplier;
    uint256 cost;
  }

  struct Depot {
    uint256 ethereum;
    uint256 max;
  }

  /* STORAGE */

  uint256 public constant INCREMENT_RATE = 12; // 120% for Item and Store
  Depot public depot;
  Pet[] public pets;
  Item[] public items;

  /* FUNCTION */

  function buyDepots(uint256 _amount) external payable {
    House storage _house = _houseOf(msg.sender);
    _house.depots = _house.depots.add(_amount);
    require(_house.depots <= depot.max);
    _payEthereumAndDistribute(_amount.mul(depot.ethereum));

    emit UpgradeDepot(msg.sender, _house.depots);
  }

  function buyPets(uint256 _id, uint256 _amount) external payable {
    require(_id < pets.length);
    Pet memory _pet = pets[_id];
    uint256 _chickenCost = _amount * _pet.chicken;
    _payChicken(msg.sender, _chickenCost);
    uint256 _ethereumCost = _amount * _pet.ethereum;
    _payEthereumAndDistribute(_ethereumCost);

    House storage _house = _houseOf(msg.sender);
    if (_house.pets.length < _id + 1) {
      _house.pets.length = _id + 1;
    }
    _house.pets[_id] = _house.pets[_id].add(_amount);
    require(_house.pets[_id] <= _pet.max);

    _house.huntingPower = _house.huntingPower.add(_pet.huntingPower * _amount);
    _house.offensePower = _house.offensePower.add(_pet.offensePower * _amount);
    _house.defensePower = _house.defensePower.add(_pet.defensePower * _amount);

    emit UpgradePet(msg.sender, _id, _house.pets[_id]);
  }

  // This is independent of Stock and Altar.
  function buyItem(uint256 _id) external payable {
    Item storage _item = items[_id];
    address _from = _item.owner;
    uint256 _price = _item.cost.mul(INCREMENT_RATE) / 10;
    _payEthereum(_price);

    saveChickenOf(_from);
    House storage _fromHouse = _houseOf(_from);
    _fromHouse.huntingMultiplier = _fromHouse.huntingMultiplier.sub(_item.huntingMultiplier);
    _fromHouse.offenseMultiplier = _fromHouse.offenseMultiplier.sub(_item.offenseMultiplier);
    _fromHouse.defenseMultiplier = _fromHouse.defenseMultiplier.sub(_item.defenseMultiplier);

    saveChickenOf(msg.sender);
    House storage _toHouse = _houseOf(msg.sender);
    _toHouse.huntingMultiplier = _toHouse.huntingMultiplier.add(_item.huntingMultiplier);
    _toHouse.offenseMultiplier = _toHouse.offenseMultiplier.add(_item.offenseMultiplier);
    _toHouse.defenseMultiplier = _toHouse.defenseMultiplier.add(_item.defenseMultiplier);

    uint256 _halfMargin = _price.sub(_item.cost) / 2;
    devFee = devFee.add(_halfMargin);
    ethereumBalance[_from] = ethereumBalance[_from].add(_price - _halfMargin);

    items[_id].cost = _price;
    items[_id].owner = msg.sender;

    emit BuyItem(_from, msg.sender, _id, _price);
  }

  // This is independent of Stock and Altar.
  function buyStore() external payable {
    address _from = store.owner;
    uint256 _price = store.cost.mul(INCREMENT_RATE) / 10;
    _payEthereum(_price);

    uint256 _halfMargin = (_price - store.cost) / 2;
    devFee = devFee.add(_halfMargin);
    ethereumBalance[_from] = ethereumBalance[_from].add(_price - _halfMargin).add(store.balance);

    store.cost = _price;
    store.owner = msg.sender;
    delete store.balance;

    emit BuyStore(_from, msg.sender, _price);
  }

  function withdrawStoreBalance() public {
    ethereumBalance[store.owner] = ethereumBalance[store.owner].add(store.balance);
    delete store.balance;
  }

}


/**
 * @title CHArena
 * @author M.H. Kang
 */
contract CHArena is CHHouse {

  /* EVENT */

  event Attack(
    address indexed attacker,
    address indexed defender,
    uint256 booty
  );

  /* STORAGE */

  mapping(address => uint256) public attackCooldown;
  uint256 public cooldownTime;

  /* FUNCTION */

  function attack(address _target) external {
    require(attackCooldown[msg.sender] < block.timestamp);
    House storage _attacker = houses[msg.sender];
    House storage _defender = houses[_target];
    if (_attacker.offensePower.mul(_attacker.offenseMultiplier)
        > _defender.defensePower.mul(_defender.defenseMultiplier)) {
      uint256 _chicken = saveChickenOf(_target);
      _chicken = _defender.depots > 0 ? _chicken / _defender.depots : _chicken;
      savedChickenOf[_target] = savedChickenOf[_target] - _chicken;
      savedChickenOf[msg.sender] = savedChickenOf[msg.sender].add(_chicken);
      attackCooldown[msg.sender] = block.timestamp + cooldownTime;

      emit Attack(msg.sender, _target, _chicken);
    }
  }

}


/**
 * @title CHAltar
 * @author M.H. Kang
 */
contract CHAltar is CHArena {

  /* EVENT */

  event NewAltarRecord(uint256 id, uint256 ethereum);
  event ChickenToAltar(address indexed user, uint256 id, uint256 chicken);
  event EthereumFromAltar(address indexed user, uint256 id, uint256 ethereum);

  /* DATA STRUCT */

  struct AltarRecord {
    uint256 ethereum;
    uint256 chicken;
  }

  struct TradeBook {
    uint256 altarRecordId;
    uint256 chicken;
  }

  /* STORAGE */

  uint256 public genesis;
  mapping (uint256 => AltarRecord) public altarRecords;
  mapping (address => TradeBook) public tradeBooks;

  /* FUNCTION */

  function chickenToAltar(uint256 _chicken) external {
    require(_chicken > 0);

    _payChicken(msg.sender, _chicken);
    uint256 _id = _getCurrentAltarRecordId();
    AltarRecord storage _altarRecord = _getAltarRecord(_id);
    require(_altarRecord.ethereum * _chicken / _chicken == _altarRecord.ethereum);
    TradeBook storage _tradeBook = tradeBooks[msg.sender];
    if (_tradeBook.altarRecordId < _id) {
      _resolveTradeBook(_tradeBook);
      _tradeBook.altarRecordId = _id;
    }
    _altarRecord.chicken = _altarRecord.chicken.add(_chicken);
    _tradeBook.chicken += _chicken;

    emit ChickenToAltar(msg.sender, _id, _chicken);
  }

  function ethereumFromAltar() external {
    uint256 _id = _getCurrentAltarRecordId();
    TradeBook storage _tradeBook = tradeBooks[msg.sender];
    require(_tradeBook.altarRecordId < _id);
    _resolveTradeBook(_tradeBook);
  }

  function tradeBookOf(address _user)
    public
    view
    returns (
      uint256 _id,
      uint256 _ethereum,
      uint256 _totalChicken,
      uint256 _chicken,
      uint256 _income
    )
  {
    TradeBook memory _tradeBook = tradeBooks[_user];
    _id = _tradeBook.altarRecordId;
    _chicken = _tradeBook.chicken;
    AltarRecord memory _altarRecord = altarRecords[_id];
    _totalChicken = _altarRecord.chicken;
    _ethereum = _altarRecord.ethereum;
    _income = _totalChicken > 0 ? _ethereum.mul(_chicken) / _totalChicken : 0;
  }

  /* INTERNAL FUNCTION */

  function _resolveTradeBook(TradeBook storage _tradeBook) internal {
    if (_tradeBook.chicken > 0) {
      AltarRecord memory _oldAltarRecord = altarRecords[_tradeBook.altarRecordId];
      uint256 _ethereum = _oldAltarRecord.ethereum.mul(_tradeBook.chicken) / _oldAltarRecord.chicken;
      delete _tradeBook.chicken;
      ethereumBalance[msg.sender] = ethereumBalance[msg.sender].add(_ethereum);

      emit EthereumFromAltar(msg.sender, _tradeBook.altarRecordId, _ethereum);
    }
  }

  function _getCurrentAltarRecordId() internal view returns (uint256) {
    return (block.timestamp - genesis) / 86400;
  }

  function _getAltarRecord(uint256 _id) internal returns (AltarRecord storage _altarRecord) {
    _altarRecord = altarRecords[_id];
    if (_altarRecord.ethereum == 0) {
      uint256 _ethereum = altarFund / 10;
      _altarRecord.ethereum = _ethereum;
      altarFund -= _ethereum;

      emit NewAltarRecord(_id, _ethereum);
    }
  }

}


/**
 * @title CHCommittee
 * @author M.H. Kang
 */
contract CHCommittee is CHAltar {

  /* EVENT */

  event NewPet(
    uint256 id,
    uint256 huntingPower,
    uint256 offensePower,
    uint256 defense,
    uint256 chicken,
    uint256 ethereum,
    uint256 max
  );

  event ChangePet(
    uint256 id,
    uint256 chicken,
    uint256 ethereum,
    uint256 max
  );

  event NewItem(
    uint256 id,
    uint256 huntingMultiplier,
    uint256 offenseMultiplier,
    uint256 defenseMultiplier,
    uint256 ethereum
  );

  event SetDepot(uint256 ethereum, uint256 max);

  event SetConfiguration(
    uint256 chickenA,
    uint256 ethereumA,
    uint256 maxA,
    uint256 chickenB,
    uint256 ethereumB,
    uint256 maxB
  );

  event SetDistribution(
    uint256 dividendRate,
    uint256 altarCut,
    uint256 storeCut,
    uint256 devCut
  );

  event SetCooldownTime(uint256 cooldownTime);
  event SetNameAndSymbol(string name, string symbol);
  event SetDeveloper(address developer);
  event SetCommittee(address committee);

  /* STORAGE */

  address public committee;
  address public developer;

  /* FUNCTION */

  function callFor(address _to, uint256 _value, uint256 _gas, bytes _code)
    external
    payable
    onlyCommittee
    returns (bool)
  {
    return _to.call.value(_value).gas(_gas)(_code);
  }

  function addPet(
    uint256 _huntingPower,
    uint256 _offensePower,
    uint256 _defense,
    uint256 _chicken,
    uint256 _ethereum,
    uint256 _max
  )
    public
    onlyCommittee
  {
    require(_max > 0);
    require(_max == uint256(uint32(_max)));
    uint256 _newLength = pets.push(
      Pet(_huntingPower, _offensePower, _defense, _chicken, _ethereum, _max)
    );

    emit NewPet(
      _newLength - 1,
      _huntingPower,
      _offensePower,
      _defense,
      _chicken,
      _ethereum,
      _max
    );
  }

  function changePet(
    uint256 _id,
    uint256 _chicken,
    uint256 _ethereum,
    uint256 _max
  )
    public
    onlyCommittee
  {
    require(_id < pets.length);
    Pet storage _pet = pets[_id];
    require(_max >= _pet.max && _max == uint256(uint32(_max)));

    _pet.chicken = _chicken;
    _pet.ethereum = _ethereum;
    _pet.max = _max;

    emit ChangePet(_id, _chicken, _ethereum, _max);
  }

  function addItem(
    uint256 _huntingMultiplier,
    uint256 _offenseMultiplier,
    uint256 _defenseMultiplier,
    uint256 _price
  )
    public
    onlyCommittee
  {
    uint256 _cap = 1 << 16;
    require(
      _huntingMultiplier < _cap &&
      _offenseMultiplier < _cap &&
      _defenseMultiplier < _cap
    );
    saveChickenOf(committee);
    House storage _house = _houseOf(committee);
    _house.huntingMultiplier = _house.huntingMultiplier.add(_huntingMultiplier);
    _house.offenseMultiplier = _house.offenseMultiplier.add(_offenseMultiplier);
    _house.defenseMultiplier = _house.defenseMultiplier.add(_defenseMultiplier);

    uint256 _newLength = items.push(
      Item(
        committee,
        _huntingMultiplier,
        _offenseMultiplier,
        _defenseMultiplier,
        _price
      )
    );

    emit NewItem(
      _newLength - 1,
      _huntingMultiplier,
      _offenseMultiplier,
      _defenseMultiplier,
      _price
    );
  }

  function setDepot(uint256 _price, uint256 _max) public onlyCommittee {
    require(_max >= depot.max);

    depot.ethereum = _price;
    depot.max = _max;

    emit SetDepot(_price, _max);
  }

  function setConfiguration(
    uint256 _chickenA,
    uint256 _ethereumA,
    uint256 _maxA,
    uint256 _chickenB,
    uint256 _ethereumB,
    uint256 _maxB
  )
    public
    onlyCommittee
  {
    require(_maxA >= typeA.max && (_maxA == uint256(uint32(_maxA))));
    require(_maxB >= typeB.max && (_maxB == uint256(uint32(_maxB))));

    typeA.chicken = _chickenA;
    typeA.ethereum = _ethereumA;
    typeA.max = _maxA;

    typeB.chicken = _chickenB;
    typeB.ethereum = _ethereumB;
    typeB.max = _maxB;

    emit SetConfiguration(_chickenA, _ethereumA, _maxA, _chickenB, _ethereumB, _maxB);
  }

  function setDistribution(
    uint256 _dividendRate,
    uint256 _altarCut,
    uint256 _storeCut,
    uint256 _devCut
  )
    public
    onlyCommittee
  {
    require(_storeCut > 0);
    require(
      _dividendRate.add(_altarCut).add(_storeCut).add(_devCut) == 100
    );

    dividendRate = _dividendRate;
    altarCut = _altarCut;
    store.cut = _storeCut;
    devCut = _devCut;

    emit SetDistribution(_dividendRate, _altarCut, _storeCut, _devCut);
  }

  function setCooldownTime(uint256 _cooldownTime) public onlyCommittee {
    cooldownTime = _cooldownTime;

    emit SetCooldownTime(_cooldownTime);
  }

  function setNameAndSymbol(string _name, string _symbol)
    public
    onlyCommittee
  {
    name = _name;
    symbol = _symbol;

    emit SetNameAndSymbol(_name, _symbol);
  }

  function setDeveloper(address _developer) public onlyCommittee {
    require(_developer != address(0));
    withdrawDevFee();
    developer = _developer;

    emit SetDeveloper(_developer);
  }

  function setCommittee(address _committee) public onlyCommittee {
    require(_committee != address(0));
    committee = _committee;

    emit SetCommittee(_committee);
  }

  function withdrawDevFee() public {
    ethereumBalance[developer] = ethereumBalance[developer].add(devFee);
    delete devFee;
  }

  /* MODIFIER */

  modifier onlyCommittee {
    require(msg.sender == committee);
    _;
  }

}


/**
 * @title ChickenHunt
 * @author M.H. Kang
 */
contract ChickenHunt is CHCommittee {

  /* EVENT */

  event Join(address user);

  /* CONSTRUCTOR */

  constructor() public {
    committee = msg.sender;
    developer = msg.sender;
  }

  /* FUNCTION */

  function init(address _chickenTokenDelegator) external onlyCommittee {
    require(chickenTokenDelegator == address(0));
    chickenTokenDelegator = _chickenTokenDelegator;
    genesis = 1525791600;
    join();
    store.owner = msg.sender;
    store.cost = 0.1 ether;
    setConfiguration(100, 0.00001 ether, 99, 100000, 0.001 ether, 9);
    setDistribution(20, 75, 1, 4);
    setCooldownTime(600);
    setDepot(0.05 ether, 9);
    addItem(5, 5, 0, 0.01 ether);
    addItem(0, 0, 5, 0.01 ether);
    addPet(1000, 0, 0, 100000, 0.01 ether, 9);
    addPet(0, 1000, 0, 100000, 0.01 ether, 9);
    addPet(0, 0, 1000, 202500, 0.01 ether, 9);
  }

  function withdraw() external {
    uint256 _ethereum = ethereumBalance[msg.sender];
    delete ethereumBalance[msg.sender];
    msg.sender.transfer(_ethereum);
  }

  function join() public {
    House storage _house = houses[msg.sender];
    require(_house.depots == 0);
    _house.hunter = Hunter(1, 1, 1, 1);
    _house.depots = 1;
    _house.huntingPower = 10;
    _house.offensePower = 10;
    _house.defensePower = 110;
    _house.huntingMultiplier = 10;
    _house.offenseMultiplier = 10;
    _house.defenseMultiplier = 10;
    lastSaveTime[msg.sender] = block.timestamp;

    emit Join(msg.sender);
  }

  function hunterOf(address _user)
    public
    view
    returns (
      uint256 _strength,
      uint256 _dexterity,
      uint256 _constitution,
      uint256 _resistance
    )
  {
    Hunter memory _hunter = houses[_user].hunter;
    return (
      _hunter.strength,
      _hunter.dexterity,
      _hunter.constitution,
      _hunter.resistance
    );
  }

  function detailsOf(address _user)
    public
    view
    returns (
      uint256[2] _hunting,
      uint256[2] _offense,
      uint256[2] _defense,
      uint256[4] _hunter,
      uint256[] _pets,
      uint256 _depots,
      uint256 _savedChicken,
      uint256 _lastSaveTime,
      uint256 _cooldown
    )
  {
    House memory _house = houses[_user];

    _hunting = [_house.huntingPower, _house.huntingMultiplier];
    _offense = [_house.offensePower, _house.offenseMultiplier];
    _defense = [_house.defensePower, _house.defenseMultiplier];
    _hunter = [
      _house.hunter.strength,
      _house.hunter.dexterity,
      _house.hunter.constitution,
      _house.hunter.resistance
    ];
    _pets = _house.pets;
    _depots = _house.depots;
    _savedChicken = savedChickenOf[_user];
    _lastSaveTime = lastSaveTime[_user];
    _cooldown = attackCooldown[_user];
  }

}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_shareholder","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"depot","outputs":[{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"buyPets","outputs":[],"payable":true,"stateMutability":"payable","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":"_user","type":"address"}],"name":"detailsOf","outputs":[{"name":"_hunting","type":"uint256[2]"},{"name":"_offense","type":"uint256[2]"},{"name":"_defense","type":"uint256[2]"},{"name":"_hunter","type":"uint256[4]"},{"name":"_pets","type":"uint256[]"},{"name":"_depots","type":"uint256"},{"name":"_savedChicken","type":"uint256"},{"name":"_lastSaveTime","type":"uint256"},{"name":"_cooldown","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dividendRate","type":"uint256"},{"name":"_altarCut","type":"uint256"},{"name":"_storeCut","type":"uint256"},{"name":"_devCut","type":"uint256"}],"name":"setDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_chickenTokenDelegator","type":"address"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeDexterity","outputs":[],"payable":true,"stateMutability":"payable","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":"altarCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawStoreBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"typeB","outputs":[{"name":"chicken","type":"uint256"},{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_chicken","type":"uint256"}],"name":"chickenToAltar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyStore","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeConstitution","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_huntingMultiplier","type":"uint256"},{"name":"_offenseMultiplier","type":"uint256"},{"name":"_defenseMultiplier","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"addItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeResistance","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"name":"setNameAndSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INCREMENT_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"chickenOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cooldownTime","type":"uint256"}],"name":"setCooldownTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"buyDepots","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"typeA","outputs":[{"name":"chicken","type":"uint256"},{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"},{"name":"_max","type":"uint256"}],"name":"setDepot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"savedChickenOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_huntingPower","type":"uint256"},{"name":"_offensePower","type":"uint256"},{"name":"_defense","type":"uint256"},{"name":"_chicken","type":"uint256"},{"name":"_ethereum","type":"uint256"},{"name":"_max","type":"uint256"}],"name":"addPet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"store","outputs":[{"name":"owner","type":"address"},{"name":"cut","type":"uint256"},{"name":"cost","type":"uint256"},{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ethereumFromAltar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"devCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"genesis","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"hunterOf","outputs":[{"name":"_strength","type":"uint256"},{"name":"_dexterity","type":"uint256"},{"name":"_constitution","type":"uint256"},{"name":"_resistance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"altarRecords","outputs":[{"name":"ethereum","type":"uint256"},{"name":"chicken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cooldownTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"redeemShares","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_chickenA","type":"uint256"},{"name":"_ethereumA","type":"uint256"},{"name":"_maxA","type":"uint256"},{"name":"_chickenB","type":"uint256"},{"name":"_ethereumB","type":"uint256"},{"name":"_maxB","type":"uint256"}],"name":"setConfiguration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tradeBooks","outputs":[{"name":"altarRecordId","type":"uint256"},{"name":"chicken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_committee","type":"address"}],"name":"setCommittee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"items","outputs":[{"name":"owner","type":"address"},{"name":"huntingMultiplier","type":"uint256"},{"name":"offenseMultiplier","type":"uint256"},{"name":"defenseMultiplier","type":"uint256"},{"name":"cost","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalChicken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_gas","type":"uint256"},{"name":"_code","type":"bytes"}],"name":"callFor","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferChickenFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"developer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDevFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CORRECTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"pets","outputs":[{"name":"huntingPower","type":"uint256"},{"name":"offensePower","type":"uint256"},{"name":"defensePower","type":"uint256"},{"name":"chicken","type":"uint256"},{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"attack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"tradeBookOf","outputs":[{"name":"_id","type":"uint256"},{"name":"_ethereum","type":"uint256"},{"name":"_totalChicken","type":"uint256"},{"name":"_chicken","type":"uint256"},{"name":"_income","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeStrength","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"dividendRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"committee","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chickenTokenDelegator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"_user","type":"address"}],"name":"saveChickenOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dividendsPerShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"buyItem","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"altarFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastSaveTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"attackCooldown","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_chicken","type":"uint256"},{"name":"_ethereum","type":"uint256"},{"name":"_max","type":"uint256"}],"name":"changePet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_developer","type":"address"}],"name":"setDeveloper","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"}],"name":"Join","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"huntingPower","type":"uint256"},{"indexed":false,"name":"offensePower","type":"uint256"},{"indexed":false,"name":"defense","type":"uint256"},{"indexed":false,"name":"chicken","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"},{"indexed":false,"name":"max","type":"uint256"}],"name":"NewPet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"chicken","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"},{"indexed":false,"name":"max","type":"uint256"}],"name":"ChangePet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"huntingMultiplier","type":"uint256"},{"indexed":false,"name":"offenseMultiplier","type":"uint256"},{"indexed":false,"name":"defenseMultiplier","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"}],"name":"NewItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethereum","type":"uint256"},{"indexed":false,"name":"max","type":"uint256"}],"name":"SetDepot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"chickenA","type":"uint256"},{"indexed":false,"name":"ethereumA","type":"uint256"},{"indexed":false,"name":"maxA","type":"uint256"},{"indexed":false,"name":"chickenB","type":"uint256"},{"indexed":false,"name":"ethereumB","type":"uint256"},{"indexed":false,"name":"maxB","type":"uint256"}],"name":"SetConfiguration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dividendRate","type":"uint256"},{"indexed":false,"name":"altarCut","type":"uint256"},{"indexed":false,"name":"storeCut","type":"uint256"},{"indexed":false,"name":"devCut","type":"uint256"}],"name":"SetDistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cooldownTime","type":"uint256"}],"name":"SetCooldownTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"symbol","type":"string"}],"name":"SetNameAndSymbol","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"developer","type":"address"}],"name":"SetDeveloper","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"committee","type":"address"}],"name":"SetCommittee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"}],"name":"NewAltarRecord","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"chicken","type":"uint256"}],"name":"ChickenToAltar","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"}],"name":"EthereumFromAltar","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"attacker","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"booty","type":"uint256"}],"name":"Attack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"to","type":"uint256"}],"name":"UpgradePet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"to","type":"uint256"}],"name":"UpgradeDepot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"id","type":"uint256"},{"indexed":false,"name":"cost","type":"uint256"}],"name":"BuyItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"cost","type":"uint256"}],"name":"BuyStore","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"attribute","type":"string"},{"indexed":false,"name":"to","type":"uint256"}],"name":"UpgradeHunter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"shares","type":"uint256"},{"indexed":false,"name":"dividends","type":"uint256"}],"name":"RedeemShares","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"}]

  Contract Creation Code Switch To Opcodes View
60c0604052601060808190527f436869636b656e48756e7453746f636b0000000000000000000000000000000060a0908152620000409160009190620000cb565b506040805180820190915260038082527f434853000000000000000000000000000000000000000000000000000000000060209092019182526200008791600191620000cb565b506002805460ff19166012179055348015620000a257600080fd5b506027805433600160a060020a0319918216811790925560288054909116909117905562000170565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010e57805160ff19168380011785556200013e565b828001600101855582156200013e579182015b828111156200013e57825182559160200191906001019062000121565b506200014c92915062000150565b5090565b6200016d91905b808211156200014c576000815560010162000157565b90565b613b8b80620001806000396000f3006080604052600436106103415763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b8114610346578063016899de14610379578063045f955b146103a757806306fdde03146103b7578063095ea7b3146104415780630adae972146104795780630fc709e5146105ba57806318160ddd146105db57806319ab453c146105f05780631fa087551461061157806323b872dd1461061c57806327bb020a1461064657806328b8b1081461065b5780632b2e715914610670578063313ce567146106a35780633a98ef39146106ce5780633ccfd60b146106e357806341ad3f57146106f8578063463ac31b146107105780634c97c83614610718578063572b130f146107235780635996228e146107445780635a4462151461074f5780635baef4f3146107e65780635c5c1285146107fb57806363fd7eb01461081c5780636827e7641461083d5780636ff732011461085257806370a082311461086a578063765878471461088b5780637ebd02f8146108965780638e7a1697146108ab578063910ab259146108c6578063916a4b57146108e757806395d89b411461090e578063975057e71461092357806398d714ac146109685780639c2868371461097d578063a7f0b3de14610992578063a9059cbb146109a7578063a9782954146109cb578063aaa363c914610a12578063b319c6b714610a2a578063b460481d14610a3f578063b48fcdc014610a54578063b688a36314610a7b578063b92c404f14610a90578063bddae40e14610ab1578063bfb231d214610ad2578063c3ba65e714610b1f578063c60c3aca14610b34578063ca1a308614610b5c578063ca4b208b14610b86578063cb93f7ef14610bb7578063ce5e9ffb14610bcc578063cfb869bf14610be1578063d018db3e14610c2c578063d1a6102514610c4d578063d583644b14610c99578063d6a3f37414610ca4578063d864e74014610cb9578063dba8be6e14610cce578063dd62ed3e14610ce3578063de2f827e14610d0a578063e2d2e21914610d2b578063e7fb74c714610d40578063eb4eecec14610d4b578063efab37bf14610d60578063f0bb754014610d81578063f67501f714610da2578063ff70fa4914610dc3575b600080fd5b34801561035257600080fd5b50610367600160a060020a0360043516610de4565b60408051918252519081900360200190f35b34801561038557600080fd5b5061038e610e61565b6040805192835260208301919091528051918290030190f35b6103b5600435602435610e6a565b005b3480156103c357600080fd5b506103cc611074565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104065781810151838201526020016103ee565b50505050905090810190601f1680156104335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044d57600080fd5b50610465600160a060020a0360043516602435611102565b604080519115158252519081900360200190f35b34801561048557600080fd5b5061049a600160a060020a0360043516611169565b604051808a600260200280838360005b838110156104c25781810151838201526020016104aa565b5050505090500189600260200280838360005b838110156104ed5781810151838201526020016104d5565b5050505090500188600260200280838360005b83811015610518578181015183820152602001610500565b5050505090500187600460200280838360005b8381101561054357818101518382015260200161052b565b5050505090500180602001868152602001858152602001848152602001838152602001828103825287818151815260200191508051906020019060200280838360005b8381101561059e578181015183820152602001610586565b505050509050019a505050505050505050505060405180910390f35b3480156105c657600080fd5b506103b56004356024356044356064356113c0565b3480156105e757600080fd5b50610367611467565b3480156105fc57600080fd5b506103b5600160a060020a036004351661146e565b6103b56004356115b4565b34801561062857600080fd5b50610465600160a060020a03600435811690602435166044356116de565b34801561065257600080fd5b5061036761174d565b34801561066757600080fd5b506103b5611753565b34801561067c57600080fd5b506106856117a3565b60408051938452602084019290925282820152519081900360600190f35b3480156106af57600080fd5b506106b86117af565b6040805160ff9092168252519081900360200190f35b3480156106da57600080fd5b506103676117b8565b3480156106ef57600080fd5b506103b56117be565b34801561070457600080fd5b506103b5600435611803565b6103b56118d9565b6103b56004356119e5565b34801561072f57600080fd5b506103b5600435602435604435606435611af9565b6103b5600435611d36565b34801561075b57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103b594369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611e3d9650505050505050565b3480156107f257600080fd5b50610367611f80565b34801561080757600080fd5b50610367600160a060020a0360043516611f85565b34801561082857600080fd5b50610367600160a060020a0360043516611f97565b34801561084957600080fd5b50610367611fca565b34801561085e57600080fd5b506103b5600435611fd0565b34801561087657600080fd5b50610367600160a060020a0360043516612022565b6103b560043561203d565b3480156108a257600080fd5b506106856120d0565b3480156108b757600080fd5b506103b56004356024356120dc565b3480156108d257600080fd5b50610367600160a060020a036004351661214b565b3480156108f357600080fd5b506103b560043560243560443560643560843560a43561215d565b34801561091a57600080fd5b506103cc612328565b34801561092f57600080fd5b50610938612382565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561097457600080fd5b506103b561239d565b34801561098957600080fd5b506103676123d2565b34801561099e57600080fd5b506103676123d8565b3480156109b357600080fd5b50610465600160a060020a03600435166024356123de565b3480156109d757600080fd5b506109ec600160a060020a03600435166123f4565b604080519485526020850193909352838301919091526060830152519081900360800190f35b348015610a1e57600080fd5b5061038e60043561245d565b348015610a3657600080fd5b50610367612476565b348015610a4b57600080fd5b506103b561247c565b348015610a6057600080fd5b506103b560043560243560443560643560843560a43561254b565b348015610a8757600080fd5b506103b5612621565b348015610a9c57600080fd5b5061038e600160a060020a03600435166126f0565b348015610abd57600080fd5b506103b5600160a060020a0360043516612709565b348015610ade57600080fd5b50610aea600435612789565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b348015610b2b57600080fd5b506103676127d2565b61046560048035600160a060020a0316906024803591604435916064359081019101356127d8565b348015610b6857600080fd5b50610465600160a060020a036004358116906024351660443561282f565b348015610b9257600080fd5b50610b9b6128b9565b60408051600160a060020a039092168252519081900360200190f35b348015610bc357600080fd5b506103b56128c8565b348015610bd857600080fd5b50610367612918565b348015610bed57600080fd5b50610bf9600435612925565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b348015610c3857600080fd5b506103b5600160a060020a0360043516612969565b348015610c5957600080fd5b50610c6e600160a060020a0360043516612ab6565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6103b5600435612b66565b348015610cb057600080fd5b50610367612c8d565b348015610cc557600080fd5b50610b9b612c93565b348015610cda57600080fd5b50610b9b612ca2565b348015610cef57600080fd5b50610367600160a060020a0360043581169060243516612cb1565b348015610d1657600080fd5b50610367600160a060020a0360043516612cdc565b348015610d3757600080fd5b50610367612d5e565b6103b5600435612d64565b348015610d5757600080fd5b50610367612fd4565b348015610d6c57600080fd5b50610367600160a060020a0360043516612fda565b348015610d8d57600080fd5b50610367600160a060020a0360043516612fec565b348015610dae57600080fd5b506103b5600435602435604435606435612ffe565b348015610dcf57600080fd5b506103b5600160a060020a03600435166130cb565b600160a060020a03811660009081526008602090815260408083205460078352818420546006909352908320546004546801000000000000000093610e4f9392610e4392610e379163ffffffff61315316565b9063ffffffff61317c16565b9063ffffffff61318916565b811515610e5857fe5b0490505b919050565b601e54601f5482565b610e7261397f565b602054600090819081908610610e8757600080fd5b6020805487908110610e9557fe5b906000526020600020906006020160c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509350836060015185029250610f00338461319b565b836080015185029150610f1282613261565b610f1b336132fb565b600b810154909150600187011115610f405760018601610f3e600b8301826139b6565b505b610f6e8582600b0188815481101515610f5557fe5b906000526020600020015461317c90919063ffffffff16565b600b8201805488908110610f7e57fe5b60009182526020909120015560a0840151600b8201805488908110610f9f57fe5b906000526020600020015411151515610fb757600080fd5b83516004820154610fcf91870263ffffffff61317c16565b600482015560208401516005820154610fef91870263ffffffff61317c16565b60058201556040840151600682015461100f91870263ffffffff61317c16565b6006820155600b8101805433917f16ab5780b3810d9cdc9a1ed37ce0fa7ea98e877c6f8a257fb37b16833bcba471918991908290811061104b57fe5b6000918252602091829020015460408051938452918301528051918290030190a2505050505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110fa5780601f106110cf576101008083540402835291602001916110fa565b820191906000526020600020905b8154815290600101906020018083116110dd57829003601f168201915b505050505081565b336000818152600960209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6111716139da565b6111796139da565b6111816139da565b6111896139f5565b6060600080600080611199613a14565b600160a060020a038b1660009081526017602090815260409182902082516101a0810184528154610120820190815260018301546101408301526002830154610160830152600383015461018083015281526004820154818401526005820154818501526006820154606082015260078201546080820152600882015460a0820152600982015460c0820152600a82015460e0820152600b8201805485518186028101860190965280865291949293610100860193929083018282801561127f57602002820191906000526020600020905b81548152602001906001019080831161126b575b5050505050815250509050604080519081016040528082602001518152602001826080015181525099506040805190810160405280826040015181526020018260a0015181525098506040805190810160405280826060015181526020018260c001518152509750608060405190810160405280826000015160000151815260200182600001516020015181526020018260000151604001518152602001826000015160600151815250965080610100015195508060e001519450601660008c600160a060020a0316600160a060020a03168152602001908152602001600020549350601560008c600160a060020a0316600160a060020a03168152602001908152602001600020549250602260008c600160a060020a0316600160a060020a03168152602001908152602001600020549150509193959799909294969850565b602754600160a060020a031633146113d757600080fd5b600082116113e457600080fd5b6113fa81610e378481888863ffffffff61317c16565b60641461140657600080fd5b60128490556010839055600b829055600e81905560408051858152602081018590528082018490526060810183905290517f19b0c2b62f3fec0fb2a4ad13aa46c5627e326ae04dd8fba61a5b905cd53f7eb79181900360800190a150505050565b6003545b90565b602754600160a060020a0316331461148557600080fd5b601454600160a060020a03161561149b57600080fd5b60148054600160a060020a031916600160a060020a038316179055635af1bb706024556114c6612621565b600a8054600160a060020a0319163317905567016345785d8a0000600c5561150560646509184e72a0006063620186a066038d7ea4c68000600961254b565b6115156014604b600160046113c0565b611520610258611fd0565b61153266b1a2bc2ec5000060096120dc565b6115476005806000662386f26fc10000611af9565b61155c6000806005662386f26fc10000611af9565b6115786103e8600080620186a0662386f26fc10000600961215d565b61159560006103e86000620186a0662386f26fc10000600961215d565b6115b16000806103e862031704662386f26fc10000600961215d565b50565b60008060006115c2336132fb565b6001810154601d54919450925084118015906115dd57508184115b15156115e857600080fd5b60408051606081018252601b548152601c546020820152601d54918101919091526116169083908690613324565b61164361162c838603600263ffffffff61315316565b84546116379061337e565b9063ffffffff61315316565b600184018590556004840154909150611662908263ffffffff61317c16565b6004840155600583015461167c908263ffffffff61317c16565b600584015560408051602081018690528181526009818301527f6465787465726974790000000000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b600160a060020a038316600090815260096020908152604080832033845290915281205482111561170e57600080fd5b600160a060020a038416600090815260096020908152604080832033845290915290208054839003905561174384848461338a565b5060019392505050565b60105481565b600d54600a54600160a060020a03166000908152600560205260409020546117809163ffffffff61317c16565b600a54600160a060020a0316600090815260056020526040812091909155600d55565b601b54601c54601d5483565b60025460ff1681565b60035481565b33600081815260056020526040808220805490839055905190929183156108fc02918491818181858888f193505050501580156117ff573d6000803e3d6000fd5b5050565b6000808080841161181357600080fd5b61181d338561319b565b611825613595565b9250611830836135a5565b80549092508480820281151561184257fe5b041461184d57600080fd5b5033600090815260266020526040902080548311156118735761186f81613614565b8281555b6001820154611888908563ffffffff61317c16565b60018084019190915581018054850190556040805184815260208101869052815133927f249d3c255987361d5d69f32914f89ba3b6617f290ed9e435126a39a7cff6d996928290030190a250505050565b600a8054600c8054600160a060020a03909216926000928392611902919063ffffffff61315316565b81151561190b57fe5b049150611917826136fd565b600c54600290830304905061193781600f5461317c90919063ffffffff16565b600f55600d54600160a060020a03841660009081526005602052604090205461196d9190610e379084860363ffffffff61317c16565b600160a060020a038416600081815260056020908152604080832094909455600c869055600a8054600160a060020a03191633908117909155600d929092558351868152935191937f0f24f9f79a489f214543721c774ce6b52901934b07e7da8c77642f1866f0e841929081900390910190a3505050565b60008060006119f3336132fb565b6002810154601a5491945092508411801590611a0e57508184115b1515611a1957600080fd5b6040805160608101825260185481526019546020820152601a5491810191909152611a479083908690613324565b611a786002830a611a578661337e565b036116376008610e376002886000016003015461315390919063ffffffff16565b600284018590556006840154909150611a97908263ffffffff61317c16565b60068401556040805160208101869052818152600c818301527f636f6e737469747574696f6e0000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b60275460009081908190600160a060020a03163314611b1757600080fd5b6201000092508287108015611b2b57508286105b8015611b3657508285105b1515611b4157600080fd5b602754611b5690600160a060020a0316612cdc565b50602754611b6c90600160a060020a03166132fb565b6007810154909250611b84908863ffffffff61317c16565b60078301556008820154611b9e908763ffffffff61317c16565b60088301556009820154611bb8908663ffffffff61317c16565b6009830155506040805160a08082018352602754600160a060020a03908116835260208084018b81528486018b815260608087018c815260808089018d815260218054600181018083556000929092529a517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57060058d029081018054600160a060020a03191692909b169190911790995595517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57189015593517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57288015590517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57387015591517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5749095019490945586519586529185018c90528486018b9052918401899052830187905292517f2f770e091da1eb4be223d793b34fcd1b5cbff2f4c74ad7f2d7d55c1eceda488d9281900390910190a150505050505050565b6000806000611d44336132fb565b6003810154601d5491945092508411801590611d5f57508184115b1515611d6a57600080fd5b60408051606081018252601b548152601c546020820152601d5491810191909152611d989083908690613324565b611dbc611dae838603600263ffffffff61315316565b60028501546116379061337e565b600384018590556006840154909150611ddb908263ffffffff61317c16565b60068401556040805160208101869052818152600a818301527f726573697374616e636500000000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b602754600160a060020a03163314611e5457600080fd5b8151611e67906000906020850190613a67565b508051611e7b906001906020840190613a67565b507fd150542982eaa18f20ceb10f524c418899e6a331a81ee4a70daa921f976fab3b8282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee0578181015183820152602001611ec8565b50505050905090810190601f168015611f0d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f40578181015183820152602001611f28565b50505050905090810190601f168015611f6d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600c81565b60056020526000908152604090205481565b6000611163611fa58361377d565b600160a060020a0384166000908152601660205260409020549063ffffffff61317c16565b600f5481565b602754600160a060020a03163314611fe757600080fd5b60238190556040805182815290517ff1f62fb53f063eeed657f6ed8c238c2e61ef9547b206dac91c836599fb8f7a339181900360200190a150565b600160a060020a031660009081526006602052604090205490565b6000612048336132fb565b600a810154909150612060908363ffffffff61317c16565b600a8201819055601f54101561207557600080fd5b601e546120929061208d90849063ffffffff61315316565b613261565b600a810154604080519182525133917f088f18ecb97af8211f9549cddf9227ee53f8fda22b969dab5621461c80fc7d50919081900360200190a25050565b601854601954601a5483565b602754600160a060020a031633146120f357600080fd5b601f5481101561210257600080fd5b601e829055601f819055604080518381526020810183905281517f25e5d03ea9004bbd99c954a40cefdb9a23e87966152ac725e8c44386f6e11798929181900390910190a15050565b60166020526000908152604090205481565b602754600090600160a060020a0316331461217757600080fd5b6000821161218457600080fd5b63ffffffff8216821461219657600080fd5b506040805160c08181018352888252602082810189815283850189815260608086018a815260808088018b815260a0808a018c8152885460018101808b5560008b90529b51600682027fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb81019190915598517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bc8a015596517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bd89015593517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866be88015590517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bf87015591517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866c09095019490945587519283529382018d90528187018c905281018a9052908101889052908101869052908101849052915190917f825cf2439eaf73dfac2c09fd8f2d837fad3d41ae9997922036b523f11e6c1226919081900360e00190a150505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110fa5780601f106110cf576101008083540402835291602001916110fa565b600a54600b54600c54600d54600160a060020a039093169284565b6000806123a8613595565b3360009081526026602052604090208054919350915082116123c957600080fd5b6117ff81613614565b600e5481565b60245481565b60006123eb33848461338a565b50600192915050565b600080600080612402613ae5565b50505050600160a060020a039190911660009081526017602090815260409182902082516080810184528154808252600183015493820184905260028301549482018590526003909201546060909101819052909491935090565b6025602052600090815260409020805460019091015482565b60235481565b336000818152600660205260408120549161249690610de4565b3360009081526006602090815260408083208390556007825280832083905560089091528120556003549091506124d3908363ffffffff61318916565b600355336000908152600560205260409020546124f6908263ffffffff61317c16565b33600081815260056020908152604091829020939093558051858152928301849052805191927fef7fb21fed1701a6c82b78d78bad1ddab67e41025c2d5078a1be2a3a238b4e62929081900390910190a25050565b602754600160a060020a0316331461256257600080fd5b601a54841080159061257957508363ffffffff1684145b151561258457600080fd5b601d54811080159061259b57508063ffffffff1681145b15156125a657600080fd5b60188690556019859055601a849055601b839055601c829055601d8190556040805187815260208101879052808201869052606081018590526080810184905260a0810183905290517fdd7612d23bf1ba260c41948384c8a672815d6e6f03705f4ccb8db39d01bb49d09181900360c00190a1505050505050565b336000908152601760205260409020600a8101541561263f57600080fd5b604080516080810182526001808252602080830182905282840182905260609092018190528084558381018190556002840181905560038401819055600a808501919091556004840181905560058401819055606e60068501556007840181905560088401819055600984015533600081815260158352839020429055825190815291517f0764c80c4165f118547b301a0b4b91eac21bd2f2d9b61d0ac723ff0aab27bb799281900390910190a150565b6026602052600090815260409020805460019091015482565b602754600160a060020a0316331461272057600080fd5b600160a060020a038116151561273557600080fd5b60278054600160a060020a038316600160a060020a0319909116811790915560408051918252517f22a3400c609e52ea781540daed872a0ff7b79a428f634be082c24c2faf0684639181900360200190a150565b602180548290811061279757fe5b600091825260209091206005909102018054600182015460028301546003840154600490940154600160a060020a0390931694509092909185565b60135481565b602754600090600160a060020a031633146127f257600080fd5b85600160a060020a0316858590858560405180838380828437820191505092505050600060405180830381858888f19a9950505050505050505050565b601454600090600160a060020a0316331461284957600080fd5b8161285385612cdc565b101561285e57600080fd5b600160a060020a038085166000908152601660205260408082208054869003905591851681522054612896908363ffffffff61317c16565b600160a060020a0384166000908152601660205260409020555060019392505050565b602854600160a060020a031681565b600f54602854600160a060020a03166000908152600560205260409020546128f59163ffffffff61317c16565b602854600160a060020a0316600090815260056020526040812091909155600f55565b6801000000000000000081565b602080548290811061293357fe5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395509193909286565b3360009081526022602052604081205481908190421161298857600080fd5b33600090815260176020526040808220600160a060020a03871683529120600981015460068201549295509093506129c6919063ffffffff61315316565b600884015460058501546129df9163ffffffff61315316565b1115612ab0576129ee84612cdc565b9050600082600a015411612a025780612a13565b81600a015481811515612a1157fe5b045b600160a060020a03851660009081526016602052604080822080548490039055338252902054909150612a4c908263ffffffff61317c16565b3360008181526016602090815260408083209490945560235460228252918490204290920190915582518481529251600160a060020a038816937f07fc6d85ef6db5c911f925dd0be5e0b6139a4d732479327729330fcf4ab15e2d92908290030190a35b50505050565b6000806000806000612ac6613b0e565b612ace613b0e565b5050600160a060020a03861660009081526026602090815260408083208151808301835281548082526001928301548286018190528187526025865284872085518087019096528054808752940154958501869052909a50919850929650945090918511612b3d576000612b59565b84612b4e878663ffffffff61315316565b811515612b5757fe5b045b9250505091939590929450565b6000806000612b74336132fb565b8054601a5491945092508411801590612b8c57508184115b1515612b9757600080fd5b6040805160608101825260185481526019546020820152601a5491810191909152612bc59083908690613324565b612bf66002830a612bd58661337e565b036116376008610e376002886000016001015461315390919063ffffffff16565b8484556004840154909150612c11908263ffffffff61317c16565b60048401556005830154612c2b908263ffffffff61317c16565b600584015560408051602081018690528181526008818301527f737472656e677468000000000000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b60125481565b602754600160a060020a031681565b601454600160a060020a031681565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b6000806000612cea8461377d565b601354909250612d00908363ffffffff61317c16565b601355600160a060020a038416600090815260166020526040902054612d2c908363ffffffff61317c16565b600160a060020a0394909416600090815260166020908152604080832087905560159091529020429055509192915050565b60045481565b600080600080600080602187815481101515612d7c57fe5b6000918252602090912060059091020180546004820154919750600160a060020a03169550600a90612db590600c63ffffffff61315316565b811515612dbe57fe5b049350612dca846136fd565b612dd385612cdc565b50612ddd856132fb565b9250612dfa8660010154846007015461318990919063ffffffff16565b600784015560028601546008840154612e189163ffffffff61318916565b600884015560038601546009840154612e369163ffffffff61318916565b6009840155612e4433612cdc565b50612e4e336132fb565b9150612e6b8660010154836007015461317c90919063ffffffff16565b600783015560028601546008830154612e899163ffffffff61317c16565b600883015560038601546009830154612ea79163ffffffff61317c16565b60098301556004860154600290612ec590869063ffffffff61318916565b811515612ece57fe5b049050612ee681600f5461317c90919063ffffffff16565b600f55600160a060020a038516600090815260056020526040902054612f149082860363ffffffff61317c16565b600160a060020a0386166000908152600560205260409020556021805485919089908110612f3e57fe5b90600052602060002090600502016004018190555033602188815481101515612f6357fe5b6000918252602091829020600591909102018054600160a060020a031916600160a060020a039384161790556040805187815290518a933393908a16927fc6d7a5e59f38ae48e0f1577ce4627ba9b270bfd4c2c0c7be609c429421bc3d68929081900390910190a450505050505050565b60115481565b60156020526000908152604090205481565b60226020526000908152604090205481565b602754600090600160a060020a0316331461301857600080fd5b602054851061302657600080fd5b602080548690811061303457fe5b906000526020600020906006020190508060050154821015801561305d57508163ffffffff1682145b151561306857600080fd5b60038101849055600481018390556005810182905560408051868152602081018690528082018590526060810184905290517f2c2e9072543dfe5f0b03fabc22ced8ddd4e6f976a64f2f4726c4ea72cf8d31c09181900360800190a15050505050565b602754600160a060020a031633146130e257600080fd5b600160a060020a03811615156130f757600080fd5b6130ff6128c8565b60288054600160a060020a038316600160a060020a0319909116811790915560408051918252517f8aaf3a0823afdd08e2480f3fac4af353fad0c1e1aeffae73284c2295e441fc939181900360200190a150565b600082151561316457506000611163565b5081810281838281151561317457fe5b041461116357fe5b8181018281101561116357fe5b60008282111561319557fe5b50900390565b6000806131a78461377d565b9150818311156132085750600160a060020a038316600090815260166020526040902054818303908111156131db57600080fd5b600160a060020a038416600090815260166020526040902080548290039055601380548290039055613242565b5060135482820390613220908263ffffffff61317c16565b601355600160a060020a03841660009081526016602052604090208054820190555b505050600160a060020a03166000908152601560205260409020429055565b60008080836064808202041461327657600080fd5b61327f846136fd565b601254601054606491860282900494508502600b54919004925060649085020490506132bc81838587030303600f5461317c90919063ffffffff16565b600f556132c93384613802565b6011546132dc908363ffffffff61317c16565b601155600d546132f2908263ffffffff61317c16565b600d5550505050565b600160a060020a0381166000908152601760205260408120600a810154909110610e5c57600080fd5b600080613342613334868661392d565b84519063ffffffff61315316565b915061334e338361319b565b61336c61335b868661394d565b60208501519063ffffffff61315316565b905061337781613261565b5050505050565b60006111638283613153565b60008080600160a060020a03851615156133a357600080fd5b600160a060020a0386166000908152600660205260409020548411156133c857600080fd5b6004546133db908563ffffffff61315316565b600160a060020a038716600090815260076020526040902054909350613407908463ffffffff61317c16565b600160a060020a038716600090815260086020526040902054909250821061344757600160a060020a038616600090815260086020526040902054613449565b815b905061345b828263ffffffff61318916565b600160a060020a038716600090815260076020908152604080832093909355600890522054613490908263ffffffff61318916565b600160a060020a0380881660009081526008602052604080822093909355908716815220546134c5908463ffffffff61317c16565b600160a060020a03808716600090815260086020908152604080832094909455918916815260069091522054613501908563ffffffff61318916565b600160a060020a038088166000908152600660205260408082209390935590871681522054613536908563ffffffff61317c16565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050505050565b6024546201518042919091030490565b60008181526025602052604081208054909190151561360e575060118054600a90048083558154819003909155604080518481526020810183905281517f3d823e1b0137c31466d0d26831c5b359c4eab1d1237ead4a8ff564264d9a2c53929181900390910190a15b50919050565b61361c613b0e565b600080836001015411156136f857825460009081526025602090815260409182902082518084019093528054808452600191820154928401839052908601549294509091613670919063ffffffff61315316565b81151561367957fe5b6000600186018190553381526005602052604090205491900491506136a4908263ffffffff61317c16565b336000818152600560209081526040918290209390935585548151908152928301849052805191927f1999f960f6c1318254fc32602ac8ba7ebe18123b1bfe4d21cb9b5ac24761aae4929081900390910190a25b505050565b6000348211156137435750336000908152600560205260409020543482039081111561372857600080fd5b336000908152600560205260409020805482900390556117ff565b50336000908152600560205260409020543482900390613769908263ffffffff61317c16565b336000908152600560205260409020555050565b600160a060020a03811660009081526015602052604081205481811180156137a457504281105b156137f957600160a060020a038316600090815260176020526040902060078101546004909101546064916137e8914285900391611637919063ffffffff61315316565b8115156137f157fe5b04915061360e565b6000915061360e565b60008111156117ff5760035461381e908263ffffffff61317c16565b60035560045461385d90613838908363ffffffff61315316565b600160a060020a0384166000908152600860205260409020549063ffffffff61317c16565b600160a060020a038316600090815260086020908152604080832093909355600690522054613892908263ffffffff61317c16565b600160a060020a0383166000908152600660205260409020556003546138e5906138cb836801000000000000000063ffffffff61315316565b8115156138d457fe5b60045491900463ffffffff61317c16565b600455604080518281529051600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60046002600019808501850282900a90840184029190910a030492915050565b60006006600184600202036001850385020260018460020203600185038502020381151561397757fe5b049392505050565b60c0604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156136f8576000838152602090206136f8918101908301613b25565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b61018060405190810160405280613a29613ae5565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613aa857805160ff1916838001178555613ad5565b82800160010185558215613ad5579182015b82811115613ad5578251825591602001919060010190613aba565b50613ae1929150613b25565b5090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b61146b91905b80821115613ae15760008155600101613b2b56009a18b08f786ded2f49322290bcefb5a9ad611fae6a3c2cdf63c46a8a4573bf17a165627a7a72305820b6f087fe4031eb79d8bd609c9571aea4625e9f63c3da4813d397f2c390ef85cf0029

   Swarm Source:
bzzr://b6f087fe4031eb79d8bd609c9571aea4625e9f63c3da4813d397f2c390ef85cf

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.