ETH Price: $2,816.56 (+8.07%)
 

Overview

Max Total Supply

6,399,068.95531192547876774 USDN

Holders

2,093 (0.00%)

Total Transfers

-

Market

Price

$0.02 @ 0.000007 ETH (+0.69%)

Onchain Market Cap

$117,873.28

Circulating Supply Market Cap

$1,591,258.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Neutrino USD (USDN) is an algorithmic crypto-collateralized stablecoin pegged to the US dollar. All operations involving USDN, such as issuance, collateralization, staking and reward payouts, are fully transparent and governed by a smart contract.

Market

Volume (24H):$213.33
Market Capitalization:$1,591,258.00
Circulating Supply:86,385,728.00 USDN
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
USDN

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-10-01
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.8;

interface Staking {
  function deposit(address account, uint256 amount) external returns (bool);

  function withdraw(address account) external returns (bool);

  function stake(uint256 reward) external returns (bool);

  event Reward(uint256 id, uint256 amount);
}

interface ERC20 {

  function totalSupply() external view returns (uint256);

  function balanceOf(address account) external view returns (uint256);

  function allowance(address owner, address spender) external view returns (uint256);

  function approve(address spender, uint256 amount) external returns (bool);

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool);

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);

  function transfer(address recipient, uint256 amount) external returns (bool);

  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

abstract contract Ownable {
  address private _owner;
  address private _admin;

  constructor () public {
    _owner = msg.sender;
    _admin = msg.sender;
  }

  modifier onlyOwner() {
    require(_owner == msg.sender || _admin == msg.sender, "Ownable: caller is not the owner or admin");
    _;
  }

  function transferOwnership(address newOwner) external virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    _owner = newOwner;
  }
}

abstract contract Deprecateble is Ownable {
  bool internal deprecated;

  modifier onlyNotDeprecated() {
    require(!deprecated, "Deprecateble: contract is deprecated");
    _;
  }

  function deprecate() external onlyOwner {
    deprecated = true;
    emit Deprecate(msg.sender);
  }

  event Deprecate(address indexed account);
}

abstract contract StandartToken is Staking, ERC20, Ownable, Deprecateble {
  uint256[] private _percents;
  uint256 private _liquidTotalSupply;
  uint256 private _liquidDeposit;
  uint256 constant private PERCENT_FACTOR = 10 ** 12;

  mapping(address => uint256) private _balances;
  mapping(address => uint256) private _deposits;
  mapping(address => uint256) private _rewardIndexForAccount;
  mapping(address => mapping(address => uint256)) private _allowances;

  constructor () public {
    _percents.push(PERCENT_FACTOR);
  }

  function deposit(address account, uint256 amount) external onlyOwner onlyNotDeprecated override virtual returns (bool)  {
    require(amount > 0, "amount should be > 0");
    require(account != address(0), "deposit to the zero address");

    uint256 liquidDeposit = _liquidDeposit;
    require(liquidDeposit + amount >= liquidDeposit, "addition overflow for deposit");
    _liquidDeposit = liquidDeposit + amount;

    uint256 oldDeposit = _deposits[account];
    if (oldDeposit == 0) {
      _balances[account] = balanceOf(account);
      _rewardIndexForAccount[account] = _percents.length - 1;
      _deposits[account] = amount;
    } else {
      uint256 rewardIndex = _rewardIndexForAccount[account];
      if (rewardIndex == _percents.length - 1) {
        require(oldDeposit + amount >= oldDeposit, "addition overflow for deposit");
        _deposits[account] = oldDeposit + amount;
      } else {
        _balances[account] = balanceOf(account);
        _rewardIndexForAccount[account] = _percents.length - 1;
        _deposits[account] = amount;
      }
    }

    emit Transfer(address(0), account, amount);
    return true;
  }

  function stake(uint256 reward) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    require(reward > 0, "reward should be > 0");

    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    if (liquidTotalSupply == 0) {
      _percents.push(PERCENT_FACTOR);
    } else {
      uint256 oldPercent = _percents[_percents.length - 1];
      uint256 percent = reward * PERCENT_FACTOR / liquidTotalSupply;
      require(percent + PERCENT_FACTOR >= percent, "addition overflow for percent");
      uint256 newPercent = percent + PERCENT_FACTOR;
      _percents.push(newPercent * oldPercent / PERCENT_FACTOR);

      require(liquidTotalSupply + reward >= liquidTotalSupply, "addition overflow for total supply + reward");
      liquidTotalSupply = liquidTotalSupply + reward;
    }

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    _liquidTotalSupply = liquidTotalSupply + liquidDeposit;
    _liquidDeposit = 0;

    emit Reward(_percents.length, reward);
    return true;
  }

  function withdraw(address account) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    uint256 oldDeposit = _deposits[account];
    uint256 rewardIndex = _rewardIndexForAccount[account];

    if (rewardIndex == _percents.length - 1) {
      uint256 balance = _balances[account];
      require(balance <= _liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = _liquidTotalSupply - balance;

      require(oldDeposit <= _liquidDeposit, "subtraction overflow for liquid deposit");
      _liquidDeposit = _liquidDeposit - oldDeposit;

      require(balance + oldDeposit >= balance, "addition overflow for total balance + oldDeposit");
      emit Transfer(account, address(0), balance + oldDeposit);
    } else {
      uint256 balance = balanceOf(account);
      uint256 liquidTotalSupply = _liquidTotalSupply;
      require(balance <= liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = liquidTotalSupply - balance;
      emit Transfer(account, address(0), balance);
    }

    _balances[account] = 0;
    _deposits[account] = 0;
    return true;
  }

  // ERC20
  function totalSupply() external view override virtual returns (uint256) {
    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    return liquidTotalSupply + liquidDeposit;
  }

  function balanceOf(address account) public view override virtual returns (uint256) {
    uint256 balance = _balances[account];
    uint256 oldDeposit = _deposits[account];

    if (balance == 0 && oldDeposit == 0) {
      return 0;
    }

    uint256 rewardIndex = _rewardIndexForAccount[account];
    if (rewardIndex == _percents.length - 1) {
      require(balance + oldDeposit >= balance, "addition overflow for balance");
      return balance + oldDeposit;
    }

    if (oldDeposit == 0) {
      uint256 profit = _percents[_percents.length - 1];
      return profit * balance / _percents[rewardIndex];
    } else {
      uint256 newBalance = balance * _percents[_percents.length - 1] / _percents[rewardIndex];
      uint256 profit = oldDeposit * _percents[_percents.length - 1] / _percents[rewardIndex + 1];
      require(profit + newBalance >= newBalance, "addition overflow for balance");
      return profit + newBalance;
    }
  }

  function allowance(address owner, address spender) external view override virtual returns (uint256) {
    return _allowances[owner][spender];
  }

  function _approve(address owner, address spender, uint256 amount) internal onlyNotDeprecated virtual {
    require(owner != address(0), "ERC20: approve from the zero address");
    require(spender != address(0), "ERC20: approve to the zero address");

    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
  }

  function approve(address spender, uint256 amount) external override virtual returns (bool) {
    _approve(msg.sender, spender, amount);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(temp + addedValue >= temp, "addition overflow");
    _approve(msg.sender, spender, temp + addedValue);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(subtractedValue <= temp, "ERC20: decreased allowance below zero");
    _approve(msg.sender, spender, temp - subtractedValue);
    return true;
  }

  function transfer(address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(msg.sender, recipient, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 temp = _allowances[sender][msg.sender];
    require(amount <= temp, "ERC20: transfer amount exceeds allowance");
    _approve(sender, msg.sender, temp - amount);
    return true;
  }

  function _transfer(address sender, address recipient, uint256 amount) internal onlyNotDeprecated virtual {
    require(amount > 0, "amount should be > 0");
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    uint256 oldDeposit = _deposits[sender];
    uint256 rewardIndex = _rewardIndexForAccount[sender];
    uint256 depositDiff = 0;

    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 senderBalance = balanceOf(sender);
      require(amount <= senderBalance, "ERC20: transfer amount exceeds balance");
      _balances[sender] = senderBalance - amount;

      _deposits[sender] = 0;
      _rewardIndexForAccount[sender] = _percents.length - 1;
    } else {
      if (amount <= oldDeposit) {
        _deposits[sender] = oldDeposit - amount;
        depositDiff = amount;
      } else {
        uint256 senderBalance = _balances[sender];
        require(amount - oldDeposit <= senderBalance, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - (amount - oldDeposit);
        _deposits[sender] = 0;
        depositDiff = oldDeposit;
      }
    }

    oldDeposit = _deposits[recipient];
    rewardIndex = _rewardIndexForAccount[recipient];
    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 recipientBalance = balanceOf(recipient);
      require((amount - depositDiff) + recipientBalance >= recipientBalance, "ERC20: addition overflow for recipient balance");
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _rewardIndexForAccount[recipient] = _percents.length - 1;
      _deposits[recipient] = depositDiff;
    } else {
      uint256 recipientBalance = _balances[recipient];
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _deposits[recipient] = oldDeposit + depositDiff;
    }

    emit Transfer(sender, recipient, amount);
  }
}

contract USDN is StandartToken {
  function name() external pure returns (string memory) {
    return "Neutrino USD";
  }

  function symbol() external pure returns (string memory) {
    return "USDN";
  }

  function decimals() external pure returns (uint8) {
    return 18;
  }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deprecate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600080546001600160a01b03199081163390811783556001805490921617815560028054918201815590915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910155611a26806100776000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a14610312578063a9059cbb1461032f578063dd62ed3e1461035b578063f2fde38b1461038957610100565b806351cff8d91461029257806370a08231146102b857806395d89b41146102de578063a457c2d7146102e657610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103af565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103d5565b604080519115158252519081900360200190f35b6101ca6103eb565b005b6101d4610489565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b038135811691602081013590911690604001356104da565b610224610562565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b038135169060200135610567565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105ed565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b0316610920565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610bdb565b61010d610de6565b6101ae600480360360408110156102fc57600080fd5b506001600160a01b038135169060200135610e04565b6101ae6004803603602081101561032857600080fd5b5035610e74565b6101ae6004803603604081101561034557600080fd5b506001600160a01b03813516906020013561114b565b6101d46004803603604081101561037157600080fd5b506001600160a01b0381358116916020013516611158565b6101ca6004803603602081101561039f57600080fd5b50356001600160a01b0316611183565b60408051808201909152600c81526b13995d5d1c9a5b9bc81554d160a21b602082015290565b60006103e2338484611248565b50600192915050565b6000546001600160a01b031633148061040e57506001546001600160a01b031633145b6104495760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156104d45760405162461bcd60e51b81526004018080602001828103825260228152602001806118f66022913960400191505060405180910390fd5b01905090565b60006104e784848461137d565b6001600160a01b03841660009081526008602090815260408083203384529091529020548083111561054a5760405162461bcd60e51b81526004018080602001828103825260288152602001806118a96028913960400191505060405180910390fd5b6105578533858403611248565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156105d6576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105e33385858401611248565b5060019392505050565b600080546001600160a01b031633148061061157506001546001600160a01b031633145b61064c5760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b600154600160a01b900460ff16156106955760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b600082116106e1576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661073c576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b600454828101811115610796576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b03841660009081526006602052604090205480610801576107c385610bdb565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556108e6565b6001600160a01b038516600090815260076020526040902054600254600019018114156108a15781858301101561087f576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556108e4565b6108aa86610bdb565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b0387169160009160008051602061193f8339815191529181900360200190a3506001949350505050565b600080546001600160a01b031633148061094457506001546001600160a01b031633145b61097f5760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b600154600160a01b900460ff16156109c85760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610b22576001600160a01b038416600090815260056020526040902054600354811115610a555760405162461bcd60e51b81526004018080602001828103825260258152602001806118d16025913960400191505060405180910390fd5b600380548290039055600454831115610a9f5760405162461bcd60e51b81526004018080602001828103825260278152602001806119186027913960400191505060405180910390fd5b8260045403600481905550808382011015610aeb5760405162461bcd60e51b81526004018080602001828103825260308152602001806117896030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b0388169160008051602061193f8339815191529181900360200190a350610baa565b6000610b2d85610bdb565b60035490915080821115610b725760405162461bcd60e51b81526004018080602001828103825260258152602001806118d16025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b0389169160008051602061193f8339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610c0b575080155b15610c1b57600092505050610bd6565b6001600160a01b03841660009081526007602052604090205460025460001901811415610ca257828284011015610c99576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610bd6565b81610cf85760028054600091906000198101908110610cbd57fe5b9060005260206000200154905060028281548110610cd757fe5b906000526020600020015484820281610cec57fe5b04945050505050610bd6565b600060028281548110610d0757fe5b600091825260209091200154600280546000198101908110610d2557fe5b9060005260206000200154850281610d3957fe5b049050600060028360010181548110610d4e57fe5b600091825260209091200154600280546000198101908110610d6c57fe5b9060005260206000200154850281610d8057fe5b049050818282011015610dda576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610bd692505050565b6040805180820190915260048152632aa9a22760e11b602082015290565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610e675760405162461bcd60e51b81526004018080602001828103825260258152602001806119a86025913960400191505060405180910390fd5b6105e33385858403611248565b600080546001600160a01b0316331480610e9857506001546001600160a01b031633145b610ed35760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b600154600160a01b900460ff1615610f1c5760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b60008211610f68576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b60035460045481610fb3576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909101556110b8565b60028054600091906000198101908110610fc957fe5b9060005260206000200154905060008364e8d4a51000870281610fe857fe5b0490508064e8d4a5100082011015611047576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156110b05760405162461bcd60e51b815260040180806020018281038252602b815260200180611855602b913960400191505060405180910390fd5b505050908301905b8181830110156110f95760405162461bcd60e51b81526004018080602001828103825260228152602001806118f66022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006103e233848461137d565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b03163314806111a657506001546001600160a01b031633145b6111e15760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b6001600160a01b0381166112265760405162461bcd60e51b81526004018080602001828103825260268152602001806117b96026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff16156112915760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b6001600160a01b0383166112d65760405162461bcd60e51b81526004018080602001828103825260248152602001806119846024913960400191505060405180910390fd5b6001600160a01b03821661131b5760405162461bcd60e51b81526004018080602001828103825260228152602001806117df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113c65760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b60008111611412576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166114575760405162461bcd60e51b815260040180806020018281038252602581526020018061195f6025913960400191505060405180910390fd5b6001600160a01b03821661149c5760405162461bcd60e51b81526004018080602001828103825260238152602001806117666023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806114d55750600254600019018214155b1561156a5760006114e587610bdb565b9050808511156115265760405162461bcd60e51b81526004018080602001828103825260268152602001806118016026913960400191505060405180910390fd5b6001600160a01b038716600090815260056020908152604080832093889003909355600681528282208290556002546007909152919020600019909101905561161e565b82841161159557506001600160a01b038516600090815260066020526040902083830390558261161e565b6001600160a01b0386166000908152600560205260409020548385038110156115ef5760405162461bcd60e51b81526004018080602001828103825260268152602001806118016026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b038516600090815260066020908152604080832054600790925290912054909350915082158061165b5750600254600019018214155b156116f457600061166b86610bdb565b905080818387030110156116b05760405162461bcd60e51b815260040180806020018281038252602e815260200180611827602e913960400191505060405180910390fd5b6001600160a01b0386166000908152600560209081526040808320858903949094019093556002546007825283832060001990910190556006905220819055611724565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b031660008051602061193f833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63656164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a26469706673582212209257874fed3a071998833d8e81f6f0ea91a9d98817e402b507e08b74760e499864736f6c63430006080033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a14610312578063a9059cbb1461032f578063dd62ed3e1461035b578063f2fde38b1461038957610100565b806351cff8d91461029257806370a08231146102b857806395d89b41146102de578063a457c2d7146102e657610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103af565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103d5565b604080519115158252519081900360200190f35b6101ca6103eb565b005b6101d4610489565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b038135811691602081013590911690604001356104da565b610224610562565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b038135169060200135610567565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105ed565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b0316610920565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610bdb565b61010d610de6565b6101ae600480360360408110156102fc57600080fd5b506001600160a01b038135169060200135610e04565b6101ae6004803603602081101561032857600080fd5b5035610e74565b6101ae6004803603604081101561034557600080fd5b506001600160a01b03813516906020013561114b565b6101d46004803603604081101561037157600080fd5b506001600160a01b0381358116916020013516611158565b6101ca6004803603602081101561039f57600080fd5b50356001600160a01b0316611183565b60408051808201909152600c81526b13995d5d1c9a5b9bc81554d160a21b602082015290565b60006103e2338484611248565b50600192915050565b6000546001600160a01b031633148061040e57506001546001600160a01b031633145b6104495760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156104d45760405162461bcd60e51b81526004018080602001828103825260228152602001806118f66022913960400191505060405180910390fd5b01905090565b60006104e784848461137d565b6001600160a01b03841660009081526008602090815260408083203384529091529020548083111561054a5760405162461bcd60e51b81526004018080602001828103825260288152602001806118a96028913960400191505060405180910390fd5b6105578533858403611248565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156105d6576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105e33385858401611248565b5060019392505050565b600080546001600160a01b031633148061061157506001546001600160a01b031633145b61064c5760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b600154600160a01b900460ff16156106955760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b600082116106e1576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661073c576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b600454828101811115610796576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b03841660009081526006602052604090205480610801576107c385610bdb565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556108e6565b6001600160a01b038516600090815260076020526040902054600254600019018114156108a15781858301101561087f576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556108e4565b6108aa86610bdb565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b0387169160009160008051602061193f8339815191529181900360200190a3506001949350505050565b600080546001600160a01b031633148061094457506001546001600160a01b031633145b61097f5760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b600154600160a01b900460ff16156109c85760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610b22576001600160a01b038416600090815260056020526040902054600354811115610a555760405162461bcd60e51b81526004018080602001828103825260258152602001806118d16025913960400191505060405180910390fd5b600380548290039055600454831115610a9f5760405162461bcd60e51b81526004018080602001828103825260278152602001806119186027913960400191505060405180910390fd5b8260045403600481905550808382011015610aeb5760405162461bcd60e51b81526004018080602001828103825260308152602001806117896030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b0388169160008051602061193f8339815191529181900360200190a350610baa565b6000610b2d85610bdb565b60035490915080821115610b725760405162461bcd60e51b81526004018080602001828103825260258152602001806118d16025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b0389169160008051602061193f8339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610c0b575080155b15610c1b57600092505050610bd6565b6001600160a01b03841660009081526007602052604090205460025460001901811415610ca257828284011015610c99576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610bd6565b81610cf85760028054600091906000198101908110610cbd57fe5b9060005260206000200154905060028281548110610cd757fe5b906000526020600020015484820281610cec57fe5b04945050505050610bd6565b600060028281548110610d0757fe5b600091825260209091200154600280546000198101908110610d2557fe5b9060005260206000200154850281610d3957fe5b049050600060028360010181548110610d4e57fe5b600091825260209091200154600280546000198101908110610d6c57fe5b9060005260206000200154850281610d8057fe5b049050818282011015610dda576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610bd692505050565b6040805180820190915260048152632aa9a22760e11b602082015290565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610e675760405162461bcd60e51b81526004018080602001828103825260258152602001806119a86025913960400191505060405180910390fd5b6105e33385858403611248565b600080546001600160a01b0316331480610e9857506001546001600160a01b031633145b610ed35760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b600154600160a01b900460ff1615610f1c5760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b60008211610f68576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b60035460045481610fb3576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909101556110b8565b60028054600091906000198101908110610fc957fe5b9060005260206000200154905060008364e8d4a51000870281610fe857fe5b0490508064e8d4a5100082011015611047576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156110b05760405162461bcd60e51b815260040180806020018281038252602b815260200180611855602b913960400191505060405180910390fd5b505050908301905b8181830110156110f95760405162461bcd60e51b81526004018080602001828103825260228152602001806118f66022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006103e233848461137d565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b03163314806111a657506001546001600160a01b031633145b6111e15760405162461bcd60e51b81526004018080602001828103825260298152602001806118806029913960400191505060405180910390fd5b6001600160a01b0381166112265760405162461bcd60e51b81526004018080602001828103825260268152602001806117b96026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff16156112915760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b6001600160a01b0383166112d65760405162461bcd60e51b81526004018080602001828103825260248152602001806119846024913960400191505060405180910390fd5b6001600160a01b03821661131b5760405162461bcd60e51b81526004018080602001828103825260228152602001806117df6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113c65760405162461bcd60e51b81526004018080602001828103825260248152602001806119cd6024913960400191505060405180910390fd5b60008111611412576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166114575760405162461bcd60e51b815260040180806020018281038252602581526020018061195f6025913960400191505060405180910390fd5b6001600160a01b03821661149c5760405162461bcd60e51b81526004018080602001828103825260238152602001806117666023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806114d55750600254600019018214155b1561156a5760006114e587610bdb565b9050808511156115265760405162461bcd60e51b81526004018080602001828103825260268152602001806118016026913960400191505060405180910390fd5b6001600160a01b038716600090815260056020908152604080832093889003909355600681528282208290556002546007909152919020600019909101905561161e565b82841161159557506001600160a01b038516600090815260066020526040902083830390558261161e565b6001600160a01b0386166000908152600560205260409020548385038110156115ef5760405162461bcd60e51b81526004018080602001828103825260268152602001806118016026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b038516600090815260066020908152604080832054600790925290912054909350915082158061165b5750600254600019018214155b156116f457600061166b86610bdb565b905080818387030110156116b05760405162461bcd60e51b815260040180806020018281038252602e815260200180611827602e913960400191505060405180910390fd5b6001600160a01b0386166000908152600560209081526040808320858903949094019093556002546007825283832060001990910190556006905220819055611724565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b031660008051602061193f833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63656164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a26469706673582212209257874fed3a071998833d8e81f6f0ea91a9d98817e402b507e08b74760e499864736f6c63430006080033

Deployed Bytecode Sourcemap

11287:293:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11287:293:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;11323:88:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11323:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7908:159;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7908:159:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1913:103;;;:::i;:::-;;6096:333;;;:::i;:::-;;;;;;;;;;;;;;;;8884:360;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8884:360:0;;;;;;;;;;;;;;;;;:::i;11505:72::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8073:300;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8073:300:0;;;;;;;;:::i;2619:1165::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2619:1165:0;;;;;;;;:::i;4914:1164::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4914:1164:0;-1:-1:-1;;;;;4914:1164:0;;:::i;6435:962::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6435:962:0;-1:-1:-1;;;;;6435:962:0;;:::i;11417:82::-;;;:::i;8379:328::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8379:328:0;;;;;;;;:::i;3790:1118::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3790:1118:0;;:::i;8713:165::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8713:165:0;;;;;;;;:::i;7403:147::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7403:147:0;;;;;;;;;;:::i;1530:182::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1530:182:0;-1:-1:-1;;;;;1530:182:0;;:::i;11323:88::-;11384:21;;;;;;;;;;;;-1:-1:-1;;;11384:21:0;;;;11323:88;:::o;7908:159::-;7993:4;8006:37;8015:10;8027:7;8036:6;8006:8;:37::i;:::-;-1:-1:-1;8057:4:0;7908:159;;;;:::o;1913:103::-;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1973:4:::1;1960:17:::0;;-1:-1:-1;;;;1960:17:0::1;-1:-1:-1::0;;;1960:17:0::1;::::0;;1989:21:::1;::::0;1999:10:::1;::::0;1989:21:::1;::::0;1960:17;;1989:21:::1;1913:103::o:0;6096:333::-;6203:18;;6252:14;;6159:7;;6203:18;6283:33;;;:54;-1:-1:-1;6283:54:0;6275:101;;;;-1:-1:-1;;;6275:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6390:33;;-1:-1:-1;6096:333:0;:::o;8884:360::-;8992:4;9005:36;9015:6;9023:9;9034:6;9005:9;:36::i;:::-;-1:-1:-1;;;;;9065:19:0;;9050:12;9065:19;;;:11;:19;;;;;;;;9085:10;9065:31;;;;;;;;9111:14;;;;9103:67;;;;-1:-1:-1;;;9103:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9177:43;9186:6;9194:10;9213:6;9206:4;:13;9177:8;:43::i;:::-;-1:-1:-1;9234:4:0;;8884:360;-1:-1:-1;;;;8884:360:0:o;11505:72::-;11569:2;11505:72;:::o;8073:300::-;8212:10;8172:4;8200:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8200:32:0;;;;;;;;;;8247:17;;;:25;-1:-1:-1;8247:25:0;8239:55;;;;;-1:-1:-1;;;8239:55:0;;;;;;;;;;;;-1:-1:-1;;;8239:55:0;;;;;;;;;;;;;;;8301:48;8310:10;8322:7;8338:10;8331:4;:17;8301:8;:48::i;:::-;-1:-1:-1;8363:4:0;;8073:300;-1:-1:-1;;;8073:300:0:o;2619:1165::-;2732:4;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:10:::1;::::0;-1:-1:-1;;;1842:10:0;::::1;;;1841:11;1833:60;;;;-1:-1:-1::0;;;1833:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2763:1:::2;2754:6;:10;2746:43;;;::::0;;-1:-1:-1;;;2746:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2746:43:0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;2804:21:0;::::2;2796:61;;;::::0;;-1:-1:-1;;;2796:61:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2890:14;::::0;2919:22;;::::2;:39:::0;-1:-1:-1;2919:39:0::2;2911:81;;;::::0;;-1:-1:-1;;;2911:81:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3016:22:::0;;::::2;2999:14;:39:::0;-1:-1:-1;;;;;3068:18:0;::::2;3047;3068::::0;;;:9:::2;:18;::::0;;;;;3097:15;3093:617:::2;;3144:18;3154:7;3144:9;:18::i;:::-;-1:-1:-1::0;;;;;3123:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;;;;:39;;;;3205:9:::2;:16:::0;3171:22:::2;:31:::0;;;;;-1:-1:-1;;3205:20:0;;;3171:54;;3234:9:::2;:18:::0;;;:27;;;3093:617:::2;;;-1:-1:-1::0;;;;;3306:31:0;::::2;3284:19;3306:31:::0;;;:22:::2;:31;::::0;;;;;3365:9:::2;:16:::0;-1:-1:-1;;3365:20:0;3350:35;::::2;3346:357;;;3429:10;3419:6;3406:10;:19;:33;;3398:75;;;::::0;;-1:-1:-1;;;3398:75:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;3484:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;3505:19;;::::2;3484:40:::0;;3346:357:::2;;;3572:18;3582:7;3572:9;:18::i;:::-;-1:-1:-1::0;;;;;3551:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;;;;:39;;;;3635:9:::2;:16:::0;3601:22:::2;:31:::0;;;;;-1:-1:-1;;3635:20:0;;;3601:54;;3666:9:::2;:18:::0;;;:27;;;3346:357:::2;3093:617;;3723:37;::::0;;;;;;;-1:-1:-1;;;;;3723:37:0;::::2;::::0;3740:1:::2;::::0;-1:-1:-1;;;;;;;;;;;3723:37:0;;;;::::2;::::0;;::::2;-1:-1:-1::0;3774:4:0::2;::::0;2619:1165;-1:-1:-1;;;;2619:1165:0:o;4914:1164::-;5012:4;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:10:::1;::::0;-1:-1:-1;;;1842:10:0;::::1;;;1841:11;1833:60;;;;-1:-1:-1::0;;;1833:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;5046:18:0;::::2;5025;5046::::0;;;:9:::2;:18;::::0;;;;;;;;5093:22:::2;:31:::0;;;;;;;5152:9:::2;:16:::0;-1:-1:-1;;5152:20:0;5137:35;::::2;5133:862;;;-1:-1:-1::0;;;;;5201:18:0;::::2;5183:15;5201:18:::0;;;:9:::2;:18;::::0;;;;;5247::::2;::::0;5236:29;::::2;;5228:79;;;;-1:-1:-1::0;;;5228:79:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5337:18;::::0;;:28;;::::2;5316:49:::0;;5398:14:::2;::::0;5384:28;::::2;;5376:80;;;;-1:-1:-1::0;;;5376:80:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499:10;5482:14;;:27;5465:14;:44;;;;5552:7;5538:10;5528:7;:20;:31;;5520:92;;;;-1:-1:-1::0;;;5520:92:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5626:51;::::0;;5656:20;;::::2;5626:51:::0;;;;5652:1:::2;::::0;-1:-1:-1;;;;;5626:51:0;::::2;::::0;-1:-1:-1;;;;;;;;;;;5626:51:0;;;;::::2;::::0;;::::2;5133:862;;;;5700:15;5718:18;5728:7;5718:9;:18::i;:::-;5773;::::0;5700:36;;-1:-1:-1;5808:28:0;;::::2;;5800:78;;;;-1:-1:-1::0;;;5800:78:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5908:27:::0;;::::2;5887:18;:48:::0;5949:38:::2;::::0;;;;;;;5975:1:::2;::::0;-1:-1:-1;;;;;5949:38:0;::::2;::::0;-1:-1:-1;;;;;;;;;;;5949:38:0;;;;::::2;::::0;;::::2;5133:862;;;-1:-1:-1::0;;;;;;;;6003:18:0;::::2;6024:1;6003:18:::0;;;:9:::2;:18;::::0;;;;;;;:22;;;6032:9:::2;:18:::0;;;;;:22;6068:4:::2;1900:1;4914:1164:::0;;;:::o;6435:962::-;-1:-1:-1;;;;;6543:18:0;;6509:7;6543:18;;;:9;:18;;;;;;;;;6589:9;:18;;;;;;6620:12;;:31;;;;-1:-1:-1;6636:15:0;;6620:31;6616:62;;;6669:1;6662:8;;;;;;6616:62;-1:-1:-1;;;;;6708:31:0;;6686:19;6708:31;;;:22;:31;;;;;;6765:9;:16;-1:-1:-1;;6765:20:0;6750:35;;6746:167;;;6828:7;6814:10;6804:7;:20;:31;;6796:73;;;;;-1:-1:-1;;;6796:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6885:20:0;;-1:-1:-1;6878:27:0;;6746:167;6925:15;6921:471;;6968:9;6978:16;;6951:14;;6968:9;-1:-1:-1;;6978:20:0;;;6968:31;;;;;;;;;;;;;;6951:48;;7034:9;7044:11;7034:22;;;;;;;;;;;;;;;;7024:7;7015:6;:16;:41;;;;;;7008:48;;;;;;;;6921:471;7079:18;7144:9;7154:11;7144:22;;;;;;;;;;;;;;;;;;7110:9;7120:16;;-1:-1:-1;;7120:20:0;;;7110:31;;;;;;;;;;;;;;7100:7;:41;:66;;;;;;7079:87;;7175:14;7239:9;7249:11;7263:1;7249:15;7239:26;;;;;;;;;;;;;;;;;;7205:9;7215:16;;-1:-1:-1;;7215:20:0;;;7205:31;;;;;;;;;;;;;;7192:10;:44;:73;;;;;;7175:90;;7305:10;7291;7282:6;:19;:33;;7274:75;;;;;-1:-1:-1;;;7274:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:19;;-1:-1:-1;7358:26:0;;-1:-1:-1;;;7358:26:0;11417:82;11480:13;;;;;;;;;;;;-1:-1:-1;;;11480:13:0;;;;11417:82;:::o;8379:328::-;8523:10;8483:4;8511:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8511:32:0;;;;;;;;;;8558:23;;;;8550:73;;;;-1:-1:-1;;;8550:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8630:53;8639:10;8651:7;8667:15;8660:4;:22;8630:8;:53::i;3790:1118::-;3884:4;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:10:::1;::::0;-1:-1:-1;;;1842:10:0;::::1;;;1841:11;1833:60;;;;-1:-1:-1::0;;;1833:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3914:1:::2;3905:6;:10;3897:43;;;::::0;;-1:-1:-1;;;3897:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3897:43:0;;;;;;;;;;;;;::::2;;3977:18;::::0;4026:14:::2;::::0;4053:22;4049:594:::2;;4086:9;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;4086:30:0;;;;2296:8:::2;4086:30:::0;;;::::2;::::0;4049:594:::2;;;4160:9;4170:16:::0;;4139:18:::2;::::0;4160:9;-1:-1:-1;;4170:20:0;;;4160:31;::::2;;;;;;;;;;;;;4139:52;;4200:15;4244:17;2296:8;4218:6;:23;:43;;;;;;4200:61;;4306:7;2296:8;4278:7;:24;:35;;4270:77;;;::::0;;-1:-1:-1;;;4270:77:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2296:8;4377:24:::0;;::::2;::::0;4410:9:::2;::::0;4425:23;;::::2;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;4410:56:0;;;::::2;::::0;;;4425:40;;::::2;4410:56:::0;::::2;::::0;4485:26;;::::2;:47:::0;-1:-1:-1;4485:47:0::2;4477:103;;;;-1:-1:-1::0;;;4477:103:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;4609:26:0;;::::2;::::0;4049:594:::2;4696:17;4679:13;4659:17;:33;:54;;4651:101;;;;-1:-1:-1::0;;;4651:101:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4780:33:::0;;::::2;4759:18;:54:::0;4837:1:::2;4820:14;:18:::0;4859:9:::2;:16:::0;4852:32:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;;;;;;;;::::2;-1:-1:-1::0;4898:4:0::2;::::0;3790:1118;-1:-1:-1;;;3790:1118:0:o;8713:165::-;8801:4;8814:40;8824:10;8836:9;8847:6;8814:9;:40::i;7403:147::-;-1:-1:-1;;;;;7517:18:0;;;7494:7;7517:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7403:147::o;1530:182::-;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1617:22:0;::::1;1609:73;;;;-1:-1:-1::0;;;1609:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1689:6;:17:::0;;-1:-1:-1;;;;;;1689:17:0::1;-1:-1:-1::0;;;;;1689:17:0;;;::::1;::::0;;;::::1;::::0;;1530:182::o;7556:346::-;1842:10;;-1:-1:-1;;;1842:10:0;;;;1841:11;1833:60;;;;-1:-1:-1;;;1833:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7672:19:0;::::1;7664:68;;;;-1:-1:-1::0;;;7664:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7747:21:0;::::1;7739:68;;;;-1:-1:-1::0;;;7739:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7816:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27;;::::1;::::0;;;;;;;;;;:36;;;7864:32;;;;;;;::::1;::::0;;;;;;;;::::1;7556:346:::0;;;:::o;9250:2030::-;1842:10;;-1:-1:-1;;;1842:10:0;;;;1841:11;1833:60;;;;-1:-1:-1;;;1833:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9379:1:::1;9370:6;:10;9362:43;;;::::0;;-1:-1:-1;;;9362:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;9362:43:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;9420:20:0;::::1;9412:70;;;;-1:-1:-1::0;;;9412:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9497:23:0;::::1;9489:71;;;;-1:-1:-1::0;;;9489:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9590:17:0;::::1;9569:18;9590:17:::0;;;:9:::1;:17;::::0;;;;;;;;9636:22:::1;:30:::0;;;;;;9590:17;;9709:15;;;:54:::1;;-1:-1:-1::0;9743:9:0::1;:16:::0;-1:-1:-1;;9743:20:0;9728:35;::::1;;9709:54;9705:786;;;9774:21;9798:17;9808:6;9798:9;:17::i;:::-;9774:41;;9842:13;9832:6;:23;;9824:74;;;;-1:-1:-1::0;;;9824:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9907:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;9927:22;;;::::1;9907:42:::0;;;9960:9:::1;:17:::0;;;;;:21;;;10023:9:::1;:16:::0;9990:22:::1;:30:::0;;;;;;-1:-1:-1;;10023:20:0;;;9990:53;;9705:786:::1;;;10080:10;10070:6;:20;10066:418;;-1:-1:-1::0;;;;;;10103:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;10123:19;;::::1;10103:39:::0;;10136:6;10066:418:::1;;;-1:-1:-1::0;;;;;10224:17:0;::::1;10200:21;10224:17:::0;;;:9:::1;:17;::::0;;;;;10260:19;;::::1;:36:::0;-1:-1:-1;10260:36:0::1;10252:87;;;;-1:-1:-1::0;;;10252:87:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10350:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;10387:19;;::::1;10370:37:::0;;::::1;10350:57:::0;;;10418:9:::1;:17:::0;;;;;:21;-1:-1:-1;10396:10:0;10066:418:::1;-1:-1:-1::0;;;;;10512:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;10553:22:::1;:33:::0;;;;;;;10512:20;;-1:-1:-1;10553:33:0;-1:-1:-1;10597:15:0;;;:54:::1;;-1:-1:-1::0;10631:9:0::1;:16:::0;-1:-1:-1;;10631:20:0;10616:35;::::1;;10597:54;10593:633;;;10662:24;10689:20;10699:9;10689;:20::i;:::-;10662:47;;10771:16;10751;10736:11;10727:6;:20;10726:41;:61;;10718:120;;;;-1:-1:-1::0;;;10718:120:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10847:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;10890;;::::1;10870:41:::0;;;::::1;10847:64:::0;;;10956:9:::1;:16:::0;10920:22:::1;:33:::0;;;;;-1:-1:-1;;10956:20:0;;;10920:56;;10985:9:::1;:20:::0;;;:34;;;10593:633:::1;;;-1:-1:-1::0;;;;;11069:20:0;::::1;11042:24;11069:20:::0;;;:9:::1;:20;::::0;;;;;;;;;11141;;::::1;11121:41;11098:64:::0;;11171:9:::1;:20:::0;;;;;11194:24;;::::1;11171:47:::0;;10593:633:::1;11256:9;-1:-1:-1::0;;;;;11239:35:0::1;11248:6;-1:-1:-1::0;;;;;11239:35:0::1;-1:-1:-1::0;;;;;;;;;;;11267:6:0::1;11239:35;;;;;;;;;;;;;;;;;;1900:1;;;9250:2030:::0;;;:::o

Swarm Source

ipfs://9257874fed3a071998833d8e81f6f0ea91a9d98817e402b507e08b74760e4998
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.