ETH Price: $2,637.86 (+7.74%)
Gas: 3 Gwei

Contract

0xb0963da9baef08711583252f5000Df44D4F56925
 

Overview

ETH Balance

4.2248540488884 ETH

Eth Value

$11,144.59 (@ $2,637.86/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Reques Withdraw104615852020-07-15 3:05:131486 days ago1594782313IN
AMFEIX
0 ETH0.0066835130.16
Reques Withdraw104196422020-07-08 15:21:381492 days ago1594221698IN
AMFEIX
0 ETH0.0161760773
Reques Withdraw103865652020-07-03 12:55:021497 days ago1593780902IN
AMFEIX
0 ETH0.02839224120
Reques Withdraw103743702020-07-01 15:37:081499 days ago1593617828IN
AMFEIX
0 ETH0.0150689368
Set Data Block103696372020-06-30 21:42:001500 days ago1593553320IN
AMFEIX
0 ETH0.0027156835
Set Data Block103631912020-06-29 21:51:451501 days ago1593467505IN
AMFEIX
0 ETH0.0033885235
Set Data Block103568202020-06-28 21:51:411502 days ago1593381101IN
AMFEIX
0 ETH0.0027156835
Set Data Block103503082020-06-27 21:51:491503 days ago1593294709IN
AMFEIX
0 ETH0.0033893635
Set Data Block103438052020-06-26 21:22:181504 days ago1593206538IN
AMFEIX
0 ETH0.0027156835
Set Data Block103374522020-06-25 21:37:511505 days ago1593121071IN
AMFEIX
0 ETH0.0027156835
Set Data Block103309752020-06-24 21:43:491506 days ago1593035029IN
AMFEIX
0 ETH0.0033893635
Set Data Block103245062020-06-23 21:37:491507 days ago1592948269IN
AMFEIX
0 ETH0.0027156835
Set Data Block103180372020-06-22 21:38:251508 days ago1592861905IN
AMFEIX
0 ETH0.0033893635
Set Data Block103115622020-06-21 21:38:071509 days ago1592775487IN
AMFEIX
0 ETH0.0027156835
Set Data Block103051052020-06-20 21:35:571510 days ago1592688957IN
AMFEIX
0 ETH0.0027932736
Set Data Block102986842020-06-19 21:42:221511 days ago1592602942IN
AMFEIX
0 ETH0.0038865240
Set Data Block102986602020-06-19 21:36:381511 days ago1592602598IN
AMFEIX
0 ETH0.0006458430
Set Data Block102921112020-06-18 21:30:461512 days ago1592515846IN
AMFEIX
0 ETH0.0029152530
Set Data Block102856722020-06-17 21:34:091513 days ago1592429649IN
AMFEIX
0 ETH0.0023277330
Set Data Block102792282020-06-16 21:29:371514 days ago1592342977IN
AMFEIX
0 ETH0.0023277330
Set Data Block102728422020-06-15 21:40:491515 days ago1592257249IN
AMFEIX
0 ETH0.0029051730
Reques Withdraw102708672020-06-15 14:34:321515 days ago1592231672IN
AMFEIX
0 ETH0.011620652.43906267
Set Data Block102663572020-06-14 21:40:491516 days ago1592170849IN
AMFEIX
0 ETH0.0029048130
Set Data Block102598032020-06-13 21:30:081517 days ago1592083808IN
AMFEIX
0 ETH0.0023277330
Set Data Block102532892020-06-12 21:26:151518 days ago1591997175IN
AMFEIX
0 ETH0.0029048130
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
101888782020-06-02 21:34:561528 days ago1591133696
AMFEIX
0.044 ETH
101888742020-06-02 21:34:261528 days ago1591133666
AMFEIX
0.044 ETH
101888712020-06-02 21:33:491528 days ago1591133629
AMFEIX
0.044 ETH
101888702020-06-02 21:33:401528 days ago1591133620
AMFEIX
0.044 ETH
101888652020-06-02 21:32:251528 days ago1591133545
AMFEIX
0.044 ETH
101887512020-06-02 21:08:431528 days ago1591132123
AMFEIX
0.055 ETH
101887502020-06-02 21:08:051528 days ago1591132085
AMFEIX
0.055 ETH
101887482020-06-02 21:07:511528 days ago1591132071
AMFEIX
0.055 ETH
101887462020-06-02 21:07:111528 days ago1591132031
AMFEIX
0.055 ETH
101887452020-06-02 21:06:521528 days ago1591132012
AMFEIX
0.055 ETH
101887412020-06-02 21:05:461528 days ago1591131946
AMFEIX
0.055 ETH
101887412020-06-02 21:05:461528 days ago1591131946
AMFEIX
0.055 ETH
101887392020-06-02 21:05:191528 days ago1591131919
AMFEIX
0.055 ETH
101887362020-06-02 21:04:301528 days ago1591131870
AMFEIX
0.055 ETH
101887332020-06-02 21:03:521528 days ago1591131832
AMFEIX
0.055 ETH
101887302020-06-02 21:03:201528 days ago1591131800
AMFEIX
0.055 ETH
101887272020-06-02 21:02:191528 days ago1591131739
AMFEIX
0.055 ETH
101887252020-06-02 21:02:021528 days ago1591131722
AMFEIX
0.055 ETH
101887202020-06-02 21:01:171528 days ago1591131677
AMFEIX
0.055 ETH
101887152020-06-02 21:00:291528 days ago1591131629
AMFEIX
0.055 ETH
101823702020-06-01 21:25:161529 days ago1591046716
AMFEIX
0.03 ETH
101823342020-06-01 21:17:421529 days ago1591046262
AMFEIX
0.03 ETH
101823342020-06-01 21:17:421529 days ago1591046262
AMFEIX
0.03 ETH
101823342020-06-01 21:17:421529 days ago1591046262
AMFEIX
0.03 ETH
101823342020-06-01 21:17:421529 days ago1591046262
AMFEIX
0.03 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Storage

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 100 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-31
*/

pragma solidity 0.4.24;
/*
    Copyright 2018, SECRET 56

    License:
    https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode
*/

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

  function div(uint256 a, uint256 b) pure internal returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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

  function max64(uint64 a, uint64 b) internal pure returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal pure returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal pure returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal pure returns (uint256) {
    return a < b ? a : b;
  }

  function abs128(int128 a) internal pure returns (int128) {
    return a < 0 ? a * -1 : a;
  }
}

// Provides basic authorization control, having an owner address
contract Ownable {
    address public owner;

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

    constructor() internal {
        owner = msg.sender;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

// Defines only the typical transfer function of ERC20 tokens
contract Token {
    function transfer(address to, uint256 value) public returns (bool);
    function balanceOf(address who) public view returns (uint256);
}

// Can deposit and withdraw ETH and ERC20 tokens
contract Reclaimable is Ownable {

    // Allows payments in the constructor too
    constructor() public payable {
    }

    // Allows payments to this contract
    function() public payable {
    }

    // Withdraw ether from this contract
    function reclaimEther() external onlyOwner {
        owner.transfer(address(this).balance);
    }

    // Withdraws any token with transfer function (ERC20 like)
    function reclaimToken(address _token) public onlyOwner {
        Token token = Token(_token);

        uint256 balance = token.balanceOf(this);
        token.transfer(owner, balance);
    }
}

//////////////////////////////////////////////////////////////
//                                                          //
//                      Storage                             //
//                                                          //
//////////////////////////////////////////////////////////////



contract Storage is Ownable, Reclaimable {
    using SafeMath for uint256;

    uint256 maxGasPrice = 4000000000;
    uint256 public gasrequest = 250000;

    uint256[] public time;
    int256[] public amount;
    address[] public investorsAddresses;

    int256 public aum; 
    uint256 public decimals = 8;
    mapping(uint256 => bool) public timeExists;
    mapping (address => bool) public resellers;
    mapping (address => bool) public investors;
    mapping (address => mapping (address => bool)) resinv;

    mapping(address => uint256) public ntx;
    mapping(address => uint256) public rtx;

    mapping ( address => mapping (uint256 => btcTransaction)) public fundTx;
    mapping ( address => mapping (uint256 => btcTransactionRequest)) public reqWD;

    uint256 public btcPrice;
    uint256 public fee1;
    uint256 public fee2;
    uint256 public fee3;

    // fund deposit address mapping and length
    uint256 public fundDepositAddressesLength;
    mapping (uint256 => string) public fundDepositAddresses;


    uint256 public feeAddressesLength;
    mapping (uint256 => string) public feeAddresses;

    // This can be a deposit or a withdraw transaction
    struct btcTransaction {
        string txId;
        string pubKey;
        string signature;
        // Action here is 0 for deposit and 1 for withdraw
        uint256 action;
        uint256 timestamp;
    }

    // This is only a request of a transaction
 
    struct btcTransactionRequest {
        string txId;
        string pubKey;
        string signature;
        uint256 action; // Is action needed here???
        uint256 timestamp;
        string referal;
    }

	constructor () public {

	}
    /** SET FUND BTC ADDRESS */

    function setfundDepositAddress(string bitcoinAddress) public onlyOwner {
        // Add bitcoin address to index and increment index
        fundDepositAddresses[fundDepositAddressesLength++] = bitcoinAddress;
    }

    function setFeeAddress(string bitcoinAddress) public onlyOwner {
        // Add bitcoin address to index and increment index
        feeAddresses[feeAddressesLength++] = bitcoinAddress;
    }

    /** DEPOSITS */

    function setRequestGas (uint256 _gasrequest) public onlyOwner{
        gasrequest = _gasrequest;
    }

    function setAum(int256 _aum) public onlyOwner{
        aum = _aum;
    }


    function depositAdmin(address addr,string txid, string pubkey, string signature) public onlyOwner{
        setInvestor(addr, true);
        addTX (addr,txid, pubkey, signature, 0); 
    
        uint256 gasPrice = tx.gasprice;
        uint256 repayal = gasPrice.mul(gasrequest);
        addr.transfer(repayal);
    }

    /** WITHDRAWS */

    // FIXME: bad naming, request with T
    function requesWithdraw(address addr,string txid, string pubkey, string signature, string referal) public {
        require(investors[msg.sender]==true);

        uint256 i =  rtx[addr];
        reqWD[addr][i].txId=txid;
        reqWD[addr][i].pubKey=pubkey;
        reqWD[addr][i].signature=signature;
        reqWD[addr][i].action=1;
        reqWD[addr][i].timestamp = block.timestamp;
        reqWD[addr][i].referal = referal;
        ++rtx[addr];
    }

    function returnInvestment(address addr,string txid, string pubkey, string signature) public onlyOwner {
        // FIXME: Should check if its not returned already!!
        addTX (addr,txid, pubkey, signature, 1);
    }

    /** INVESTORS */

    function setInvestor(address _addr, bool _allowed) public onlyOwner {
        investors[_addr] = _allowed;
        if(_allowed != false){
            uint256 hasTransactions= ntx[_addr];
            if(hasTransactions == 0){
                investorsAddresses.push(_addr);
            }
        }
    }

    function getAllInvestors() public view returns (address[]){
        return investorsAddresses;
    }

    /** RESELLER FUNCTIONALITY? */

    function setReseller(address _addr, bool _allowed) public onlyOwner {
        resellers[_addr] = _allowed;
    }

    function setResellerInvestor(address _res, address _inv, bool _allowed) public onlyOwner {
        resinv[_res][_inv] = _allowed;
    }

    /** UTILITIES */

    // Adds a new tx even if it exists already
    function addTX (address addr,string txid, string pubkey, string signature, uint256 action) internal {
        uint256 i =  ntx[addr];
        fundTx[addr][i].txId = txid;
        fundTx[addr][i].pubKey = pubkey;
        fundTx[addr][i].signature = signature;
        fundTx[addr][i].action = action;
        fundTx[addr][i].timestamp = block.timestamp;
        ++ntx[addr];
    }

    function getTx (address addr, uint256 i) public view returns (string,string,string,uint256, uint256) {
        return (fundTx[addr][i].txId,fundTx[addr][i].pubKey,fundTx[addr][i].signature,fundTx[addr][i].action, fundTx[addr][i].timestamp);
    }

    function setData(uint256 t, int256 a) public onlyOwner{
        require(timeExists[t] != true);
        time.push(t);
        amount.push(a);
        timeExists[t] = true;
    }

    function setDataBlock(int256 a) public onlyOwner{
        require(timeExists[block.timestamp] != true);
        time.push(block.timestamp);
        amount.push(a);
        timeExists[block.timestamp] = true;
    }

    function getAll() public view returns(uint256[] t, int256[] a){
        return (time, amount);
    }

    function setBtcPrice(uint256 _price) public onlyOwner {
        btcPrice = _price;
    }

    
    function setFee(uint256 _fee1,uint256 _fee2,uint256 _fee3) public onlyOwner {
        fee1 = _fee1;
        fee2 = _fee2;
        fee3 = _fee3;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"gasrequest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_gasrequest","type":"uint256"}],"name":"setRequestGas","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"fundTx","outputs":[{"name":"txId","type":"string"},{"name":"pubKey","type":"string"},{"name":"signature","type":"string"},{"name":"action","type":"uint256"},{"name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"aum","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"feeAddresses","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"txid","type":"string"},{"name":"pubkey","type":"string"},{"name":"signature","type":"string"}],"name":"depositAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bitcoinAddress","type":"string"}],"name":"setfundDepositAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fee2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_res","type":"address"},{"name":"_inv","type":"address"},{"name":"_allowed","type":"bool"}],"name":"setResellerInvestor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAll","outputs":[{"name":"t","type":"uint256[]"},{"name":"a","type":"int256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundDepositAddressesLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_fee1","type":"uint256"},{"name":"_fee2","type":"uint256"},{"name":"_fee3","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"},{"name":"i","type":"uint256"}],"name":"getTx","outputs":[{"name":"","type":"string"},{"name":"","type":"string"},{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"}],"name":"setBtcPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"txid","type":"string"},{"name":"pubkey","type":"string"},{"name":"signature","type":"string"},{"name":"referal","type":"string"}],"name":"requesWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"rtx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeAddressesLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"amount","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"reqWD","outputs":[{"name":"txId","type":"string"},{"name":"pubKey","type":"string"},{"name":"signature","type":"string"},{"name":"action","type":"uint256"},{"name":"timestamp","type":"uint256"},{"name":"referal","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_aum","type":"int256"}],"name":"setAum","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reclaimEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"timeExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"btcPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_allowed","type":"bool"}],"name":"setReseller","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"fundDepositAddresses","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"txid","type":"string"},{"name":"pubkey","type":"string"},{"name":"signature","type":"string"}],"name":"returnInvestment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bitcoinAddress","type":"string"}],"name":"setFeeAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllInvestors","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"int256"}],"name":"setDataBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"t","type":"uint256"},{"name":"a","type":"int256"}],"name":"setData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_allowed","type":"bool"}],"name":"setInvestor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"resellers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ntx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"investorsAddresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405263ee6b28006001556203d090600255600860075534801561002457600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613683806100746000396000f300608060405260043610610204576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302a1aa2014610206578063062ff0b0146102315780630a752a4e1461025e5780630ab51bac1461040a5780631297ac4f1461043557806317ffc320146104db5780631a40b74e1461051e5780632f48058d14610633578063313ce5671461069c57806339f73a48146106c7578063537d4199146106f257806353ed5143146107615780635694f2a5146108155780635b65b9ab146108405780635ced7d40146108815780636f7bc9be146108c2578063741a35c41461091d57806382c9986014610ac9578063846b315f14610af657806385d30fc814610c5157806386f3025a14610c7c578063882cdaf214610cd35780638b0d025814610cfe5780638da5cb5b14610d3f5780639076896c14610d965780639b236ba614610fae5780639f727c2714610fdb5780639f92d2e114610ff2578063a8ad52d114611037578063aaba623214611062578063afa65c8b146110b1578063afea299314611157578063c34ce9c81461126c578063c6098256146112d5578063d0a2f2c414611300578063d2f9f67d1461136c578063d37a057e14611399578063e4cd4007146113d0578063e78c60f51461141f578063ee309d6e1461147a578063f2fde38b146114d1578063ff623bb514611514575b005b34801561021257600080fd5b5061021b611581565b6040518082815260200191505060405180910390f35b34801561023d57600080fd5b5061025c60048036038101908080359060200190929190505050611587565b005b34801561026a57600080fd5b506102a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ec565b60405180806020018060200180602001868152602001858152602001848103845289818151815260200191508051906020019080838360005b838110156102fd5780820151818401526020810190506102e2565b50505050905090810190601f16801561032a5780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015610363578082015181840152602081019050610348565b50505050905090810190601f1680156103905780820380516001836020036101000a031916815260200191505b50848103825287818151815260200191508051906020019080838360005b838110156103c95780820151818401526020810190506103ae565b50505050905090810190601f1680156103f65780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561041657600080fd5b5061041f6117f7565b6040518082815260200191505060405180910390f35b34801561044157600080fd5b50610460600480360381019080803590602001909291905050506117fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104a0578082015181840152602081019050610485565b50505050905090810190601f1680156104cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e757600080fd5b5061051c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ad565b005b34801561052a57600080fd5b50610631600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611aeb565b005b34801561063f57600080fd5b5061069a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611bcb565b005b3480156106a857600080fd5b506106b1611c61565b6040518082815260200191505060405180910390f35b3480156106d357600080fd5b506106dc611c67565b6040518082815260200191505060405180910390f35b3480156106fe57600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611c6d565b005b34801561076d57600080fd5b50610776611d61565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156107bd5780820151818401526020810190506107a2565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156107ff5780820151818401526020810190506107e4565b5050505090500194505050505060405180910390f35b34801561082157600080fd5b5061082a611e14565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b5061087f600480360381019080803590602001909291908035906020019092919080359060200190929190505050611e1a565b005b34801561088d57600080fd5b506108ac60048036038101908080359060200190929190505050611e8f565b6040518082815260200191505060405180910390f35b3480156108ce57600080fd5b50610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb2565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610968600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed2565b60405180806020018060200180602001868152602001858152602001848103845289818151815260200191508051906020019080838360005b838110156109bc5780820151818401526020810190506109a1565b50505050905090810190601f1680156109e95780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015610a22578082015181840152602081019050610a07565b50505050905090810190601f168015610a4f5780820380516001836020036101000a031916815260200191505b50848103825287818151815260200191508051906020019080838360005b83811015610a88578082015181840152602081019050610a6d565b50505050905090810190601f168015610ab55780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610ad557600080fd5b50610af460048036038101908080359060200190929190505050612263565b005b348015610b0257600080fd5b50610c4f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506122c8565b005b348015610c5d57600080fd5b50610c66612611565b6040518082815260200191505060405180910390f35b348015610c8857600080fd5b50610cbd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612617565b6040518082815260200191505060405180910390f35b348015610cdf57600080fd5b50610ce861262f565b6040518082815260200191505060405180910390f35b348015610d0a57600080fd5b50610d2960048036038101908080359060200190929190505050612635565b6040518082815260200191505060405180910390f35b348015610d4b57600080fd5b50610d54612658565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610da257600080fd5b50610de1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061267d565b604051808060200180602001806020018781526020018681526020018060200185810385528b818151815260200191508051906020019080838360005b83811015610e39578082015181840152602081019050610e1e565b50505050905090810190601f168015610e665780820380516001836020036101000a031916815260200191505b5085810384528a818151815260200191508051906020019080838360005b83811015610e9f578082015181840152602081019050610e84565b50505050905090810190601f168015610ecc5780820380516001836020036101000a031916815260200191505b50858103835289818151815260200191508051906020019080838360005b83811015610f05578082015181840152602081019050610eea565b50505050905090810190601f168015610f325780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610f6b578082015181840152602081019050610f50565b50505050905090810190601f168015610f985780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b348015610fba57600080fd5b50610fd960048036038101908080359060200190929190505050612926565b005b348015610fe757600080fd5b50610ff061298b565b005b348015610ffe57600080fd5b5061101d60048036038101908080359060200190929190505050612a67565b604051808215151515815260200191505060405180910390f35b34801561104357600080fd5b5061104c612a87565b6040518082815260200191505060405180910390f35b34801561106e57600080fd5b506110af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612a8d565b005b3480156110bd57600080fd5b506110dc60048036038101908080359060200190929190505050612b43565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561111c578082015181840152602081019050611101565b50505050905090810190601f1680156111495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561116357600080fd5b5061126a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612bf3565b005b34801561127857600080fd5b506112d3600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612c62565b005b3480156112e157600080fd5b506112ea612cf8565b6040518082815260200191505060405180910390f35b34801561130c57600080fd5b50611315612cfe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561135857808201518184015260208101905061133d565b505050509050019250505060405180910390f35b34801561137857600080fd5b5061139760048036038101908080359060200190929190505050612d8c565b005b3480156113a557600080fd5b506113ce6004803603810190808035906020019092919080359060200190929190505050612ea2565b005b3480156113dc57600080fd5b5061141d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612fb9565b005b34801561142b57600080fd5b50611460600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613133565b604051808215151515815260200191505060405180910390f35b34801561148657600080fd5b506114bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613153565b6040518082815260200191505060405180910390f35b3480156114dd57600080fd5b50611512600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061316b565b005b34801561152057600080fd5b5061153f600480360381019080803590602001909291905050506132c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115e257600080fd5b8060028190555050565b600e60205281600052604060002060205280600052604060002060009150915050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116a55780601f1061167a576101008083540402835291602001916116a5565b820191906000526020600020905b81548152906001019060200180831161168857829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117435780601f1061171857610100808354040283529160200191611743565b820191906000526020600020905b81548152906001019060200180831161172657829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117e15780601f106117b6576101008083540402835291602001916117e1565b820191906000526020600020905b8154815290600101906020018083116117c457829003601f168201915b5050505050908060030154908060040154905085565b60065481565b60176020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118a55780601f1061187a576101008083540402835291602001916118a5565b820191906000526020600020905b81548152906001019060200180831161188857829003601f168201915b505050505081565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561190b57600080fd5b8291508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156119a957600080fd5b505af11580156119bd573d6000803e3d6000fd5b505050506040513d60208110156119d357600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611aaa57600080fd5b505af1158015611abe573d6000803e3d6000fd5b505050506040513d6020811015611ad457600080fd5b810190808051906020019092919050505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4957600080fd5b611b54866001612fb9565b611b628686868660006132fe565b3a9150611b7a6002548361357f90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bc2573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c2657600080fd5b8060156000601460008154809291906001019190505581526020019081526020016000209080519060200190611c5d9291906135b2565b5050565b60075481565b60125481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cc857600080fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6060806003600481805480602002602001604051908101604052809291908181526020018280548015611db357602002820191906000526020600020905b815481526020019060010190808311611d9f575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611e0557602002820191906000526020600020905b815481526020019060010190808311611df1575b50505050509050915091509091565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e7557600080fd5b826011819055508160128190555080601381905550505050565b600381815481101515611e9e57fe5b906000526020600020016000915090505481565b600a6020528060005260406000206000915054906101000a900460ff1681565b6060806060600080600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878152602001908152602001600020600001600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888152602001908152602001600020600101600e60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000898152602001908152602001600020600201600e60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a815260200190815260200160002060030154600e60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b815260200190815260200160002060040154848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121105780601f106120e557610100808354040283529160200191612110565b820191906000526020600020905b8154815290600101906020018083116120f357829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121ac5780601f10612181576101008083540402835291602001916121ac565b820191906000526020600020905b81548152906001019060200180831161218f57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122485780601f1061221d57610100808354040283529160200191612248565b820191906000526020600020905b81548152906001019060200180831161222b57829003601f168201915b50505050509250945094509450945094509295509295909350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122be57600080fd5b8060108190555050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561232957600080fd5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000190805190602001906123d29291906135b2565b5083600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600101908051906020019061243a9291906135b2565b5082600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060020190805190602001906124a29291906135b2565b506001600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206003018190555042600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206004018190555081600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060050190805190602001906125bb9291906135b2565b50600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550505050505050565b60135481565b600d6020528060005260406000206000915090505481565b60165481565b60048181548110151561264457fe5b906000526020600020016000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60205281600052604060002060205280600052604060002060009150915050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127365780601f1061270b57610100808354040283529160200191612736565b820191906000526020600020905b81548152906001019060200180831161271957829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127d45780601f106127a9576101008083540402835291602001916127d4565b820191906000526020600020905b8154815290600101906020018083116127b757829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128725780601f1061284757610100808354040283529160200191612872565b820191906000526020600020905b81548152906001019060200180831161285557829003601f168201915b505050505090806003015490806004015490806005018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561291c5780601f106128f15761010080835404028352916020019161291c565b820191906000526020600020905b8154815290600101906020018083116128ff57829003601f168201915b5050505050905086565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561298157600080fd5b8060068190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129e657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015612a64573d6000803e3d6000fd5b50565b60086020528060005260406000206000915054906101000a900460ff1681565b60105481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ae857600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60156020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612beb5780601f10612bc057610100808354040283529160200191612beb565b820191906000526020600020905b815481529060010190602001808311612bce57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c4e57600080fd5b612c5c8484848460016132fe565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cbd57600080fd5b8060176000601660008154809291906001019190505581526020019081526020016000209080519060200190612cf49291906135b2565b5050565b60115481565b60606005805480602002602001604051908101604052809291908181526020018280548015612d8257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612d38575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612de757600080fd5b600115156008600042815260200190815260200160002060009054906101000a900460ff16151514151515612e1b57600080fd5b6003429080600181540180825580915050906001820390600052602060002001600090919290919091505550600481908060018154018082558091505090600182039060005260206000200160009091929091909150555060016008600042815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612efd57600080fd5b600115156008600084815260200190815260200160002060009054906101000a900460ff16151514151515612f3157600080fd5b6003829080600181540180825580915050906001820390600052602060002001600090919290919091505550600481908060018154018082558091505090600182039060005260206000200160009091929091909150555060016008600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561301657600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000151582151514151561312e57600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561312d5760058390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131c657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561320257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6005818154811015156132cf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000190805190602001906133a99291906135b2565b5083600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060010190805190602001906134119291906135b2565b5082600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060020190805190602001906134799291906135b2565b5081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206003018190555042600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060040181905550600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550505050505050565b600080828402905060008414806135a0575082848281151561359d57fe5b04145b15156135a857fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135f357805160ff1916838001178555613621565b82800160010185558215613621579182015b82811115613620578251825591602001919060010190613605565b5b50905061362e9190613632565b5090565b61365491905b80821115613650576000816000905550600101613638565b5090565b905600a165627a7a723058202480cf9a940d9779dc21477fa64195a46056fa9caeaeb1e66697e992588403c80029

Deployed Bytecode

0x608060405260043610610204576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302a1aa2014610206578063062ff0b0146102315780630a752a4e1461025e5780630ab51bac1461040a5780631297ac4f1461043557806317ffc320146104db5780631a40b74e1461051e5780632f48058d14610633578063313ce5671461069c57806339f73a48146106c7578063537d4199146106f257806353ed5143146107615780635694f2a5146108155780635b65b9ab146108405780635ced7d40146108815780636f7bc9be146108c2578063741a35c41461091d57806382c9986014610ac9578063846b315f14610af657806385d30fc814610c5157806386f3025a14610c7c578063882cdaf214610cd35780638b0d025814610cfe5780638da5cb5b14610d3f5780639076896c14610d965780639b236ba614610fae5780639f727c2714610fdb5780639f92d2e114610ff2578063a8ad52d114611037578063aaba623214611062578063afa65c8b146110b1578063afea299314611157578063c34ce9c81461126c578063c6098256146112d5578063d0a2f2c414611300578063d2f9f67d1461136c578063d37a057e14611399578063e4cd4007146113d0578063e78c60f51461141f578063ee309d6e1461147a578063f2fde38b146114d1578063ff623bb514611514575b005b34801561021257600080fd5b5061021b611581565b6040518082815260200191505060405180910390f35b34801561023d57600080fd5b5061025c60048036038101908080359060200190929190505050611587565b005b34801561026a57600080fd5b506102a9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ec565b60405180806020018060200180602001868152602001858152602001848103845289818151815260200191508051906020019080838360005b838110156102fd5780820151818401526020810190506102e2565b50505050905090810190601f16801561032a5780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015610363578082015181840152602081019050610348565b50505050905090810190601f1680156103905780820380516001836020036101000a031916815260200191505b50848103825287818151815260200191508051906020019080838360005b838110156103c95780820151818401526020810190506103ae565b50505050905090810190601f1680156103f65780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561041657600080fd5b5061041f6117f7565b6040518082815260200191505060405180910390f35b34801561044157600080fd5b50610460600480360381019080803590602001909291905050506117fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104a0578082015181840152602081019050610485565b50505050905090810190601f1680156104cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104e757600080fd5b5061051c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ad565b005b34801561052a57600080fd5b50610631600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611aeb565b005b34801561063f57600080fd5b5061069a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611bcb565b005b3480156106a857600080fd5b506106b1611c61565b6040518082815260200191505060405180910390f35b3480156106d357600080fd5b506106dc611c67565b6040518082815260200191505060405180910390f35b3480156106fe57600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611c6d565b005b34801561076d57600080fd5b50610776611d61565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156107bd5780820151818401526020810190506107a2565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156107ff5780820151818401526020810190506107e4565b5050505090500194505050505060405180910390f35b34801561082157600080fd5b5061082a611e14565b6040518082815260200191505060405180910390f35b34801561084c57600080fd5b5061087f600480360381019080803590602001909291908035906020019092919080359060200190929190505050611e1a565b005b34801561088d57600080fd5b506108ac60048036038101908080359060200190929190505050611e8f565b6040518082815260200191505060405180910390f35b3480156108ce57600080fd5b50610903600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb2565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610968600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed2565b60405180806020018060200180602001868152602001858152602001848103845289818151815260200191508051906020019080838360005b838110156109bc5780820151818401526020810190506109a1565b50505050905090810190601f1680156109e95780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015610a22578082015181840152602081019050610a07565b50505050905090810190601f168015610a4f5780820380516001836020036101000a031916815260200191505b50848103825287818151815260200191508051906020019080838360005b83811015610a88578082015181840152602081019050610a6d565b50505050905090810190601f168015610ab55780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610ad557600080fd5b50610af460048036038101908080359060200190929190505050612263565b005b348015610b0257600080fd5b50610c4f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506122c8565b005b348015610c5d57600080fd5b50610c66612611565b6040518082815260200191505060405180910390f35b348015610c8857600080fd5b50610cbd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612617565b6040518082815260200191505060405180910390f35b348015610cdf57600080fd5b50610ce861262f565b6040518082815260200191505060405180910390f35b348015610d0a57600080fd5b50610d2960048036038101908080359060200190929190505050612635565b6040518082815260200191505060405180910390f35b348015610d4b57600080fd5b50610d54612658565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610da257600080fd5b50610de1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061267d565b604051808060200180602001806020018781526020018681526020018060200185810385528b818151815260200191508051906020019080838360005b83811015610e39578082015181840152602081019050610e1e565b50505050905090810190601f168015610e665780820380516001836020036101000a031916815260200191505b5085810384528a818151815260200191508051906020019080838360005b83811015610e9f578082015181840152602081019050610e84565b50505050905090810190601f168015610ecc5780820380516001836020036101000a031916815260200191505b50858103835289818151815260200191508051906020019080838360005b83811015610f05578082015181840152602081019050610eea565b50505050905090810190601f168015610f325780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b83811015610f6b578082015181840152602081019050610f50565b50505050905090810190601f168015610f985780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b348015610fba57600080fd5b50610fd960048036038101908080359060200190929190505050612926565b005b348015610fe757600080fd5b50610ff061298b565b005b348015610ffe57600080fd5b5061101d60048036038101908080359060200190929190505050612a67565b604051808215151515815260200191505060405180910390f35b34801561104357600080fd5b5061104c612a87565b6040518082815260200191505060405180910390f35b34801561106e57600080fd5b506110af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612a8d565b005b3480156110bd57600080fd5b506110dc60048036038101908080359060200190929190505050612b43565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561111c578082015181840152602081019050611101565b50505050905090810190601f1680156111495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561116357600080fd5b5061126a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612bf3565b005b34801561127857600080fd5b506112d3600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612c62565b005b3480156112e157600080fd5b506112ea612cf8565b6040518082815260200191505060405180910390f35b34801561130c57600080fd5b50611315612cfe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561135857808201518184015260208101905061133d565b505050509050019250505060405180910390f35b34801561137857600080fd5b5061139760048036038101908080359060200190929190505050612d8c565b005b3480156113a557600080fd5b506113ce6004803603810190808035906020019092919080359060200190929190505050612ea2565b005b3480156113dc57600080fd5b5061141d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612fb9565b005b34801561142b57600080fd5b50611460600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613133565b604051808215151515815260200191505060405180910390f35b34801561148657600080fd5b506114bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613153565b6040518082815260200191505060405180910390f35b3480156114dd57600080fd5b50611512600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061316b565b005b34801561152057600080fd5b5061153f600480360381019080803590602001909291905050506132c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115e257600080fd5b8060028190555050565b600e60205281600052604060002060205280600052604060002060009150915050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116a55780601f1061167a576101008083540402835291602001916116a5565b820191906000526020600020905b81548152906001019060200180831161168857829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117435780601f1061171857610100808354040283529160200191611743565b820191906000526020600020905b81548152906001019060200180831161172657829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117e15780601f106117b6576101008083540402835291602001916117e1565b820191906000526020600020905b8154815290600101906020018083116117c457829003601f168201915b5050505050908060030154908060040154905085565b60065481565b60176020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118a55780601f1061187a576101008083540402835291602001916118a5565b820191906000526020600020905b81548152906001019060200180831161188857829003601f168201915b505050505081565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561190b57600080fd5b8291508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156119a957600080fd5b505af11580156119bd573d6000803e3d6000fd5b505050506040513d60208110156119d357600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611aaa57600080fd5b505af1158015611abe573d6000803e3d6000fd5b505050506040513d6020811015611ad457600080fd5b810190808051906020019092919050505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4957600080fd5b611b54866001612fb9565b611b628686868660006132fe565b3a9150611b7a6002548361357f90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bc2573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c2657600080fd5b8060156000601460008154809291906001019190505581526020019081526020016000209080519060200190611c5d9291906135b2565b5050565b60075481565b60125481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cc857600080fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6060806003600481805480602002602001604051908101604052809291908181526020018280548015611db357602002820191906000526020600020905b815481526020019060010190808311611d9f575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611e0557602002820191906000526020600020905b815481526020019060010190808311611df1575b50505050509050915091509091565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e7557600080fd5b826011819055508160128190555080601381905550505050565b600381815481101515611e9e57fe5b906000526020600020016000915090505481565b600a6020528060005260406000206000915054906101000a900460ff1681565b6060806060600080600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878152602001908152602001600020600001600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888152602001908152602001600020600101600e60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000898152602001908152602001600020600201600e60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a815260200190815260200160002060030154600e60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b815260200190815260200160002060040154848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121105780601f106120e557610100808354040283529160200191612110565b820191906000526020600020905b8154815290600101906020018083116120f357829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121ac5780601f10612181576101008083540402835291602001916121ac565b820191906000526020600020905b81548152906001019060200180831161218f57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122485780601f1061221d57610100808354040283529160200191612248565b820191906000526020600020905b81548152906001019060200180831161222b57829003601f168201915b50505050509250945094509450945094509295509295909350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122be57600080fd5b8060108190555050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561232957600080fd5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000190805190602001906123d29291906135b2565b5083600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600101908051906020019061243a9291906135b2565b5082600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060020190805190602001906124a29291906135b2565b506001600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206003018190555042600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206004018190555081600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060050190805190602001906125bb9291906135b2565b50600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550505050505050565b60135481565b600d6020528060005260406000206000915090505481565b60165481565b60048181548110151561264457fe5b906000526020600020016000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60205281600052604060002060205280600052604060002060009150915050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127365780601f1061270b57610100808354040283529160200191612736565b820191906000526020600020905b81548152906001019060200180831161271957829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127d45780601f106127a9576101008083540402835291602001916127d4565b820191906000526020600020905b8154815290600101906020018083116127b757829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128725780601f1061284757610100808354040283529160200191612872565b820191906000526020600020905b81548152906001019060200180831161285557829003601f168201915b505050505090806003015490806004015490806005018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561291c5780601f106128f15761010080835404028352916020019161291c565b820191906000526020600020905b8154815290600101906020018083116128ff57829003601f168201915b5050505050905086565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561298157600080fd5b8060068190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129e657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015612a64573d6000803e3d6000fd5b50565b60086020528060005260406000206000915054906101000a900460ff1681565b60105481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ae857600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60156020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612beb5780601f10612bc057610100808354040283529160200191612beb565b820191906000526020600020905b815481529060010190602001808311612bce57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c4e57600080fd5b612c5c8484848460016132fe565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cbd57600080fd5b8060176000601660008154809291906001019190505581526020019081526020016000209080519060200190612cf49291906135b2565b5050565b60115481565b60606005805480602002602001604051908101604052809291908181526020018280548015612d8257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612d38575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612de757600080fd5b600115156008600042815260200190815260200160002060009054906101000a900460ff16151514151515612e1b57600080fd5b6003429080600181540180825580915050906001820390600052602060002001600090919290919091505550600481908060018154018082558091505090600182039060005260206000200160009091929091909150555060016008600042815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612efd57600080fd5b600115156008600084815260200190815260200160002060009054906101000a900460ff16151514151515612f3157600080fd5b6003829080600181540180825580915050906001820390600052602060002001600090919290919091505550600481908060018154018082558091505090600182039060005260206000200160009091929091909150555060016008600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561301657600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000151582151514151561312e57600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561312d5760058390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b505050565b60096020528060005260406000206000915054906101000a900460ff1681565b600c6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131c657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561320257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6005818154811015156132cf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000190805190602001906133a99291906135b2565b5083600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060010190805190602001906134119291906135b2565b5082600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060020190805190602001906134799291906135b2565b5081600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206003018190555042600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060040181905550600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550505050505050565b600080828402905060008414806135a0575082848281151561359d57fe5b04145b15156135a857fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135f357805160ff1916838001178555613621565b82800160010185558215613621579182015b82811115613620578251825591602001919060010190613605565b5b50905061362e9190613632565b5090565b61365491905b80821115613650576000816000905550600101613638565b5090565b905600a165627a7a723058202480cf9a940d9779dc21477fa64195a46056fa9caeaeb1e66697e992588403c80029

Deployed Bytecode Sourcemap

3187:5795:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3309:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3309:34:0;;;;;;;;;;;;;;;;;;;;;;;5418:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5418:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;3813:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3813:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3813:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3813:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3813:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3453:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3453:17:0;;;;;;;;;;;;;;;;;;;;;;;4289:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4289:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4289:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2660:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2660:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5614:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5614:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4967:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4967:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3478:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3478:27:0;;;;;;;;;;;;;;;;;;;;;;;4033:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4033:19:0;;;;;;;;;;;;;;;;;;;;;;;7328:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7328:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8612:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8612:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8612:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8612:102:0;;;;;;;;;;;;;;;;;;;4135:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4135:41:0;;;;;;;;;;;;;;;;;;;;;;;8826:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8826:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3352:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3352:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3610:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3610:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7940:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7940:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7940:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7940:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7940:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8722:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8722:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;6011:467;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6011:467:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4059:19:0;;;;;;;;;;;;;;;;;;;;;;;3766:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3766:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4249:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4249:33:0;;;;;;;;;;;;;;;;;;;;;;;3380:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3380:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1478:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1478:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3891:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3891:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3891:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3891:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3891:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3891:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5530:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5530:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;2489:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2489:99:0;;;;;;3512:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3512:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3977:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3977:23:0;;;;;;;;;;;;;;;;;;;;;;;7206:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7206:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4183:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4183:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4183:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6486:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6486:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5193:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5193:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4007:19:0;;;;;;;;;;;;;;;;;;;;;;;7058:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7058:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7058:102:0;;;;;;;;;;;;;;;;;8386:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8386:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;8196:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8196:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6740:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6740:310:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3561:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3561:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3721:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3721:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1755:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3409:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3409:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3309:34;;;;:::o;5418:104::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;5503:11;5490:10;:24;;;;5418:104;:::o;3813:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3453:17::-;;;;:::o;4289:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2660:194::-;2726:11;2766:15;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;2746:6;2726:27;;2784:5;:15;;;2800:4;2784:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2784:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2784:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2784:21:0;;;;;;;;;;;;;;;;2766:39;;2816:5;:14;;;2831:5;;;;;;;;;;;2838:7;2816:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2816:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2816:30:0;;;;;;;;;;;;;;;;;2660:194;;;:::o;5614:323::-;5813:16;5854:15;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;5722:23;5734:4;5740;5722:11;:23::i;:::-;5756:39;5763:4;5768;5774:6;5782:9;5793:1;5756:5;:39::i;:::-;5832:11;5813:30;;5872:24;5885:10;;5872:8;:12;;:24;;;;:::i;:::-;5854:42;;5907:4;:13;;:22;5921:7;5907:22;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5907:22:0;5614:323;;;;;;:::o;4967:218::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;5163:14;5110:20;:50;5131:26;;:28;;;;;;;;;;;;5110:50;;;;;;;;;;;:67;;;;;;;;;;;;:::i;:::-;;4967:218;:::o;3478:27::-;;;;:::o;4033:19::-;;;;:::o;7328:137::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;7449:8;7428:6;:12;7435:4;7428:12;;;;;;;;;;;;;;;:18;7441:4;7428:18;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7328:137;;;:::o;8612:102::-;8650:11;8663:10;8693:4;8699:6;8685:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8612:102;;:::o;4135:41::-;;;;:::o;8826:153::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;8920:5;8913:4;:12;;;;8943:5;8936:4;:12;;;;8966:5;8959:4;:12;;;;8826:153;;;:::o;3352:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3610:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7940:248::-;8002:6;8009;8016;8023:7;8032;8060:6;:12;8067:4;8060:12;;;;;;;;;;;;;;;:15;8073:1;8060:15;;;;;;;;;;;:20;;8081:6;:12;8088:4;8081:12;;;;;;;;;;;;;;;:15;8094:1;8081:15;;;;;;;;;;;:22;;8104:6;:12;8111:4;8104:12;;;;;;;;;;;;;;;:15;8117:1;8104:15;;;;;;;;;;;:25;;8130:6;:12;8137:4;8130:12;;;;;;;;;;;;;;;:15;8143:1;8130:15;;;;;;;;;;;:22;;;8154:6;:12;8161:4;8154:12;;;;;;;;;;;;;;;:15;8167:1;8154:15;;;;;;;;;;;:25;;;8052:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7940:248;;;;;;;;:::o;8722:90::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;8798:6;8787:8;:17;;;;8722:90;:::o;6011:467::-;6177:9;6159:4;6136:27;;:9;:21;6146:10;6136:21;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;6128:36;;;;;;;;6190:3;:9;6194:4;6190:9;;;;;;;;;;;;;;;;6177:22;;6230:4;6210:5;:11;6216:4;6210:11;;;;;;;;;;;;;;;:14;6222:1;6210:14;;;;;;;;;;;:19;;:24;;;;;;;;;;;;:::i;:::-;;6267:6;6245:5;:11;6251:4;6245:11;;;;;;;;;;;;;;;:14;6257:1;6245:14;;;;;;;;;;;:21;;:28;;;;;;;;;;;;:::i;:::-;;6309:9;6284:5;:11;6290:4;6284:11;;;;;;;;;;;;;;;:14;6296:1;6284:14;;;;;;;;;;;:24;;:34;;;;;;;;;;;;:::i;:::-;;6351:1;6329:5;:11;6335:4;6329:11;;;;;;;;;;;;;;;:14;6341:1;6329:14;;;;;;;;;;;:21;;:23;;;;6390:15;6363:5;:11;6369:4;6363:11;;;;;;;;;;;;;;;:14;6375:1;6363:14;;;;;;;;;;;:24;;:42;;;;6441:7;6416:5;:11;6422:4;6416:11;;;;;;;;;;;;;;;:14;6428:1;6416:14;;;;;;;;;;;:22;;:32;;;;;;;;;;;;:::i;:::-;;6461:3;:9;6465:4;6461:9;;;;;;;;;;;;;;;;6459:11;;;;;;;;;;;6011:467;;;;;;:::o;4059:19::-;;;;:::o;3766:38::-;;;;;;;;;;;;;;;;;:::o;4249:33::-;;;;:::o;3380:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1478:20::-;;;;;;;;;;;;;:::o;3891:77::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5530:74::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;5592:4;5586:3;:10;;;;5530:74;:::o;2489:99::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;2543:5;;;;;;;;;;;:14;;:37;2566:4;2558:21;;;2543:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2543:37:0;2489:99::o;3512:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;3977:23::-;;;;:::o;7206:114::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;7304:8;7285:9;:16;7295:5;7285:16;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7206:114;;:::o;4183:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6486:222::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;6661:39;6668:4;6673;6679:6;6687:9;6698:1;6661:5;:39::i;:::-;6486:222;;;;:::o;5193:194::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;5365:14;5328:12;:34;5341:18;;:20;;;;;;;;;;;;5328:34;;;;;;;;;;;:51;;;;;;;;;;;;:::i;:::-;;5193:194;:::o;4007:19::-;;;;:::o;7058:102::-;7106:9;7134:18;7127:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7058:102;:::o;8386:218::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;8484:4;8453:35;;:10;:27;8464:15;8453:27;;;;;;;;;;;;;;;;;;;;;:35;;;;8445:44;;;;;;;;8500:4;8510:15;8500:26;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8500:26:0;;;;;;;;;;;;;;;;;;;;;;8537:6;8549:1;8537:14;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8537:14:0;;;;;;;;;;;;;;;;;;;;;;8592:4;8562:10;:27;8573:15;8562:27;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8386:218;:::o;8196:182::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;8286:4;8269:21;;:10;:13;8280:1;8269:13;;;;;;;;;;;;;;;;;;;;;:21;;;;8261:30;;;;;;;;8302:4;8312:1;8302:12;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8302:12:0;;;;;;;;;;;;;;;;;;;;;;8325:6;8337:1;8325:14;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8325:14:0;;;;;;;;;;;;;;;;;;;;;;8366:4;8350:10;:13;8361:1;8350:13;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;8196:182;;:::o;6740:310::-;6893:23;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;6838:8;6819:9;:16;6829:5;6819:16;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;6872:5;6860:17;;:8;:17;;;;6857:186;;;6918:3;:10;6922:5;6918:10;;;;;;;;;;;;;;;;6893:35;;6965:1;6946:15;:20;6943:89;;;6986:18;7010:5;6986:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6986:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6943:89;6857:186;6740:310;;;:::o;3561:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;3721:38::-;;;;;;;;;;;;;;;;;:::o;1755:192::-;1721:5;;;;;;;;;;;1707:19;;:10;:19;;;1699:28;;;;;;;;1856:1;1836:22;;:8;:22;;;;1828:31;;;;;;;;1903:8;1875:37;;1896:5;;;;;;;;;;;1875:37;;;;;;;;;;;;1931:8;1923:5;;:16;;;;;;;;;;;;;;;;;;1755:192;:::o;3409:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7545:387::-;7656:9;7669:3;:9;7673:4;7669:9;;;;;;;;;;;;;;;;7656:22;;7712:4;7689:6;:12;7696:4;7689:12;;;;;;;;;;;;;;;:15;7702:1;7689:15;;;;;;;;;;;:20;;:27;;;;;;;;;;;;:::i;:::-;;7752:6;7727;:12;7734:4;7727:12;;;;;;;;;;;;;;;:15;7740:1;7727:15;;;;;;;;;;;:22;;:31;;;;;;;;;;;;:::i;:::-;;7797:9;7769:6;:12;7776:4;7769:12;;;;;;;;;;;;;;;:15;7782:1;7769:15;;;;;;;;;;;:25;;:37;;;;;;;;;;;;:::i;:::-;;7842:6;7817;:12;7824:4;7817:12;;;;;;;;;;;;;;;:15;7830:1;7817:15;;;;;;;;;;;:22;;:31;;;;7887:15;7859:6;:12;7866:4;7859:12;;;;;;;;;;;;;;;:15;7872:1;7859:15;;;;;;;;;;;:25;;:43;;;;7915:3;:9;7919:4;7915:9;;;;;;;;;;;;;;;;7913:11;;;;;;;;;;;7545:387;;;;;;:::o;169:147::-;227:7;243:9;259:1;255;:5;243:17;;279:1;274;:6;:20;;;;293:1;288;284;:5;;;;;;;;:10;274:20;267:28;;;;;;309:1;302:8;;169:147;;;;;:::o;3187:5795::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://2480cf9a940d9779dc21477fa64195a46056fa9caeaeb1e66697e992588403c8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.