ETH Price: $3,203.65 (+5.11%)

Token

Million Vault (MV)
 

Overview

Max Total Supply

1.761300000000000468 MV

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.09 MV

Value
$0.00
0xC4F99e1464d6a11B295D259DD0f21C14012E220f
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:
MillionVault

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-06
*/

pragma solidity ^ 0.4.26;

/*
   _____  .__.__  .__  .__                ____   ____            .__   __   
  /     \ |__|  | |  | |__| ____   ____   \   \ /   /____   __ __|  |_/  |_ 
 /  \ /  \|  |  | |  | |  |/  _ \ /    \   \   Y   /\__  \ |  |  \  |\   __\
/    Y    \  |  |_|  |_|  (  <_> )   |  \   \     /  / __ \|  |  /  |_|  |  
\____|__  /__|____/____/__|\____/|___|  /    \___/  (____  /____/|____/__|  
        \/                            \/                 \/                 

Mechanics:
---------

This is a stable hourglass without a bonding curve, long term staking 
is highly recommended. 

10% entry fee, 10% exit fee 
1% transfer fee 
2% referral fee (no deposit required to earn ref bonus)

First time deposit mints a free NFT in Team3D's InventoryV2 

*/

contract InventoryV2 {
 function createFromTemplate(uint256 _templateId, uint8 _feature1, uint8 _feature2, uint8 _feature3, uint8 _feature4, uint8 _equipmentPosition) public returns(uint256);
}

contract TOKEN {
 function totalSupply() external view returns(uint256);
 function balanceOf(address account) external view returns(uint256);
 function transfer(address recipient, uint256 amount) external returns(bool);
 function allowance(address owner, address spender) external view returns(uint256);
 function approve(address spender, uint256 amount) external returns(bool);
 function transferFrom(address sender, address recipient, uint256 amount) external returns(bool);
}

contract Ownable {
 address public owner;
 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 constructor() public {
  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;
 }
}

contract MillionVault is Ownable {

 modifier onlyTokenHolders {
  require(myTokens() > 0);
  _;
 }

 modifier onlyDivis {
  require(myDividends(true) > 0);
  _;
 }

 event onDistribute(
  address indexed customerAddress,
  uint256 price
 );

 event onTokenPurchase(
  address indexed customerAddress,
  uint256 incomingMM,
  uint256 tokensMinted,
  address indexed referredBy,
  uint timestamp
 );

 event onTokenSell(
  address indexed customerAddress,
  uint256 tokensBurned,
  uint256 mmEarned,
  uint timestamp
 );

 event onReinvestment(
  address indexed customerAddress,
  uint256 mmReinvested,
  uint256 tokensMinted
 );

 event onWithdraw(
  address indexed customerAddress,
  uint256 mmWithdrawn
 );

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

 string public name = "Million Vault";
 string public symbol = "MV";
 uint8 constant public decimals = 18;
 uint256 internal entryFee_ = 10;
 uint256 internal transferFee_ = 1;
 uint256 internal exitFee_ = 10;
 uint256 internal referralFee_ = 20;
 uint256 constant internal magnitude = 2 ** 64;
 mapping(address => uint256) internal tokenBalanceLedger_;
 mapping(address => uint256) internal referralBalance_;
 mapping(address => int256) internal payoutsTo_;
 mapping(address => uint256) internal invested_;
 mapping(address => bool) internal minted;
 uint256 internal tokenSupply_;
 uint256 internal profitPerShare_;
 uint256 public stakingRequirement = 0;
 uint256 public totalHolder = 0;
 uint256 public totalDonation = 0;
 TOKEN erc20;
 InventoryV2 item;

 constructor() public {
  erc20 = TOKEN(address(0x6B4c7A5e3f0B99FCD83e9c089BDDD6c7FCe5c611));
  item = InventoryV2(address(0x9680223F7069203E361f55fEFC89B7c1A952CDcc));
 }

 function checkAndTransferMM(uint256 _amount) private {
  require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed");
 }

 function distribute(uint256 _amount) public returns(uint256) {
  require(_amount > 0, "must be a positive value");
  checkAndTransferMM(_amount);
  totalDonation += _amount;
  profitPerShare_ = SafeMath.add(profitPerShare_, (_amount * magnitude) / tokenSupply_);
  emit onDistribute(msg.sender, _amount);
 }

 function buy(uint256 _amount, address _referredBy) public returns(uint256) {
  checkAndTransferMM(_amount);
  return purchaseTokens(_referredBy, msg.sender, _amount);
 }

 function buyFor(uint256 _amount, address _customerAddress, address _referredBy) public returns(uint256) {
  checkAndTransferMM(_amount);
  return purchaseTokens(_referredBy, _customerAddress, _amount);
 }

 function() payable public {
  revert();
 }

 function reinvest() onlyDivis public {
  address _customerAddress = msg.sender;
  uint256 _dividends = myDividends(false);
  payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
  _dividends += referralBalance_[_customerAddress];
  referralBalance_[_customerAddress] = 0;
  uint256 _tokens = purchaseTokens(0x0, _customerAddress, _dividends);
  emit onReinvestment(_customerAddress, _dividends, _tokens);
 }

 function exit() external {
  address _customerAddress = msg.sender;
  uint256 _tokens = tokenBalanceLedger_[_customerAddress];
  if (_tokens > 0) sell(_tokens);
  withdraw();
 }

 function withdraw() onlyDivis public {
  address _customerAddress = msg.sender;
  uint256 _dividends = myDividends(false);
  payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
  _dividends += referralBalance_[_customerAddress];
  referralBalance_[_customerAddress] = 0;
  erc20.transfer(_customerAddress, _dividends);
  emit onWithdraw(_customerAddress, _dividends);
 }

 function sell(uint256 _amountOfTokens) onlyTokenHolders public {
  address _customerAddress = msg.sender;
  require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

  uint256 _dividends = SafeMath.div(SafeMath.mul(_amountOfTokens, exitFee_), 100);
  uint256 _taxedMM = SafeMath.sub(_amountOfTokens, _dividends);

  tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfTokens);
  tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

  int256 _updatedPayouts = (int256)(profitPerShare_ * _amountOfTokens + (_taxedMM * magnitude));
  payoutsTo_[_customerAddress] -= _updatedPayouts;

  if (tokenSupply_ > 0) {
   profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
  }

  emit Transfer(_customerAddress, address(0), _amountOfTokens);
  emit onTokenSell(_customerAddress, _amountOfTokens, _taxedMM, now);
 }

 function transfer(address _toAddress, uint256 _amountOfTokens) onlyTokenHolders external returns(bool) {
  address _customerAddress = msg.sender;
  require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

  if (myDividends(true) > 0) {
   withdraw();
  }

  uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
  uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
  uint256 _dividends = _tokenFee;

  tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);

  tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
  tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);

  payoutsTo_[_customerAddress] -= (int256)(profitPerShare_ * _amountOfTokens);
  payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _taxedTokens);

  profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);

  emit Transfer(_customerAddress, _toAddress, _taxedTokens);

  return true;
 }

 function setName(string _name) onlyOwner public {
  name = _name;
 }

 function setSymbol(string _symbol) onlyOwner public {
  symbol = _symbol;
 }

 function totalMMBalance() public view returns(uint256) {
  return erc20.balanceOf(address(this));
 }

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

 function myTokens() public view returns(uint256) {
  address _customerAddress = msg.sender;
  return balanceOf(_customerAddress);
 }

 function myDividends(bool _includeReferralBonus) public view returns(uint256) {
  address _customerAddress = msg.sender;
  return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress);
 }

 function balanceOf(address _customerAddress) public view returns(uint256) {
  return tokenBalanceLedger_[_customerAddress];
 }

 function dividendsOf(address _customerAddress) public view returns(uint256) {
  return (uint256)((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
 }

 function sellPrice() public view returns(uint256) {
  uint256 _mm = 1e18;
  uint256 _dividends = SafeMath.div(SafeMath.mul(_mm, exitFee_), 100);
  uint256 _taxedMM = SafeMath.sub(_mm, _dividends);

  return _taxedMM;
 }

 function buyPrice() public view returns(uint256) {
  uint256 _mm = 1e18;
  uint256 _dividends = SafeMath.div(SafeMath.mul(_mm, entryFee_), 100);
  uint256 _taxedMM = SafeMath.add(_mm, _dividends);

  return _taxedMM;
 }

 function calculateTokensReceived(uint256 _mmToSpend) public view returns(uint256) {
  uint256 _dividends = SafeMath.div(SafeMath.mul(_mmToSpend, entryFee_), 100);
  uint256 _amountOfTokens = SafeMath.sub(_mmToSpend, _dividends);

  return _amountOfTokens;
 }

 function calculateMMReceived(uint256 _tokensToSell) public view returns(uint256) {
  require(_tokensToSell <= tokenSupply_);
  uint256 _dividends = SafeMath.div(SafeMath.mul(_tokensToSell, exitFee_), 100);
  uint256 _taxedMM = SafeMath.sub(_tokensToSell, _dividends);

  return _taxedMM;
 }

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

 function purchaseTokens(address _referredBy, address _customerAddress, uint256 _incomingMM) internal returns(uint256) {
  if (getInvested() == 0) {
   totalHolder++;
  }

  invested_[msg.sender] += _incomingMM;

  uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingMM, entryFee_), 100);

  uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, referralFee_), 100);

  uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
  uint256 _amountOfTokens = SafeMath.sub(_incomingMM, _undividedDividends);
  uint256 _fee = _dividends * magnitude;

  require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

  if (_referredBy != address(0) && _referredBy != _customerAddress && tokenBalanceLedger_[_referredBy] >= stakingRequirement) {
   referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
  } else {
   _dividends = SafeMath.add(_dividends, _referralBonus);
   _fee = _dividends * magnitude;
  }

  if (tokenSupply_ > 0) {
   tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
   profitPerShare_ += (_dividends * magnitude / tokenSupply_);
   _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
  } else {
   tokenSupply_ = _amountOfTokens;
  }

  tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

  int256 _updatedPayouts = (int256)(profitPerShare_ * _amountOfTokens - _fee);
  payoutsTo_[_customerAddress] += _updatedPayouts;
  
  if(!minted[msg.sender]) {
      minted[msg.sender] = true;
      item.createFromTemplate(39,0,0,0,0,0);
  }

  emit Transfer(address(0), msg.sender, _amountOfTokens);
  emit onTokenPurchase(_customerAddress, _incomingMM, _amountOfTokens, _referredBy, now);

  return _amountOfTokens;
 }

 function multiData()
 public
 view
 returns(uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
  return (

   // [0] Total MM in contract 
   totalMMBalance(),

   // [1] Total MV supply
   totalSupply(),

   // [2] User MV balance 
   balanceOf(msg.sender),

   // [3] User MM balance
   erc20.balanceOf(msg.sender),

   // [4] User divs 
   dividendsOf(msg.sender),

   // [5] Buy price 
   buyPrice(),

   // [6] Sell price 
   sellPrice()

  );
 }
}

library SafeMath {

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

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

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

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

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_mmToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMMBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"},{"name":"_referredBy","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateMMReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"uint256"}],"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":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHolder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"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":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingMM","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"mmEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"mmReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"mmWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526040805190810160405280600d81526020017f4d696c6c696f6e205661756c74000000000000000000000000000000000000008152506001908051906020019062000051929190620001c1565b506040805190810160405280600281526020017f4d56000000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620001c1565b50600a6003556001600455600a60055560146006556000600e556000600f556000601055348015620000d057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736b4c7a5e3f0b99fcd83e9c089bddd6c7fce5c611601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739680223f7069203e361f55fefc89b7c1a952cdcc601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000270565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020457805160ff191683800117855562000235565b8280016001018555821562000235579182015b828111156200023457825182559160200191906001019062000217565b5b50905062000244919062000248565b5090565b6200026d91905b80821115620002695760008160009055506001016200024f565b5090565b90565b6126c080620002806000396000f30060806040526004361061017f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461018457806306fdde03146101db57806310d0ffdd1461026b57806318160ddd146102ac578063242a54a4146102d7578063313ce5671461030257806332b74ec7146103335780633ccfd60b146103b45780634b750334146103cb5780634e306a8f146103f657806356d399e814610437578063688abbf71461046257806370a08231146104a55780637deb6025146104fc5780638620410b1461055d5780638da5cb5b1461058857806391c05b0b146105df578063949e8acd1461062057806395d89b411461064b578063a9059cbb146106db578063b84c824614610740578063befc3e2b146107a9578063c47f0027146107d4578063e4849b321461083d578063e9fad8ee1461086a578063ee2ac05f14610881578063f11745df146108ac578063f2b79df9146108d7578063f2fde38b1461092c578063fdb5a03e1461096f575b600080fd5b34801561019057600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610986565b6040518082815260200191505060405180910390f35b3480156101e757600080fd5b506101f0610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610230578082015181840152602081019050610215565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b5061029660048036038101908080359060200190929190505050610ac6565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102c1610af9565b6040518082815260200191505060405180910390f35b3480156102e357600080fd5b506102ec610b03565b6040518082815260200191505060405180910390f35b34801561030e57600080fd5b50610317610c02565b604051808260ff1660ff16815260200191505060405180910390f35b34801561033f57600080fd5b5061039e60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c07565b6040518082815260200191505060405180910390f35b3480156103c057600080fd5b506103c9610c26565b005b3480156103d757600080fd5b506103e0610e84565b6040518082815260200191505060405180910390f35b34801561040257600080fd5b5061042160048036038101908080359060200190929190505050610ec2565b6040518082815260200191505060405180910390f35b34801561044357600080fd5b5061044c610f06565b6040518082815260200191505060405180910390f35b34801561046e57600080fd5b5061048f600480360381019080803515159060200190929190505050610f0c565b6040518082815260200191505060405180910390f35b3480156104b157600080fd5b506104e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f78565b6040518082815260200191505060405180910390f35b34801561050857600080fd5b5061054760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b6040518082815260200191505060405180910390f35b34801561056957600080fd5b50610572610fdf565b6040518082815260200191505060405180910390f35b34801561059457600080fd5b5061059d61101d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105eb57600080fd5b5061060a60048036038101908080359060200190929190505050611042565b6040518082815260200191505060405180910390f35b34801561062c57600080fd5b50610635611151565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b50610660611166565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a0578082015181840152602081019050610685565b50505050905090810190601f1680156106cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106e757600080fd5b50610726600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611204565b604051808215151515815260200191505060405180910390f35b34801561074c57600080fd5b506107a7600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061151d565b005b3480156107b557600080fd5b506107be611592565b6040518082815260200191505060405180910390f35b3480156107e057600080fd5b5061083b600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115d9565b005b34801561084957600080fd5b506108686004803603810190808035906020019092919050505061164e565b005b34801561087657600080fd5b5061087f6118df565b005b34801561088d57600080fd5b50610896611946565b6040518082815260200191505060405180910390f35b3480156108b857600080fd5b506108c161194c565b6040518082815260200191505060405180910390f35b3480156108e357600080fd5b506108ec611952565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b34801561093857600080fd5b5061096d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9e565b005b34801561097b57600080fd5b50610984611bf3565b005b600068010000000000000000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d540203811515610a2057fe5b049050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b6000806000610ae1610ada85600354611d68565b6064611da0565b9150610aed8483611db6565b90508092505050919050565b6000600c54905090565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b8101908080519060200190929190505050905090565b601281565b6000610c1284611dcf565b610c1d828486611f81565b90509392505050565b6000806000610c356001610f0c565b111515610c4157600080fd5b339150610c4e6000610f0c565b9050680100000000000000008102600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610df657600080fd5b505af1158015610e0a573d6000803e3d6000fd5b505050506040513d6020811015610e2057600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080670de0b6b3a76400009250610eab610ea484600554611d68565b6064611da0565b9150610eb78383611db6565b905080935050505090565b6000806000600c548411151515610ed857600080fd5b610eee610ee785600554611d68565b6064611da0565b9150610efa8483611db6565b90508092505050919050565b600e5481565b60008033905082610f2557610f2081610986565b610f70565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6e82610986565b015b915050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610fcc83611dcf565b610fd7823385611f81565b905092915050565b600080600080670de0b6b3a76400009250611006610fff84600354611d68565b6064611da0565b915061101283836125d3565b905080935050505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821115156110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d757374206265206120706f7369746976652076616c7565000000000000000081525060200191505060405180910390fd5b6110c482611dcf565b816010600082825401925050819055506110f8600d54600c546801000000000000000085028115156110f257fe5b046125d3565b600d819055503373ffffffffffffffffffffffffffffffffffffffff167fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064836040518082815260200191505060405180910390a2919050565b60008033905061116081610f78565b91505090565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050505081565b600080600080600080611215611151565b11151561122157600080fd5b339350600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561127257600080fd5b600061127e6001610f0c565b111561128d5761128c610c26565b5b6112a361129c87600454611d68565b6064611da0565b92506112af8684611db6565b91508290506112c0600c5484611db6565b600c8190555061130f600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611db6565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061139b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836125d3565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085600d5402600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600d5402600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506114a4600d54600c5468010000000000000000840281151561149e57fe5b046125d3565b600d819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157857600080fd5b806002908051906020019061158e9291906125ef565b5050565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163457600080fd5b806001908051906020019061164a9291906125ef565b5050565b600080600080600061165e611151565b11151561166a57600080fd5b339350600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156116bb57600080fd5b6116d16116ca86600554611d68565b6064611da0565b92506116dd8584611db6565b91506116eb600c5486611db6565b600c8190555061173a600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611db6565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555068010000000000000000820285600d540201905080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600c5411156118145761180d600d54600c5468010000000000000000860281151561180757fe5b046125d3565b600d819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561193a576119398161164e565b5b611942610c26565b5050565b60105481565b600f5481565b6000806000806000806000611965610b03565b61196d610af9565b61197633610f78565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a3357600080fd5b505af1158015611a47573d6000803e3d6000fd5b505050506040513d6020811015611a5d57600080fd5b8101908080519060200190929190505050611a7733610986565b611a7f610fdf565b611a87610e84565b965096509650965096509650965090919293949596565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611af957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b3557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080611c036001610f0c565b111515611c0f57600080fd5b339250611c1c6000610f0c565b9150680100000000000000008202600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d0b60008484611f81565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b600080831415611d7b5760009050611d9a565b8183029050818382811515611d8c57fe5b04141515611d9657fe5b8090505b92915050565b60008183811515611dad57fe5b04905092915050565b6000828211151515611dc457fe5b818303905092915050565b60011515601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611ecc57600080fd5b505af1158015611ee0573d6000803e3d6000fd5b505050506040513d6020811015611ef657600080fd5b81019080805190602001909291905050501515141515611f7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b600080600080600080600080611f95611592565b1415611fae57600f600081548092919060010191905055505b87600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061201161200a89600354611d68565b6064611da0565b955061202961202287600654611d68565b6064611da0565b94506120358686611db6565b93506120418887611db6565b9250680100000000000000008402915060008311801561206d5750600c5461206b84600c546125d3565b115b151561207857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141580156120e157508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b801561212e5750600e54600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156121c45761217c600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866125d3565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121df565b6121ce84866125d3565b935068010000000000000000840291505b6000600c54111561224a576121f6600c54846125d3565b600c81905550600c5468010000000000000000850281151561221457fe5b04600d60008282540192505081905550600c5468010000000000000000850281151561223c57fe5b048302820382039150612252565b82600c819055505b61229b600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125d3565b600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508183600d540203905080600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124e8576001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c94111c2602760008060008060006040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808781526020018660ff1681526020018560ff1681526020018460ff1681526020018360ff1681526020018260ff1681526020019650505050505050602060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b8101908080519060200190929190505050505b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38973ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868a864260405180848152602001838152602001828152602001935050505060405180910390a38296505050505050509392505050565b600081830190508281101515156125e657fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061263057805160ff191683800117855561265e565b8280016001018555821561265e579182015b8281111561265d578251825591602001919060010190612642565b5b50905061266b919061266f565b5090565b61269191905b8082111561268d576000816000905550600101612675565b5090565b905600a165627a7a7230582027ac2a368730593248188c3b1c1931f6d27286ce7c90d6d24635acfd6b9346be0029

Deployed Bytecode

0x60806040526004361061017f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461018457806306fdde03146101db57806310d0ffdd1461026b57806318160ddd146102ac578063242a54a4146102d7578063313ce5671461030257806332b74ec7146103335780633ccfd60b146103b45780634b750334146103cb5780634e306a8f146103f657806356d399e814610437578063688abbf71461046257806370a08231146104a55780637deb6025146104fc5780638620410b1461055d5780638da5cb5b1461058857806391c05b0b146105df578063949e8acd1461062057806395d89b411461064b578063a9059cbb146106db578063b84c824614610740578063befc3e2b146107a9578063c47f0027146107d4578063e4849b321461083d578063e9fad8ee1461086a578063ee2ac05f14610881578063f11745df146108ac578063f2b79df9146108d7578063f2fde38b1461092c578063fdb5a03e1461096f575b600080fd5b34801561019057600080fd5b506101c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610986565b6040518082815260200191505060405180910390f35b3480156101e757600080fd5b506101f0610a28565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610230578082015181840152602081019050610215565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b5061029660048036038101908080359060200190929190505050610ac6565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102c1610af9565b6040518082815260200191505060405180910390f35b3480156102e357600080fd5b506102ec610b03565b6040518082815260200191505060405180910390f35b34801561030e57600080fd5b50610317610c02565b604051808260ff1660ff16815260200191505060405180910390f35b34801561033f57600080fd5b5061039e60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c07565b6040518082815260200191505060405180910390f35b3480156103c057600080fd5b506103c9610c26565b005b3480156103d757600080fd5b506103e0610e84565b6040518082815260200191505060405180910390f35b34801561040257600080fd5b5061042160048036038101908080359060200190929190505050610ec2565b6040518082815260200191505060405180910390f35b34801561044357600080fd5b5061044c610f06565b6040518082815260200191505060405180910390f35b34801561046e57600080fd5b5061048f600480360381019080803515159060200190929190505050610f0c565b6040518082815260200191505060405180910390f35b3480156104b157600080fd5b506104e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f78565b6040518082815260200191505060405180910390f35b34801561050857600080fd5b5061054760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b6040518082815260200191505060405180910390f35b34801561056957600080fd5b50610572610fdf565b6040518082815260200191505060405180910390f35b34801561059457600080fd5b5061059d61101d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105eb57600080fd5b5061060a60048036038101908080359060200190929190505050611042565b6040518082815260200191505060405180910390f35b34801561062c57600080fd5b50610635611151565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b50610660611166565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a0578082015181840152602081019050610685565b50505050905090810190601f1680156106cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106e757600080fd5b50610726600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611204565b604051808215151515815260200191505060405180910390f35b34801561074c57600080fd5b506107a7600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061151d565b005b3480156107b557600080fd5b506107be611592565b6040518082815260200191505060405180910390f35b3480156107e057600080fd5b5061083b600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115d9565b005b34801561084957600080fd5b506108686004803603810190808035906020019092919050505061164e565b005b34801561087657600080fd5b5061087f6118df565b005b34801561088d57600080fd5b50610896611946565b6040518082815260200191505060405180910390f35b3480156108b857600080fd5b506108c161194c565b6040518082815260200191505060405180910390f35b3480156108e357600080fd5b506108ec611952565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b34801561093857600080fd5b5061096d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9e565b005b34801561097b57600080fd5b50610984611bf3565b005b600068010000000000000000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d540203811515610a2057fe5b049050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abe5780601f10610a9357610100808354040283529160200191610abe565b820191906000526020600020905b815481529060010190602001808311610aa157829003601f168201915b505050505081565b6000806000610ae1610ada85600354611d68565b6064611da0565b9150610aed8483611db6565b90508092505050919050565b6000600c54905090565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b8101908080519060200190929190505050905090565b601281565b6000610c1284611dcf565b610c1d828486611f81565b90509392505050565b6000806000610c356001610f0c565b111515610c4157600080fd5b339150610c4e6000610f0c565b9050680100000000000000008102600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610df657600080fd5b505af1158015610e0a573d6000803e3d6000fd5b505050506040513d6020811015610e2057600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080670de0b6b3a76400009250610eab610ea484600554611d68565b6064611da0565b9150610eb78383611db6565b905080935050505090565b6000806000600c548411151515610ed857600080fd5b610eee610ee785600554611d68565b6064611da0565b9150610efa8483611db6565b90508092505050919050565b600e5481565b60008033905082610f2557610f2081610986565b610f70565b600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6e82610986565b015b915050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610fcc83611dcf565b610fd7823385611f81565b905092915050565b600080600080670de0b6b3a76400009250611006610fff84600354611d68565b6064611da0565b915061101283836125d3565b905080935050505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821115156110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d757374206265206120706f7369746976652076616c7565000000000000000081525060200191505060405180910390fd5b6110c482611dcf565b816010600082825401925050819055506110f8600d54600c546801000000000000000085028115156110f257fe5b046125d3565b600d819055503373ffffffffffffffffffffffffffffffffffffffff167fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064836040518082815260200191505060405180910390a2919050565b60008033905061116081610f78565b91505090565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fc5780601f106111d1576101008083540402835291602001916111fc565b820191906000526020600020905b8154815290600101906020018083116111df57829003601f168201915b505050505081565b600080600080600080611215611151565b11151561122157600080fd5b339350600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561127257600080fd5b600061127e6001610f0c565b111561128d5761128c610c26565b5b6112a361129c87600454611d68565b6064611da0565b92506112af8684611db6565b91508290506112c0600c5484611db6565b600c8190555061130f600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611db6565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061139b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836125d3565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085600d5402600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600d5402600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506114a4600d54600c5468010000000000000000840281151561149e57fe5b046125d3565b600d819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157857600080fd5b806002908051906020019061158e9291906125ef565b5050565b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163457600080fd5b806001908051906020019061164a9291906125ef565b5050565b600080600080600061165e611151565b11151561166a57600080fd5b339350600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156116bb57600080fd5b6116d16116ca86600554611d68565b6064611da0565b92506116dd8584611db6565b91506116eb600c5486611db6565b600c8190555061173a600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611db6565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555068010000000000000000820285600d540201905080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600c5411156118145761180d600d54600c5468010000000000000000860281151561180757fe5b046125d3565b600d819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561193a576119398161164e565b5b611942610c26565b5050565b60105481565b600f5481565b6000806000806000806000611965610b03565b61196d610af9565b61197633610f78565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a3357600080fd5b505af1158015611a47573d6000803e3d6000fd5b505050506040513d6020811015611a5d57600080fd5b8101908080519060200190929190505050611a7733610986565b611a7f610fdf565b611a87610e84565b965096509650965096509650965090919293949596565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611af957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b3557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080611c036001610f0c565b111515611c0f57600080fd5b339250611c1c6000610f0c565b9150680100000000000000008202600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d0b60008484611f81565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b600080831415611d7b5760009050611d9a565b8183029050818382811515611d8c57fe5b04141515611d9657fe5b8090505b92915050565b60008183811515611dad57fe5b04905092915050565b6000828211151515611dc457fe5b818303905092915050565b60011515601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611ecc57600080fd5b505af1158015611ee0573d6000803e3d6000fd5b505050506040513d6020811015611ef657600080fd5b81019080805190602001909291905050501515141515611f7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b600080600080600080600080611f95611592565b1415611fae57600f600081548092919060010191905055505b87600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061201161200a89600354611d68565b6064611da0565b955061202961202287600654611d68565b6064611da0565b94506120358686611db6565b93506120418887611db6565b9250680100000000000000008402915060008311801561206d5750600c5461206b84600c546125d3565b115b151561207857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141580156120e157508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b801561212e5750600e54600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156121c45761217c600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866125d3565b600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121df565b6121ce84866125d3565b935068010000000000000000840291505b6000600c54111561224a576121f6600c54846125d3565b600c81905550600c5468010000000000000000850281151561221457fe5b04600d60008282540192505081905550600c5468010000000000000000850281151561223c57fe5b048302820382039150612252565b82600c819055505b61229b600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125d3565b600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508183600d540203905080600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124e8576001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c94111c2602760008060008060006040518763ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808781526020018660ff1681526020018560ff1681526020018460ff1681526020018360ff1681526020018260ff1681526020019650505050505050602060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050506040513d60208110156124d557600080fd5b8101908080519060200190929190505050505b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38973ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868a864260405180848152602001838152602001828152602001935050505060405180910390a38296505050505050509392505050565b600081830190508281101515156125e657fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061263057805160ff191683800117855561265e565b8280016001018555821561265e579182015b8281111561265d578251825591602001919060010190612642565b5b50905061266b919061266f565b5090565b61269191905b8082111561268d576000816000905550600101612675565b5090565b905600a165627a7a7230582027ac2a368730593248188c3b1c1931f6d27286ce7c90d6d24635acfd6b9346be0029

Deployed Bytecode Sourcemap

1922:10366:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4630:8;;;8559:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8559:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2769:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2769:36: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;2769:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9236:263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9236:263:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7936:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7936:81:0;;;;;;;;;;;;;;;;;;;;;;;7829:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7829:102:0;;;;;;;;;;;;;;;;;;;;;;;2840:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2840:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4387:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4387:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5268:392;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5268:392:0;;;;;;8776:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8776:225:0;;;;;;;;;;;;;;;;;;;;;;;9504:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9504:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3402:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3402:37:0;;;;;;;;;;;;;;;;;;;;;;;8162:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8162:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8426:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8426:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4210:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4210:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9006:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9006:225:0;;;;;;;;;;;;;;;;;;;;;;;1513:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1513:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3892:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3892:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8022:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8022:135:0;;;;;;;;;;;;;;;;;;;;;;;2809:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2809:27: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;2809:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6597:1069;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6597:1069:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7746:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9805:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9805:90:0;;;;;;;;;;;;;;;;;;;;;;;7671:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7671:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5665:927;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5665:927:0;;;;;;;;;;;;;;;;;;;;;;;;;;5081:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:182:0;;;;;;3477:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3477:32:0;;;;;;;;;;;;;;;;;;;;;;;3443:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3443:30:0;;;;;;;;;;;;;;;;;;;;;;;11792:493;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11792:493:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1744:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1744:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4648:428;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4648:428:0;;;;;;8559:212;8626:7;3061;8725:10;:28;8736:16;8725:28;;;;;;;;;;;;;;;;8684:19;:37;8704:16;8684:37;;;;;;;;;;;;;;;;8666:15;;:55;8657:96;8647:119;;;;;;;;8640:126;;8559:212;;;:::o;2769:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9236:263::-;9309:7;9323:18;9403:23;9344:54;9357:35;9370:10;9382:9;;9357:12;:35::i;:::-;9394:3;9344:12;:54::i;:::-;9323:75;;9429:36;9442:10;9454;9429:12;:36::i;:::-;9403:62;;9479:15;9472:22;;9236:263;;;;;:::o;7936:81::-;7979:7;8000:12;;7993:19;;7936:81;:::o;7829:102::-;7875:7;7896:5;;;;;;;;;;;:15;;;7920:4;7896:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7896:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7896:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7896:30:0;;;;;;;;;;;;;;;;7889:37;;7829:102;:::o;2840:35::-;2873:2;2840:35;:::o;4387:207::-;4482:7;4496:27;4515:7;4496:18;:27::i;:::-;4535:54;4550:11;4563:16;4581:7;4535:14;:54::i;:::-;4528:61;;4387:207;;;;;:::o;5268:392::-;5310:24;5352:18;2083:1;2063:17;2075:4;2063:11;:17::i;:::-;:21;2055:30;;;;;;;;5337:10;5310:37;;5373:18;5385:5;5373:11;:18::i;:::-;5352:39;;3061:7;5437:10;:22;5396:10;:28;5407:16;5396:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;5479:16;:34;5496:16;5479:34;;;;;;;;;;;;;;;;5465:48;;;;5555:1;5518:16;:34;5535:16;5518:34;;;;;;;;;;;;;;;:38;;;;5561:5;;;;;;;;;;;:14;;;5576:16;5594:10;5561:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5561:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5561:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5561:44:0;;;;;;;;;;;;;;;;;5626:16;5615:40;;;5644:10;5615:40;;;;;;;;;;;;;;;;;;5268:392;;:::o;8776:225::-;8817:7;8831:11;8854:18;8926:16;8845:4;8831:18;;8875:46;8888:27;8901:3;8906:8;;8888:12;:27::i;:::-;8917:3;8875:12;:46::i;:::-;8854:67;;8945:29;8958:3;8963:10;8945:12;:29::i;:::-;8926:48;;8988:8;8981:15;;8776:225;;;;:::o;9504:296::-;9576:7;9633:18;9715:16;9615:12;;9598:13;:29;;9590:38;;;;;;;;9654:56;9667:37;9680:13;9695:8;;9667:12;:37::i;:::-;9706:3;9654:12;:56::i;:::-;9633:77;;9734:39;9747:13;9762:10;9734:12;:39::i;:::-;9715:58;;9787:8;9780:15;;9504:296;;;;;:::o;3402:37::-;;;;:::o;8162:259::-;8231:7;8245:24;8272:10;8245:37;;8294:21;:122;;8387:29;8399:16;8387:11;:29::i;:::-;8294:122;;;8350:16;:34;8367:16;8350:34;;;;;;;;;;;;;;;;8318:29;8330:16;8318:11;:29::i;:::-;:66;8294:122;8287:129;;8162:259;;;;:::o;8426:128::-;8491:7;8512:19;:37;8532:16;8512:37;;;;;;;;;;;;;;;;8505:44;;8426:128;;;:::o;4210:172::-;4276:7;4290:27;4309:7;4290:18;:27::i;:::-;4329:48;4344:11;4357:10;4369:7;4329:14;:48::i;:::-;4322:55;;4210:172;;;;:::o;9006:225::-;9046:7;9060:11;9083:18;9156:16;9074:4;9060:18;;9104:47;9117:28;9130:3;9135:9;;9117:12;:28::i;:::-;9147:3;9104:12;:47::i;:::-;9083:68;;9175:29;9188:3;9193:10;9175:12;:29::i;:::-;9156:48;;9218:8;9211:15;;9006:225;;;;:::o;1513:20::-;;;;;;;;;;;;;:::o;3892:313::-;3944:7;3976:1;3966:7;:11;3958:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4011:27;4030:7;4011:18;:27::i;:::-;4060:7;4043:13;;:24;;;;;;;;;;;4090:67;4103:15;;4144:12;;3061:7;4121;:19;4120:36;;;;;;;;4090:12;:67::i;:::-;4072:15;:85;;;;4180:10;4167:33;;;4192:7;4167:33;;;;;;;;;;;;;;;;;;3892:313;;;:::o;8022:135::-;8062:7;8076:24;8103:10;8076:37;;8125:27;8135:16;8125:9;:27::i;:::-;8118:34;;8022:135;;:::o;2809:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6597:1069::-;6694:4;6705:24;6874:17;6961:20;7029:18;2013:1;2000:10;:8;:10::i;:::-;:14;1992:23;;;;;;;;6732:10;6705:37;;6774:19;:37;6794:16;6774:37;;;;;;;;;;;;;;;;6755:15;:56;;6747:65;;;;;;;;6843:1;6823:17;6835:4;6823:11;:17::i;:::-;:21;6819:49;;;6852:10;:8;:10::i;:::-;6819:49;6894:62;6907:43;6920:15;6937:12;;6907;:43::i;:::-;6952:3;6894:12;:62::i;:::-;6874:82;;6984:40;6997:15;7014:9;6984:12;:40::i;:::-;6961:63;;7050:9;7029:30;;7081:37;7094:12;;7108:9;7081:12;:37::i;:::-;7066:12;:52;;;;7165:68;7178:19;:37;7198:16;7178:37;;;;;;;;;;;;;;;;7217:15;7165:12;:68::i;:::-;7125:19;:37;7145:16;7125:37;;;;;;;;;;;;;;;:108;;;;7272:59;7285:19;:31;7305:10;7285:31;;;;;;;;;;;;;;;;7318:12;7272;:59::i;:::-;7238:19;:31;7258:10;7238:31;;;;;;;;;;;;;;;:93;;;;7397:15;7379;;:33;7338:10;:28;7349:16;7338:28;;;;;;;;;;;;;;;;:75;;;;;;;;;;;7471:12;7453:15;;:30;7418:10;:22;7429:10;7418:22;;;;;;;;;;;;;;;;:66;;;;;;;;;;;7509:70;7522:15;;7566:12;;3061:7;7540:10;:22;7539:39;;;;;;;;7509:12;:70::i;:::-;7491:15;:88;;;;7618:10;7591:52;;7600:16;7591:52;;;7630:12;7591:52;;;;;;;;;;;;;;;;;;7657:4;7650:11;;6597:1069;;;;;;;;:::o;7746:78::-;1724:5;;;;;;;;;;;1710:19;;:10;:19;;;1702:28;;;;;;;;7812:7;7803:6;:16;;;;;;;;;;;;:::i;:::-;;7746:78;:::o;9805:90::-;9848:7;9869:9;:21;9879:10;9869:21;;;;;;;;;;;;;;;;9862:28;;9805:90;:::o;7671:70::-;1724:5;;;;;;;;;;;1710:19;;:10;:19;;;1702:28;;;;;;;;7731:5;7724:4;:12;;;;;;;;;;;;:::i;:::-;;7671:70;:::o;5665:927::-;5733:24;5847:18;5931:16;6176:22;2013:1;2000:10;:8;:10::i;:::-;:14;1992:23;;;;;;;;5760:10;5733:37;;5802:19;:37;5822:16;5802:37;;;;;;;;;;;;;;;;5783:15;:56;;5775:65;;;;;;;;5868:58;5881:39;5894:15;5911:8;;5881:12;:39::i;:::-;5922:3;5868:12;:58::i;:::-;5847:79;;5950:41;5963:15;5980:10;5950:12;:41::i;:::-;5931:60;;6013:43;6026:12;;6040:15;6013:12;:43::i;:::-;5998:12;:58;;;;6101:68;6114:19;:37;6134:16;6114:37;;;;;;;;;;;;;;;;6153:15;6101:12;:68::i;:::-;6061:19;:37;6081:16;6061:37;;;;;;;;;;;;;;;:108;;;;3061:7;6247:8;:20;6228:15;6210;;:33;:58;6176:93;;6306:15;6274:10;:28;6285:16;6274:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6347:1;6332:12;;:16;6328:122;;;6374:70;6387:15;;6431:12;;3061:7;6405:10;:22;6404:39;;;;;;;;6374:12;:70::i;:::-;6356:15;:88;;;;6328:122;6496:1;6461:55;;6470:16;6461:55;;;6500:15;6461:55;;;;;;;;;;;;;;;;;;6538:16;6526:61;;;6556:15;6573:8;6583:3;6526:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5665:927;;;;;:::o;5081:182::-;5111:24;5153:15;5138:10;5111:37;;5171:19;:37;5191:16;5171:37;;;;;;;;;;;;;;;;5153:55;;5227:1;5217:7;:11;5213:30;;;5230:13;5235:7;5230:4;:13::i;:::-;5213:30;5248:10;:8;:10::i;:::-;5081:182;;:::o;3477:32::-;;;;:::o;3443:30::-;;;;:::o;11792:493::-;11839:7;11848;11857;11866;11875;11884;11893;11955:16;:14;:16::i;:::-;12006:13;:11;:13::i;:::-;12055:21;12065:10;12055:9;:21::i;:::-;12111:5;;;;;;;;;;;:15;;;12127:10;12111:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12111:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12111:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12111:27:0;;;;;;;;;;;;;;;;12168:23;12180:10;12168:11;:23::i;:::-;12221:10;:8;:10::i;:::-;12262:11;:9;:11::i;:::-;11907:373;;;;;;;;;;;;;;11792:493;;;;;;;:::o;1744:171::-;1724:5;;;;;;;;;;;1710:19;;:10;:19;;;1702:28;;;;;;;;1839:1;1819:22;;:8;:22;;;;1811:31;;;;;;;;1880:8;1852:37;;1873:5;;;;;;;;;;;1852:37;;;;;;;;;;;;1902:8;1894:5;;:16;;;;;;;;;;;;;;;;;;1744:171;:::o;4648:428::-;4690:24;4732:18;4941:15;2083:1;2063:17;2075:4;2063:11;:17::i;:::-;:21;2055:30;;;;;;;;4717:10;4690:37;;4753:18;4765:5;4753:11;:18::i;:::-;4732:39;;3061:7;4817:10;:22;4776:10;:28;4787:16;4776:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;4859:16;:34;4876:16;4859:34;;;;;;;;;;;;;;;;4845:48;;;;4935:1;4898:16;:34;4915:16;4898:34;;;;;;;;;;;;;;;:38;;;;4959:49;4974:3;4979:16;4997:10;4959:14;:49::i;:::-;4941:67;;5033:16;5018:53;;;5051:10;5063:7;5018:53;;;;;;;;;;;;;;;;;;;;;;;;4648:428;;;:::o;12315:159::-;12372:9;12397:1;12392;:6;12388:32;;;12413:1;12406:8;;;;12388:32;12432:1;12428;:5;12424:9;;12454:1;12449;12445;:5;;;;;;;;:10;12438:18;;;;;;12468:1;12461:8;;12315:159;;;;;:::o;12479:88::-;12536:7;12561:1;12557;:5;;;;;;;;12550:12;;12479:88;;;;:::o;12572:107::-;12629:7;12655:1;12650;:6;;12643:14;;;;;;12673:1;12669;:5;12662:12;;12572:107;;;;:::o;3728:159::-;3852:4;3794:62;;:5;;;;;;;;;;;:18;;;3813:10;3833:4;3840:7;3794:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3794:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3794:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3794:54:0;;;;;;;;;;;;;;;;:62;;;3786:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3728:159;:::o;9900:1887::-;10009:7;10121:27;10213:22;10311:18;10386:23;10463:12;11356:22;10044:1;10027:13;:11;:13::i;:::-;:18;10023:49;;;10053:11;;:13;;;;;;;;;;;;;10023:49;10103:11;10078:9;:21;10088:10;10078:21;;;;;;;;;;;;;;;;:36;;;;;;;;;;;10151:55;10164:36;10177:11;10190:9;;10164:12;:36::i;:::-;10202:3;10151:12;:55::i;:::-;10121:85;;10238:66;10251:47;10264:19;10285:12;;10251;:47::i;:::-;10300:3;10238:12;:66::i;:::-;10213:91;;10332:49;10345:19;10366:14;10332:12;:49::i;:::-;10311:70;;10412:46;10425:11;10438:19;10412:12;:46::i;:::-;10386:72;;3061:7;10478:10;:22;10463:37;;10533:1;10515:15;:19;:81;;;;;10584:12;;10538:43;10551:15;10568:12;;10538;:43::i;:::-;:58;10515:81;10507:90;;;;;;;;10631:1;10608:25;;:11;:25;;;;:60;;;;;10652:16;10637:31;;:11;:31;;;;10608:60;:118;;;;;10708:18;;10672:19;:32;10692:11;10672:32;;;;;;;;;;;;;;;;:54;;10608:118;10604:333;;;10766:59;10779:16;:29;10796:11;10779:29;;;;;;;;;;;;;;;;10810:14;10766:12;:59::i;:::-;10734:16;:29;10751:11;10734:29;;;;;;;;;;;;;;;:91;;;;10604:333;;;10856:40;10869:10;10881:14;10856:12;:40::i;:::-;10843:53;;3061:7;10909:10;:22;10902:29;;10604:333;10962:1;10947:12;;:16;10943:292;;;10986:43;10999:12;;11013:15;10986:12;:43::i;:::-;10971:12;:58;;;;11080:12;;3061:7;11055:10;:22;:37;;;;;;;;11035:15;;:58;;;;;;;;;;;11166:12;;3061:7;11141:10;:22;:37;;;;;;;;11122:15;:57;11114:4;:66;11106:4;:75;11099:82;;10943:292;;;11214:15;11199:12;:30;;;;10943:292;11281:68;11294:19;:37;11314:16;11294:37;;;;;;;;;;;;;;;;11333:15;11281:12;:68::i;:::-;11241:19;:37;11261:16;11241:37;;;;;;;;;;;;;;;:108;;;;11426:4;11408:15;11390;;:33;:40;11356:75;;11468:15;11436:10;:28;11447:16;11436:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;11496:6;:18;11503:10;11496:18;;;;;;;;;;;;;;;;;;;;;;;;;11495:19;11492:110;;;11546:4;11525:6;:18;11532:10;11525:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;11559:4;;;;;;;;;;;:23;;;11583:2;11586:1;11588;11590;11592;11594;11559:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11559:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11559:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11559:37:0;;;;;;;;;;;;;;;;;11492:110;11634:10;11613:49;;11630:1;11613:49;;;11646:15;11613:49;;;;;;;;;;;;;;;;;;11736:11;11672:81;;11688:16;11672:81;;;11706:11;11719:15;11749:3;11672:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11767:15;11760:22;;9900:1887;;;;;;;;;;;:::o;12684:119::-;12741:9;12765:1;12761;:5;12757:9;;12783:1;12778;:6;;12771:14;;;;;;12797:1;12790:8;;12684:119;;;;:::o;1922:10366::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://27ac2a368730593248188c3b1c1931f6d27286ce7c90d6d24635acfd6b9346be
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.