ETH Price: $2,292.30 (-5.34%)

Token

Billion (BB)
 

Overview

Max Total Supply

1,000,000,000 BB

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
salm.eth
Balance
11,020.751276521304163221 BB

Value
$0.00
0xadc71883df0c9d03d241d21aa8d706262c570d1f
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:
Billion

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.6;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    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);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor (){
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

} 

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Billion is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    uint256 private _totalSupply = 1 * 1e9 * 1e18;
    
    string private _name = 'Billion';
    string private _symbol = 'BB';
    uint8 private _decimals = 18;
    

    mapping(address => uint256) public _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => bool) public blacklist;

    uint256 public _maxTxLimit = 1 * 1e7 * 1e18;
    
    bool public _live = false;
    
    
    constructor () {
        _balances[_msgSender()] = _totalSupply;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
         return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    function burn(uint256 amount) public {
        require(amount > 0, "ERC20: burn amount must be greater than zero");
        
        _totalSupply = _totalSupply.sub(amount);
        _balances[_msgSender()] = _balances[_msgSender()].sub(amount);
        
        emit Transfer(_msgSender(), address(0x0), amount);
    }
    
    function burnFrom(address account, uint256 amount) public {
        require(amount > 0, "ERC20: burn amount must be greater than zero");
        require(_allowances[account][_msgSender()] >= amount, "ERC20: burn amount must be greater than allowance");
        
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount));
        
        _totalSupply = _totalSupply.sub(amount);
        _balances[account] = _balances[account].sub(amount);
        
        emit Transfer(account, address(0x0), amount);
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner()) {
            require(amount <= _maxTxLimit, "ERC20: amount exceeds the max tx limit.");
            
            if(from != uniswapV2Pair)
                require(!blacklist[from] && !blacklist[to], 'ERC20: the transaction was blocked.');
            if(from == uniswapV2Pair && !_live)
                blacklist[to] = true;
        }
        
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }
    
    
    function updateLive() external {
        if(!_live) {
            _live = true;
        }
    }
    
    function unblockWallet(address account) public onlyOwner {
        blacklist[account] = false;
    }
    
    function updateMaxLimit(uint256 maxTxLimit) public onlyOwner {
        require(maxTxLimit >= 1e4 * 1e18, 'ERC20: max tx limit should be greater than 1e22');
        _maxTxLimit = maxTxLimit;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"account","type":"address"}],"name":"unblockWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxLimit","type":"uint256"}],"name":"updateMaxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6b033b2e3c9fd0803ce800000060045560c060405260076080819052662134b63634b7b760c91b60a09081526200003a91600591906200032b565b5060408051808201909152600280825261212160f11b602090920191825262000066916006916200032b565b506007805460ff199081166012179091556a084595161401484a000000600b55600c805490911690553480156200009c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480543360009081526008602090815260409182902092909255600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b81529151909363c45a0155938382019390929190829003018186803b1580156200015557600080fd5b505afa1580156200016a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001909190620003d1565b6001600160a01b031663c9c6539630600260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ee57600080fd5b505afa15801562000203573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002299190620003d1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200027257600080fd5b505af115801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad9190620003d1565b600380546001600160a01b0319166001600160a01b0392909216919091179055620002d53390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200031d91815260200190565b60405180910390a362000440565b828054620003399062000403565b90600052602060002090601f0160209004810192826200035d5760008555620003a8565b82601f106200037857805160ff1916838001178555620003a8565b82800160010185558215620003a8579182015b82811115620003a85782518255916020019190600101906200038b565b50620003b6929150620003ba565b5090565b5b80821115620003b65760008155600101620003bb565b600060208284031215620003e457600080fd5b81516001600160a01b0381168114620003fc57600080fd5b9392505050565b600181811c908216806200041857607f821691505b602082108114156200043a57634e487b7160e01b600052602260045260246000fd5b50919050565b61100280620004506000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80636ebcf607116100b857806395d89b411161007c57806395d89b41146102bd578063a9059cbb146102c5578063dd62ed3e146102d8578063f8f3c5a914610311578063f9f92be41461031a578063fd2dbb0e1461033d57600080fd5b80636ebcf6071461024857806370a0823114610268578063715018a61461029157806379cc6790146102995780638da5cb5b146102ac57600080fd5b806323b872dd1161010a57806323b872dd146101da57806329144bdb146101ed578063313ce5671461020057806342966c681461021557806349bd5a5e1461022857806356e0ec721461023b57600080fd5b806306fdde0314610147578063095ea7b3146101655780631694505e1461018857806318160ddd146101b35780631c8e1179146101c5575b600080fd5b61014f610345565b60405161015c9190610e4e565b60405180910390f35b610178610173366004610e0b565b6103d7565b604051901515815260200161015c565b60025461019b906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b6004545b60405190815260200161015c565b6101d86101d3366004610d81565b6103ed565b005b6101786101e8366004610dcf565b610441565b6101d86101fb366004610e35565b6104aa565b60075460405160ff909116815260200161015c565b6101d8610223366004610e35565b61054b565b60035461019b906001600160a01b031681565b600c546101789060ff1681565b6101b7610256366004610d81565b60086020526000908152604090205481565b6101b7610276366004610d81565b6001600160a01b031660009081526008602052604090205490565b6101d86105f0565b6101d86102a7366004610e0b565b610664565b6000546001600160a01b031661019b565b61014f6107c8565b6101786102d3366004610e0b565b6107d7565b6101b76102e6366004610d9c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6101b7600b5481565b610178610328366004610d81565b600a6020526000908152604090205460ff1681565b6101d86107e4565b60606005805461035490610f53565b80601f016020809104026020016040519081016040528092919081815260200182805461038090610f53565b80156103cd5780601f106103a2576101008083540402835291602001916103cd565b820191906000526020600020905b8154815290600101906020018083116103b057829003601f168201915b5050505050905090565b60006103e43384846107fe565b50600192915050565b6000546001600160a01b031633146104205760405162461bcd60e51b815260040161041790610eef565b60405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b600061044e848484610923565b6104a0843361049b85604051806060016040528060288152602001610fa5602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190610c83565b6107fe565b5060019392505050565b6000546001600160a01b031633146104d45760405162461bcd60e51b815260040161041790610eef565b69021e19e0c9bab24000008110156105465760405162461bcd60e51b815260206004820152602f60248201527f45524332303a206d6178207478206c696d69742073686f756c6420626520677260448201526e32b0ba32b9103a3430b71018b2991960891b6064820152608401610417565b600b55565b6000811161056b5760405162461bcd60e51b815260040161041790610ea3565b6004546105789082610cbd565b6004556105a58160086000335b6001600160a01b0316815260208101919091526040016000205490610cbd565b33600081815260086020908152604080832094909455925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350565b6000546001600160a01b0316331461061a5760405162461bcd60e51b815260040161041790610eef565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081116106845760405162461bcd60e51b815260040161041790610ea3565b6001600160a01b03821660009081526009602090815260408083203384529091529020548111156107115760405162461bcd60e51b815260206004820152603160248201527f45524332303a206275726e20616d6f756e74206d7573742062652067726561746044820152706572207468616e20616c6c6f77616e636560781b6064820152608401610417565b61073b82336001600160a01b038516600090815260096020526040812061049b9186919033610585565b6004546107489082610cbd565b6004556001600160a01b03821660009081526008602052604090205461076e9082610cbd565b6001600160a01b0383166000818152600860205260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107bc9085815260200190565b60405180910390a35050565b60606006805461035490610f53565b60006103e4338484610923565b600c5460ff166107fc57600c805460ff191660011790555b565b6001600160a01b0383166108605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610417565b6001600160a01b0382166108c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610417565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109875760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610417565b6001600160a01b0382166109e95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610417565b60008111610a525760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610417565b6000546001600160a01b03848116911614801590610a7e57506000546001600160a01b03838116911614155b15610bdd57600b54811115610ae55760405162461bcd60e51b815260206004820152602760248201527f45524332303a20616d6f756e74206578636565647320746865206d6178207478604482015266103634b6b4ba1760c91b6064820152608401610417565b6003546001600160a01b03848116911614610b94576001600160a01b0383166000908152600a602052604090205460ff16158015610b3c57506001600160a01b0382166000908152600a602052604090205460ff16155b610b945760405162461bcd60e51b815260206004820152602360248201527f45524332303a20746865207472616e73616374696f6e2077617320626c6f636b60448201526232b21760e91b6064820152608401610417565b6003546001600160a01b038481169116148015610bb45750600c5460ff16155b15610bdd576001600160a01b0382166000908152600a60205260409020805460ff191660011790555b6001600160a01b038316600090815260086020526040902054610c009082610cbd565b6001600160a01b038085166000908152600860205260408082209390935590841681522054610c2f9082610d06565b6001600160a01b0380841660008181526008602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109169085815260200190565b60008184841115610ca75760405162461bcd60e51b81526004016104179190610e4e565b506000610cb48486610f3c565b95945050505050565b6000610cff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c83565b9392505050565b600080610d138385610f24565b905083811015610cff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610417565b80356001600160a01b0381168114610d7c57600080fd5b919050565b600060208284031215610d9357600080fd5b610cff82610d65565b60008060408385031215610daf57600080fd5b610db883610d65565b9150610dc660208401610d65565b90509250929050565b600080600060608486031215610de457600080fd5b610ded84610d65565b9250610dfb60208501610d65565b9150604084013590509250925092565b60008060408385031215610e1e57600080fd5b610e2783610d65565b946020939093013593505050565b600060208284031215610e4757600080fd5b5035919050565b600060208083528351808285015260005b81811015610e7b57858101830151858201604001528201610e5f565b81811115610e8d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252602c908201527f45524332303a206275726e20616d6f756e74206d75737420626520677265617460408201526b6572207468616e207a65726f60a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610f3757610f37610f8e565b500190565b600082821015610f4e57610f4e610f8e565b500390565b600181811c90821680610f6757607f821691505b60208210811415610f8857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220681886578dd92503bc5245de2814f8eab2b5ca7b514f9a5d396c22270f4407b564736f6c63430008060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80636ebcf607116100b857806395d89b411161007c57806395d89b41146102bd578063a9059cbb146102c5578063dd62ed3e146102d8578063f8f3c5a914610311578063f9f92be41461031a578063fd2dbb0e1461033d57600080fd5b80636ebcf6071461024857806370a0823114610268578063715018a61461029157806379cc6790146102995780638da5cb5b146102ac57600080fd5b806323b872dd1161010a57806323b872dd146101da57806329144bdb146101ed578063313ce5671461020057806342966c681461021557806349bd5a5e1461022857806356e0ec721461023b57600080fd5b806306fdde0314610147578063095ea7b3146101655780631694505e1461018857806318160ddd146101b35780631c8e1179146101c5575b600080fd5b61014f610345565b60405161015c9190610e4e565b60405180910390f35b610178610173366004610e0b565b6103d7565b604051901515815260200161015c565b60025461019b906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b6004545b60405190815260200161015c565b6101d86101d3366004610d81565b6103ed565b005b6101786101e8366004610dcf565b610441565b6101d86101fb366004610e35565b6104aa565b60075460405160ff909116815260200161015c565b6101d8610223366004610e35565b61054b565b60035461019b906001600160a01b031681565b600c546101789060ff1681565b6101b7610256366004610d81565b60086020526000908152604090205481565b6101b7610276366004610d81565b6001600160a01b031660009081526008602052604090205490565b6101d86105f0565b6101d86102a7366004610e0b565b610664565b6000546001600160a01b031661019b565b61014f6107c8565b6101786102d3366004610e0b565b6107d7565b6101b76102e6366004610d9c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6101b7600b5481565b610178610328366004610d81565b600a6020526000908152604090205460ff1681565b6101d86107e4565b60606005805461035490610f53565b80601f016020809104026020016040519081016040528092919081815260200182805461038090610f53565b80156103cd5780601f106103a2576101008083540402835291602001916103cd565b820191906000526020600020905b8154815290600101906020018083116103b057829003601f168201915b5050505050905090565b60006103e43384846107fe565b50600192915050565b6000546001600160a01b031633146104205760405162461bcd60e51b815260040161041790610eef565b60405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b600061044e848484610923565b6104a0843361049b85604051806060016040528060288152602001610fa5602891396001600160a01b038a1660009081526009602090815260408083203384529091529020549190610c83565b6107fe565b5060019392505050565b6000546001600160a01b031633146104d45760405162461bcd60e51b815260040161041790610eef565b69021e19e0c9bab24000008110156105465760405162461bcd60e51b815260206004820152602f60248201527f45524332303a206d6178207478206c696d69742073686f756c6420626520677260448201526e32b0ba32b9103a3430b71018b2991960891b6064820152608401610417565b600b55565b6000811161056b5760405162461bcd60e51b815260040161041790610ea3565b6004546105789082610cbd565b6004556105a58160086000335b6001600160a01b0316815260208101919091526040016000205490610cbd565b33600081815260086020908152604080832094909455925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350565b6000546001600160a01b0316331461061a5760405162461bcd60e51b815260040161041790610eef565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600081116106845760405162461bcd60e51b815260040161041790610ea3565b6001600160a01b03821660009081526009602090815260408083203384529091529020548111156107115760405162461bcd60e51b815260206004820152603160248201527f45524332303a206275726e20616d6f756e74206d7573742062652067726561746044820152706572207468616e20616c6c6f77616e636560781b6064820152608401610417565b61073b82336001600160a01b038516600090815260096020526040812061049b9186919033610585565b6004546107489082610cbd565b6004556001600160a01b03821660009081526008602052604090205461076e9082610cbd565b6001600160a01b0383166000818152600860205260408082209390935591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107bc9085815260200190565b60405180910390a35050565b60606006805461035490610f53565b60006103e4338484610923565b600c5460ff166107fc57600c805460ff191660011790555b565b6001600160a01b0383166108605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610417565b6001600160a01b0382166108c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610417565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109875760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610417565b6001600160a01b0382166109e95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610417565b60008111610a525760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610417565b6000546001600160a01b03848116911614801590610a7e57506000546001600160a01b03838116911614155b15610bdd57600b54811115610ae55760405162461bcd60e51b815260206004820152602760248201527f45524332303a20616d6f756e74206578636565647320746865206d6178207478604482015266103634b6b4ba1760c91b6064820152608401610417565b6003546001600160a01b03848116911614610b94576001600160a01b0383166000908152600a602052604090205460ff16158015610b3c57506001600160a01b0382166000908152600a602052604090205460ff16155b610b945760405162461bcd60e51b815260206004820152602360248201527f45524332303a20746865207472616e73616374696f6e2077617320626c6f636b60448201526232b21760e91b6064820152608401610417565b6003546001600160a01b038481169116148015610bb45750600c5460ff16155b15610bdd576001600160a01b0382166000908152600a60205260409020805460ff191660011790555b6001600160a01b038316600090815260086020526040902054610c009082610cbd565b6001600160a01b038085166000908152600860205260408082209390935590841681522054610c2f9082610d06565b6001600160a01b0380841660008181526008602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109169085815260200190565b60008184841115610ca75760405162461bcd60e51b81526004016104179190610e4e565b506000610cb48486610f3c565b95945050505050565b6000610cff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c83565b9392505050565b600080610d138385610f24565b905083811015610cff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610417565b80356001600160a01b0381168114610d7c57600080fd5b919050565b600060208284031215610d9357600080fd5b610cff82610d65565b60008060408385031215610daf57600080fd5b610db883610d65565b9150610dc660208401610d65565b90509250929050565b600080600060608486031215610de457600080fd5b610ded84610d65565b9250610dfb60208501610d65565b9150604084013590509250925092565b60008060408385031215610e1e57600080fd5b610e2783610d65565b946020939093013593505050565b600060208284031215610e4757600080fd5b5035919050565b600060208083528351808285015260005b81811015610e7b57858101830151858201604001528201610e5f565b81811115610e8d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252602c908201527f45524332303a206275726e20616d6f756e74206d75737420626520677265617460408201526b6572207468616e207a65726f60a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610f3757610f37610f8e565b500190565b600082821015610f4e57610f4e610f8e565b500390565b600181811c90821680610f6757607f821691505b60208210811415610f8857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220681886578dd92503bc5245de2814f8eab2b5ca7b514f9a5d396c22270f4407b564736f6c63430008060033

Deployed Bytecode Sourcemap

6264:4914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7287:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8126:161;;;;;;:::i;:::-;;:::i;:::-;;;1798:14:1;;1791:22;1773:41;;1761:2;1746:18;8126:161:0;1728:92:1;6387:41:0;;;;;-1:-1:-1;;;;;6387:41:0;;;;;;-1:-1:-1;;;;;1589:32:1;;;1571:51;;1559:2;1544:18;6387:41:0;1526:102:1;7564:100:0;7644:12;;7564:100;;;7618:25:1;;;7606:2;7591:18;7564:100:0;7573:76:1;10862:102:0;;;;;;:::i;:::-;;:::i;:::-;;8295:313;;;;;;:::i;:::-;;:::i;10976:199::-;;;;;;:::i;:::-;;:::i;7473:83::-;7539:9;;7473:83;;7539:9;;;;7796:36:1;;7784:2;7769:18;7473:83:0;7751:87:1;8620:325:0;;;;;;:::i;:::-;;:::i;6435:28::-;;;;;-1:-1:-1;;;;;6435:28:0;;;6885:25;;;;;;;;;6652:44;;;;;;:::i;:::-;;;;;;;;;;;;;;7672:120;;;;;;:::i;:::-;-1:-1:-1;;;;;7766:18:0;7738:7;7766:18;;;:9;:18;;;;;;;7672:120;5344:148;;;:::i;8957:548::-;;;;;;:::i;:::-;;:::i;5130:79::-;5168:7;5195:6;-1:-1:-1;;;;;5195:6:0;5130:79;;7378:87;;;:::i;7800:167::-;;;;;;:::i;:::-;;:::i;7975:143::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8083:18:0;;;8056:7;8083:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7975:143;6829:43;;;;;;6779:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10751:99;;;:::i;7287:83::-;7324:13;7357:5;7350:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7287:83;:::o;8126:161::-;8201:4;8218:39;182:10;8241:7;8250:6;8218:8;:39::i;:::-;-1:-1:-1;8275:4:0;8126:161;;;;:::o;10862:102::-;5257:6;;-1:-1:-1;;;;;5257:6:0;182:10;5257:22;5249:67;;;;-1:-1:-1;;;5249:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10930:18:0::1;10951:5;10930:18:::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;10930:26:0::1;::::0;;10862:102::o;8295:313::-;8393:4;8410:36;8420:6;8428:9;8439:6;8410:9;:36::i;:::-;8457:121;8466:6;182:10;8488:89;8526:6;8488:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8488:19:0;;;;;;:11;:19;;;;;;;;182:10;8488:33;;;;;;;;;;:37;:89::i;:::-;8457:8;:121::i;:::-;-1:-1:-1;8596:4:0;8295:313;;;;;:::o;10976:199::-;5257:6;;-1:-1:-1;;;;;5257:6:0;182:10;5257:22;5249:67;;;;-1:-1:-1;;;5249:67:0;;;;;;;:::i;:::-;11070:10:::1;11056;:24;;11048:84;;;::::0;-1:-1:-1;;;11048:84:0;;4505:2:1;11048:84:0::1;::::0;::::1;4487:21:1::0;4544:2;4524:18;;;4517:30;4583:34;4563:18;;;4556:62;-1:-1:-1;;;4634:18:1;;;4627:45;4689:19;;11048:84:0::1;4477:237:1::0;11048:84:0::1;11143:11;:24:::0;10976:199::o;8620:325::-;8685:1;8676:6;:10;8668:67;;;;-1:-1:-1;;;8668:67:0;;;;;;;:::i;:::-;8771:12;;:24;;8788:6;8771:16;:24::i;:::-;8756:12;:39;8832:35;8860:6;8832:9;:23;182:10;8842:12;-1:-1:-1;;;;;8832:23:0;;;;;;;;;;;;-1:-1:-1;8832:23:0;;;:27;:35::i;:::-;182:10;8806:23;;;;:9;:23;;;;;;;;:61;;;;8893:44;;7618:25:1;;;8806:23:0;;8893:44;;7591:18:1;8893:44:0;;;;;;;8620:325;:::o;5344:148::-;5257:6;;-1:-1:-1;;;;;5257:6:0;182:10;5257:22;5249:67;;;;-1:-1:-1;;;5249:67:0;;;;;;;:::i;:::-;5451:1:::1;5435:6:::0;;5414:40:::1;::::0;-1:-1:-1;;;;;5435:6:0;;::::1;::::0;5414:40:::1;::::0;5451:1;;5414:40:::1;5482:1;5465:19:::0;;-1:-1:-1;;;;;;5465:19:0::1;::::0;;5344:148::o;8957:548::-;9043:1;9034:6;:10;9026:67;;;;-1:-1:-1;;;9026:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9112:20:0;;;;;;:11;:20;;;;;;;;182:10;9112:34;;;;;;;;:44;-1:-1:-1;9112:44:0;9104:106;;;;-1:-1:-1;;;9104:106:0;;5680:2:1;9104:106:0;;;5662:21:1;5719:2;5699:18;;;5692:30;5758:34;5738:18;;;5731:62;-1:-1:-1;;;5809:18:1;;;5802:47;5866:19;;9104:106:0;5652:239:1;9104:106:0;9231:79;9240:7;182:10;-1:-1:-1;;;;;9263:20:0;;;;;;:11;:20;;;;;:46;;9302:6;;9263:20;182:10;9284:12;102:98;9231:79;9346:12;;:24;;9363:6;9346:16;:24::i;:::-;9331:12;:39;-1:-1:-1;;;;;9402:18:0;;;;;;:9;:18;;;;;;:30;;9425:6;9402:22;:30::i;:::-;-1:-1:-1;;;;;9381:18:0;;;;;;:9;:18;;;;;;:51;;;;9458:39;;;;;;9490:6;7618:25:1;;7606:2;7591:18;;7573:76;9458:39:0;;;;;;;;8957:548;;:::o;7378:87::-;7417:13;7450:7;7443:14;;;;;:::i;7800:167::-;7878:4;7895:42;182:10;7919:9;7930:6;7895:9;:42::i;10751:99::-;10797:5;;;;10793:50;;10819:5;:12;;-1:-1:-1;;10819:12:0;10827:4;10819:12;;;10793:50;10751:99::o;9517:335::-;-1:-1:-1;;;;;9610:19:0;;9602:68;;;;-1:-1:-1;;;9602:68:0;;7269:2:1;9602:68:0;;;7251:21:1;7308:2;7288:18;;;7281:30;7347:34;7327:18;;;7320:62;-1:-1:-1;;;7398:18:1;;;7391:34;7442:19;;9602:68:0;7241:226:1;9602:68:0;-1:-1:-1;;;;;9689:21:0;;9681:68;;;;-1:-1:-1;;;9681:68:0;;4921:2:1;9681:68:0;;;4903:21:1;4960:2;4940:18;;;4933:30;4999:34;4979:18;;;4972:62;-1:-1:-1;;;5050:18:1;;;5043:32;5092:19;;9681:68:0;4893:224:1;9681:68:0;-1:-1:-1;;;;;9760:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9812:32;;7618:25:1;;;9812:32:0;;7591:18:1;9812:32:0;;;;;;;;9517:335;;;:::o;9860:873::-;-1:-1:-1;;;;;9948:18:0;;9940:68;;;;-1:-1:-1;;;9940:68:0;;6863:2:1;9940:68:0;;;6845:21:1;6902:2;6882:18;;;6875:30;6941:34;6921:18;;;6914:62;-1:-1:-1;;;6992:18:1;;;6985:35;7037:19;;9940:68:0;6835:227:1;9940:68:0;-1:-1:-1;;;;;10027:16:0;;10019:64;;;;-1:-1:-1;;;10019:64:0;;2863:2:1;10019:64:0;;;2845:21:1;2902:2;2882:18;;;2875:30;2941:34;2921:18;;;2914:62;-1:-1:-1;;;2992:18:1;;;2985:33;3035:19;;10019:64:0;2835:225:1;10019:64:0;10111:1;10102:6;:10;10094:71;;;;-1:-1:-1;;;10094:71:0;;4088:2:1;10094:71:0;;;4070:21:1;4127:2;4107:18;;;4100:30;4166:34;4146:18;;;4139:62;-1:-1:-1;;;4217:18:1;;;4210:46;4273:19;;10094:71:0;4060:238:1;10094:71:0;5168:7;5195:6;-1:-1:-1;;;;;10190:15:0;;;5195:6;;10190:15;;;;:32;;-1:-1:-1;5168:7:0;5195:6;-1:-1:-1;;;;;10209:13:0;;;5195:6;;10209:13;;10190:32;10186:380;;;10257:11;;10247:6;:21;;10239:73;;;;-1:-1:-1;;;10239:73:0;;3680:2:1;10239:73:0;;;3662:21:1;3719:2;3699:18;;;3692:30;3758:34;3738:18;;;3731:62;-1:-1:-1;;;3809:18:1;;;3802:37;3856:19;;10239:73:0;3652:229:1;10239:73:0;10352:13;;-1:-1:-1;;;;;10344:21:0;;;10352:13;;10344:21;10341:125;;-1:-1:-1;;;;;10393:15:0;;;;;;:9;:15;;;;;;;;10392:16;:34;;;;-1:-1:-1;;;;;;10413:13:0;;;;;;:9;:13;;;;;;;;10412:14;10392:34;10384:82;;;;-1:-1:-1;;;10384:82:0;;6459:2:1;10384:82:0;;;6441:21:1;6498:2;6478:18;;;6471:30;6537:34;6517:18;;;6510:62;-1:-1:-1;;;6588:18:1;;;6581:33;6631:19;;10384:82:0;6431:225:1;10384:82:0;10492:13;;-1:-1:-1;;;;;10484:21:0;;;10492:13;;10484:21;:31;;;;-1:-1:-1;10510:5:0;;;;10509:6;10484:31;10481:73;;;-1:-1:-1;;;;;10534:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;10534:20:0;10550:4;10534:20;;;10481:73;-1:-1:-1;;;;;10604:15:0;;;;;;:9;:15;;;;;;:27;;10624:6;10604:19;:27::i;:::-;-1:-1:-1;;;;;10586:15:0;;;;;;;:9;:15;;;;;;:45;;;;10658:13;;;;;;;:25;;10676:6;10658:17;:25::i;:::-;-1:-1:-1;;;;;10642:13:0;;;;;;;:9;:13;;;;;;;:41;;;;10699:26;;;;;;;;;;10718:6;7618:25:1;;7606:2;7591:18;;7573:76;1361:190:0;1447:7;1483:12;1475:6;;;;1467:29;;;;-1:-1:-1;;;1467:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1507:9:0;1519:5;1523:1;1519;:5;:::i;:::-;1507:17;1361:190;-1:-1:-1;;;;;1361:190:0:o;1217:136::-;1275:7;1302:43;1306:1;1309;1302:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1295:50;1217:136;-1:-1:-1;;;1217:136:0:o;1030:179::-;1088:7;;1120:5;1124:1;1120;:5;:::i;:::-;1108:17;;1149:1;1144;:6;;1136:46;;;;-1:-1:-1;;;1136:46:0;;5324:2:1;1136:46:0;;;5306:21:1;5363:2;5343:18;;;5336:30;5402:29;5382:18;;;5375:57;5449:18;;1136:46:0;5296:177:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;470:173;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:2;;;810:1;807;800:12;762:2;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;752:224;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:2;;;1126:1;1123;1116:12;1078:2;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;1068:167:1:o;1240:180::-;1299:6;1352:2;1340:9;1331:7;1327:23;1323:32;1320:2;;;1368:1;1365;1358:12;1320:2;-1:-1:-1;1391:23:1;;1310:110;-1:-1:-1;1310:110:1:o;2059:597::-;2171:4;2200:2;2229;2218:9;2211:21;2261:6;2255:13;2304:6;2299:2;2288:9;2284:18;2277:34;2329:1;2339:140;2353:6;2350:1;2347:13;2339:140;;;2448:14;;;2444:23;;2438:30;2414:17;;;2433:2;2410:26;2403:66;2368:10;;2339:140;;;2497:6;2494:1;2491:13;2488:2;;;2567:1;2562:2;2553:6;2542:9;2538:22;2534:31;2527:42;2488:2;-1:-1:-1;2640:2:1;2619:15;-1:-1:-1;;2615:29:1;2600:45;;;;2647:2;2596:54;;2180:476;-1:-1:-1;;;2180:476:1:o;3065:408::-;3267:2;3249:21;;;3306:2;3286:18;;;3279:30;3345:34;3340:2;3325:18;;3318:62;-1:-1:-1;;;3411:2:1;3396:18;;3389:42;3463:3;3448:19;;3239:234::o;5896:356::-;6098:2;6080:21;;;6117:18;;;6110:30;6176:34;6171:2;6156:18;;6149:62;6243:2;6228:18;;6070:182::o;7843:128::-;7883:3;7914:1;7910:6;7907:1;7904:13;7901:2;;;7920:18;;:::i;:::-;-1:-1:-1;7956:9:1;;7891:80::o;7976:125::-;8016:4;8044:1;8041;8038:8;8035:2;;;8049:18;;:::i;:::-;-1:-1:-1;8086:9:1;;8025:76::o;8106:380::-;8185:1;8181:12;;;;8228;;;8249:2;;8303:4;8295:6;8291:17;8281:27;;8249:2;8356;8348:6;8345:14;8325:18;8322:38;8319:2;;;8402:10;8397:3;8393:20;8390:1;8383:31;8437:4;8434:1;8427:15;8465:4;8462:1;8455:15;8319:2;;8161:325;;;:::o;8491:127::-;8552:10;8547:3;8543:20;8540:1;8533:31;8583:4;8580:1;8573:15;8607:4;8604:1;8597:15

Swarm Source

ipfs://681886578dd92503bc5245de2814f8eab2b5ca7b514f9a5d396c22270f4407b5
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.