ETH Price: $2,561.38 (+0.08%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Register_layer_t...208335572024-09-26 8:21:23285 days ago1727338883IN
0xF67d4AEa...03968edA6
0.03 ETH0.0009104615.74871704
Register_layer_t...208334352024-09-26 7:56:47285 days ago1727337407IN
0xF67d4AEa...03968edA6
0.03 ETH0.0009373816.21444237
Register_layer_t...208333922024-09-26 7:48:11285 days ago1727336891IN
0xF67d4AEa...03968edA6
0.03 ETH0.0010664918.4475778
Register_layer_t...208333812024-09-26 7:45:59285 days ago1727336759IN
0xF67d4AEa...03968edA6
0.03 ETH0.0010006717.30915927
Register_layer_t...208333632024-09-26 7:42:23285 days ago1727336543IN
0xF67d4AEa...03968edA6
0.03 ETH0.0010276417.77561995
Register_layer_t...208333522024-09-26 7:40:11285 days ago1727336411IN
0xF67d4AEa...03968edA6
0.03 ETH0.0010684918.48224632
Register_layer_t...208333312024-09-26 7:35:59285 days ago1727336159IN
0xF67d4AEa...03968edA6
0.03 ETH0.0012509621.63844795
Register_layer_t...208332762024-09-26 7:24:59285 days ago1727335499IN
0xF67d4AEa...03968edA6
0.03 ETH0.0015059326.04883523
Register_layer_t...205451762024-08-17 1:50:59325 days ago1723859459IN
0xF67d4AEa...03968edA6
0.03 ETH0.000053910.93261131
Register_layer_t...204024462024-07-28 3:45:59345 days ago1722138359IN
0xF67d4AEa...03968edA6
0.03 ETH0.000063851.10455629
Register_layer_t...204024442024-07-28 3:45:35345 days ago1722138335IN
0xF67d4AEa...03968edA6
0.03 ETH0.00006681.15551687
Add_render203074442024-07-14 21:31:23358 days ago1720992683IN
0xF67d4AEa...03968edA6
0 ETH0.000194113.44031638
Add_render191032792024-01-28 6:34:11527 days ago1706423651IN
0xF67d4AEa...03968edA6
0 ETH0.0006331911.22215116
Register_layer_t...190138622024-01-15 17:46:23539 days ago1705340783IN
0xF67d4AEa...03968edA6
0.03 ETH0.0018269131.60101172
Register_layer_t...190137802024-01-15 17:29:59539 days ago1705339799IN
0xF67d4AEa...03968edA6
0.03 ETH0.0015581526.95203312
Register_layer_t...190137772024-01-15 17:29:23539 days ago1705339763IN
0xF67d4AEa...03968edA6
0.03 ETH0.001634928.27964858
Register_layer_t...189937472024-01-12 22:18:11542 days ago1705097891IN
0xF67d4AEa...03968edA6
0.03 ETH0.001712929.62894517
Register_layer_t...189937172024-01-12 22:12:11542 days ago1705097531IN
0xF67d4AEa...03968edA6
0.03 ETH0.001878432.49152461
Register_layer_t...189935392024-01-12 21:36:11542 days ago1705095371IN
0xF67d4AEa...03968edA6
0.03 ETH0.0012912822.33600099
Register_layer_t...189934832024-01-12 21:24:59542 days ago1705094699IN
0xF67d4AEa...03968edA6
0.03 ETH0.0013821223.90727081
Register_layer_t...189398232024-01-05 8:13:59550 days ago1704442439IN
0xF67d4AEa...03968edA6
0.03 ETH0.0007252412.54491413
Register_layer_t...189258042024-01-03 9:00:23552 days ago1704272423IN
0xF67d4AEa...03968edA6
0.03 ETH0.0008932915.45164195
Register_layer_t...189235392024-01-03 1:23:35552 days ago1704245015IN
0xF67d4AEa...03968edA6
0.03 ETH0.0008368314.47510035
Register_layer_t...189199962024-01-02 13:28:47552 days ago1704202127IN
0xF67d4AEa...03968edA6
0.03 ETH0.0011425219.76272292
Register_layer_t...189173012024-01-02 4:22:35553 days ago1704169355IN
0xF67d4AEa...03968edA6
0.03 ETH0.0007095612.27364736
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer208335572024-09-26 8:21:23285 days ago1727338883
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208334352024-09-26 7:56:47285 days ago1727337407
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208333922024-09-26 7:48:11285 days ago1727336891
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208333812024-09-26 7:45:59285 days ago1727336759
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208333632024-09-26 7:42:23285 days ago1727336543
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208333522024-09-26 7:40:11285 days ago1727336411
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208333312024-09-26 7:35:59285 days ago1727336159
0xF67d4AEa...03968edA6
0.03 ETH
Transfer208332762024-09-26 7:24:59285 days ago1727335499
0xF67d4AEa...03968edA6
0.03 ETH
Transfer205451762024-08-17 1:50:59325 days ago1723859459
0xF67d4AEa...03968edA6
0.03 ETH
Transfer204024462024-07-28 3:45:59345 days ago1722138359
0xF67d4AEa...03968edA6
0.03 ETH
Transfer204024442024-07-28 3:45:35345 days ago1722138335
0xF67d4AEa...03968edA6
0.03 ETH
Transfer190138622024-01-15 17:46:23539 days ago1705340783
0xF67d4AEa...03968edA6
0.03 ETH
Transfer190137802024-01-15 17:29:59539 days ago1705339799
0xF67d4AEa...03968edA6
0.03 ETH
Transfer190137772024-01-15 17:29:23539 days ago1705339763
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189937472024-01-12 22:18:11542 days ago1705097891
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189937172024-01-12 22:12:11542 days ago1705097531
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189935392024-01-12 21:36:11542 days ago1705095371
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189934832024-01-12 21:24:59542 days ago1705094699
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189398232024-01-05 8:13:59550 days ago1704442439
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189258042024-01-03 9:00:23552 days ago1704272423
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189235392024-01-03 1:23:35552 days ago1704245015
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189199962024-01-02 13:28:47552 days ago1704202127
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189173012024-01-02 4:22:35553 days ago1704169355
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189092872024-01-01 1:19:59554 days ago1704071999
0xF67d4AEa...03968edA6
0.03 ETH
Transfer189063972023-12-31 15:37:35554 days ago1704037055
0xF67d4AEa...03968edA6
0.03 ETH
View All Internal Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
coordinator

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-11-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

/*
                               5 
                                          d 
                                                   1 
                                                          0 
                                                             0 
                                                              1 
                                                           6 
                                                      0 
                                               88 
                                        16 
                               10 
                        06 
                 b5 
            d5 
        0f 
       5f8 
       f57 
          000 
             561 
                 4801 
                     0523 
                          0604 
                             0x608 
                                50033 
                                  300081 
                                   f6c634 
                                  5964736 
                                 aaacb98 
                               fb3051e1 
                            d069be33 
                          9d9d21038 
                       66e11b402 
                    f6af11ce2a 
                  884b6ffce73 
                 67358221220 
                6fea26469706 
                9050929150505 
                81846100da565b 
                35f83015261012a 
                 208201905081810 
                  92915050565b5f60 
                   0ca565b8401915050 
                   0a2565b61010781610 
                    100fe818560208601610 
                    ee8185610092565b93506 
                    6100e482610088565b6100 
                    f8301169050919050565b5f 
                    250505050565b5f601f19601 
                   0190506100a4565b5f8484015 
                  0bf578082015181840152602081 
                  092915050565b5f5b83811015610 
                 0919050565b5f82825260208201905 
                000000815250905090565b5f8151905 
                c206d69737320796f752e000000000000 
               26020017f476f6f64627965212049276c6 
               35b606060405180604001604052806017815 
               0516100429190610112565b60405180910390f 
              1461002d575b5f80fd5b61003561004b565b604 
              b5060043610610029575f3560e01c80630f59f83a 
              1d5f395ff3fe608060405234801561000f575f80fd5 
              08060405234801561000f575f80fd5b50610168806100 
             9be33fb3051e1aaacb985964736f6c634300081500330x6 
             8221220884b6ffce73f6af11ce2a66e11b4029d9d21038d06 
             5261012a81846100da565b90509291505056fea264697066735 
            a565b840191505092915050565b5f6020820190508181035f8301 
           610092565b93506100fe8185602086016100a2565b610107816100c 
           f19601f8301169050919050565b5f6100e482610088565b6100ee8185 
          151818401526020810190506100a4565b5f8484015250505050565b5f601 
          0565b5f82825260208201905092915050565b5f5b838110156100bf5780820 
         69737320796f752e000000000000000000815250905090565b5f8151905091905 
         040518060400160405280601781526020017f476f6f64627965212049276c6c206d 
       0fd5b61003561004b565b6040516100429190610112565b60405180910390f35b60606 
      561000f575f80fd5b5060043610610029575f3560e01c80630f59f83a1461002d575b5f8 
     0x608060405234801561000f575f80fd5b506101688061001d5f395ff3fe608060405234801 

            Perpetual | by Takens Theorem | coordinator contract v1.0
*/

contract IERC1155 {function balanceOf(address, uint256) external view returns (uint256){}}
contract IERC721 {function ownerOf(uint256) external view returns (address){}}

contract coordinator {

  /* 
    mint timing
  */
  uint256 public mint_period = 216000; // mint wait per token in # blocks
  uint256 public vanish_threshold = 12; // number of mint periods until contract selects among renders

  /* 
    relevant addresses, contracts where there are takens tokens
  */
  address takens = 0xA88E4a192f3ff5e46dcC96EFefB38dfEC7bb250C;
  address[] public collections; // 721 contracts with minted tokens
  address public layer_two_recipient = takens; // recipient for small fee to register L2 tokens 
  uint256 prefix = 76239962253391602540897856100159297712186421936948015313417445; // openstore takens prefix
  address openstore = 0x495f947276749Ce646f68AC8c248420045cb7b5e; // opensea's openstore 1155
  bool public openstore_on = true; // in case want to drop openstore
  address ko_v3 = 0xABB3738f04Dc2Ec20f4AE4462c3d069d02AE045B; // knownorigin v3
  address layer_two = 0xE2364f1792C397255451Ba84b942c3F903806aF0; // layer_two 721
  address gl_space = 0x9A3B5feE68ba47A49D4D560f7f8eB816a67F969b; // superrare space: g/l w/ hex6c

  /* 
    tracking standalone 721s
  */
  mapping(address => bool) public takens_nfts; // takens 721 projects
  mapping(address => mapping(uint256 => mapping(uint256 => bool))) public minted; // prior token/mint status
  
  /* 
    for knownorigin (ko) tracking    
  */
  mapping(uint256 => bool) public takens_ko_ids; // ko tokens to verify creator == takens

  /* 
    for layer_two registration tracking
  */
  mapping(uint256 => bool) public layer_two_ids; // layer_two registrations; see below
  uint256 public layer_two_reg_fee = 2e16;  // fee in wei for use in register_layer_two

  /* 
    rendering addrs sent to tokenURI on new 721 collection
  */
  address[] public renders; // rendering contracts (addr.showcase())
  uint256 public last_render; // last block # when renderer added, used for dead man's switch

  modifier takens_or_collection {
    require(msg.sender == takens || msg.sender == collections[collections.length-1]);
    _;
  }

  // *****
  // WRITE
  // *****

  /* 
    update minting period / vanish; see definition above
  */
  function update_periods(uint256 new_period, uint256 new_vanish) external takens_or_collection { 
    mint_period = new_period; 
    vanish_threshold = new_vanish; 
  } 

  /* 
    main 721 collection to mint to
  */
  function update_collection(address new_collection) external takens_or_collection {
    collections.push(new_collection);
  }

  /* 
    standalone prior 721s
  */
  function mod_takens_nft(address new_addr, bool val) external takens_or_collection {
      takens_nfts[new_addr] = val;
  }

  /* 
    de/activate os's openstore eligibility 
  */
  function toggle_openstore() external takens_or_collection {
    openstore_on = !openstore_on;
  }

  /* 
    contracts that render visuals w/ showcase(); assigned to 721 tokens
  */
  function add_render(address render_addr) external takens_or_collection {
    renders.push(render_addr);
    last_render = block.number; // for dead man's switch: # passed mint periods since
  }
  
  function del_render(uint256 index) external takens_or_collection {
    renders[index] = renders[renders.length-1];
    renders.pop();
  }

  /*
    summoned by new 721; tracks mint period + sends renderer to new 721 (see update_collection)
  */
  function mint_takens(address minter_addr, address nft_addr, uint256 token_id) external takens_or_collection returns (address) {
    require(mint_ready(minter_addr, nft_addr, token_id));
    minted[nft_addr][token_id][block.number / mint_period] = true;
    return select_render(minter_addr, nft_addr, token_id); // select & pass a rendering contract addr
  }  

  /* 
    specify knownorigin token id's made by takens
  */
  function update_ko_ids(uint256[] memory token_ids, bool val) external takens_or_collection {
    for (uint256 i = 0; i < token_ids.length; i++) {
      takens_ko_ids[token_ids[i]] = val;
    }    
  }

  /* 
    allow a layer_two token to create mints through coordinator
  */
  function register_layer_two(uint256 token_id) external payable {
    require(msg.value == layer_two_reg_fee && !layer_two_ids[token_id]);     
    layer_two_ids[token_id] = true;
    bool sent = payable(layer_two_recipient).send(msg.value); 
    require(sent);
  }

  function update_layer_two_fee(uint256 new_fee) external takens_or_collection {
    layer_two_reg_fee = new_fee; // wei
  }  

  function update_layer_two_recipient(address new_recipient) external takens_or_collection {
    layer_two_recipient = new_recipient;
  }  

  // ****
  // READ
  // ****

  /* 
    check if the contract + token from takens 
  */
  function is_takens(address nft_addr, uint256 token_id) view public returns (bool) {
    if (nft_addr == openstore && openstore_on) {
      return token_id / 1e15 == prefix; 
    } else if (nft_addr == ko_v3) {
      return takens_ko_ids[token_id];
    } else if (nft_addr == layer_two) {
      return layer_two_ids[token_id];
    } else if (nft_addr == gl_space) {
      return token_id>2 && token_id<6;
    } else {
      return takens_nfts[nft_addr]; // nb: for standard 721s, tokenid not needed
    }
  }  

  /* 
    and does the mint target own the relevant token?
  */
  function is_owner(address minter_addr, address nft_addr, uint256 token_id) view public returns (bool) {
    if (nft_addr == openstore) {
      return IERC1155(openstore).balanceOf(minter_addr, token_id) == 1;
    } else {
      return IERC721(nft_addr).ownerOf(token_id) == minter_addr;
    }
  }

  /* 
    check conjunction of is-takens + is-owner, then check if within new period for that combo
  */
  function mint_ready(address minter_addr, address nft_addr, uint256 token_id) view public returns (bool) {        
    require(is_takens(nft_addr, token_id)); 
    require(is_owner(minter_addr, nft_addr, token_id));
    return !minted[nft_addr][token_id][block.number / mint_period];
  }

  /* 
    convenience function - when next minting period, in minutes?
  */
  function next_mint_period() view external returns (uint256) {        
    return 12 * (mint_period * (block.number / mint_period + 1) - block.number) / 60;
  }

  /* 
    select most recent or (if vanished) random(-ish) renderer
  */
  function select_render(address minter_addr, address nft_addr, uint256 token_id) view public returns (address) {
    require(renders.length > 0);
    if ((block.number - last_render) / mint_period > vanish_threshold) {     
      return renders[uint256(keccak256(abi.encodePacked(minter_addr, nft_addr, token_id, block.number))) % renders.length]; // surprise-ish
    } else {      
      return renders[renders.length - 1]; // if renderer is recent, then use that one
    }
  }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"render_addr","type":"address"}],"name":"add_render","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"collections","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"del_render","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_addr","type":"address"},{"internalType":"address","name":"nft_addr","type":"address"},{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"is_owner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"nft_addr","type":"address"},{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"is_takens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last_render","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"layer_two_ids","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"layer_two_recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"layer_two_reg_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint_period","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter_addr","type":"address"},{"internalType":"address","name":"nft_addr","type":"address"},{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"mint_ready","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter_addr","type":"address"},{"internalType":"address","name":"nft_addr","type":"address"},{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"mint_takens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"minted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_addr","type":"address"},{"internalType":"bool","name":"val","type":"bool"}],"name":"mod_takens_nft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"next_mint_period","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openstore_on","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"register_layer_two","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"renders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter_addr","type":"address"},{"internalType":"address","name":"nft_addr","type":"address"},{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"select_render","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"takens_ko_ids","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"takens_nfts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggle_openstore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_collection","type":"address"}],"name":"update_collection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"token_ids","type":"uint256[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"update_ko_ids","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_fee","type":"uint256"}],"name":"update_layer_two_fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_recipient","type":"address"}],"name":"update_layer_two_recipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_period","type":"uint256"},{"internalType":"uint256","name":"new_vanish","type":"uint256"}],"name":"update_periods","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vanish_threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405262034bc05f55600c60015573a88e4a192f3ff5e46dcc96efefb38dfec7bb250c60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550792f71ba0a21a04b150a937c2122c8ee02a8bca553a06e317774e560055573495f947276749ce646f68ac8c248420045cb7b5e60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660146101000a81548160ff02191690831515021790555073abb3738f04dc2ec20f4ae4462c3d069d02ae045b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e2364f1792c397255451ba84b942c3f903806af060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739a3b5fee68ba47a49d4d560f7f8eb816a67f969b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066470de4df820000600e55348015610263575f80fd5b5061233b806102715f395ff3fe6080604052600436106101b6575f3560e01c806374b808cd116100eb578063a344e36211610089578063e3a898ff11610063578063e3a898ff14610608578063ead94eb514610644578063f24f68ae14610680578063fdbda0ec146106aa576101b6565b8063a344e36214610568578063b01322ad146105a4578063d559bfcd146105cc576101b6565b80638351a288116100c55780638351a288146104a05780638c865b0d146104dc578063906a7cf61461050457806398ee5ee31461052c576101b6565b806374b808cd146104465780637da42d981461045c5780637e0466c814610484576101b6565b806354ff2a06116101585780635fb4f4a3116101325780635fb4f4a3146103905780636338fa4d146103cc57806364a51660146103f457806373cd1ea11461041c576101b6565b806354ff2a061461030257806358dbc3311461033e5780635df7737014610366576101b6565b80632ddd1bef116101945780632ddd1bef1461025c57806342890c6214610286578063450d7ba5146102b0578063462701ca146102da576101b6565b806324ef55b8146101ba5780632b29a5b8146101f65780632d0e2f9e14610232575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190611b4b565b6106e6565b6040516101ed9190611bb5565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190611b4b565b610721565b6040516102299190611be8565b60405180910390f35b34801561023d575f80fd5b5061024661073e565b6040516102539190611c10565b60405180910390f35b348015610267575f80fd5b50610270610744565b60405161027d9190611bb5565b60405180910390f35b348015610291575f80fd5b5061029a610769565b6040516102a79190611c10565b60405180910390f35b3480156102bb575f80fd5b506102c461076e565b6040516102d19190611c10565b60405180910390f35b3480156102e5575f80fd5b5061030060048036038101906102fb9190611b4b565b610774565b005b34801561030d575f80fd5b5061032860048036038101906103239190611c53565b61093b565b6040516103359190611bb5565b60405180910390f35b348015610349575f80fd5b50610364600480360381019061035f9190611ca3565b610abc565b005b348015610371575f80fd5b5061037a610c00565b6040516103879190611c10565b60405180910390f35b34801561039b575f80fd5b506103b660048036038101906103b19190611cce565b610c06565b6040516103c39190611be8565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed9190611b4b565b610e42565b005b3480156103ff575f80fd5b5061041a60048036038101906104159190611d36565b610f26565b005b348015610427575f80fd5b50610430611058565b60405161043d9190611be8565b60405180910390f35b348015610451575f80fd5b5061045a61106b565b005b348015610467575f80fd5b50610482600480360381019061047d9190611ca3565b611171565b005b61049e60048036038101906104999190611b4b565b6112ae565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190611b4b565b611370565b6040516104d39190611be8565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190611d74565b61138d565b005b34801561050f575f80fd5b5061052a60048036038101906105259190611ca3565b611478565b005b348015610537575f80fd5b50610552600480360381019061054d9190611c53565b611595565b60405161055f9190611bb5565b60405180910390f35b348015610573575f80fd5b5061058e60048036038101906105899190611ca3565b6116a0565b60405161059b9190611be8565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c59190611f02565b6116bd565b005b3480156105d7575f80fd5b506105f260048036038101906105ed9190611c53565b6117fc565b6040516105ff9190611be8565b60405180910390f35b348015610613575f80fd5b5061062e60048036038101906106299190611c53565b6118a0565b60405161063b9190611be8565b60405180910390f35b34801561064f575f80fd5b5061066a60048036038101906106659190611f5c565b611a49565b6040516106779190611be8565b60405180910390f35b34801561068b575f80fd5b50610694611a7e565b6040516106a19190611c10565b60405180910390f35b3480156106b5575f80fd5b506106d060048036038101906106cb9190611b4b565b611acc565b6040516106dd9190611bb5565b60405180910390f35b600f81815481106106f5575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b600e5481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108465750600360016003805490506107de9190611fd9565b815481106107ef576107ee61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61084e575f80fd5b600f6001600f805490506108629190611fd9565b815481106108735761087261200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f82815481106108af576108ae61200c565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f80548061090657610905612039565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a0e5750600360016003805490506109a69190611fd9565b815481106109b7576109b661200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a16575f80fd5b610a218484846117fc565b610a29575f80fd5b6001600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f805443610a859190612093565b81526020019081526020015f205f6101000a81548160ff021916908315150217905550610ab3848484611595565b90509392505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b8e575060036001600380549050610b269190611fd9565b81548110610b3757610b3661200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b96575f80fd5b600f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504360108190555050565b60015481565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610c6f5750600660149054906101000a900460ff165b15610c925760055466038d7ea4c6800083610c8a9190612093565b149050610e3c565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d0b57600c5f8381526020019081526020015f205f9054906101000a900460ff169050610e3c565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8457600d5f8381526020019081526020015f205f9054906101000a900460ff169050610e3c565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610def57600282118015610de85750600682105b9050610e3c565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690505b92915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f14575060036001600380549050610eac9190611fd9565b81548110610ebd57610ebc61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f1c575f80fd5b80600e8190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ff8575060036001600380549050610f909190611fd9565b81548110610fa157610fa061200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611000575f80fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600660149054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061113d5750600360016003805490506110d59190611fd9565b815481106110e6576110e561200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611145575f80fd5b600660149054906101000a900460ff1615600660146101000a81548160ff021916908315150217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112435750600360016003805490506111db9190611fd9565b815481106111ec576111eb61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61124b575f80fd5b600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e54341480156112da5750600d5f8281526020019081526020015f205f9054906101000a900460ff16155b6112e2575f80fd5b6001600d5f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f1935050505090508061136c575f80fd5b5050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061145f5750600360016003805490506113f79190611fd9565b815481106114085761140761200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611467575f80fd5b815f81905550806001819055505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061154a5750600360016003805490506114e29190611fd9565b815481106114f3576114f261200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611552575f80fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f80600f80549050116115a6575f80fd5b6001545f54601054436115b99190611fd9565b6115c39190612093565b111561164957600f8080549050858585436040516020016115e79493929190612128565b604051602081830303815290604052805190602001205f1c6116099190612175565b8154811061161a5761161961200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611699565b600f6001600f8054905061165d9190611fd9565b8154811061166e5761166d61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b9392505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061178f5750600360016003805490506117279190611fd9565b815481106117385761173761200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611797575f80fd5b5f5b82518110156117f75781600c5f8584815181106117b9576117b861200c565b5b602002602001015181526020019081526020015f205f6101000a81548160ff02191690831515021790555080806117ef906121a5565b915050611799565b505050565b5f6118078383610c06565b61180f575f80fd5b61181a8484846118a0565b611822575f80fd5b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f80544361187c9190612093565b81526020019081526020015f205f9054906101000a900460ff161590509392505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199957600160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e86856040518363ffffffff1660e01b81526004016119529291906121ec565b602060405180830381865afa15801561196d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119919190612227565b149050611a42565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004016119e99190611c10565b602060405180830381865afa158015611a04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a289190612266565b73ffffffffffffffffffffffffffffffffffffffff161490505b9392505050565b600b602052825f5260405f20602052815f5260405f20602052805f5260405f205f92509250509054906101000a900460ff1681565b5f603c4360015f5443611a919190612093565b611a9b9190612291565b5f54611aa791906122c4565b611ab19190611fd9565b600c611abd91906122c4565b611ac79190612093565b905090565b60038181548110611adb575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b611b2a81611b18565b8114611b34575f80fd5b50565b5f81359050611b4581611b21565b92915050565b5f60208284031215611b6057611b5f611b10565b5b5f611b6d84828501611b37565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9f82611b76565b9050919050565b611baf81611b95565b82525050565b5f602082019050611bc85f830184611ba6565b92915050565b5f8115159050919050565b611be281611bce565b82525050565b5f602082019050611bfb5f830184611bd9565b92915050565b611c0a81611b18565b82525050565b5f602082019050611c235f830184611c01565b92915050565b611c3281611b95565b8114611c3c575f80fd5b50565b5f81359050611c4d81611c29565b92915050565b5f805f60608486031215611c6a57611c69611b10565b5b5f611c7786828701611c3f565b9350506020611c8886828701611c3f565b9250506040611c9986828701611b37565b9150509250925092565b5f60208284031215611cb857611cb7611b10565b5b5f611cc584828501611c3f565b91505092915050565b5f8060408385031215611ce457611ce3611b10565b5b5f611cf185828601611c3f565b9250506020611d0285828601611b37565b9150509250929050565b611d1581611bce565b8114611d1f575f80fd5b50565b5f81359050611d3081611d0c565b92915050565b5f8060408385031215611d4c57611d4b611b10565b5b5f611d5985828601611c3f565b9250506020611d6a85828601611d22565b9150509250929050565b5f8060408385031215611d8a57611d89611b10565b5b5f611d9785828601611b37565b9250506020611da885828601611b37565b9150509250929050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611dfc82611db6565b810181811067ffffffffffffffff82111715611e1b57611e1a611dc6565b5b80604052505050565b5f611e2d611b07565b9050611e398282611df3565b919050565b5f67ffffffffffffffff821115611e5857611e57611dc6565b5b602082029050602081019050919050565b5f80fd5b5f611e7f611e7a84611e3e565b611e24565b90508083825260208201905060208402830185811115611ea257611ea1611e69565b5b835b81811015611ecb5780611eb78882611b37565b845260208401935050602081019050611ea4565b5050509392505050565b5f82601f830112611ee957611ee8611db2565b5b8135611ef9848260208601611e6d565b91505092915050565b5f8060408385031215611f1857611f17611b10565b5b5f83013567ffffffffffffffff811115611f3557611f34611b14565b5b611f4185828601611ed5565b9250506020611f5285828601611d22565b9150509250929050565b5f805f60608486031215611f7357611f72611b10565b5b5f611f8086828701611c3f565b9350506020611f9186828701611b37565b9250506040611fa286828701611b37565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fe382611b18565b9150611fee83611b18565b925082820390508181111561200657612005611fac565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61209d82611b18565b91506120a883611b18565b9250826120b8576120b7612066565b5b828204905092915050565b5f8160601b9050919050565b5f6120d9826120c3565b9050919050565b5f6120ea826120cf565b9050919050565b6121026120fd82611b95565b6120e0565b82525050565b5f819050919050565b61212261211d82611b18565b612108565b82525050565b5f61213382876120f1565b60148201915061214382866120f1565b6014820191506121538285612111565b6020820191506121638284612111565b60208201915081905095945050505050565b5f61217f82611b18565b915061218a83611b18565b92508261219a57612199612066565b5b828206905092915050565b5f6121af82611b18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121e1576121e0611fac565b5b600182019050919050565b5f6040820190506121ff5f830185611ba6565b61220c6020830184611c01565b9392505050565b5f8151905061222181611b21565b92915050565b5f6020828403121561223c5761223b611b10565b5b5f61224984828501612213565b91505092915050565b5f8151905061226081611c29565b92915050565b5f6020828403121561227b5761227a611b10565b5b5f61228884828501612252565b91505092915050565b5f61229b82611b18565b91506122a683611b18565b92508282019050808211156122be576122bd611fac565b5b92915050565b5f6122ce82611b18565b91506122d983611b18565b92508282026122e781611b18565b915082820484148315176122fe576122fd611fac565b5b509291505056fea2646970667358221220fd6187dc82f2619bb12d992191c585889dc7e402b563380e91f224cb92fc895964736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101b6575f3560e01c806374b808cd116100eb578063a344e36211610089578063e3a898ff11610063578063e3a898ff14610608578063ead94eb514610644578063f24f68ae14610680578063fdbda0ec146106aa576101b6565b8063a344e36214610568578063b01322ad146105a4578063d559bfcd146105cc576101b6565b80638351a288116100c55780638351a288146104a05780638c865b0d146104dc578063906a7cf61461050457806398ee5ee31461052c576101b6565b806374b808cd146104465780637da42d981461045c5780637e0466c814610484576101b6565b806354ff2a06116101585780635fb4f4a3116101325780635fb4f4a3146103905780636338fa4d146103cc57806364a51660146103f457806373cd1ea11461041c576101b6565b806354ff2a061461030257806358dbc3311461033e5780635df7737014610366576101b6565b80632ddd1bef116101945780632ddd1bef1461025c57806342890c6214610286578063450d7ba5146102b0578063462701ca146102da576101b6565b806324ef55b8146101ba5780632b29a5b8146101f65780632d0e2f9e14610232575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190611b4b565b6106e6565b6040516101ed9190611bb5565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190611b4b565b610721565b6040516102299190611be8565b60405180910390f35b34801561023d575f80fd5b5061024661073e565b6040516102539190611c10565b60405180910390f35b348015610267575f80fd5b50610270610744565b60405161027d9190611bb5565b60405180910390f35b348015610291575f80fd5b5061029a610769565b6040516102a79190611c10565b60405180910390f35b3480156102bb575f80fd5b506102c461076e565b6040516102d19190611c10565b60405180910390f35b3480156102e5575f80fd5b5061030060048036038101906102fb9190611b4b565b610774565b005b34801561030d575f80fd5b5061032860048036038101906103239190611c53565b61093b565b6040516103359190611bb5565b60405180910390f35b348015610349575f80fd5b50610364600480360381019061035f9190611ca3565b610abc565b005b348015610371575f80fd5b5061037a610c00565b6040516103879190611c10565b60405180910390f35b34801561039b575f80fd5b506103b660048036038101906103b19190611cce565b610c06565b6040516103c39190611be8565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed9190611b4b565b610e42565b005b3480156103ff575f80fd5b5061041a60048036038101906104159190611d36565b610f26565b005b348015610427575f80fd5b50610430611058565b60405161043d9190611be8565b60405180910390f35b348015610451575f80fd5b5061045a61106b565b005b348015610467575f80fd5b50610482600480360381019061047d9190611ca3565b611171565b005b61049e60048036038101906104999190611b4b565b6112ae565b005b3480156104ab575f80fd5b506104c660048036038101906104c19190611b4b565b611370565b6040516104d39190611be8565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190611d74565b61138d565b005b34801561050f575f80fd5b5061052a60048036038101906105259190611ca3565b611478565b005b348015610537575f80fd5b50610552600480360381019061054d9190611c53565b611595565b60405161055f9190611bb5565b60405180910390f35b348015610573575f80fd5b5061058e60048036038101906105899190611ca3565b6116a0565b60405161059b9190611be8565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c59190611f02565b6116bd565b005b3480156105d7575f80fd5b506105f260048036038101906105ed9190611c53565b6117fc565b6040516105ff9190611be8565b60405180910390f35b348015610613575f80fd5b5061062e60048036038101906106299190611c53565b6118a0565b60405161063b9190611be8565b60405180910390f35b34801561064f575f80fd5b5061066a60048036038101906106659190611f5c565b611a49565b6040516106779190611be8565b60405180910390f35b34801561068b575f80fd5b50610694611a7e565b6040516106a19190611c10565b60405180910390f35b3480156106b5575f80fd5b506106d060048036038101906106cb9190611b4b565b611acc565b6040516106dd9190611bb5565b60405180910390f35b600f81815481106106f5575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b60105481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b600e5481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108465750600360016003805490506107de9190611fd9565b815481106107ef576107ee61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61084e575f80fd5b600f6001600f805490506108629190611fd9565b815481106108735761087261200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f82815481106108af576108ae61200c565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f80548061090657610905612039565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a0e5750600360016003805490506109a69190611fd9565b815481106109b7576109b661200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a16575f80fd5b610a218484846117fc565b610a29575f80fd5b6001600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205f805443610a859190612093565b81526020019081526020015f205f6101000a81548160ff021916908315150217905550610ab3848484611595565b90509392505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b8e575060036001600380549050610b269190611fd9565b81548110610b3757610b3661200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b96575f80fd5b600f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504360108190555050565b60015481565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610c6f5750600660149054906101000a900460ff165b15610c925760055466038d7ea4c6800083610c8a9190612093565b149050610e3c565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d0b57600c5f8381526020019081526020015f205f9054906101000a900460ff169050610e3c565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8457600d5f8381526020019081526020015f205f9054906101000a900460ff169050610e3c565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610def57600282118015610de85750600682105b9050610e3c565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690505b92915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f14575060036001600380549050610eac9190611fd9565b81548110610ebd57610ebc61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f1c575f80fd5b80600e8190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ff8575060036001600380549050610f909190611fd9565b81548110610fa157610fa061200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611000575f80fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600660149054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061113d5750600360016003805490506110d59190611fd9565b815481106110e6576110e561200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611145575f80fd5b600660149054906101000a900460ff1615600660146101000a81548160ff021916908315150217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112435750600360016003805490506111db9190611fd9565b815481106111ec576111eb61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61124b575f80fd5b600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e54341480156112da5750600d5f8281526020019081526020015f205f9054906101000a900460ff16155b6112e2575f80fd5b6001600d5f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f1935050505090508061136c575f80fd5b5050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061145f5750600360016003805490506113f79190611fd9565b815481106114085761140761200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611467575f80fd5b815f81905550806001819055505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061154a5750600360016003805490506114e29190611fd9565b815481106114f3576114f261200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611552575f80fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f80600f80549050116115a6575f80fd5b6001545f54601054436115b99190611fd9565b6115c39190612093565b111561164957600f8080549050858585436040516020016115e79493929190612128565b604051602081830303815290604052805190602001205f1c6116099190612175565b8154811061161a5761161961200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611699565b600f6001600f8054905061165d9190611fd9565b8154811061166e5761166d61200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b9392505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061178f5750600360016003805490506117279190611fd9565b815481106117385761173761200c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611797575f80fd5b5f5b82518110156117f75781600c5f8584815181106117b9576117b861200c565b5b602002602001015181526020019081526020015f205f6101000a81548160ff02191690831515021790555080806117ef906121a5565b915050611799565b505050565b5f6118078383610c06565b61180f575f80fd5b61181a8484846118a0565b611822575f80fd5b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f80544361187c9190612093565b81526020019081526020015f205f9054906101000a900460ff161590509392505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361199957600160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e86856040518363ffffffff1660e01b81526004016119529291906121ec565b602060405180830381865afa15801561196d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119919190612227565b149050611a42565b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b81526004016119e99190611c10565b602060405180830381865afa158015611a04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a289190612266565b73ffffffffffffffffffffffffffffffffffffffff161490505b9392505050565b600b602052825f5260405f20602052815f5260405f20602052805f5260405f205f92509250509054906101000a900460ff1681565b5f603c4360015f5443611a919190612093565b611a9b9190612291565b5f54611aa791906122c4565b611ab19190611fd9565b600c611abd91906122c4565b611ac79190612093565b905090565b60038181548110611adb575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b611b2a81611b18565b8114611b34575f80fd5b50565b5f81359050611b4581611b21565b92915050565b5f60208284031215611b6057611b5f611b10565b5b5f611b6d84828501611b37565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9f82611b76565b9050919050565b611baf81611b95565b82525050565b5f602082019050611bc85f830184611ba6565b92915050565b5f8115159050919050565b611be281611bce565b82525050565b5f602082019050611bfb5f830184611bd9565b92915050565b611c0a81611b18565b82525050565b5f602082019050611c235f830184611c01565b92915050565b611c3281611b95565b8114611c3c575f80fd5b50565b5f81359050611c4d81611c29565b92915050565b5f805f60608486031215611c6a57611c69611b10565b5b5f611c7786828701611c3f565b9350506020611c8886828701611c3f565b9250506040611c9986828701611b37565b9150509250925092565b5f60208284031215611cb857611cb7611b10565b5b5f611cc584828501611c3f565b91505092915050565b5f8060408385031215611ce457611ce3611b10565b5b5f611cf185828601611c3f565b9250506020611d0285828601611b37565b9150509250929050565b611d1581611bce565b8114611d1f575f80fd5b50565b5f81359050611d3081611d0c565b92915050565b5f8060408385031215611d4c57611d4b611b10565b5b5f611d5985828601611c3f565b9250506020611d6a85828601611d22565b9150509250929050565b5f8060408385031215611d8a57611d89611b10565b5b5f611d9785828601611b37565b9250506020611da885828601611b37565b9150509250929050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611dfc82611db6565b810181811067ffffffffffffffff82111715611e1b57611e1a611dc6565b5b80604052505050565b5f611e2d611b07565b9050611e398282611df3565b919050565b5f67ffffffffffffffff821115611e5857611e57611dc6565b5b602082029050602081019050919050565b5f80fd5b5f611e7f611e7a84611e3e565b611e24565b90508083825260208201905060208402830185811115611ea257611ea1611e69565b5b835b81811015611ecb5780611eb78882611b37565b845260208401935050602081019050611ea4565b5050509392505050565b5f82601f830112611ee957611ee8611db2565b5b8135611ef9848260208601611e6d565b91505092915050565b5f8060408385031215611f1857611f17611b10565b5b5f83013567ffffffffffffffff811115611f3557611f34611b14565b5b611f4185828601611ed5565b9250506020611f5285828601611d22565b9150509250929050565b5f805f60608486031215611f7357611f72611b10565b5b5f611f8086828701611c3f565b9350506020611f9186828701611b37565b9250506040611fa286828701611b37565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611fe382611b18565b9150611fee83611b18565b925082820390508181111561200657612005611fac565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61209d82611b18565b91506120a883611b18565b9250826120b8576120b7612066565b5b828204905092915050565b5f8160601b9050919050565b5f6120d9826120c3565b9050919050565b5f6120ea826120cf565b9050919050565b6121026120fd82611b95565b6120e0565b82525050565b5f819050919050565b61212261211d82611b18565b612108565b82525050565b5f61213382876120f1565b60148201915061214382866120f1565b6014820191506121538285612111565b6020820191506121638284612111565b60208201915081905095945050505050565b5f61217f82611b18565b915061218a83611b18565b92508261219a57612199612066565b5b828206905092915050565b5f6121af82611b18565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121e1576121e0611fac565b5b600182019050919050565b5f6040820190506121ff5f830185611ba6565b61220c6020830184611c01565b9392505050565b5f8151905061222181611b21565b92915050565b5f6020828403121561223c5761223b611b10565b5b5f61224984828501612213565b91505092915050565b5f8151905061226081611c29565b92915050565b5f6020828403121561227b5761227a611b10565b5b5f61228884828501612252565b91505092915050565b5f61229b82611b18565b91506122a683611b18565b92508282019050808211156122be576122bd611fac565b5b92915050565b5f6122ce82611b18565b91506122d983611b18565b92508282026122e781611b18565b915082820484148315176122fe576122fd611fac565b5b509291505056fea2646970667358221220fd6187dc82f2619bb12d992191c585889dc7e402b563380e91f224cb92fc895964736f6c63430008150033

Deployed Bytecode Sourcemap

3780:6905:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5150:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5619:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4230:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3838:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5385:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6943:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7198:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6739:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3913:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8568:519;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4534:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6548:99;;;;;;;;;;;;;:::i;:::-;;6188:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7920:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5297:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8327:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10196:484;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4913:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7632:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9578:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9162:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4984:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9953:161;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4161:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5150:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;5619:26::-;;;;:::o;4230:43::-;;;;;;;;;;;;;:::o;3838:35::-;;;;:::o;5385:39::-;;;;:::o;6943:140::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;7032:7:::1;7055:1;7040:7;:14;;;;:16;;;;:::i;:::-;7032:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7015:7;7023:5;7015:14;;;;;;;;:::i;:::-;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;7064:7;:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6943:140:::0;:::o;7198:362::-;7315:7;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;7339:43:::1;7350:11;7363:8;7373;7339:10;:43::i;:::-;7331:52;;;::::0;::::1;;7447:4;7390:6;:16;7397:8;7390:16;;;;;;;;;;;;;;;:26;7407:8;7390:26;;;;;;;;;;;:54;7432:11:::0;::::1;7417:12;:26;;;;:::i;:::-;7390:54;;;;;;;;;;;;:61;;;;;;;;;;;;;;;;;;7465:46;7479:11;7492:8;7502;7465:13;:46::i;:::-;7458:53;;7198:362:::0;;;;;:::o;6739:196::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;6817:7:::1;6830:11;6817:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6863:12;6849:11;:26;;;;6739:196:::0;:::o;3913:36::-;;;;:::o;8568:519::-;8644:4;8673:9;;;;;;;;;;;8661:21;;:8;:21;;;:37;;;;;8686:12;;;;;;;;;;;8661:37;8657:425;;;8735:6;;8727:4;8716:8;:15;;;;:::i;:::-;:25;8709:32;;;;8657:425;8772:5;;;;;;;;;;;8760:17;;:8;:17;;;8756:326;;8795:13;:23;8809:8;8795:23;;;;;;;;;;;;;;;;;;;;;8788:30;;;;8756:326;8848:9;;;;;;;;;;;8836:21;;:8;:21;;;8832:250;;8875:13;:23;8889:8;8875:23;;;;;;;;;;;;;;;;;;;;;8868:30;;;;8832:250;8928:8;;;;;;;;;;;8916:20;;:8;:20;;;8912:170;;8963:1;8954:8;:10;:24;;;;;8977:1;8968:8;:10;8954:24;8947:31;;;;8912:170;9008:11;:21;9020:8;9008:21;;;;;;;;;;;;;;;;;;;;;;;;;9001:28;;8568:519;;;;;:::o;8195:124::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;8299:7:::1;8279:17;:27;;;;8195:124:::0;:::o;6360:::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;6475:3:::1;6451:11;:21;6463:8;6451:21;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;6360:124:::0;;:::o;4534:31::-;;;;;;;;;;;;;:::o;6548:99::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;6629:12:::1;;;;;;;;;;;6628:13;6613:12;;:28;;;;;;;;;;;;;;;;;;6548:99::o:0;6188:126::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;6276:11:::1;6293:14;6276:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6188:126:::0;:::o;7920:269::-;8011:17;;7998:9;:30;:58;;;;;8033:13;:23;8047:8;8033:23;;;;;;;;;;;;;;;;;;;;;8032:24;7998:58;7990:67;;;;;;8095:4;8069:13;:23;8083:8;8069:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;8106:9;8126:19;;;;;;;;;;;8118:33;;:44;8152:9;8118:44;;;;;;;;;;;;;;;;;;;;;;;8106:56;;8178:4;8170:13;;;;;;7983:206;7920:269;:::o;5297:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;5962:170::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;6078:10:::1;6064:11;:24;;;;6115:10;6096:16;:29;;;;5962:170:::0;;:::o;8327:137::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;8445:13:::1;8423:19;;:35;;;;;;;;;;;;;;;;;;8327:137:::0;:::o;10196:484::-;10297:7;10338:1;10321:7;:14;;;;:18;10313:27;;;;;;10396:16;;10382:11;;10367;;10352:12;:26;;;;:::i;:::-;10351:42;;;;:::i;:::-;:61;10347:328;;;10435:7;10529;:14;;;;10478:11;10491:8;10501;10511:12;10461:63;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10451:74;;;;;;10443:83;;:100;;;;:::i;:::-;10435:109;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10428:116;;;;10347:328;10596:7;10621:1;10604:7;:14;;;;:18;;;;:::i;:::-;10596:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10589:34;;10196:484;;;;;;:::o;4913:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;7632:204::-;5775:6;;;;;;;;;;;5761:20;;:10;:20;;;:71;;;;5799:11;5830:1;5811:11;:18;;;;:20;;;;:::i;:::-;5799:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5785:47;;:10;:47;;;5761:71;5753:80;;;;;;7735:9:::1;7730:97;7754:9;:16;7750:1;:20;7730:97;;;7816:3;7786:13;:27;7800:9;7810:1;7800:12;;;;;;;;:::i;:::-;;;;;;;;7786:27;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7772:3;;;;;:::i;:::-;;;;7730:97;;;;7632:204:::0;;:::o;9578:290::-;9676:4;9705:29;9715:8;9725;9705:9;:29::i;:::-;9697:38;;;;;;9751:41;9760:11;9773:8;9783;9751;:41::i;:::-;9743:50;;;;;;9808:6;:16;9815:8;9808:16;;;;;;;;;;;;;;;:26;9825:8;9808:26;;;;;;;;;;;:54;9850:11;;9835:12;:26;;;;:::i;:::-;9808:54;;;;;;;;;;;;;;;;;;;;;9807:55;9800:62;;9578:290;;;;;:::o;9162:302::-;9258:4;9287:9;;;;;;;;;;;9275:21;;:8;:21;;;9271:188;;9370:1;9323:9;;;;;;;;;;;9314:29;;;9344:11;9357:8;9314:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;9307:64;;;;9271:188;9440:11;9401:50;;9409:8;9401:25;;;9427:8;9401:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;;9394:57;;9162:302;;;;;;:::o;4984:78::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9953:161::-;10004:7;10106:2;10090:12;10085:1;10071:11;;10056:12;:26;;;;:::i;:::-;:30;;;;:::i;:::-;10041:11;;:46;;;;:::i;:::-;:61;;;;:::i;:::-;10035:2;:68;;;;:::i;:::-;:73;;;;:::i;:::-;10028:80;;9953:161;:::o;4161:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:90::-;1645:7;1688:5;1681:13;1674:21;1663:32;;1611:90;;;:::o;1707:109::-;1788:21;1803:5;1788:21;:::i;:::-;1783:3;1776:34;1707:109;;:::o;1822:210::-;1909:4;1947:2;1936:9;1932:18;1924:26;;1960:65;2022:1;2011:9;2007:17;1998:6;1960:65;:::i;:::-;1822:210;;;;:::o;2038:118::-;2125:24;2143:5;2125:24;:::i;:::-;2120:3;2113:37;2038:118;;:::o;2162:222::-;2255:4;2293:2;2282:9;2278:18;2270:26;;2306:71;2374:1;2363:9;2359:17;2350:6;2306:71;:::i;:::-;2162:222;;;;:::o;2390:122::-;2463:24;2481:5;2463:24;:::i;:::-;2456:5;2453:35;2443:63;;2502:1;2499;2492:12;2443:63;2390:122;:::o;2518:139::-;2564:5;2602:6;2589:20;2580:29;;2618:33;2645:5;2618:33;:::i;:::-;2518:139;;;;:::o;2663:619::-;2740:6;2748;2756;2805:2;2793:9;2784:7;2780:23;2776:32;2773:119;;;2811:79;;:::i;:::-;2773:119;2931:1;2956:53;3001:7;2992:6;2981:9;2977:22;2956:53;:::i;:::-;2946:63;;2902:117;3058:2;3084:53;3129:7;3120:6;3109:9;3105:22;3084:53;:::i;:::-;3074:63;;3029:118;3186:2;3212:53;3257:7;3248:6;3237:9;3233:22;3212:53;:::i;:::-;3202:63;;3157:118;2663:619;;;;;:::o;3288:329::-;3347:6;3396:2;3384:9;3375:7;3371:23;3367:32;3364:119;;;3402:79;;:::i;:::-;3364:119;3522:1;3547:53;3592:7;3583:6;3572:9;3568:22;3547:53;:::i;:::-;3537:63;;3493:117;3288:329;;;;:::o;3623:474::-;3691:6;3699;3748:2;3736:9;3727:7;3723:23;3719:32;3716:119;;;3754:79;;:::i;:::-;3716:119;3874:1;3899:53;3944:7;3935:6;3924:9;3920:22;3899:53;:::i;:::-;3889:63;;3845:117;4001:2;4027:53;4072:7;4063:6;4052:9;4048:22;4027:53;:::i;:::-;4017:63;;3972:118;3623:474;;;;;:::o;4103:116::-;4173:21;4188:5;4173:21;:::i;:::-;4166:5;4163:32;4153:60;;4209:1;4206;4199:12;4153:60;4103:116;:::o;4225:133::-;4268:5;4306:6;4293:20;4284:29;;4322:30;4346:5;4322:30;:::i;:::-;4225:133;;;;:::o;4364:468::-;4429:6;4437;4486:2;4474:9;4465:7;4461:23;4457:32;4454:119;;;4492:79;;:::i;:::-;4454:119;4612:1;4637:53;4682:7;4673:6;4662:9;4658:22;4637:53;:::i;:::-;4627:63;;4583:117;4739:2;4765:50;4807:7;4798:6;4787:9;4783:22;4765:50;:::i;:::-;4755:60;;4710:115;4364:468;;;;;:::o;4838:474::-;4906:6;4914;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;;:::i;:::-;4931:119;5089:1;5114:53;5159:7;5150:6;5139:9;5135:22;5114:53;:::i;:::-;5104:63;;5060:117;5216:2;5242:53;5287:7;5278:6;5267:9;5263:22;5242:53;:::i;:::-;5232:63;;5187:118;4838:474;;;;;:::o;5318:117::-;5427:1;5424;5417:12;5441:102;5482:6;5533:2;5529:7;5524:2;5517:5;5513:14;5509:28;5499:38;;5441:102;;;:::o;5549:180::-;5597:77;5594:1;5587:88;5694:4;5691:1;5684:15;5718:4;5715:1;5708:15;5735:281;5818:27;5840:4;5818:27;:::i;:::-;5810:6;5806:40;5948:6;5936:10;5933:22;5912:18;5900:10;5897:34;5894:62;5891:88;;;5959:18;;:::i;:::-;5891:88;5999:10;5995:2;5988:22;5778:238;5735:281;;:::o;6022:129::-;6056:6;6083:20;;:::i;:::-;6073:30;;6112:33;6140:4;6132:6;6112:33;:::i;:::-;6022:129;;;:::o;6157:311::-;6234:4;6324:18;6316:6;6313:30;6310:56;;;6346:18;;:::i;:::-;6310:56;6396:4;6388:6;6384:17;6376:25;;6456:4;6450;6446:15;6438:23;;6157:311;;;:::o;6474:117::-;6583:1;6580;6573:12;6614:710;6710:5;6735:81;6751:64;6808:6;6751:64;:::i;:::-;6735:81;:::i;:::-;6726:90;;6836:5;6865:6;6858:5;6851:21;6899:4;6892:5;6888:16;6881:23;;6952:4;6944:6;6940:17;6932:6;6928:30;6981:3;6973:6;6970:15;6967:122;;;7000:79;;:::i;:::-;6967:122;7115:6;7098:220;7132:6;7127:3;7124:15;7098:220;;;7207:3;7236:37;7269:3;7257:10;7236:37;:::i;:::-;7231:3;7224:50;7303:4;7298:3;7294:14;7287:21;;7174:144;7158:4;7153:3;7149:14;7142:21;;7098:220;;;7102:21;6716:608;;6614:710;;;;;:::o;7347:370::-;7418:5;7467:3;7460:4;7452:6;7448:17;7444:27;7434:122;;7475:79;;:::i;:::-;7434:122;7592:6;7579:20;7617:94;7707:3;7699:6;7692:4;7684:6;7680:17;7617:94;:::i;:::-;7608:103;;7424:293;7347:370;;;;:::o;7723:678::-;7813:6;7821;7870:2;7858:9;7849:7;7845:23;7841:32;7838:119;;;7876:79;;:::i;:::-;7838:119;8024:1;8013:9;8009:17;7996:31;8054:18;8046:6;8043:30;8040:117;;;8076:79;;:::i;:::-;8040:117;8181:78;8251:7;8242:6;8231:9;8227:22;8181:78;:::i;:::-;8171:88;;7967:302;8308:2;8334:50;8376:7;8367:6;8356:9;8352:22;8334:50;:::i;:::-;8324:60;;8279:115;7723:678;;;;;:::o;8407:619::-;8484:6;8492;8500;8549:2;8537:9;8528:7;8524:23;8520:32;8517:119;;;8555:79;;:::i;:::-;8517:119;8675:1;8700:53;8745:7;8736:6;8725:9;8721:22;8700:53;:::i;:::-;8690:63;;8646:117;8802:2;8828:53;8873:7;8864:6;8853:9;8849:22;8828:53;:::i;:::-;8818:63;;8773:118;8930:2;8956:53;9001:7;8992:6;8981:9;8977:22;8956:53;:::i;:::-;8946:63;;8901:118;8407:619;;;;;:::o;9032:180::-;9080:77;9077:1;9070:88;9177:4;9174:1;9167:15;9201:4;9198:1;9191:15;9218:194;9258:4;9278:20;9296:1;9278:20;:::i;:::-;9273:25;;9312:20;9330:1;9312:20;:::i;:::-;9307:25;;9356:1;9353;9349:9;9341:17;;9380:1;9374:4;9371:11;9368:37;;;9385:18;;:::i;:::-;9368:37;9218:194;;;;:::o;9418:180::-;9466:77;9463:1;9456:88;9563:4;9560:1;9553:15;9587:4;9584:1;9577:15;9604:180;9652:77;9649:1;9642:88;9749:4;9746:1;9739:15;9773:4;9770:1;9763:15;9790:180;9838:77;9835:1;9828:88;9935:4;9932:1;9925:15;9959:4;9956:1;9949:15;9976:185;10016:1;10033:20;10051:1;10033:20;:::i;:::-;10028:25;;10067:20;10085:1;10067:20;:::i;:::-;10062:25;;10106:1;10096:35;;10111:18;;:::i;:::-;10096:35;10153:1;10150;10146:9;10141:14;;9976:185;;;;:::o;10167:94::-;10200:8;10248:5;10244:2;10240:14;10219:35;;10167:94;;;:::o;10267:::-;10306:7;10335:20;10349:5;10335:20;:::i;:::-;10324:31;;10267:94;;;:::o;10367:100::-;10406:7;10435:26;10455:5;10435:26;:::i;:::-;10424:37;;10367:100;;;:::o;10473:157::-;10578:45;10598:24;10616:5;10598:24;:::i;:::-;10578:45;:::i;:::-;10573:3;10566:58;10473:157;;:::o;10636:79::-;10675:7;10704:5;10693:16;;10636:79;;;:::o;10721:157::-;10826:45;10846:24;10864:5;10846:24;:::i;:::-;10826:45;:::i;:::-;10821:3;10814:58;10721:157;;:::o;10884:679::-;11080:3;11095:75;11166:3;11157:6;11095:75;:::i;:::-;11195:2;11190:3;11186:12;11179:19;;11208:75;11279:3;11270:6;11208:75;:::i;:::-;11308:2;11303:3;11299:12;11292:19;;11321:75;11392:3;11383:6;11321:75;:::i;:::-;11421:2;11416:3;11412:12;11405:19;;11434:75;11505:3;11496:6;11434:75;:::i;:::-;11534:2;11529:3;11525:12;11518:19;;11554:3;11547:10;;10884:679;;;;;;;:::o;11569:176::-;11601:1;11618:20;11636:1;11618:20;:::i;:::-;11613:25;;11652:20;11670:1;11652:20;:::i;:::-;11647:25;;11691:1;11681:35;;11696:18;;:::i;:::-;11681:35;11737:1;11734;11730:9;11725:14;;11569:176;;;;:::o;11751:233::-;11790:3;11813:24;11831:5;11813:24;:::i;:::-;11804:33;;11859:66;11852:5;11849:77;11846:103;;11929:18;;:::i;:::-;11846:103;11976:1;11969:5;11965:13;11958:20;;11751:233;;;:::o;11990:332::-;12111:4;12149:2;12138:9;12134:18;12126:26;;12162:71;12230:1;12219:9;12215:17;12206:6;12162:71;:::i;:::-;12243:72;12311:2;12300:9;12296:18;12287:6;12243:72;:::i;:::-;11990:332;;;;;:::o;12328:143::-;12385:5;12416:6;12410:13;12401:22;;12432:33;12459:5;12432:33;:::i;:::-;12328:143;;;;:::o;12477:351::-;12547:6;12596:2;12584:9;12575:7;12571:23;12567:32;12564:119;;;12602:79;;:::i;:::-;12564:119;12722:1;12747:64;12803:7;12794:6;12783:9;12779:22;12747:64;:::i;:::-;12737:74;;12693:128;12477:351;;;;:::o;12834:143::-;12891:5;12922:6;12916:13;12907:22;;12938:33;12965:5;12938:33;:::i;:::-;12834:143;;;;:::o;12983:351::-;13053:6;13102:2;13090:9;13081:7;13077:23;13073:32;13070:119;;;13108:79;;:::i;:::-;13070:119;13228:1;13253:64;13309:7;13300:6;13289:9;13285:22;13253:64;:::i;:::-;13243:74;;13199:128;12983:351;;;;:::o;13340:191::-;13380:3;13399:20;13417:1;13399:20;:::i;:::-;13394:25;;13433:20;13451:1;13433:20;:::i;:::-;13428:25;;13476:1;13473;13469:9;13462:16;;13497:3;13494:1;13491:10;13488:36;;;13504:18;;:::i;:::-;13488:36;13340:191;;;;:::o;13537:410::-;13577:7;13600:20;13618:1;13600:20;:::i;:::-;13595:25;;13634:20;13652:1;13634:20;:::i;:::-;13629:25;;13689:1;13686;13682:9;13711:30;13729:11;13711:30;:::i;:::-;13700:41;;13890:1;13881:7;13877:15;13874:1;13871:22;13851:1;13844:9;13824:83;13801:139;;13920:18;;:::i;:::-;13801:139;13585:362;13537:410;;;;:::o

Swarm Source

ipfs://fd6187dc82f2619bb12d992191c585889dc7e402b563380e91f224cb92fc8959

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.