ETH Price: $3,913.07 (+0.12%)

Token

ERC-20: XDoge (XDoge)
 

Overview

Max Total Supply

4,200,000,000 XDoge

Holders

1,184

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 XDoge

Value
$0.00
0x143b9ffc00cd0966dab5fe112a6b7a1d97709013
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:
TOKEN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-15
*/

// SPDX-License-Identifier: MIT
//
// ###    ###   ######          ####      ##########   ##########
//  ###  ###    ###  ###       ######     ##########   ##########
//   ######     ###   ###     ###  ###    ###          ###      
//    ####      ###    ###   ###    ###   ###  #####   ##########
//    ####      ###    ###   ###    ###   ###  #####   ##########
//   ######     ###   ###     ###  ###    ###    ###   ###      
//  ###  ###    ###  ###       ######     ##########   ##########
// ###    ###   ######          ####      ##########   ##########
//
// https://twitter.com/XDogeeth
// https://t.me/XDogePortalChannel

pragma solidity ^0.8.16;

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b; if (c < a) return (false, 0); return (true, c); 
        } 
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a)
                return (false, 0);
            return (true, a - b); 
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0)
                return (true, 0);
            uint256 c = a * b;
            if (c / a != b)
                return (false, 0);
            return (true, c); 
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0)
                return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0)
                return (false, 0);
            return (true, a % b);
        }
    }

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

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

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

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

interface IUniswapRouterV2 {
    function factory() external view returns (address);

    function WETH() external view returns (address);

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

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

    function swapExactTokensForETH(uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline) external;
}

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() { _transferOwnership(_msgSender()); }

    modifier onlyOwner() { _checkOwner(); _; }

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

    function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); }

    function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); }

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

    function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); }
}

abstract contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    uint8 private _decimals;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

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

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

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

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked { _approve(owner, spender, currentAllowance - subtractedValue); }
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; }
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        unchecked { _balances[account] += amount; }
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked { _balances[account] = accountBalance - amount; _totalSupply -= amount; }
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked { _approve(owner, spender, currentAllowance - amount); }
        }
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

contract TOKEN is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapRouterV2 private router;

    address public weth;
    address public mainpair;
    address public routerAddr = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public marketingAddr = 0x4613F6c068388466b655547aF9A38FB60058713A;

    uint256 public lb = 0;
    uint256 public buyfee = 5;
    uint256 public sellfee = 20;

    bool    private _swapping;
    uint256 private _swapAmount;
    uint256 private constant _totalSupply = 42 * 10000 * 10000 * (10**18);

    mapping(address => bool) private _isExcludedFromFees;

    event Launched(uint256 blockNumber);
    event FeesUpdated(uint256 buyfee, uint256 sellfee);

    constructor() ERC20("XDoge", "XDoge", 18) {
        router = IUniswapRouterV2(routerAddr);
        weth = router.WETH();
        mainpair = IUniswapFactoryV2(router.factory()).createPair(weth, address(this));

        _swapAmount = _totalSupply.div(1000);

        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingAddr] = true;
        _isExcludedFromFees[msg.sender] = true;

        _mint(msg.sender, _totalSupply);

        _approve(address(this), routerAddr, ~uint256(0));
    }

    receive() external payable {}

    function excludeFromFees(address[] memory account, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < account.length; i++) {
            _isExcludedFromFees[account[i]] = excluded;
        }
    }

    function launch() external onlyOwner {
        require(lb == 0, "TOKEN: Already launched");
        lb = block.number;
        emit Launched(lb);
    }

    // fees: (5%, 20%) -> (2%, 2%)
    function setFees(uint256 _buyfee, uint256 _sellfee) external onlyOwner {
        require(_buyfee <= buyfee && _sellfee <= sellfee, "TOKEN: Fee too high"); // can't increase fees
        buyfee = _buyfee;
        sellfee = _sellfee;
        emit FeesUpdated(_buyfee, _sellfee);
    }

    function getFee(address from, address to) internal view returns (uint256) {
        if (lb + 3 >= block.number) return 89;
        if (from == mainpair) return buyfee; // buy or remove liquidity
        if (to == mainpair) return sellfee; // sell or add liquidity
        return 0; // transfer
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0));
        require(to != address(0));
        require(amount != 0);
        require(lb != 0 || from == owner(), "TOKEN: Not launched");

        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (to == mainpair && !_swapping && balanceOf(address(this)) >= _swapAmount) {
                _swap();
            }

            if (!_swapping) {
                uint256 feeAmount = amount.mul(getFee(from, to)).div(100);
                if (feeAmount > 0) { amount = amount.sub(feeAmount); super._transfer(from, address(this), feeAmount); }
                if (amount > 1) amount = amount.sub(1);
            }
        }

        super._transfer(from, to, amount);
    }

    modifier lockTheSwap {
        _swapping = true;
        _;
        _swapping = false;
    }

    function _swap() internal lockTheSwap {
        uint256 amount = balanceOf(address(this));
        if (amount == 0) return;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = weth;
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, marketingAddr, block.timestamp);
    }
}

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":false,"internalType":"uint256","name":"buyfee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellfee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainpair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyfee","type":"uint256"},{"internalType":"uint256","name":"_sellfee","type":"uint256"}],"name":"setFees","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600b8054909116734613f6c068388466b655547af9a38fb60058713a1790556000600c556005600d556014600e553480156200006857600080fd5b5060408051808201825260058082526458446f676560d81b60208084018290528451808601909552918452908301529060126004620000a8848262000636565b506005620000b7838262000636565b506003805460ff191660ff9290921691909117905550620000e19050620000db3390565b62000335565b600a54600780546001600160a01b0319166001600160a01b039092169182179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200013e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000164919062000702565b600880546001600160a01b0319166001600160a01b039283161790556007546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e9919062000702565b6008546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000261919062000702565b600960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620002af6103e86b0d92289838d21a99680000006200038760201b620008591790919060201c565b601055306000908152601160205260408082208054600160ff199182168117909255600b546001600160a01b031684528284208054821683179055338085529290932080549093161790915562000313906b0d92289838d21a99680000006200039e565b600a546200032f9030906001600160a01b031660001962000465565b62000779565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600062000395828462000734565b90505b92915050565b6001600160a01b038216620003fa5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200040e919062000757565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620004c95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620003f1565b6001600160a01b0382166200052c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003f1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005bd57607f821691505b602082108103620005de57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058d57600081815260208120601f850160051c810160208610156200060d5750805b601f850160051c820191505b818110156200062e5782815560010162000619565b505050505050565b81516001600160401b0381111562000652576200065262000592565b6200066a81620006638454620005a8565b84620005e4565b602080601f831160018114620006a25760008415620006895750858301515b600019600386901b1c1916600185901b1785556200062e565b600085815260208120601f198616915b82811015620006d357888601518255948401946001909101908401620006b2565b5085821015620006f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200071557600080fd5b81516001600160a01b03811681146200072d57600080fd5b9392505050565b6000826200075257634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200039857634e487b7160e01b600052601160045260246000fd5b61134b80620007896000396000f3fe60806040526004361061014f5760003560e01c80636b90694c116100b6578063a9059cbb1161006f578063a9059cbb146103ba578063ad29ffde146103da578063c8cbdedc146103fa578063dd62ed3e14610410578063e9451f5f14610430578063f2fde38b1461044657600080fd5b80636b90694c146102fc57806370a082311461031c578063715018a6146103525780638da5cb5b1461036757806395d89b4114610385578063a457c2d71461039a57600080fd5b806323b872dd1161010857806323b872dd14610222578063313ce5671461024257806339509351146102645780633fc8cef3146102845780633ff42b92146102bc5780634f360148146102dc57600080fd5b806301339c211461015b57806306fdde0314610172578063095ea7b31461019d5780630b78f9c0146101cd57806318160ddd146101ed5780631dc369451461020c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610466565b005b34801561017e57600080fd5b506101876104fe565b6040516101949190610f89565b60405180910390f35b3480156101a957600080fd5b506101bd6101b8366004610ff3565b610590565b6040519015158152602001610194565b3480156101d957600080fd5b506101706101e836600461101d565b6105aa565b3480156101f957600080fd5b506002545b604051908152602001610194565b34801561021857600080fd5b506101fe600d5481565b34801561022e57600080fd5b506101bd61023d36600461103f565b61064f565b34801561024e57600080fd5b5060035460405160ff9091168152602001610194565b34801561027057600080fd5b506101bd61027f366004610ff3565b610673565b34801561029057600080fd5b506008546102a4906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b3480156102c857600080fd5b50600b546102a4906001600160a01b031681565b3480156102e857600080fd5b506009546102a4906001600160a01b031681565b34801561030857600080fd5b50600a546102a4906001600160a01b031681565b34801561032857600080fd5b506101fe61033736600461107b565b6001600160a01b031660009081526020819052604090205490565b34801561035e57600080fd5b50610170610695565b34801561037357600080fd5b506006546001600160a01b03166102a4565b34801561039157600080fd5b506101876106a9565b3480156103a657600080fd5b506101bd6103b5366004610ff3565b6106b8565b3480156103c657600080fd5b506101bd6103d5366004610ff3565b610733565b3480156103e657600080fd5b506101706103f53660046110bc565b610741565b34801561040657600080fd5b506101fe600c5481565b34801561041c57600080fd5b506101fe61042b366004611193565b6107b5565b34801561043c57600080fd5b506101fe600e5481565b34801561045257600080fd5b5061017061046136600461107b565b6107e0565b61046e61086c565b600c54156104c35760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c7265616479206c61756e6368656400000000000000000060448201526064015b60405180910390fd5b43600c8190556040519081527feca0dfbda743d141662328d4d48393e344b2c60df0430297221df823f2926dba9060200160405180910390a1565b60606004805461050d906111c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906111c6565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b60003361059e8185856108c6565b60019150505b92915050565b6105b261086c565b600d5482111580156105c65750600e548111155b6106085760405162461bcd60e51b81526020600482015260136024820152720a89e968a9c74408ccaca40e8dede40d0d2ced606b1b60448201526064016104ba565b600d829055600e81905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910160405180910390a15050565b60003361065d8582856109ea565b610668858585610a64565b506001949350505050565b60003361059e81858561068683836107b5565b6106909190611216565b6108c6565b61069d61086c565b6106a76000610bf5565b565b60606005805461050d906111c6565b600033816106c682866107b5565b9050838110156107265760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ba565b61066882868684036108c6565b60003361059e818585610a64565b61074961086c565b60005b82518110156107b057816011600085848151811061076c5761076c611229565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107a88161123f565b91505061074c565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6107e861086c565b6001600160a01b03811661084d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ba565b61085681610bf5565b50565b60006108658284611258565b9392505050565b6006546001600160a01b031633146106a75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ba565b6001600160a01b0383166109285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ba565b6001600160a01b0382166109895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ba565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109f684846107b5565b90506000198114610a5e5781811015610a515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ba565b610a5e84848484036108c6565b50505050565b6001600160a01b038316610a7757600080fd5b6001600160a01b038216610a8a57600080fd5b80600003610a9757600080fd5b600c54151580610ab457506006546001600160a01b038481169116145b610af65760405162461bcd60e51b81526020600482015260136024820152721513d2d1538e88139bdd081b185d5b98da1959606a1b60448201526064016104ba565b6001600160a01b03831660009081526011602052604090205460ff16158015610b3857506001600160a01b03821660009081526011602052604090205460ff16155b15610bea576009546001600160a01b038381169116148015610b5d5750600f5460ff16155b8015610b7a57506010543060009081526020819052604090205410155b15610b8757610b87610c47565b600f5460ff16610bea576000610bb26064610bac610ba58787610d67565b8590610dcd565b90610859565b90508015610bd157610bc48282610dd9565b9150610bd1843083610de5565b6001821115610be857610be5826001610dd9565b91505b505b6107b0838383610de5565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600f805460ff1916600117905530600090815260208190526040812054905080600003610c745750610d5b565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ca957610ca9611229565b6001600160a01b039283166020918202929092010152600854825191169082906001908110610cda57610cda611229565b6001600160a01b039283166020918202929092010152600754600b5460405163791ac94760e01b81529183169263791ac94792610d26928792600092889290911690429060040161127a565b600060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b5050505050505b600f805460ff19169055565b600043600c546003610d799190611216565b10610d86575060596105a4565b6009546001600160a01b0390811690841603610da55750600d546105a4565b6009546001600160a01b0390811690831603610dc45750600e546105a4565b50600092915050565b600061086582846112eb565b60006108658284611302565b6001600160a01b038316610e495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ba565b6001600160a01b038216610eab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ba565b6001600160a01b03831660009081526020819052604090205481811015610f235760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ba565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a5e565b600060208083528351808285015260005b81811015610fb657858101830151858201604001528201610f9a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610fee57600080fd5b919050565b6000806040838503121561100657600080fd5b61100f83610fd7565b946020939093013593505050565b6000806040838503121561103057600080fd5b50508035926020909101359150565b60008060006060848603121561105457600080fd5b61105d84610fd7565b925061106b60208501610fd7565b9150604084013590509250925092565b60006020828403121561108d57600080fd5b61086582610fd7565b634e487b7160e01b600052604160045260246000fd5b80358015158114610fee57600080fd5b600080604083850312156110cf57600080fd5b823567ffffffffffffffff808211156110e757600080fd5b818501915085601f8301126110fb57600080fd5b813560208282111561110f5761110f611096565b8160051b604051601f19603f8301168101818110868211171561113457611134611096565b60405292835281830193508481018201928984111561115257600080fd5b948201945b838610156111775761116886610fd7565b85529482019493820193611157565b965061118690508782016110ac565b9450505050509250929050565b600080604083850312156111a657600080fd5b6111af83610fd7565b91506111bd60208401610fd7565b90509250929050565b600181811c908216806111da57607f821691505b6020821081036111fa57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105a4576105a4611200565b634e487b7160e01b600052603260045260246000fd5b60006001820161125157611251611200565b5060010190565b60008261127557634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112ca5784516001600160a01b0316835293830193918301916001016112a5565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176105a4576105a4611200565b818103818111156105a4576105a461120056fea264697066735822122002984c14443f0c30ffd9111bb6e24814b34ef323a8083db82a6693f8fb728edd64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80636b90694c116100b6578063a9059cbb1161006f578063a9059cbb146103ba578063ad29ffde146103da578063c8cbdedc146103fa578063dd62ed3e14610410578063e9451f5f14610430578063f2fde38b1461044657600080fd5b80636b90694c146102fc57806370a082311461031c578063715018a6146103525780638da5cb5b1461036757806395d89b4114610385578063a457c2d71461039a57600080fd5b806323b872dd1161010857806323b872dd14610222578063313ce5671461024257806339509351146102645780633fc8cef3146102845780633ff42b92146102bc5780634f360148146102dc57600080fd5b806301339c211461015b57806306fdde0314610172578063095ea7b31461019d5780630b78f9c0146101cd57806318160ddd146101ed5780631dc369451461020c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610466565b005b34801561017e57600080fd5b506101876104fe565b6040516101949190610f89565b60405180910390f35b3480156101a957600080fd5b506101bd6101b8366004610ff3565b610590565b6040519015158152602001610194565b3480156101d957600080fd5b506101706101e836600461101d565b6105aa565b3480156101f957600080fd5b506002545b604051908152602001610194565b34801561021857600080fd5b506101fe600d5481565b34801561022e57600080fd5b506101bd61023d36600461103f565b61064f565b34801561024e57600080fd5b5060035460405160ff9091168152602001610194565b34801561027057600080fd5b506101bd61027f366004610ff3565b610673565b34801561029057600080fd5b506008546102a4906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b3480156102c857600080fd5b50600b546102a4906001600160a01b031681565b3480156102e857600080fd5b506009546102a4906001600160a01b031681565b34801561030857600080fd5b50600a546102a4906001600160a01b031681565b34801561032857600080fd5b506101fe61033736600461107b565b6001600160a01b031660009081526020819052604090205490565b34801561035e57600080fd5b50610170610695565b34801561037357600080fd5b506006546001600160a01b03166102a4565b34801561039157600080fd5b506101876106a9565b3480156103a657600080fd5b506101bd6103b5366004610ff3565b6106b8565b3480156103c657600080fd5b506101bd6103d5366004610ff3565b610733565b3480156103e657600080fd5b506101706103f53660046110bc565b610741565b34801561040657600080fd5b506101fe600c5481565b34801561041c57600080fd5b506101fe61042b366004611193565b6107b5565b34801561043c57600080fd5b506101fe600e5481565b34801561045257600080fd5b5061017061046136600461107b565b6107e0565b61046e61086c565b600c54156104c35760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c7265616479206c61756e6368656400000000000000000060448201526064015b60405180910390fd5b43600c8190556040519081527feca0dfbda743d141662328d4d48393e344b2c60df0430297221df823f2926dba9060200160405180910390a1565b60606004805461050d906111c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610539906111c6565b80156105865780601f1061055b57610100808354040283529160200191610586565b820191906000526020600020905b81548152906001019060200180831161056957829003601f168201915b5050505050905090565b60003361059e8185856108c6565b60019150505b92915050565b6105b261086c565b600d5482111580156105c65750600e548111155b6106085760405162461bcd60e51b81526020600482015260136024820152720a89e968a9c74408ccaca40e8dede40d0d2ced606b1b60448201526064016104ba565b600d829055600e81905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910160405180910390a15050565b60003361065d8582856109ea565b610668858585610a64565b506001949350505050565b60003361059e81858561068683836107b5565b6106909190611216565b6108c6565b61069d61086c565b6106a76000610bf5565b565b60606005805461050d906111c6565b600033816106c682866107b5565b9050838110156107265760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104ba565b61066882868684036108c6565b60003361059e818585610a64565b61074961086c565b60005b82518110156107b057816011600085848151811061076c5761076c611229565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107a88161123f565b91505061074c565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6107e861086c565b6001600160a01b03811661084d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ba565b61085681610bf5565b50565b60006108658284611258565b9392505050565b6006546001600160a01b031633146106a75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ba565b6001600160a01b0383166109285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ba565b6001600160a01b0382166109895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ba565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109f684846107b5565b90506000198114610a5e5781811015610a515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104ba565b610a5e84848484036108c6565b50505050565b6001600160a01b038316610a7757600080fd5b6001600160a01b038216610a8a57600080fd5b80600003610a9757600080fd5b600c54151580610ab457506006546001600160a01b038481169116145b610af65760405162461bcd60e51b81526020600482015260136024820152721513d2d1538e88139bdd081b185d5b98da1959606a1b60448201526064016104ba565b6001600160a01b03831660009081526011602052604090205460ff16158015610b3857506001600160a01b03821660009081526011602052604090205460ff16155b15610bea576009546001600160a01b038381169116148015610b5d5750600f5460ff16155b8015610b7a57506010543060009081526020819052604090205410155b15610b8757610b87610c47565b600f5460ff16610bea576000610bb26064610bac610ba58787610d67565b8590610dcd565b90610859565b90508015610bd157610bc48282610dd9565b9150610bd1843083610de5565b6001821115610be857610be5826001610dd9565b91505b505b6107b0838383610de5565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600f805460ff1916600117905530600090815260208190526040812054905080600003610c745750610d5b565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ca957610ca9611229565b6001600160a01b039283166020918202929092010152600854825191169082906001908110610cda57610cda611229565b6001600160a01b039283166020918202929092010152600754600b5460405163791ac94760e01b81529183169263791ac94792610d26928792600092889290911690429060040161127a565b600060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b5050505050505b600f805460ff19169055565b600043600c546003610d799190611216565b10610d86575060596105a4565b6009546001600160a01b0390811690841603610da55750600d546105a4565b6009546001600160a01b0390811690831603610dc45750600e546105a4565b50600092915050565b600061086582846112eb565b60006108658284611302565b6001600160a01b038316610e495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ba565b6001600160a01b038216610eab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ba565b6001600160a01b03831660009081526020819052604090205481811015610f235760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104ba565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a5e565b600060208083528351808285015260005b81811015610fb657858101830151858201604001528201610f9a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610fee57600080fd5b919050565b6000806040838503121561100657600080fd5b61100f83610fd7565b946020939093013593505050565b6000806040838503121561103057600080fd5b50508035926020909101359150565b60008060006060848603121561105457600080fd5b61105d84610fd7565b925061106b60208501610fd7565b9150604084013590509250925092565b60006020828403121561108d57600080fd5b61086582610fd7565b634e487b7160e01b600052604160045260246000fd5b80358015158114610fee57600080fd5b600080604083850312156110cf57600080fd5b823567ffffffffffffffff808211156110e757600080fd5b818501915085601f8301126110fb57600080fd5b813560208282111561110f5761110f611096565b8160051b604051601f19603f8301168101818110868211171561113457611134611096565b60405292835281830193508481018201928984111561115257600080fd5b948201945b838610156111775761116886610fd7565b85529482019493820193611157565b965061118690508782016110ac565b9450505050509250929050565b600080604083850312156111a657600080fd5b6111af83610fd7565b91506111bd60208401610fd7565b90509250929050565b600181811c908216806111da57607f821691505b6020821081036111fa57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105a4576105a4611200565b634e487b7160e01b600052603260045260246000fd5b60006001820161125157611251611200565b5060010190565b60008261127557634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112ca5784516001600160a01b0316835293830193918301916001016112a5565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176105a4576105a4611200565b818103818111156105a4576105a461120056fea264697066735822122002984c14443f0c30ffd9111bb6e24814b34ef323a8083db82a6693f8fb728edd64736f6c63430008120033

Deployed Bytecode Sourcemap

10985:3633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12512:155;;;;;;;;;;;;;:::i;:::-;;6378:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7317:201;;;;;;;;;;-1:-1:-1;7317:201:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;7317:201:0;1004:187:1;12711:287:0;;;;;;;;;;-1:-1:-1;12711:287:0;;;;;:::i;:::-;;:::i;6706:108::-;;;;;;;;;;-1:-1:-1;6794:12:0;;6706:108;;;1595:25:1;;;1583:2;1568:18;6706:108:0;1449:177:1;11343:25:0;;;;;;;;;;;;;;;;7526:261;;;;;;;;;;-1:-1:-1;7526:261:0;;;;;:::i;:::-;;:::i;6598:100::-;;;;;;;;;;-1:-1:-1;6681:9:0;;6598:100;;6681:9;;;;2106:36:1;;2094:2;2079:18;6598:100:0;1964:184:1;7795:238:0;;;;;;;;;;-1:-1:-1;7795:238:0;;;;;:::i;:::-;;:::i;11100:19::-;;;;;;;;;;-1:-1:-1;11100:19:0;;;;-1:-1:-1;;;;;11100:19:0;;;;;;-1:-1:-1;;;;;2317:32:1;;;2299:51;;2287:2;2272:18;11100:19:0;2153:203:1;11233:73:0;;;;;;;;;;-1:-1:-1;11233:73:0;;;;-1:-1:-1;;;;;11233:73:0;;;11126:23;;;;;;;;;;-1:-1:-1;11126:23:0;;;;-1:-1:-1;;;;;11126:23:0;;;11156:70;;;;;;;;;;-1:-1:-1;11156:70:0;;;;-1:-1:-1;;;;;11156:70:0;;;6822:127;;;;;;;;;;-1:-1:-1;6822:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6923:18:0;6896:7;6923:18;;;;;;;;;;;;6822:127;5457:89;;;;;;;;;;;;;:::i;5250:73::-;;;;;;;;;;-1:-1:-1;5314:6:0;;-1:-1:-1;;;;;5314:6:0;5250:73;;6486:104;;;;;;;;;;;;;:::i;8041:412::-;;;;;;;;;;-1:-1:-1;8041:412:0;;;;;:::i;:::-;;:::i;6957:193::-;;;;;;;;;;-1:-1:-1;6957:193:0;;;;;:::i;:::-;;:::i;12289:215::-;;;;;;;;;;-1:-1:-1;12289:215:0;;;;;:::i;:::-;;:::i;11315:21::-;;;;;;;;;;;;;;;;7158:151;;;;;;;;;;-1:-1:-1;7158:151:0;;;;;:::i;:::-;;:::i;11375:27::-;;;;;;;;;;;;;;;;5554:178;;;;;;;;;;-1:-1:-1;5554:178:0;;;;;:::i;:::-;;:::i;12512:155::-;5223:13;:11;:13::i;:::-;12568:2:::1;::::0;:7;12560:43:::1;;;::::0;-1:-1:-1;;;12560:43:0;;4512:2:1;12560:43:0::1;::::0;::::1;4494:21:1::0;4551:2;4531:18;;;4524:30;4590:25;4570:18;;;4563:53;4633:18;;12560:43:0::1;;;;;;;;;12619:12;12614:2;:17:::0;;;12647:12:::1;::::0;1595:25:1;;;12647:12:0::1;::::0;1583:2:1;1568:18;12647:12:0::1;;;;;;;12512:155::o:0;6378:100::-;6432:13;6465:5;6458:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6378:100;:::o;7317:201::-;7400:4;4861:10;7456:32;4861:10;7472:7;7481:6;7456:8;:32::i;:::-;7506:4;7499:11;;;7317:201;;;;;:::o;12711:287::-;5223:13;:11;:13::i;:::-;12812:6:::1;;12801:7;:17;;:40;;;;;12834:7;;12822:8;:19;;12801:40;12793:72;;;::::0;-1:-1:-1;;;12793:72:0;;5249:2:1;12793:72:0::1;::::0;::::1;5231:21:1::0;5288:2;5268:18;;;5261:30;-1:-1:-1;;;5307:18:1;;;5300:49;5366:18;;12793:72:0::1;5047:343:1::0;12793:72:0::1;12899:6;:16:::0;;;12926:7:::1;:18:::0;;;12960:30:::1;::::0;;5569:25:1;;;5625:2;5610:18;;5603:34;;;12960:30:0::1;::::0;5542:18:1;12960:30:0::1;;;;;;;12711:287:::0;;:::o;7526:261::-;7623:4;4861:10;7681:38;7697:4;4861:10;7712:6;7681:15;:38::i;:::-;7730:27;7740:4;7746:2;7750:6;7730:9;:27::i;:::-;-1:-1:-1;7775:4:0;;7526:261;-1:-1:-1;;;;7526:261:0:o;7795:238::-;7883:4;4861:10;7939:64;4861:10;7955:7;7992:10;7964:25;4861:10;7955:7;7964:9;:25::i;:::-;:38;;;;:::i;:::-;7939:8;:64::i;5457:89::-;5223:13;:11;:13::i;:::-;5513:30:::1;5540:1;5513:18;:30::i;:::-;5457:89::o:0;6486:104::-;6542:13;6575:7;6568:14;;;;;:::i;8041:412::-;8134:4;4861:10;8134:4;8217:25;4861:10;8234:7;8217:9;:25::i;:::-;8190:52;;8281:15;8261:16;:35;;8253:85;;;;-1:-1:-1;;;8253:85:0;;6112:2:1;8253:85:0;;;6094:21:1;6151:2;6131:18;;;6124:30;6190:34;6170:18;;;6163:62;-1:-1:-1;;;6241:18:1;;;6234:35;6286:19;;8253:85:0;5910:401:1;8253:85:0;8361:60;8370:5;8377:7;8405:15;8386:16;:34;8361:8;:60::i;6957:193::-;7036:4;4861:10;7092:28;4861:10;7109:2;7113:6;7092:9;:28::i;12289:215::-;5223:13;:11;:13::i;:::-;12388:9:::1;12383:114;12407:7;:14;12403:1;:18;12383:114;;;12477:8;12443:19;:31;12463:7;12471:1;12463:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12443:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12443:31:0;:42;;-1:-1:-1;;12443:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12423:3;::::1;::::0;::::1;:::i;:::-;;;;12383:114;;;;12289:215:::0;;:::o;7158:151::-;-1:-1:-1;;;;;7274:18:0;;;7247:7;7274:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7158:151::o;5554:178::-;5223:13;:11;:13::i;:::-;-1:-1:-1;;;;;5634:22:0;::::1;5626:73;;;::::0;-1:-1:-1;;;5626:73:0;;6790:2:1;5626:73:0::1;::::0;::::1;6772:21:1::0;6829:2;6809:18;;;6802:30;6868:34;6848:18;;;6841:62;-1:-1:-1;;;6919:18:1;;;6912:36;6965:19;;5626:73:0::1;6588:402:1::0;5626:73:0::1;5701:28;5720:8;5701:18;:28::i;:::-;5554:178:::0;:::o;2195:98::-;2253:7;2280:5;2284:1;2280;:5;:::i;:::-;2273:12;2195:98;-1:-1:-1;;;2195:98:0:o;5331:118::-;5314:6;;-1:-1:-1;;;;;5314:6:0;4861:10;5386:23;5378:68;;;;-1:-1:-1;;;5378:68:0;;7419:2:1;5378:68:0;;;7401:21:1;;;7438:18;;;7431:30;7497:34;7477:18;;;7470:62;7549:18;;5378:68:0;7217:356:1;10042:344:0;-1:-1:-1;;;;;10144:19:0;;10136:68;;;;-1:-1:-1;;;10136:68:0;;7780:2:1;10136:68:0;;;7762:21:1;7819:2;7799:18;;;7792:30;7858:34;7838:18;;;7831:62;-1:-1:-1;;;7909:18:1;;;7902:34;7953:19;;10136:68:0;7578:400:1;10136:68:0;-1:-1:-1;;;;;10223:21:0;;10215:68;;;;-1:-1:-1;;;10215:68:0;;8185:2:1;10215:68:0;;;8167:21:1;8224:2;8204:18;;;8197:30;8263:34;8243:18;;;8236:62;-1:-1:-1;;;8314:18:1;;;8307:32;8356:19;;10215:68:0;7983:398:1;10215:68:0;-1:-1:-1;;;;;10294:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10346:32;;1595:25:1;;;10346:32:0;;1568:18:1;10346:32:0;;;;;;;10042:344;;;:::o;10394:389::-;10495:24;10522:25;10532:5;10539:7;10522:9;:25::i;:::-;10495:52;;-1:-1:-1;;10562:16:0;:37;10558:218;;10644:6;10624:16;:26;;10616:68;;;;-1:-1:-1;;;10616:68:0;;8588:2:1;10616:68:0;;;8570:21:1;8627:2;8607:18;;;8600:30;8666:31;8646:18;;;8639:59;8715:18;;10616:68:0;8386:353:1;10616:68:0;10711:51;10720:5;10727:7;10755:6;10736:16;:25;10711:8;:51::i;:::-;10484:299;10394:389;;;:::o;13318:826::-;-1:-1:-1;;;;;13416:18:0;;13408:27;;;;;;-1:-1:-1;;;;;13454:16:0;;13446:25;;;;;;13490:6;13500:1;13490:11;13482:20;;;;;;13521:2;;:7;;;:26;;-1:-1:-1;5314:6:0;;-1:-1:-1;;;;;13532:15:0;;;5314:6;;13532:15;13521:26;13513:58;;;;-1:-1:-1;;;13513:58:0;;8946:2:1;13513:58:0;;;8928:21:1;8985:2;8965:18;;;8958:30;-1:-1:-1;;;9004:18:1;;;8997:49;9063:18;;13513:58:0;8744:343:1;13513:58:0;-1:-1:-1;;;;;13589:25:0;;;;;;:19;:25;;;;;;;;13588:26;:54;;;;-1:-1:-1;;;;;;13619:23:0;;;;;;:19;:23;;;;;;;;13618:24;13588:54;13584:507;;;13669:8;;-1:-1:-1;;;;;13663:14:0;;;13669:8;;13663:14;:28;;;;-1:-1:-1;13682:9:0;;;;13681:10;13663:28;:71;;;;-1:-1:-1;13723:11:0;;13713:4;6896:7;6923:18;;;;;;;;;;;13695:39;;13663:71;13659:119;;;13755:7;:5;:7::i;:::-;13799:9;;;;13794:286;;13829:17;13849:37;13882:3;13849:28;13860:16;13867:4;13873:2;13860:6;:16::i;:::-;13849:6;;:10;:28::i;:::-;:32;;:37::i;:::-;13829:57;-1:-1:-1;13909:13:0;;13905:103;;13935:21;:6;13946:9;13935:10;:21::i;:::-;13926:30;;13958:47;13974:4;13988;13995:9;13958:15;:47::i;:::-;14039:1;14030:6;:10;14026:38;;;14051:13;:6;14062:1;14051:10;:13::i;:::-;14042:22;;14026:38;13810:270;13794:286;14103:33;14119:4;14125:2;14129:6;14103:15;:33::i;5740:159::-;5824:6;;;-1:-1:-1;;;;;5832:17:0;;;-1:-1:-1;;;;;;5832:17:0;;;;;;;5856:40;;5824:6;;;5832:17;5824:6;;5856:40;;5805:16;;5856:40;5803:96;5740:159;:::o;14256:359::-;14184:9;:16;;-1:-1:-1;;14184:16:0;14196:4;14184:16;;;14340:4:::1;-1:-1:-1::0;6923:18:0;;;;;;;;;;;14305:41:::1;;14361:6;14371:1;14361:11:::0;14357:24:::1;;14374:7;;;14357:24;14415:16;::::0;;14429:1:::1;14415:16:::0;;;;;::::1;::::0;;14391:21:::1;::::0;14415:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14415:16:0::1;14391:40;;14460:4;14442;14447:1;14442:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14442:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14486:4:::1;::::0;14476:7;;14486:4;::::1;::::0;14476;;14486;;14476:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;14476:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;14501:6:::1;::::0;14576:13:::1;::::0;14501:106:::1;::::0;-1:-1:-1;;;14501:106:0;;:6;;::::1;::::0;:57:::1;::::0;:106:::1;::::0;14559:6;;14501::::1;::::0;14570:4;;14576:13;;::::1;::::0;14591:15:::1;::::0;14501:106:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14294:321;;14211:1;14223:9:::0;:17;;-1:-1:-1;;14223:17:0;;;14256:359::o;13006:304::-;13071:7;13105:12;13095:2;;13100:1;13095:6;;;;:::i;:::-;:22;13091:37;;-1:-1:-1;13126:2:0;13119:9;;13091:37;13151:8;;-1:-1:-1;;;;;13151:8:0;;;13143:16;;;;13139:35;;-1:-1:-1;13168:6:0;;13161:13;;13139:35;13222:8;;-1:-1:-1;;;;;13222:8:0;;;13216:14;;;;13212:34;;-1:-1:-1;13239:7:0;;13232:14;;13212:34;-1:-1:-1;13289:1:0;13006:304;;;;:::o;2089:98::-;2147:7;2174:5;2178:1;2174;:5;:::i;1983:98::-;2041:7;2068:5;2072:1;2068;:5;:::i;8461:598::-;-1:-1:-1;;;;;8558:18:0;;8550:68;;;;-1:-1:-1;;;8550:68:0;;10585:2:1;8550:68:0;;;10567:21:1;10624:2;10604:18;;;10597:30;10663:34;10643:18;;;10636:62;-1:-1:-1;;;10714:18:1;;;10707:35;10759:19;;8550:68:0;10383:401:1;8550:68:0;-1:-1:-1;;;;;8637:16:0;;8629:64;;;;-1:-1:-1;;;8629:64:0;;10991:2:1;8629:64:0;;;10973:21:1;11030:2;11010:18;;;11003:30;11069:34;11049:18;;;11042:62;-1:-1:-1;;;11120:18:1;;;11113:33;11163:19;;8629:64:0;10789:399:1;8629:64:0;-1:-1:-1;;;;;8775:15:0;;8753:19;8775:15;;;;;;;;;;;8809:21;;;;8801:72;;;;-1:-1:-1;;;8801:72:0;;11395:2:1;8801:72:0;;;11377:21:1;11434:2;11414:18;;;11407:30;11473:34;11453:18;;;11446:62;-1:-1:-1;;;11524:18:1;;;11517:36;11570:19;;8801:72:0;11193:402:1;8801:72:0;-1:-1:-1;;;;;8896:15:0;;;:9;:15;;;;;;;;;;;8914:20;;;8896:38;;8936:13;;;;;;;;;;:23;;;;;;8977:26;;1595:25:1;;;8936:13:0;;8977:26;;1568:18:1;8977:26:0;;;;;;;9014:37;12289:215;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:248::-;1264:6;1272;1325:2;1313:9;1304:7;1300:23;1296:32;1293:52;;;1341:1;1338;1331:12;1293:52;-1:-1:-1;;1364:23:1;;;1434:2;1419:18;;;1406:32;;-1:-1:-1;1196:248:1:o;1631:328::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1816:29;1835:9;1816:29;:::i;:::-;1806:39;;1864:38;1898:2;1887:9;1883:18;1864:38;:::i;:::-;1854:48;;1949:2;1938:9;1934:18;1921:32;1911:42;;1631:328;;;;;:::o;2361:186::-;2420:6;2473:2;2461:9;2452:7;2448:23;2444:32;2441:52;;;2489:1;2486;2479:12;2441:52;2512:29;2531:9;2512:29;:::i;2552:127::-;2613:10;2608:3;2604:20;2601:1;2594:31;2644:4;2641:1;2634:15;2668:4;2665:1;2658:15;2684:160;2749:20;;2805:13;;2798:21;2788:32;;2778:60;;2834:1;2831;2824:12;2849:1191;2939:6;2947;3000:2;2988:9;2979:7;2975:23;2971:32;2968:52;;;3016:1;3013;3006:12;2968:52;3056:9;3043:23;3085:18;3126:2;3118:6;3115:14;3112:34;;;3142:1;3139;3132:12;3112:34;3180:6;3169:9;3165:22;3155:32;;3225:7;3218:4;3214:2;3210:13;3206:27;3196:55;;3247:1;3244;3237:12;3196:55;3283:2;3270:16;3305:4;3328:2;3324;3321:10;3318:36;;;3334:18;;:::i;:::-;3380:2;3377:1;3373:10;3412:2;3406:9;3475:2;3471:7;3466:2;3462;3458:11;3454:25;3446:6;3442:38;3530:6;3518:10;3515:22;3510:2;3498:10;3495:18;3492:46;3489:72;;;3541:18;;:::i;:::-;3577:2;3570:22;3627:18;;;3661:15;;;;-1:-1:-1;3703:11:1;;;3699:20;;;3731:19;;;3728:39;;;3763:1;3760;3753:12;3728:39;3787:11;;;;3807:148;3823:6;3818:3;3815:15;3807:148;;;3889:23;3908:3;3889:23;:::i;:::-;3877:36;;3840:12;;;;3933;;;;3807:148;;;3974:6;-1:-1:-1;3999:35:1;;-1:-1:-1;4015:18:1;;;3999:35;:::i;:::-;3989:45;;;;;;2849:1191;;;;;:::o;4045:260::-;4113:6;4121;4174:2;4162:9;4153:7;4149:23;4145:32;4142:52;;;4190:1;4187;4180:12;4142:52;4213:29;4232:9;4213:29;:::i;:::-;4203:39;;4261:38;4295:2;4284:9;4280:18;4261:38;:::i;:::-;4251:48;;4045:260;;;;;:::o;4662:380::-;4741:1;4737:12;;;;4784;;;4805:61;;4859:4;4851:6;4847:17;4837:27;;4805:61;4912:2;4904:6;4901:14;4881:18;4878:38;4875:161;;4958:10;4953:3;4949:20;4946:1;4939:31;4993:4;4990:1;4983:15;5021:4;5018:1;5011:15;4875:161;;4662:380;;;:::o;5648:127::-;5709:10;5704:3;5700:20;5697:1;5690:31;5740:4;5737:1;5730:15;5764:4;5761:1;5754:15;5780:125;5845:9;;;5866:10;;;5863:36;;;5879:18;;:::i;6316:127::-;6377:10;6372:3;6368:20;6365:1;6358:31;6408:4;6405:1;6398:15;6432:4;6429:1;6422:15;6448:135;6487:3;6508:17;;;6505:43;;6528:18;;:::i;:::-;-1:-1:-1;6575:1:1;6564:13;;6448:135::o;6995:217::-;7035:1;7061;7051:132;;7105:10;7100:3;7096:20;7093:1;7086:31;7140:4;7137:1;7130:15;7168:4;7165:1;7158:15;7051:132;-1:-1:-1;7197:9:1;;6995:217::o;9092:980::-;9354:4;9402:3;9391:9;9387:19;9433:6;9422:9;9415:25;9459:2;9497:6;9492:2;9481:9;9477:18;9470:34;9540:3;9535:2;9524:9;9520:18;9513:31;9564:6;9599;9593:13;9630:6;9622;9615:22;9668:3;9657:9;9653:19;9646:26;;9707:2;9699:6;9695:15;9681:29;;9728:1;9738:195;9752:6;9749:1;9746:13;9738:195;;;9817:13;;-1:-1:-1;;;;;9813:39:1;9801:52;;9908:15;;;;9873:12;;;;9849:1;9767:9;9738:195;;;-1:-1:-1;;;;;;;9989:32:1;;;;9984:2;9969:18;;9962:60;-1:-1:-1;;;10053:3:1;10038:19;10031:35;9950:3;9092:980;-1:-1:-1;;;9092:980:1:o;10077:168::-;10150:9;;;10181;;10198:15;;;10192:22;;10178:37;10168:71;;10219:18;;:::i;10250:128::-;10317:9;;;10338:11;;;10335:37;;;10352:18;;:::i

Swarm Source

ipfs://02984c14443f0c30ffd9111bb6e24814b34ef323a8083db82a6693f8fb728edd
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.