ETH Price: $2,392.27 (-4.66%)

Token

STAYK.ME (STAYK)
 

Overview

Max Total Supply

87,828,524.156376934549254018 STAYK

Holders

748

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100 STAYK

Value
$0.00
0x6dbf65020e3af3293e46c49591670f4bade9bbcf
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
STAYK

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

/*

STAYK.ME

(STAYK)

website:  https://stayk.me

discord:  https://discord.gg/bpt8Paj

twitter:  https://twitter.com/STAYK_TOKEN

Maximum Supply:  Ethereum Block.number * 10

1% Token Burn on Every Transfer

Each Token Holder Can request payout in STAYK tokens
once per day

STAYK payouts are in proportion to your holdings

ETH can be sent directly to the contract to purchase tokens
when a sale is open

*DO NOT SEND ETH from an exchange wallet.   Only send ETH from a wallet
you control directly.  Otherwise you will lose your tokens.

*/

pragma solidity ^0.5.0;


interface IERC20 {
  function totalSupply() external view returns (uint256);
  function balanceOf(address who) external view returns (uint256);
  function allowance(address owner, address spender) external view returns (uint256);
  function transfer(address to, uint256 value) external returns (bool);
  function approve(address spender, uint256 value) external returns (bool);
  function transferFrom(address from, address to, uint256 value) external returns (bool);

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

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

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    return c;
  }

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

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

  function ceil(uint256 a, uint256 m) internal pure returns (uint256) {
    uint256 c = add(a,m);
    uint256 d = sub(c,1);
    return mul(div(d,m),m);
  }
}

contract ERC20Detailed is IERC20 {

  uint8 private _Tokendecimals;
  string private _Tokenname;
  string private _Tokensymbol;

  constructor(string memory name, string memory symbol, uint8 decimals) public {
   
   _Tokendecimals = decimals;
    _Tokenname = name;
    _Tokensymbol = symbol;
    
  }

  function name() public view returns(string memory) {
    return _Tokenname;
  }

  function symbol() public view returns(string memory) {
    return _Tokensymbol;
  }

  function decimals() public view returns(uint8) {
    return _Tokendecimals;
  }
}

/**end here**/

contract STAYK is ERC20Detailed {

  using SafeMath for uint256;
  bool public allowSale = true;
  uint256 public minPurchase = 0.01 ether;
  uint256 public salePrice = 0.0001 ether;
  uint256 public currentSaleAmount = 0;
  uint256 public saleHardCap = 3000000e18;
  uint256 public payFreq = 5900;
  uint256 public burnFactor = 100;  //1%
  uint256 tokenFactor = 10;    
  mapping(address => uint256) public lastPay;
  mapping (address => uint256) public _STAYKTokenBalances;
  mapping (address => mapping (address => uint256)) private _allowed;
  string constant tokenName = "STAYK.ME";
  string constant tokenSymbol = "STAYK";
  uint8  constant tokenDecimals = 18;
  uint256 _totalSupply = block.number * tokenFactor * 1e18;
  address public admin;
  uint256 public _STAYKFund = _totalSupply;    

  constructor() public payable ERC20Detailed(tokenName, tokenSymbol, tokenDecimals) {
    
    admin = msg.sender;
  }

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

  function myTokens() public view returns (uint256) {
    return _STAYKTokenBalances[msg.sender];
  }

  function balanceOf(address owner) public view returns (uint256) {
    return _STAYKTokenBalances[owner];
  }

  function allowance(address owner, address spender) public view returns (uint256) {
    return _allowed[owner][spender];
  }

  function setPayFrequency(uint256 _input) public {
    require(msg.sender == admin);
    payFreq = _input;
  }

  function setBurnFactor(uint256 _input) public {
    require(msg.sender == admin);
    burnFactor = _input;
  }

  function() payable external {

    if (msg.value == 0){

      getPaid();

    } else {

      _buyTokens(msg.value);

    }
  }

  function resetSale(uint256 _hardCap) public {
     require(msg.sender == admin);
     require(_hardCap <= _STAYKFund);
     currentSaleAmount = 0;
     saleHardCap = _hardCap;
  }

  function setAllowSale(bool _allow) public {
     require(msg.sender == admin);
     allowSale = _allow;
  }

  function setMinPurcchae(uint256 _amount) public {
     require(msg.sender == admin);
     minPurchase = _amount;
  }

  function setSalePrice(uint256 _amount) public {
     require(msg.sender == admin);
     salePrice = _amount;
  }

  function buyTokens() public payable{
      _buyTokens(msg.value);
  }

  function _buyTokens(uint256 _incomingEthereum) internal {
     require(allowSale);
     require(_incomingEthereum >= minPurchase);
     uint256 tokensToBuy = _incomingEthereum.div(salePrice).mul(1e18);
     require(tokensToBuy <= block.number * tokenFactor - _totalSupply);
     require(tokensToBuy <= saleHardCap.sub(currentSaleAmount));
     require(tokensToBuy <= _STAYKFund);
     _STAYKTokenBalances[msg.sender] = _STAYKTokenBalances[msg.sender].add(tokensToBuy);
     _STAYKFund = _STAYKFund.sub(tokensToBuy);
     lastPay[msg.sender] = block.number;
     currentSaleAmount = currentSaleAmount.add(tokensToBuy);
     emit Transfer(address(this), msg.sender, tokensToBuy);
  }


  function getPaid() public {

     require(_STAYKTokenBalances[msg.sender] > 0);
     require(lastPay[msg.sender] + payFreq <= block.number);
     uint256 availableTokens = ((block.number).mul(tokenFactor * 1e18)).sub(_totalSupply);
     uint256 payAmountSender = (_STAYKTokenBalances[msg.sender].mul(availableTokens)).div(_totalSupply);
     _totalSupply = _totalSupply.add(payAmountSender);
     _STAYKTokenBalances[msg.sender] = _STAYKTokenBalances[msg.sender].add(payAmountSender);
     lastPay[msg.sender] = block.number;
     emit Transfer(address(this), msg.sender, payAmountSender);
  }

  function withdraw() public {
    require(msg.sender == admin);
    msg.sender.transfer(address(this).balance);
  }

  function withdrawPartial(uint256 _amount) public {
    require(msg.sender == admin);
    require(_amount <= address(this).balance);
    msg.sender.transfer(_amount);
  }

  function distributeETH(address payable _to, uint256 _amount) public {
     require(msg.sender == admin);
     require(_amount <= address(this).balance);
     require(_to != address(0));
     _to.transfer(_amount);
  }


  function transfer(address to, uint256 value) public returns (bool) {
    require(value <= _STAYKTokenBalances[msg.sender]);
    require(to != address(0));

    uint256 STAYKTokenDecay = 0;
    if (burnFactor != 0) {
       STAYKTokenDecay = value.div(burnFactor); 
    }
    uint256 tokensToTransfer = value.sub(STAYKTokenDecay);

    _STAYKTokenBalances[msg.sender] = _STAYKTokenBalances[msg.sender].sub(value);
    _STAYKTokenBalances[to] = _STAYKTokenBalances[to].add(tokensToTransfer);

    _totalSupply = _totalSupply.sub(STAYKTokenDecay);

    emit Transfer(msg.sender, to, tokensToTransfer);
    if (burnFactor != 0) {
       emit Transfer(msg.sender, address(0), STAYKTokenDecay);
    }
    
    return true;
  }

  function multiTransfer(address[] memory receivers, uint256[] memory amounts) public {
    for (uint256 i = 0; i < receivers.length; i++) {
      transfer(receivers[i], amounts[i]);
    }
  }

 function multiSend(address[] memory receivers, uint256[] memory amounts) public {  
    require(msg.sender == admin);
    for (uint256 i = 0; i < receivers.length; i++) {
      _STAYKTokenBalances[receivers[i]] = _STAYKTokenBalances[receivers[i]].add(amounts[i]);
      _STAYKFund = _STAYKFund.sub(amounts[i]);
      emit Transfer(address(this), receivers[i], amounts[i]);
    }
  }

  function approve(address spender, uint256 value) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function transferFrom(address from, address to, uint256 value) public returns (bool) {
    require(value <= _STAYKTokenBalances[from]);
    require(value <= _allowed[from][msg.sender]);
    require(to != address(0));

    _STAYKTokenBalances[from] = _STAYKTokenBalances[from].sub(value);

    uint256 STAYKTokenDecay =0;
    if (burnFactor != 0) {
       STAYKTokenDecay = value.div(burnFactor); 
    } else {
      STAYKTokenDecay = 0;
    }
    uint256 tokensToTransfer = value.sub(STAYKTokenDecay);

    _STAYKTokenBalances[to] = _STAYKTokenBalances[to].add(tokensToTransfer);
    _totalSupply = _totalSupply.sub(STAYKTokenDecay);

    _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);

    //lastPay[to] = block.number;

    emit Transfer(from, to, tokensToTransfer);
    if (burnFactor != 0) {
       emit Transfer(from, address(0), STAYKTokenDecay);
    }
    

    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].add(addedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
    require(spender != address(0));
    _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].sub(subtractedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  function burn(uint256 amount) public {
    _burn(msg.sender, amount);
  }

  function _burn(address account, uint256 amount) internal {
    require(amount != 0);
    require(amount <= _STAYKTokenBalances[account]);
    _totalSupply = _totalSupply.sub(amount);
    _STAYKTokenBalances[account] = _STAYKTokenBalances[account].sub(amount);
    emit Transfer(account, address(0), amount);
  }

  function burnFrom(address account, uint256 amount) external {
    require(amount <= _allowed[account][msg.sender]);
    _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(amount);
    _burn(account, amount);
  }

  function distributeFund(address _to, uint256 _amount) public {
      require(msg.sender == admin);
      require(_amount <= _STAYKFund);
      _STAYKFund = _STAYKFund.sub(_amount);
      lastPay[_to] = block.number;
      _STAYKTokenBalances[_to] = _STAYKTokenBalances[_to].add(_amount);
      emit Transfer(address(this), _to, _amount);
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawPartial","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setSalePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_hardCap","type":"uint256"}],"name":"resetSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receivers","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"payFreq","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPurchase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleHardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_input","type":"uint256"}],"name":"setBurnFactor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"distributeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_input","type":"uint256"}],"name":"setPayFrequency","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"distributeFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_STAYKFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnFactor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receivers","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"multiSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setMinPurcchae","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getPaid","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"allowSale","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastPay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_STAYKTokenBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_allow","type":"bool"}],"name":"setAllowSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentSaleAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"salePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526001600360006101000a81548160ff021916908315150217905550662386f26fc10000600455655af3107a400060055560006006556a027b46536c66c8e300000060075561170c6008556064600955600a8055670de0b6b3a7640000600a54430202600e55600e546010556040805190810160405280600881526020017f535441594b2e4d450000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f535441594b0000000000000000000000000000000000000000000000000000008152506012806000806101000a81548160ff021916908360ff16021790555082600190805190602001906200010f92919062000173565b5081600290805190602001906200012892919062000173565b5050505033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000222565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001b657805160ff1916838001178555620001e7565b82800160010185558215620001e7579182015b82811115620001e6578251825591602001919060010190620001c9565b5b509050620001f69190620001fa565b5090565b6200021f91905b808211156200021b57600081600090555060010162000201565b5090565b90565b61318c80620002326000396000f3fe6080604052600436106101dd576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146101ff578063095ea7b31461028f5780631211540c1461030257806318160ddd1461033d5780631919fed71461036857806319b45c4f146103a35780631e89d545146103de578063237fd9841461053757806323b872dd14610562578063313ce567146105f557806333b5b62e1461062657806339509351146106515780633ccfd60b146106c457806342966c68146106db57806365baf2431461071657806370a082311461074157806372d556b4146107a6578063765e3f55146107e157806376e473fd1461083c57806379cc6790146108775780637df1ea9d146108d2578063949e8acd1461092d57806395d89b4114610958578063a457c2d7146109e8578063a9059cbb14610a5b578063b02412ca14610ace578063b1b71afa14610af9578063bb4c9f0b14610b24578063caa2fe6d14610c7d578063cf41d6f814610cb8578063d0f3aa8014610ccf578063d0febe4c14610cfe578063d500794914610d08578063d9f9537b14610d6d578063dd62ed3e14610dd2578063ef5fd07a14610e57578063f1eaceb414610e94578063f51f96dd14610ebf578063f851a44014610eea575b60003414156101f3576101ee610f41565b6101fd565b6101fc346111df565b5b005b34801561020b57600080fd5b50610214611403565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610254578082015181840152602081019050610239565b50505050905090810190601f1680156102815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029b57600080fd5b506102e8600480360360408110156102b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a5565b604051808215151515815260200191505060405180910390f35b34801561030e57600080fd5b5061033b6004803603602081101561032557600080fd5b81019080803590602001909291905050506115d2565b005b34801561034957600080fd5b5061035261169e565b6040518082815260200191505060405180910390f35b34801561037457600080fd5b506103a16004803603602081101561038b57600080fd5b81019080803590602001909291905050506116a8565b005b3480156103af57600080fd5b506103dc600480360360208110156103c657600080fd5b810190808035906020019092919050505061170e565b005b3480156103ea57600080fd5b506105356004803603604081101561040157600080fd5b810190808035906020019064010000000081111561041e57600080fd5b82018360208201111561043057600080fd5b8035906020019184602083028401116401000000008311171561045257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104b257600080fd5b8201836020820111156104c457600080fd5b803590602001918460208302840111640100000000831117156104e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061178d565b005b34801561054357600080fd5b5061054c6117e7565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b506105db6004803603606081101561058557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ed565b604051808215151515815260200191505060405180910390f35b34801561060157600080fd5b5061060a611c86565b604051808260ff1660ff16815260200191505060405180910390f35b34801561063257600080fd5b5061063b611c9c565b6040518082815260200191505060405180910390f35b34801561065d57600080fd5b506106aa6004803603604081101561067457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ca2565b604051808215151515815260200191505060405180910390f35b3480156106d057600080fd5b506106d9611ed9565b005b3480156106e757600080fd5b50610714600480360360208110156106fe57600080fd5b8101908080359060200190929190505050611f95565b005b34801561072257600080fd5b5061072b611fa2565b6040518082815260200191505060405180910390f35b34801561074d57600080fd5b506107906004803603602081101561076457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fa8565b6040518082815260200191505060405180910390f35b3480156107b257600080fd5b506107df600480360360208110156107c957600080fd5b8101908080359060200190929190505050611ff1565b005b3480156107ed57600080fd5b5061083a6004803603604081101561080457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612057565b005b34801561084857600080fd5b506108756004803603602081101561085f57600080fd5b8101908080359060200190929190505050612160565b005b34801561088357600080fd5b506108d06004803603604081101561089a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121c6565b005b3480156108de57600080fd5b5061092b600480360360408110156108f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061236e565b005b34801561093957600080fd5b50610942612538565b6040518082815260200191505060405180910390f35b34801561096457600080fd5b5061096d61257f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109ad578082015181840152602081019050610992565b50505050905090810190601f1680156109da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109f457600080fd5b50610a4160048036036040811015610a0b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612621565b604051808215151515815260200191505060405180910390f35b348015610a6757600080fd5b50610ab460048036036040811015610a7e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612858565b604051808215151515815260200191505060405180910390f35b348015610ada57600080fd5b50610ae3612b4d565b6040518082815260200191505060405180910390f35b348015610b0557600080fd5b50610b0e612b53565b6040518082815260200191505060405180910390f35b348015610b3057600080fd5b50610c7b60048036036040811015610b4757600080fd5b8101908080359060200190640100000000811115610b6457600080fd5b820183602082011115610b7657600080fd5b80359060200191846020830284011164010000000083111715610b9857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610bf857600080fd5b820183602082011115610c0a57600080fd5b80359060200191846020830284011164010000000083111715610c2c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612b59565b005b348015610c8957600080fd5b50610cb660048036036020811015610ca057600080fd5b8101908080359060200190929190505050612d75565b005b348015610cc457600080fd5b50610ccd610f41565b005b348015610cdb57600080fd5b50610ce4612ddb565b604051808215151515815260200191505060405180910390f35b610d06612dee565b005b348015610d1457600080fd5b50610d5760048036036020811015610d2b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612df9565b6040518082815260200191505060405180910390f35b348015610d7957600080fd5b50610dbc60048036036020811015610d9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e11565b6040518082815260200191505060405180910390f35b348015610dde57600080fd5b50610e4160048036036040811015610df557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e29565b6040518082815260200191505060405180910390f35b348015610e6357600080fd5b50610e9260048036036020811015610e7a57600080fd5b81019080803515159060200190929190505050612eb0565b005b348015610ea057600080fd5b50610ea9612f29565b6040518082815260200191505060405180910390f35b348015610ecb57600080fd5b50610ed4612f2f565b6040518082815260200191505060405180910390f35b348015610ef657600080fd5b50610eff612f35565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610f8f57600080fd5b43600854600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151515610fe157600080fd5b6000611016600e54611008670de0b6b3a7640000600a540243612f5b90919063ffffffff16565b612f9690919063ffffffff16565b90506000611080600e5461107284600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f5b90919063ffffffff16565b612faf90919063ffffffff16565b905061109781600e54612fca90919063ffffffff16565b600e819055506110ef81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900460ff1615156111fa57600080fd5b600454811015151561120b57600080fd5b600061123c670de0b6b3a764000061122e60055485612faf90919063ffffffff16565b612f5b90919063ffffffff16565b9050600e54600a54430203811115151561125557600080fd5b61126c600654600754612f9690919063ffffffff16565b811115151561127a57600080fd5b601054811115151561128b57600080fd5b6112dd81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061133581601054612f9690919063ffffffff16565b60108190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061139481600654612fca90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561149b5780601f106114705761010080835404028352916020019161149b565b820191906000526020600020905b81548152906001019060200180831161147e57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156114e257600080fd5b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162e57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115151561165457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561169a573d6000803e3d6000fd5b5050565b6000600e54905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170457600080fd5b8060058190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561176a57600080fd5b601054811115151561177b57600080fd5b60006006819055508060078190555050565b60008090505b82518110156117e2576117d483828151811015156117ad57fe5b9060200190602002015183838151811015156117c557fe5b90602001906020020151612858565b508080600101915050611793565b505050565b60085481565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561183d57600080fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156118c857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561190457600080fd5b61195682600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080905060006009541415156119c6576119bf60095484612faf90919063ffffffff16565b90506119cb565b600090505b60006119e08285612f9690919063ffffffff16565b9050611a3481600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a8c82600e54612f9690919063ffffffff16565b600e81905550611b2184600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600954141515611c7957600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b6001925050509392505050565b60008060009054906101000a900460ff16905090565b60045481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611cdf57600080fd5b611d6e82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611f92573d6000803e3d6000fd5b50565b611f9f3382612fe8565b50565b60075481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561204d57600080fd5b8060098190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120b357600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111515156120d957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561211557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561215b573d6000803e3d6000fd5b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121bc57600080fd5b8060088190555050565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561225157600080fd5b6122e081600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236a8282612fe8565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ca57600080fd5b60105481111515156123db57600080fd5b6123f081601054612f9690919063ffffffff16565b60108190555043600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248c81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126175780601f106125ec57610100808354040283529160200191612617565b820191906000526020600020905b8154815290600101906020018083116125fa57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561265e57600080fd5b6126ed82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156128a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156128e457600080fd5b6000809050600060095414151561290d5761290a60095484612faf90919063ffffffff16565b90505b60006129228285612f9690919063ffffffff16565b905061297684600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a0b81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6382600e54612f9690919063ffffffff16565b600e819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600954141515612b4157600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b60019250505092915050565b60105481565b60095481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb557600080fd5b60008090505b8251811015612d7057612c448282815181101515612bd557fe5b90602001906020020151600c60008685815181101515612bf157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008584815181101515612c5657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cca8282815181101515612caf57fe5b90602001906020020151601054612f9690919063ffffffff16565b6010819055508281815181101515612cde57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181101515612d4457fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612bbb565b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dd157600080fd5b8060048190555050565b600360009054906101000a900460ff1681565b612df7346111df565b565b600b6020528060005260406000206000915090505481565b600c6020528060005260406000206000915090505481565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f0c57600080fd5b80600360006101000a81548160ff02191690831515021790555050565b60065481565b60055481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415612f6e5760009050612f90565b60008284029050828482811515612f8157fe5b04141515612f8b57fe5b809150505b92915050565b6000828211151515612fa457fe5b818303905092915050565b6000808284811515612fbd57fe5b0490508091505092915050565b6000808284019050838110151515612fde57fe5b8091505092915050565b60008114151515612ff857600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561304657600080fd5b61305b81600e54612f9690919063ffffffff16565b600e819055506130b381600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fea165627a7a723058206c912b99a962a5a109725746707a7700b030359897509b4e5d3a830d404d3d880029

Deployed Bytecode

0x6080604052600436106101dd576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146101ff578063095ea7b31461028f5780631211540c1461030257806318160ddd1461033d5780631919fed71461036857806319b45c4f146103a35780631e89d545146103de578063237fd9841461053757806323b872dd14610562578063313ce567146105f557806333b5b62e1461062657806339509351146106515780633ccfd60b146106c457806342966c68146106db57806365baf2431461071657806370a082311461074157806372d556b4146107a6578063765e3f55146107e157806376e473fd1461083c57806379cc6790146108775780637df1ea9d146108d2578063949e8acd1461092d57806395d89b4114610958578063a457c2d7146109e8578063a9059cbb14610a5b578063b02412ca14610ace578063b1b71afa14610af9578063bb4c9f0b14610b24578063caa2fe6d14610c7d578063cf41d6f814610cb8578063d0f3aa8014610ccf578063d0febe4c14610cfe578063d500794914610d08578063d9f9537b14610d6d578063dd62ed3e14610dd2578063ef5fd07a14610e57578063f1eaceb414610e94578063f51f96dd14610ebf578063f851a44014610eea575b60003414156101f3576101ee610f41565b6101fd565b6101fc346111df565b5b005b34801561020b57600080fd5b50610214611403565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610254578082015181840152602081019050610239565b50505050905090810190601f1680156102815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029b57600080fd5b506102e8600480360360408110156102b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a5565b604051808215151515815260200191505060405180910390f35b34801561030e57600080fd5b5061033b6004803603602081101561032557600080fd5b81019080803590602001909291905050506115d2565b005b34801561034957600080fd5b5061035261169e565b6040518082815260200191505060405180910390f35b34801561037457600080fd5b506103a16004803603602081101561038b57600080fd5b81019080803590602001909291905050506116a8565b005b3480156103af57600080fd5b506103dc600480360360208110156103c657600080fd5b810190808035906020019092919050505061170e565b005b3480156103ea57600080fd5b506105356004803603604081101561040157600080fd5b810190808035906020019064010000000081111561041e57600080fd5b82018360208201111561043057600080fd5b8035906020019184602083028401116401000000008311171561045257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104b257600080fd5b8201836020820111156104c457600080fd5b803590602001918460208302840111640100000000831117156104e657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061178d565b005b34801561054357600080fd5b5061054c6117e7565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b506105db6004803603606081101561058557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ed565b604051808215151515815260200191505060405180910390f35b34801561060157600080fd5b5061060a611c86565b604051808260ff1660ff16815260200191505060405180910390f35b34801561063257600080fd5b5061063b611c9c565b6040518082815260200191505060405180910390f35b34801561065d57600080fd5b506106aa6004803603604081101561067457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ca2565b604051808215151515815260200191505060405180910390f35b3480156106d057600080fd5b506106d9611ed9565b005b3480156106e757600080fd5b50610714600480360360208110156106fe57600080fd5b8101908080359060200190929190505050611f95565b005b34801561072257600080fd5b5061072b611fa2565b6040518082815260200191505060405180910390f35b34801561074d57600080fd5b506107906004803603602081101561076457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fa8565b6040518082815260200191505060405180910390f35b3480156107b257600080fd5b506107df600480360360208110156107c957600080fd5b8101908080359060200190929190505050611ff1565b005b3480156107ed57600080fd5b5061083a6004803603604081101561080457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612057565b005b34801561084857600080fd5b506108756004803603602081101561085f57600080fd5b8101908080359060200190929190505050612160565b005b34801561088357600080fd5b506108d06004803603604081101561089a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121c6565b005b3480156108de57600080fd5b5061092b600480360360408110156108f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061236e565b005b34801561093957600080fd5b50610942612538565b6040518082815260200191505060405180910390f35b34801561096457600080fd5b5061096d61257f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109ad578082015181840152602081019050610992565b50505050905090810190601f1680156109da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109f457600080fd5b50610a4160048036036040811015610a0b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612621565b604051808215151515815260200191505060405180910390f35b348015610a6757600080fd5b50610ab460048036036040811015610a7e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612858565b604051808215151515815260200191505060405180910390f35b348015610ada57600080fd5b50610ae3612b4d565b6040518082815260200191505060405180910390f35b348015610b0557600080fd5b50610b0e612b53565b6040518082815260200191505060405180910390f35b348015610b3057600080fd5b50610c7b60048036036040811015610b4757600080fd5b8101908080359060200190640100000000811115610b6457600080fd5b820183602082011115610b7657600080fd5b80359060200191846020830284011164010000000083111715610b9857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610bf857600080fd5b820183602082011115610c0a57600080fd5b80359060200191846020830284011164010000000083111715610c2c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612b59565b005b348015610c8957600080fd5b50610cb660048036036020811015610ca057600080fd5b8101908080359060200190929190505050612d75565b005b348015610cc457600080fd5b50610ccd610f41565b005b348015610cdb57600080fd5b50610ce4612ddb565b604051808215151515815260200191505060405180910390f35b610d06612dee565b005b348015610d1457600080fd5b50610d5760048036036020811015610d2b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612df9565b6040518082815260200191505060405180910390f35b348015610d7957600080fd5b50610dbc60048036036020811015610d9057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e11565b6040518082815260200191505060405180910390f35b348015610dde57600080fd5b50610e4160048036036040811015610df557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e29565b6040518082815260200191505060405180910390f35b348015610e6357600080fd5b50610e9260048036036020811015610e7a57600080fd5b81019080803515159060200190929190505050612eb0565b005b348015610ea057600080fd5b50610ea9612f29565b6040518082815260200191505060405180910390f35b348015610ecb57600080fd5b50610ed4612f2f565b6040518082815260200191505060405180910390f35b348015610ef657600080fd5b50610eff612f35565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610f8f57600080fd5b43600854600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151515610fe157600080fd5b6000611016600e54611008670de0b6b3a7640000600a540243612f5b90919063ffffffff16565b612f9690919063ffffffff16565b90506000611080600e5461107284600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f5b90919063ffffffff16565b612faf90919063ffffffff16565b905061109781600e54612fca90919063ffffffff16565b600e819055506110ef81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900460ff1615156111fa57600080fd5b600454811015151561120b57600080fd5b600061123c670de0b6b3a764000061122e60055485612faf90919063ffffffff16565b612f5b90919063ffffffff16565b9050600e54600a54430203811115151561125557600080fd5b61126c600654600754612f9690919063ffffffff16565b811115151561127a57600080fd5b601054811115151561128b57600080fd5b6112dd81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061133581601054612f9690919063ffffffff16565b60108190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061139481600654612fca90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561149b5780601f106114705761010080835404028352916020019161149b565b820191906000526020600020905b81548152906001019060200180831161147e57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156114e257600080fd5b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162e57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115151561165457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561169a573d6000803e3d6000fd5b5050565b6000600e54905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170457600080fd5b8060058190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561176a57600080fd5b601054811115151561177b57600080fd5b60006006819055508060078190555050565b60008090505b82518110156117e2576117d483828151811015156117ad57fe5b9060200190602002015183838151811015156117c557fe5b90602001906020020151612858565b508080600101915050611793565b505050565b60085481565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561183d57600080fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156118c857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561190457600080fd5b61195682600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080905060006009541415156119c6576119bf60095484612faf90919063ffffffff16565b90506119cb565b600090505b60006119e08285612f9690919063ffffffff16565b9050611a3481600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a8c82600e54612f9690919063ffffffff16565b600e81905550611b2184600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600954141515611c7957600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b6001925050509392505050565b60008060009054906101000a900460ff16905090565b60045481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611cdf57600080fd5b611d6e82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611f92573d6000803e3d6000fd5b50565b611f9f3382612fe8565b50565b60075481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561204d57600080fd5b8060098190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120b357600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111515156120d957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561211557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561215b573d6000803e3d6000fd5b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121bc57600080fd5b8060088190555050565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561225157600080fd5b6122e081600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236a8282612fe8565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ca57600080fd5b60105481111515156123db57600080fd5b6123f081601054612f9690919063ffffffff16565b60108190555043600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248c81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b606060028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126175780601f106125ec57610100808354040283529160200191612617565b820191906000526020600020905b8154815290600101906020018083116125fa57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561265e57600080fd5b6126ed82600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156128a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156128e457600080fd5b6000809050600060095414151561290d5761290a60095484612faf90919063ffffffff16565b90505b60006129228285612f9690919063ffffffff16565b905061297684600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a0b81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a6382600e54612f9690919063ffffffff16565b600e819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000600954141515612b4157600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b60019250505092915050565b60105481565b60095481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb557600080fd5b60008090505b8251811015612d7057612c448282815181101515612bd557fe5b90602001906020020151600c60008685815181101515612bf157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca90919063ffffffff16565b600c60008584815181101515612c5657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cca8282815181101515612caf57fe5b90602001906020020151601054612f9690919063ffffffff16565b6010819055508281815181101515612cde57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181101515612d4457fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612bbb565b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dd157600080fd5b8060048190555050565b600360009054906101000a900460ff1681565b612df7346111df565b565b600b6020528060005260406000206000915090505481565b600c6020528060005260406000206000915090505481565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f0c57600080fd5b80600360006101000a81548160ff02191690831515021790555050565b60065481565b60055481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415612f6e5760009050612f90565b60008284029050828482811515612f8157fe5b04141515612f8b57fe5b809150505b92915050565b6000828211151515612fa457fe5b818303905092915050565b6000808284811515612fbd57fe5b0490508091505092915050565b6000808284019050838110151515612fde57fe5b8091505092915050565b60008114151515612ff857600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561304657600080fd5b61305b81600e54612f9690919063ffffffff16565b600e819055506130b381600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f9690919063ffffffff16565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fea165627a7a723058206c912b99a962a5a109725746707a7700b030359897509b4e5d3a830d404d3d880029

Deployed Bytecode Sourcemap

2595:8388:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4284:1;4271:9;:14;4267:97;;;4297:9;:7;:9::i;:::-;4267:97;;;4333:21;4344:9;4333:10;:21::i;:::-;4267:97;2595:8388;2311:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2311:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2311:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8187:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8187:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8187:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6437:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6437:173:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6437:173:0;;;;;;;;;;;;;;;;;:::i;:::-;;3548:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3548:85:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4806:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4806:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4806:115:0;;;;;;;;;;;;;;;;;:::i;:::-;;4375:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4375:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4375:184:0;;;;;;;;;;;;;;;;;:::i;:::-;;7593:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7593:194:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7593:194:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7593:194:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7593:194:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7593:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7593:194:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7593:194:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7593:194:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7593:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7593:194:0;;;;;;;;;;;;;;;:::i;:::-;;2871:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2871:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8417:935;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8417:935:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8417:935:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2489:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2489:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2698:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2698:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9358:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9358:305:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9358:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6314:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6314:117:0;;;:::i;:::-;;9990:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9990:75:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9990:75:0;;;;;;;;;;;;;;;;;:::i;:::-;;2827:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2827:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3746:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3746:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3746:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4111:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4111:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4111:113:0;;;;;;;;;;;;;;;;;:::i;:::-;;6616:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6616:222:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6616:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3993:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3993:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3993:112:0;;;;;;;;;;;;;;;;;:::i;:::-;;10394:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10394:230:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10394:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10630:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10630:348:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10630:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3639:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3639:101:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2398:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2398:85:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2398:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9669:315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9669:315:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9669:315:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6846:741;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6846:741:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6846:741:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3368:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3368:40:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2905:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2905:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7792:389;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7792:389:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7792:389:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7792:389:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7792:389:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7792:389:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7792:389:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7792:389:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7792:389:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7792:389:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7792:389:0;;;;;;;;;;;;;;;:::i;:::-;;4681:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4681:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4681:119:0;;;;;;;;;;;;;;;;;:::i;:::-;;5705:603;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5705:603:0;;;:::i;:::-;;2665:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2665:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4927:71;;;:::i;:::-;;2980:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2980:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2980:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3027:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3027:55:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3027:55:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3862:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3862:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3862:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4565:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4565:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4565:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2786:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2786:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2742:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2742:39:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3343:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3343:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5705:603;5783:1;5749:19;:31;5769:10;5749:31;;;;;;;;;;;;;;;;:35;5741:44;;;;;;;;5834:12;5823:7;;5801;:19;5809:10;5801:19;;;;;;;;;;;;;;;;:29;:45;;5793:54;;;;;;;;5855:23;5881:58;5926:12;;5882:38;5915:4;5901:11;;:18;5883:12;5882:18;;:38;;;;:::i;:::-;5881:44;;:58;;;;:::i;:::-;5855:84;;5947:23;5973:72;6032:12;;5974:52;6010:15;5974:19;:31;5994:10;5974:31;;;;;;;;;;;;;;;;:35;;:52;;;;:::i;:::-;5973:58;;:72;;;;:::i;:::-;5947:98;;6068:33;6085:15;6068:12;;:16;;:33;;;;:::i;:::-;6053:12;:48;;;;6143:52;6179:15;6143:19;:31;6163:10;6143:31;;;;;;;;;;;;;;;;:35;;:52;;;;:::i;:::-;6109:19;:31;6129:10;6109:31;;;;;;;;;;;;;;;:86;;;;6225:12;6203:7;:19;6211:10;6203:19;;;;;;;;;;;;;;;:34;;;;6274:10;6250:52;;6267:4;6250:52;;;6286:15;6250:52;;;;;;;;;;;;;;;;;;5705:603;;:::o;5004:693::-;5076:9;;;;;;;;;;;5068:18;;;;;;;;5123:11;;5102:17;:32;;5094:41;;;;;;;;5143:19;5165:42;5202:4;5165:32;5187:9;;5165:17;:21;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;5143:64;;5267:12;;5253:11;;5238:12;:26;:41;5223:11;:56;;5215:65;;;;;;;;5311:34;5327:17;;5311:11;;:15;;:34;;;;:::i;:::-;5296:11;:49;;5288:58;;;;;;;;5377:10;;5362:11;:25;;5354:34;;;;;;;;5430:48;5466:11;5430:19;:31;5450:10;5430:31;;;;;;;;;;;;;;;;:35;;:48;;;;:::i;:::-;5396:19;:31;5416:10;5396:31;;;;;;;;;;;;;;;:82;;;;5499:27;5514:11;5499:10;;:14;;:27;;;;:::i;:::-;5486:10;:40;;;;5556:12;5534:7;:19;5542:10;5534:19;;;;;;;;;;;;;;;:34;;;;5596;5618:11;5596:17;;:21;;:34;;;;:::i;:::-;5576:17;:54;;;;5667:10;5643:48;;5660:4;5643:48;;;5679:11;5643:48;;;;;;;;;;;;;;;;;;5004:693;;:::o;2311:81::-;2347:13;2376:10;2369:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2311:81;:::o;8187:224::-;8252:4;8292:1;8273:21;;:7;:21;;;;8265:30;;;;;;;;8334:5;8302:8;:20;8311:10;8302:20;;;;;;;;;;;;;;;:29;8323:7;8302:29;;;;;;;;;;;;;;;:37;;;;8372:7;8351:36;;8360:10;8351:36;;;8381:5;8351:36;;;;;;;;;;;;;;;;;;8401:4;8394:11;;8187:224;;;;:::o;6437:173::-;6515:5;;;;;;;;;;;6501:19;;:10;:19;;;6493:28;;;;;;;;6555:4;6547:21;;;6536:7;:32;;6528:41;;;;;;;;6576:10;:19;;:28;6596:7;6576:28;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6576:28:0;6437:173;:::o;3548:85::-;3592:7;3615:12;;3608:19;;3548:85;:::o;4806:115::-;4882:5;;;;;;;;;;;4868:19;;:10;:19;;;4860:28;;;;;;;;4908:7;4896:9;:19;;;;4806:115;:::o;4375:184::-;4449:5;;;;;;;;;;;4435:19;;:10;:19;;;4427:28;;;;;;;;4483:10;;4471:8;:22;;4463:31;;;;;;;;4522:1;4502:17;:21;;;;4545:8;4531:11;:22;;;;4375:184;:::o;7593:194::-;7689:9;7701:1;7689:13;;7684:98;7708:9;:16;7704:1;:20;7684:98;;;7740:34;7749:9;7759:1;7749:12;;;;;;;;;;;;;;;;;;7763:7;7771:1;7763:10;;;;;;;;;;;;;;;;;;7740:8;:34::i;:::-;;7726:3;;;;;;;7684:98;;;;7593:194;;:::o;2871:29::-;;;;:::o;8417:935::-;8496:4;8526:19;:25;8546:4;8526:25;;;;;;;;;;;;;;;;8517:5;:34;;8509:43;;;;;;;;8576:8;:14;8585:4;8576:14;;;;;;;;;;;;;;;:26;8591:10;8576:26;;;;;;;;;;;;;;;;8567:5;:35;;8559:44;;;;;;;;8632:1;8618:16;;:2;:16;;;;8610:25;;;;;;;;8672:36;8702:5;8672:19;:25;8692:4;8672:25;;;;;;;;;;;;;;;;:29;;:36;;;;:::i;:::-;8644:19;:25;8664:4;8644:25;;;;;;;;;;;;;;;:64;;;;8717:23;8742:1;8717:26;;8768:1;8754:10;;:15;;8750:121;;;8799:21;8809:10;;8799:5;:9;;:21;;;;:::i;:::-;8781:39;;8750:121;;;8862:1;8844:19;;8750:121;8877:24;8904:26;8914:15;8904:5;:9;;:26;;;;:::i;:::-;8877:53;;8965:45;8993:16;8965:19;:23;8985:2;8965:23;;;;;;;;;;;;;;;;:27;;:45;;;;:::i;:::-;8939:19;:23;8959:2;8939:23;;;;;;;;;;;;;;;:71;;;;9032:33;9049:15;9032:12;;:16;;:33;;;;:::i;:::-;9017:12;:48;;;;9103:37;9134:5;9103:8;:14;9112:4;9103:14;;;;;;;;;;;;;;;:26;9118:10;9103:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;9074:8;:14;9083:4;9074:14;;;;;;;;;;;;;;;:26;9089:10;9074:26;;;;;;;;;;;;;;;:66;;;;9206:2;9191:36;;9200:4;9191:36;;;9210:16;9191:36;;;;;;;;;;;;;;;;;;9252:1;9238:10;;:15;;9234:87;;;9293:1;9270:43;;9279:4;9270:43;;;9297:15;9270:43;;;;;;;;;;;;;;;;;;9234:87;9342:4;9335:11;;;;8417:935;;;;;:::o;2489:81::-;2529:5;2550:14;;;;;;;;;;;2543:21;;2489:81;:::o;2698:39::-;;;;:::o;9358:305::-;9438:4;9478:1;9459:21;;:7;:21;;;;9451:30;;;;;;;;9521:45;9555:10;9521:8;:20;9530:10;9521:20;;;;;;;;;;;;;;;:29;9542:7;9521:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;9488:8;:20;9497:10;9488:20;;;;;;;;;;;;;;;:29;9509:7;9488:29;;;;;;;;;;;;;;;:79;;;;9600:7;9579:60;;9588:10;9579:60;;;9609:8;:20;9618:10;9609:20;;;;;;;;;;;;;;;:29;9630:7;9609:29;;;;;;;;;;;;;;;;9579:60;;;;;;;;;;;;;;;;;;9653:4;9646:11;;9358:305;;;;:::o;6314:117::-;6370:5;;;;;;;;;;;6356:19;;:10;:19;;;6348:28;;;;;;;;6383:10;:19;;:42;6411:4;6403:21;;;6383:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6383:42:0;6314:117::o;9990:75::-;10034:25;10040:10;10052:6;10034:5;:25::i;:::-;9990:75;:::o;2827:39::-;;;;:::o;3746:110::-;3801:7;3824:19;:26;3844:5;3824:26;;;;;;;;;;;;;;;;3817:33;;3746:110;;;:::o;4111:113::-;4186:5;;;;;;;;;;;4172:19;;:10;:19;;;4164:28;;;;;;;;4212:6;4199:10;:19;;;;4111:113;:::o;6616:222::-;6714:5;;;;;;;;;;;6700:19;;:10;:19;;;6692:28;;;;;;;;6755:4;6747:21;;;6736:7;:32;;6728:41;;;;;;;;6800:1;6785:17;;:3;:17;;;;6777:26;;;;;;;;6811:3;:12;;:21;6824:7;6811:21;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6811:21:0;6616:222;;:::o;3993:112::-;4070:5;;;;;;;;;;;4056:19;;:10;:19;;;4048:28;;;;;;;;4093:6;4083:7;:16;;;;3993:112;:::o;10394:230::-;10479:8;:17;10488:7;10479:17;;;;;;;;;;;;;;;:29;10497:10;10479:29;;;;;;;;;;;;;;;;10469:6;:39;;10461:48;;;;;;;;10548:41;10582:6;10548:8;:17;10557:7;10548:17;;;;;;;;;;;;;;;:29;10566:10;10548:29;;;;;;;;;;;;;;;;:33;;:41;;;;:::i;:::-;10516:8;:17;10525:7;10516:17;;;;;;;;;;;;;;;:29;10534:10;10516:29;;;;;;;;;;;;;;;:73;;;;10596:22;10602:7;10611:6;10596:5;:22::i;:::-;10394:230;;:::o;10630:348::-;10722:5;;;;;;;;;;;10708:19;;:10;:19;;;10700:28;;;;;;;;10756:10;;10745:7;:21;;10737:30;;;;;;;;10789:23;10804:7;10789:10;;:14;;:23;;;;:::i;:::-;10776:10;:36;;;;10836:12;10821:7;:12;10829:3;10821:12;;;;;;;;;;;;;;;:27;;;;10884:37;10913:7;10884:19;:24;10904:3;10884:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;10857:19;:24;10877:3;10857:24;;;;;;;;;;;;;;;:64;;;;10959:3;10935:37;;10952:4;10935:37;;;10964:7;10935:37;;;;;;;;;;;;;;;;;;10630:348;;:::o;3639:101::-;3680:7;3703:19;:31;3723:10;3703:31;;;;;;;;;;;;;;;;3696:38;;3639:101;:::o;2398:85::-;2436:13;2465:12;2458:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2398:85;:::o;9669:315::-;9754:4;9794:1;9775:21;;:7;:21;;;;9767:30;;;;;;;;9837:50;9871:15;9837:8;:20;9846:10;9837:20;;;;;;;;;;;;;;;:29;9858:7;9837:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;9804:8;:20;9813:10;9804:20;;;;;;;;;;;;;;;:29;9825:7;9804:29;;;;;;;;;;;;;;;:84;;;;9921:7;9900:60;;9909:10;9900:60;;;9930:8;:20;9939:10;9930:20;;;;;;;;;;;;;;;:29;9951:7;9930:29;;;;;;;;;;;;;;;;9900:60;;;;;;;;;;;;;;;;;;9974:4;9967:11;;9669:315;;;;:::o;6846:741::-;6907:4;6937:19;:31;6957:10;6937:31;;;;;;;;;;;;;;;;6928:5;:40;;6920:49;;;;;;;;6998:1;6984:16;;:2;:16;;;;6976:25;;;;;;;;7010:23;7036:1;7010:27;;7062:1;7048:10;;:15;;7044:79;;;7093:21;7103:10;;7093:5;:9;;:21;;;;:::i;:::-;7075:39;;7044:79;7129:24;7156:26;7166:15;7156:5;:9;;:26;;;;:::i;:::-;7129:53;;7225:42;7261:5;7225:19;:31;7245:10;7225:31;;;;;;;;;;;;;;;;:35;;:42;;;;:::i;:::-;7191:19;:31;7211:10;7191:31;;;;;;;;;;;;;;;:76;;;;7300:45;7328:16;7300:19;:23;7320:2;7300:23;;;;;;;;;;;;;;;;:27;;:45;;;;:::i;:::-;7274:19;:23;7294:2;7274:23;;;;;;;;;;;;;;;:71;;;;7369:33;7386:15;7369:12;;:16;;:33;;;;:::i;:::-;7354:12;:48;;;;7437:2;7416:42;;7425:10;7416:42;;;7441:16;7416:42;;;;;;;;;;;;;;;;;;7483:1;7469:10;;:15;;7465:93;;;7530:1;7501:49;;7510:10;7501:49;;;7534:15;7501:49;;;;;;;;;;;;;;;;;;7465:93;7577:4;7570:11;;;;6846:741;;;;:::o;3368:40::-;;;;:::o;2905:31::-;;;;:::o;7792:389::-;7903:5;;;;;;;;;;;7889:19;;:10;:19;;;7881:28;;;;;;;;7921:9;7933:1;7921:13;;7916:260;7940:9;:16;7936:1;:20;7916:260;;;8008:49;8046:7;8054:1;8046:10;;;;;;;;;;;;;;;;;;8008:19;:33;8028:9;8038:1;8028:12;;;;;;;;;;;;;;;;;;8008:33;;;;;;;;;;;;;;;;:37;;:49;;;;:::i;:::-;7972:19;:33;7992:9;8002:1;7992:12;;;;;;;;;;;;;;;;;;7972:33;;;;;;;;;;;;;;;:85;;;;8079:26;8094:7;8102:1;8094:10;;;;;;;;;;;;;;;;;;8079;;:14;;:26;;;;:::i;:::-;8066:10;:39;;;;8143:9;8153:1;8143:12;;;;;;;;;;;;;;;;;;8119:49;;8136:4;8119:49;;;8157:7;8165:1;8157:10;;;;;;;;;;;;;;;;;;8119:49;;;;;;;;;;;;;;;;;;7958:3;;;;;;;7916:260;;;;7792:389;;:::o;4681:119::-;4759:5;;;;;;;;;;;4745:19;;:10;:19;;;4737:28;;;;;;;;4787:7;4773:11;:21;;;;4681:119;:::o;2665:28::-;;;;;;;;;;;;;:::o;4927:71::-;4971:21;4982:9;4971:10;:21::i;:::-;4927:71::o;2980:42::-;;;;;;;;;;;;;;;;;:::o;3027:55::-;;;;;;;;;;;;;;;;;:::o;3862:125::-;3934:7;3957:8;:15;3966:5;3957:15;;;;;;;;;;;;;;;:24;3973:7;3957:24;;;;;;;;;;;;;;;;3950:31;;3862:125;;;;:::o;4565:110::-;4637:5;;;;;;;;;;;4623:19;;:10;:19;;;4615:28;;;;;;;;4663:6;4651:9;;:18;;;;;;;;;;;;;;;;;;4565:110;:::o;2786:36::-;;;;:::o;2742:39::-;;;;:::o;3343:20::-;;;;;;;;;;;;;:::o;1265:180::-;1323:7;1348:1;1343;:6;1339:37;;;1367:1;1360:8;;;;1339:37;1382:9;1398:1;1394;:5;1382:17;;1422:1;1417;1413;:5;;;;;;;;:10;1406:18;;;;;;1438:1;1431:8;;;1265:180;;;;;:::o;1569:113::-;1627:7;1655:1;1650;:6;;1643:14;;;;;;1675:1;1671;:5;1664:12;;1569:113;;;;:::o;1451:112::-;1509:7;1525:9;1541:1;1537;:5;;;;;;;;1525:17;;1556:1;1549:8;;;1451:112;;;;:::o;1688:133::-;1746:7;1762:9;1778:1;1774;:5;1762:17;;1798:1;1793;:6;;1786:14;;;;;;1814:1;1807:8;;;1688:133;;;;:::o;10071:317::-;10153:1;10143:6;:11;;10135:20;;;;;;;;10180:19;:28;10200:7;10180:28;;;;;;;;;;;;;;;;10170:6;:38;;10162:47;;;;;;;;10231:24;10248:6;10231:12;;:16;;:24;;;;:::i;:::-;10216:12;:39;;;;10293:40;10326:6;10293:19;:28;10313:7;10293:28;;;;;;;;;;;;;;;;:32;;:40;;;;:::i;:::-;10262:19;:28;10282:7;10262:28;;;;;;;;;;;;;;;:71;;;;10371:1;10345:37;;10354:7;10345:37;;;10375:6;10345:37;;;;;;;;;;;;;;;;;;10071:317;;:::o

Swarm Source

bzzr://6c912b99a962a5a109725746707a7700b030359897509b4e5d3a830d404d3d88
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.