ETH Price: $3,152.31 (+1.06%)
Gas: 2 Gwei

Token

Xunks AI (XUNKS)
 

Overview

Max Total Supply

100,000,000 XUNKS

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,107,400.57859482272433426 XUNKS

Value
$0.00
0x437E72ed158fC409d6447AEFf6DacaD183900722
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:
XunksAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-28
*/

// SPDX-License-Identifier: MIT

/*
    Web      : https://xunksai.com
    DApp     : https://app.xunksai.com
    Docs     : https://docs.xunksai.com

    Twitter  : https://twitter.com/xunksai
    Telegram : https://t.me/xunksai_group
*/

pragma solidity 0.8.19;

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "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, " multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "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;
    }
}

contract Ownable is Context {
    address private _owner;
    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(), "caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "new owner is the zero address");
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
    }

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract XunksAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromXunkFee;

    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    
    uint256 private constant onePercent = 1000000 * 10**_decimals; // 1% from Liquidity 

    uint256 public maxWalletAmount = onePercent * 2; // 2% max wallet at launch

    uint256 private _xunkTax;
    uint256 public buyTax = 0;
    uint256 public sellTax = 5;
    uint256 public transferTax = 0;

    string private constant _name = "Xunks AI";
    string private constant _symbol = "XUNKS";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address payable public xunkFee;
        
    uint256 private launchedAt;
    uint256 private launchDelay = 2;
    bool private launch = false;

    uint256 private constant minXunkSwap = onePercent / 2550; //0.04% from Liquidity supply
  
    bool private inSwapAndLiquify;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {       
        xunkFee = payable(0x403d54eD21E0d2e976D2483E4913a7f2C18C2C8A);

        _isExcludedFromXunkFee[msg.sender] = true;
        _isExcludedFromXunkFee[address(this)] = true;       
        _isExcludedFromXunkFee[xunkFee] = true;

        _balance[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

     function newDelay(uint256 newLaunchDelay) external onlyOwner {
         launchDelay = newLaunchDelay;
     }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"low allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "approve zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function enableTrading() external onlyOwner {
        launch = true;
        launchedAt = block.number;
    }

    function _transfer(address from, address to, uint256 amount) private {
        
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from == owner() || from == address(this)) {
            _basicTransfer(from, to, amount, true); return;
        }

        if (_isExcludedFromXunkFee[from]) {
            _xunkTax = 0;
            _basicTransfer(from, to, amount, false); return;
        } else {
            require(launch, "Wait till Xunk Launch");

            if (block.number < launchedAt + launchDelay) {_xunkTax=48;} else {
                if (from == uniswapV2Pair) {
                    require(balanceOf(to) + amount <= maxWalletAmount, "Max wallet 2% at launch");
                    _xunkTax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minXunkSwap && !inSwapAndLiquify) {
                        if (tokensToSwap > onePercent) {
                            tokensToSwap = onePercent;
                        }
                        if(amount > minXunkSwap)
                            swapTokensForEth(tokensToSwap);
                    }
                    _xunkTax = sellTax;
                } else {
                    _xunkTax = transferTax;
                }
            }
        }

        uint256 taxTokens = (amount * _xunkTax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;
        emit Transfer(from, to, transferAmount);

    }

    function withdrawStuckEthBalance() external onlyOwner {
        require(address(this).balance > 0, "No Balance to withdraw!");
        payable(msg.sender).transfer(address(this).balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ethForMarketing = address(this).balance;
        xunkFee.transfer(ethForMarketing);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool opened
    ) internal {
        if(opened)
        _balance[sender] = _balance[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balance[recipient] = _balance[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function newXunkTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function removeXunkLimits() external onlyOwner {
        maxWalletAmount = _totalSupply;
    }

    function sendEthBalances(uint256 amount) private {
        xunkFee.transfer(amount);
    }    

    function createXunkPairs() external onlyOwner {
        require(!launch,"Already launched!");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap V2 Router

        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createXunkPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLaunchDelay","type":"uint256"}],"name":"newDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"newXunkTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeXunkLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckEthBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xunkFee","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620002a6565b6200002190620f4240620002be565b6200002e906002620002be565b6004556000600681905560056007556008556002600d55600e805460ff191690553480156200005c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b03191673403d54ed21e0d2e976d2483e4913a7f2c18c2c8a17815533600090815260036020526040808220805460ff199081166001908117909255308452828420805482168317905593546001600160a01b0316835291208054909216179055620001176012600a620002a6565b62000127906305f5e100620002be565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200016a6012600a620002a6565b6200017a906305f5e100620002be565b60405190815260200160405180910390a3620002d8565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001e8578160001904821115620001cc57620001cc62000191565b80851615620001da57918102915b93841c9390800290620001ac565b509250929050565b6000826200020157506001620002a0565b816200021057506000620002a0565b8160018114620002295760028114620002345762000254565b6001915050620002a0565b60ff84111562000248576200024862000191565b50506001821b620002a0565b5060208310610133831016604e8410600b841016171562000279575081810a620002a0565b620002858383620001a7565b80600019048211156200029c576200029c62000191565b0290505b92915050565b6000620002b760ff841683620001f0565b9392505050565b8082028115828204841417620002a057620002a062000191565b61189b80620002e86000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063aa4bde281161006f578063aa4bde28146103c9578063c5ad0621146103df578063cc1776d3146103f4578063d10a08911461040a578063dd62ed3e1461042a578063f2fde38b1461047057600080fd5b8063715018a61461031d5780638124f7ac146103325780638a8c523c146103485780638da5cb5b1461035d57806395d89b411461037b578063a9059cbb146103a957600080fd5b8063313ce56711610108578063313ce5671461026057806349bd5a5e1461027c5780634f7041a51461029c57806360cad12a146102b257806370a08231146102c757806370cff9fb146102fd57600080fd5b806306fdde031461015b578063095ea7b31461019e5780630dff40e6146101ce578063176d42431461020657806318160ddd1461021d57806323b872dd1461024057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600881526758756e6b7320414960c01b60208201525b6040516101959190611471565b60405180910390f35b3480156101aa57600080fd5b506101be6101b93660046114d4565b610490565b6040519015158152602001610195565b3480156101da57600080fd5b50600b546101ee906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b34801561021257600080fd5b5061021b6104a7565b005b34801561022957600080fd5b50610232610847565b604051908152602001610195565b34801561024c57600080fd5b506101be61025b366004611500565b610868565b34801561026c57600080fd5b5060405160128152602001610195565b34801561028857600080fd5b50600a546101ee906001600160a01b031681565b3480156102a857600080fd5b5061023260065481565b3480156102be57600080fd5b5061021b6108fd565b3480156102d357600080fd5b506102326102e2366004611541565b6001600160a01b031660009081526001602052604090205490565b34801561030957600080fd5b5061021b61031836600461155e565b6109a3565b34801561032957600080fd5b5061021b6109d8565b34801561033e57600080fd5b5061023260085481565b34801561035457600080fd5b5061021b610a4c565b34801561036957600080fd5b506000546001600160a01b03166101ee565b34801561038757600080fd5b5060408051808201909152600581526458554e4b5360d81b6020820152610188565b3480156103b557600080fd5b506101be6103c43660046114d4565b610a89565b3480156103d557600080fd5b5061023260045481565b3480156103eb57600080fd5b5061021b610a96565b34801561040057600080fd5b5061023260075481565b34801561041657600080fd5b5061021b610425366004611580565b610adf565b34801561043657600080fd5b50610232610445366004611599565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561047c57600080fd5b5061021b61048b366004611541565b610b0e565b600061049d338484610bd9565b5060015b92915050565b6000546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d1906115d2565b60405180910390fd5b600e5460ff16156105215760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016104d1565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561056f90309061055c6012600a611703565b61056a906305f5e100611712565b610bd9565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e69190611729565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611729565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dd9190611729565b600a80546001600160a01b039283166001600160a01b03199091161790556009541663f305d7194730610725816001600160a01b031660009081526001602052604090205490565b60008061073a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107c79190611746565b5050600a5460095460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610820573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108449190611774565b50565b60006108556012600a611703565b610863906305f5e100611712565b905090565b6000610875848484610c9d565b6108f3843361056a856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006108d23390565b6001600160a01b031681526020810191909152604001600020549190611134565b5060019392505050565b6000546001600160a01b031633146109275760405162461bcd60e51b81526004016104d1906115d2565b600047116109775760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f2077697468647261772100000000000000000060448201526064016104d1565b60405133904780156108fc02916000818181858888f19350505050158015610844573d6000803e3d6000fd5b6000546001600160a01b031633146109cd5760405162461bcd60e51b81526004016104d1906115d2565b600691909155600755565b6000546001600160a01b03163314610a025760405162461bcd60e51b81526004016104d1906115d2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a765760405162461bcd60e51b81526004016104d1906115d2565b600e805460ff1916600117905543600c55565b600061049d338484610c9d565b6000546001600160a01b03163314610ac05760405162461bcd60e51b81526004016104d1906115d2565b610acc6012600a611703565b610ada906305f5e100611712565b600455565b6000546001600160a01b03163314610b095760405162461bcd60e51b81526004016104d1906115d2565b600d55565b6000546001600160a01b03163314610b385760405162461bcd60e51b81526004016104d1906115d2565b6001600160a01b038116610b8e5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104d1565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610bf957506001600160a01b03821615155b610c3c5760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016104d1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d1565b6001600160a01b038216610d635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d1565b60008111610dc55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d1565b6000546001600160a01b0384811691161480610de957506001600160a01b03831630145b15610e0057610dfb838383600161116e565b505050565b6001600160a01b03831660009081526003602052604090205460ff1615610e36576000600581905550610dfb838383600061116e565b600e5460ff16610e805760405162461bcd60e51b81526020600482015260156024820152740aec2d2e840e8d2d8d840b0eadcd64098c2eadcc6d605b1b60448201526064016104d1565b600d54600c54610e909190611796565b431015610ea1576030600555611029565b600a546001600160a01b0390811690841603610f3d5760045481610eda846001600160a01b031660009081526001602052604090205490565b610ee49190611796565b1115610f325760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016104d1565b600654600555611029565b600a546001600160a01b039081169083160361102257306000908152600160205260409020546109f6610f726012600a611703565b610f7f90620f4240611712565b610f8991906117a9565b81118015610f9f5750600e54610100900460ff16155b1561101657610fb06012600a611703565b610fbd90620f4240611712565b811115610fe057610fd06012600a611703565b610fdd90620f4240611712565b90505b6109f6610fef6012600a611703565b610ffc90620f4240611712565b61100691906117a9565b8211156110165761101681611265565b50600754600555611029565b6008546005555b600060646005548361103b9190611712565b61104591906117a9565b9050600061105382846117cb565b6001600160a01b03861660009081526001602052604090205490915061107a9084906117cb565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546110aa908290611796565b6001600160a01b0385166000908152600160205260408082209290925530815220546110d7908390611796565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156111585760405162461bcd60e51b81526004016104d19190611471565b50600061116584866117cb565b95945050505050565b80156111e0576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600190915291909120546111c6918490611134565b6001600160a01b0385166000908152600160205260409020555b6001600160a01b0383166000908152600160205260409020546112039083611417565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112579086815260200190565b60405180910390a350505050565b600e805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112a9576112a96117de565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113269190611729565b81600181518110611339576113396117de565b6001600160a01b03928316602091820292909201015260095461135f9130911684610bd9565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906113989085906000908690309042906004016117f4565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611406573d6000803e3d6000fd5b5050600e805461ff00191690555050565b6000806114248385611796565b90508381101561146a5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b60448201526064016104d1565b9392505050565b600060208083528351808285015260005b8181101561149e57858101830151858201604001528201611482565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084457600080fd5b600080604083850312156114e757600080fd5b82356114f2816114bf565b946020939093013593505050565b60008060006060848603121561151557600080fd5b8335611520816114bf565b92506020840135611530816114bf565b929592945050506040919091013590565b60006020828403121561155357600080fd5b813561146a816114bf565b6000806040838503121561157157600080fd5b50508035926020909101359150565b60006020828403121561159257600080fd5b5035919050565b600080604083850312156115ac57600080fd5b82356115b7816114bf565b915060208301356115c7816114bf565b809150509250929050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561165a57816000190482111561164057611640611609565b8085161561164d57918102915b93841c9390800290611624565b509250929050565b600082611671575060016104a1565b8161167e575060006104a1565b8160018114611694576002811461169e576116ba565b60019150506104a1565b60ff8411156116af576116af611609565b50506001821b6104a1565b5060208310610133831016604e8410600b84101617156116dd575081810a6104a1565b6116e7838361161f565b80600019048211156116fb576116fb611609565b029392505050565b600061146a60ff841683611662565b80820281158282048414176104a1576104a1611609565b60006020828403121561173b57600080fd5b815161146a816114bf565b60008060006060848603121561175b57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561178657600080fd5b8151801515811461146a57600080fd5b808201808211156104a1576104a1611609565b6000826117c657634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a1576104a1611609565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118445784516001600160a01b03168352938301939183019160010161181f565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122021fbc2bc0640196b64e3d1717b9f50cd2ee1e9ed4b60465658866e11a6360e4a64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063aa4bde281161006f578063aa4bde28146103c9578063c5ad0621146103df578063cc1776d3146103f4578063d10a08911461040a578063dd62ed3e1461042a578063f2fde38b1461047057600080fd5b8063715018a61461031d5780638124f7ac146103325780638a8c523c146103485780638da5cb5b1461035d57806395d89b411461037b578063a9059cbb146103a957600080fd5b8063313ce56711610108578063313ce5671461026057806349bd5a5e1461027c5780634f7041a51461029c57806360cad12a146102b257806370a08231146102c757806370cff9fb146102fd57600080fd5b806306fdde031461015b578063095ea7b31461019e5780630dff40e6146101ce578063176d42431461020657806318160ddd1461021d57806323b872dd1461024057600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600881526758756e6b7320414960c01b60208201525b6040516101959190611471565b60405180910390f35b3480156101aa57600080fd5b506101be6101b93660046114d4565b610490565b6040519015158152602001610195565b3480156101da57600080fd5b50600b546101ee906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b34801561021257600080fd5b5061021b6104a7565b005b34801561022957600080fd5b50610232610847565b604051908152602001610195565b34801561024c57600080fd5b506101be61025b366004611500565b610868565b34801561026c57600080fd5b5060405160128152602001610195565b34801561028857600080fd5b50600a546101ee906001600160a01b031681565b3480156102a857600080fd5b5061023260065481565b3480156102be57600080fd5b5061021b6108fd565b3480156102d357600080fd5b506102326102e2366004611541565b6001600160a01b031660009081526001602052604090205490565b34801561030957600080fd5b5061021b61031836600461155e565b6109a3565b34801561032957600080fd5b5061021b6109d8565b34801561033e57600080fd5b5061023260085481565b34801561035457600080fd5b5061021b610a4c565b34801561036957600080fd5b506000546001600160a01b03166101ee565b34801561038757600080fd5b5060408051808201909152600581526458554e4b5360d81b6020820152610188565b3480156103b557600080fd5b506101be6103c43660046114d4565b610a89565b3480156103d557600080fd5b5061023260045481565b3480156103eb57600080fd5b5061021b610a96565b34801561040057600080fd5b5061023260075481565b34801561041657600080fd5b5061021b610425366004611580565b610adf565b34801561043657600080fd5b50610232610445366004611599565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561047c57600080fd5b5061021b61048b366004611541565b610b0e565b600061049d338484610bd9565b5060015b92915050565b6000546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d1906115d2565b60405180910390fd5b600e5460ff16156105215760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016104d1565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561056f90309061055c6012600a611703565b61056a906305f5e100611712565b610bd9565b600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e69190611729565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611729565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dd9190611729565b600a80546001600160a01b039283166001600160a01b03199091161790556009541663f305d7194730610725816001600160a01b031660009081526001602052604090205490565b60008061073a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107c79190611746565b5050600a5460095460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610820573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108449190611774565b50565b60006108556012600a611703565b610863906305f5e100611712565b905090565b6000610875848484610c9d565b6108f3843361056a856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006108d23390565b6001600160a01b031681526020810191909152604001600020549190611134565b5060019392505050565b6000546001600160a01b031633146109275760405162461bcd60e51b81526004016104d1906115d2565b600047116109775760405162461bcd60e51b815260206004820152601760248201527f4e6f2042616c616e636520746f2077697468647261772100000000000000000060448201526064016104d1565b60405133904780156108fc02916000818181858888f19350505050158015610844573d6000803e3d6000fd5b6000546001600160a01b031633146109cd5760405162461bcd60e51b81526004016104d1906115d2565b600691909155600755565b6000546001600160a01b03163314610a025760405162461bcd60e51b81526004016104d1906115d2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a765760405162461bcd60e51b81526004016104d1906115d2565b600e805460ff1916600117905543600c55565b600061049d338484610c9d565b6000546001600160a01b03163314610ac05760405162461bcd60e51b81526004016104d1906115d2565b610acc6012600a611703565b610ada906305f5e100611712565b600455565b6000546001600160a01b03163314610b095760405162461bcd60e51b81526004016104d1906115d2565b600d55565b6000546001600160a01b03163314610b385760405162461bcd60e51b81526004016104d1906115d2565b6001600160a01b038116610b8e5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104d1565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610bf957506001600160a01b03821615155b610c3c5760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016104d1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d1565b6001600160a01b038216610d635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d1565b60008111610dc55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d1565b6000546001600160a01b0384811691161480610de957506001600160a01b03831630145b15610e0057610dfb838383600161116e565b505050565b6001600160a01b03831660009081526003602052604090205460ff1615610e36576000600581905550610dfb838383600061116e565b600e5460ff16610e805760405162461bcd60e51b81526020600482015260156024820152740aec2d2e840e8d2d8d840b0eadcd64098c2eadcc6d605b1b60448201526064016104d1565b600d54600c54610e909190611796565b431015610ea1576030600555611029565b600a546001600160a01b0390811690841603610f3d5760045481610eda846001600160a01b031660009081526001602052604090205490565b610ee49190611796565b1115610f325760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016104d1565b600654600555611029565b600a546001600160a01b039081169083160361102257306000908152600160205260409020546109f6610f726012600a611703565b610f7f90620f4240611712565b610f8991906117a9565b81118015610f9f5750600e54610100900460ff16155b1561101657610fb06012600a611703565b610fbd90620f4240611712565b811115610fe057610fd06012600a611703565b610fdd90620f4240611712565b90505b6109f6610fef6012600a611703565b610ffc90620f4240611712565b61100691906117a9565b8211156110165761101681611265565b50600754600555611029565b6008546005555b600060646005548361103b9190611712565b61104591906117a9565b9050600061105382846117cb565b6001600160a01b03861660009081526001602052604090205490915061107a9084906117cb565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546110aa908290611796565b6001600160a01b0385166000908152600160205260408082209290925530815220546110d7908390611796565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156111585760405162461bcd60e51b81526004016104d19190611471565b50600061116584866117cb565b95945050505050565b80156111e0576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600190915291909120546111c6918490611134565b6001600160a01b0385166000908152600160205260409020555b6001600160a01b0383166000908152600160205260409020546112039083611417565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112579086815260200190565b60405180910390a350505050565b600e805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112a9576112a96117de565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113269190611729565b81600181518110611339576113396117de565b6001600160a01b03928316602091820292909201015260095461135f9130911684610bd9565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac947906113989085906000908690309042906004016117f4565b600060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b5050600b546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611406573d6000803e3d6000fd5b5050600e805461ff00191690555050565b6000806114248385611796565b90508381101561146a5760405162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b60448201526064016104d1565b9392505050565b600060208083528351808285015260005b8181101561149e57858101830151858201604001528201611482565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084457600080fd5b600080604083850312156114e757600080fd5b82356114f2816114bf565b946020939093013593505050565b60008060006060848603121561151557600080fd5b8335611520816114bf565b92506020840135611530816114bf565b929592945050506040919091013590565b60006020828403121561155357600080fd5b813561146a816114bf565b6000806040838503121561157157600080fd5b50508035926020909101359150565b60006020828403121561159257600080fd5b5035919050565b600080604083850312156115ac57600080fd5b82356115b7816114bf565b915060208301356115c7816114bf565b809150509250929050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561165a57816000190482111561164057611640611609565b8085161561164d57918102915b93841c9390800290611624565b509250929050565b600082611671575060016104a1565b8161167e575060006104a1565b8160018114611694576002811461169e576116ba565b60019150506104a1565b60ff8411156116af576116af611609565b50506001821b6104a1565b5060208310610133831016604e8410600b84101617156116dd575081810a6104a1565b6116e7838361161f565b80600019048211156116fb576116fb611609565b029392505050565b600061146a60ff841683611662565b80820281158282048414176104a1576104a1611609565b60006020828403121561173b57600080fd5b815161146a816114bf565b60008060006060848603121561175b57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561178657600080fd5b8151801515811461146a57600080fd5b808201808211156104a1576104a1611609565b6000826117c657634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a1576104a1611609565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118445784516001600160a01b03168352938301939183019160010161181f565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122021fbc2bc0640196b64e3d1717b9f50cd2ee1e9ed4b60465658866e11a6360e4a64736f6c63430008130033

Deployed Bytecode Sourcemap

3928:7638:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:83;;;;;;;;;;-1:-1:-1;5680:5:0;;;;;;;;;;;;-1:-1:-1;;;5680:5:0;;;;5610:83;;;;;;;:::i;:::-;;;;;;;;6444:160;;;;;;;;;;-1:-1:-1;6444:160:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6444:160:0;1023:187:1;4817:30:0;;;;;;;;;;-1:-1:-1;4817:30:0;;;;-1:-1:-1;;;;;4817:30:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;4817:30:0;1215:219:1;10890:632:0;;;;;;;;;;;;;:::i;:::-;;5887:100;;;;;;;;;;;;;:::i;:::-;;;1585:25:1;;;1573:2;1558:18;5887:100:0;1439:177:1;6731:283:0;;;;;;;;;;-1:-1:-1;6731:283:0;;;;;:::i;:::-;;:::i;5796:83::-;;;;;;;;;;-1:-1:-1;5796:83:0;;4237:2;2224:36:1;;2212:2;2197:18;5796:83:0;2082:184:1;4782:28:0;;;;;;;;;;-1:-1:-1;4782:28:0;;;;-1:-1:-1;;;;;4782:28:0;;;4530:25;;;;;;;;;;;;;;;;9319:196;;;;;;;;;;;;;:::i;5995:118::-;;;;;;;;;;-1:-1:-1;5995:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6088:17:0;6061:7;6088:17;;;:8;:17;;;;;;;5995:118;10528:146;;;;;;;;;;-1:-1:-1;10528:146:0;;;;;:::i;:::-;;:::i;2302:148::-;;;;;;;;;;;;;:::i;4595:30::-;;;;;;;;;;;;;;;;7295:112;;;;;;;;;;;;;:::i;1862:79::-;;;;;;;;;;-1:-1:-1;1900:7:0;1927:6;-1:-1:-1;;;;;1927:6:0;1862:79;;5701:87;;;;;;;;;;-1:-1:-1;5773:7:0;;;;;;;;;;;;-1:-1:-1;;;5773:7:0;;;;5701:87;;6121:165;;;;;;;;;;-1:-1:-1;6121:165:0;;;;;:::i;:::-;;:::i;4416:47::-;;;;;;;;;;;;;;;;10682:96;;;;;;;;;;;;;:::i;4562:26::-;;;;;;;;;;;;;;;;6613:110;;;;;;;;;;-1:-1:-1;6613:110:0;;;;;:::i;:::-;;:::i;6294:142::-;;;;;;;;;;-1:-1:-1;6294:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;6401:18:0;;;6375:7;6401:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6294:142;2067:227;;;;;;;;;;-1:-1:-1;2067:227:0;;;;;:::i;:::-;;:::i;6444:160::-;6519:4;6535:39;391:10;6558:7;6567:6;6535:8;:39::i;:::-;-1:-1:-1;6592:4:0;6444:160;;;;;:::o;10890:632::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;;;;;;;;;10956:6:::1;::::0;::::1;;10955:7;10947:36;;;::::0;-1:-1:-1;;;10947:36:0;;4116:2:1;10947:36:0::1;::::0;::::1;4098:21:1::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:1;;;4167:47;4231:18;;10947:36:0::1;3914:341:1::0;10947:36:0::1;10994:15;:80:::0;;-1:-1:-1;;;;;;10994:80:0::1;11031:42;10994:80:::0;;::::1;::::0;;;11108:63:::1;::::0;11125:4:::1;::::0;4298:13:::1;4237:2;4298;:13;:::i;:::-;4286:25;::::0;:9:::1;:25;:::i;:::-;11108:8;:63::i;:::-;11216:15;;;;;;;;;-1:-1:-1::0;;;;;11216:15:0::1;-1:-1:-1::0;;;;;11216:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11198:55:0::1;;11262:4;11269:15;;;;;;;;;-1:-1:-1::0;;;;;11269:15:0::1;-1:-1:-1::0;;;;;11269:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11198:94;::::0;-1:-1:-1;;;;;;11198:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6434:15:1;;;11198:94:0::1;::::0;::::1;6416:34:1::0;6486:15;;6466:18;;;6459:43;6351:18;;11198:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11182:13;:110:::0;;-1:-1:-1;;;;;11182:110:0;;::::1;-1:-1:-1::0;;;;;;11182:110:0;;::::1;;::::0;;11303:15:::1;::::0;::::1;:31;11342:21;11373:4;11379:24;11373:4:::0;-1:-1:-1;;;;;6088:17:0;6061:7;6088:17;;;:8;:17;;;;;;;5995:118;11379:24:::1;11404:1;11406::::0;11408:7:::1;1900::::0;1927:6;-1:-1:-1;;;;;1927:6:0;;1862:79;11408:7:::1;11303:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11303:129:0;;;-1:-1:-1;;;;;6872:15:1;;;11303:129:0::1;::::0;::::1;6854:34:1::0;6904:18;;;6897:34;;;;6947:18;;;6940:34;;;;6990:18;;;6983:34;7054:15;;;7033:19;;;7026:44;11416:15:0::1;7086:19:1::0;;;7079:35;6788:19;;11303:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11450:13:0::1;::::0;11481:15:::1;::::0;11443:71:::1;::::0;-1:-1:-1;;;11443:71:0;;-1:-1:-1;;;;;11481:15:0;;::::1;11443:71;::::0;::::1;7610:51:1::0;-1:-1:-1;;7677:18:1;;;7670:34;11450:13:0;::::1;::::0;-1:-1:-1;11443:29:0::1;::::0;7583:18:1;;11443:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10890:632::o:0;5887:100::-;5940:7;4298:13;4237:2;4298;:13;:::i;:::-;4286:25;;:9;:25;:::i;:::-;5960:19;;5887:100;:::o;6731:283::-;6829:4;6846:36;6856:6;6864:9;6875:6;6846:9;:36::i;:::-;6893:91;6902:6;391:10;6922:61;6960:6;6922:61;;;;;;;;;;;;;-1:-1:-1;;;6922:61:0;;;:11;:19;6934:6;-1:-1:-1;;;;;6922:19:0;-1:-1:-1;;;;;6922:19:0;;;;;;;;;;;;:33;6942:12;391:10;;311:98;6942:12;-1:-1:-1;;;;;6922:33:0;;;;;;;;;;;;-1:-1:-1;6922:33:0;;;:61;:37;:61::i;6893:91::-;-1:-1:-1;7002:4:0;6731:283;;;;;:::o;9319:196::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;9416:1:::1;9392:21;:25;9384:61;;;::::0;-1:-1:-1;;;9384:61:0;;8199:2:1;9384:61:0::1;::::0;::::1;8181:21:1::0;8238:2;8218:18;;;8211:30;8277:25;8257:18;;;8250:53;8320:18;;9384:61:0::1;7997:347:1::0;9384:61:0::1;9456:51;::::0;9464:10:::1;::::0;9485:21:::1;9456:51:::0;::::1;;;::::0;::::1;::::0;;;9485:21;9464:10;9456:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;10528:146:::0;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;10617:6:::1;:18:::0;;;;10646:7:::1;:20:::0;10528:146::o;2302:148::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;2409:1:::1;2393:6:::0;;2372:40:::1;::::0;-1:-1:-1;;;;;2393:6:0;;::::1;::::0;2372:40:::1;::::0;2409:1;;2372:40:::1;2440:1;2423:19:::0;;-1:-1:-1;;;;;;2423:19:0::1;::::0;;2302:148::o;7295:112::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;7350:6:::1;:13:::0;;-1:-1:-1;;7350:13:0::1;7359:4;7350:13;::::0;;7387:12:::1;7374:10;:25:::0;7295:112::o;6121:165::-;6198:4;6214:42;391:10;6238:9;6249:6;6214:9;:42::i;10682:96::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;4298:13:::1;4237:2;4298;:13;:::i;:::-;4286:25;::::0;:9:::1;:25;:::i;:::-;10740:15;:30:::0;10682:96::o;6613:110::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;6686:11:::1;:28:::0;6613:110::o;2067:227::-;1989:6;;-1:-1:-1;;;;;1989:6:0;391:10;1989:22;1981:58;;;;-1:-1:-1;;;1981:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2148:22:0;::::1;2140:64;;;::::0;-1:-1:-1;;;2140:64:0;;8551:2:1;2140:64:0::1;::::0;::::1;8533:21:1::0;8590:2;8570:18;;;8563:30;8629:31;8609:18;;;8602:59;8678:18;;2140:64:0::1;8349:353:1::0;2140:64:0::1;2215:6;:17:::0;;-1:-1:-1;;;;;;2215:17:0::1;-1:-1:-1::0;;;;;2215:17:0;::::1;::::0;;::::1;::::0;;2248:38:::1;::::0;2215:17;;;;2248:38:::1;::::0;2215:6;2248:38:::1;2067:227:::0;:::o;7022:265::-;-1:-1:-1;;;;;7115:19:0;;;;;;:44;;-1:-1:-1;;;;;;7138:21:0;;;;7115:44;7107:77;;;;-1:-1:-1;;;7107:77:0;;8909:2:1;7107:77:0;;;8891:21:1;8948:2;8928:18;;;8921:30;-1:-1:-1;;;8967:18:1;;;8960:50;9027:18;;7107:77:0;8707:344:1;7107:77:0;-1:-1:-1;;;;;7195:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7247:32;;1585:25:1;;;7247:32:0;;1558:18:1;7247:32:0;;;;;;;7022:265;;;:::o;7415:1896::-;-1:-1:-1;;;;;7513:18:0;;7505:68;;;;-1:-1:-1;;;7505:68:0;;9258:2:1;7505:68:0;;;9240:21:1;9297:2;9277:18;;;9270:30;9336:34;9316:18;;;9309:62;-1:-1:-1;;;9387:18:1;;;9380:35;9432:19;;7505:68:0;9056:401:1;7505:68:0;-1:-1:-1;;;;;7592:16:0;;7584:64;;;;-1:-1:-1;;;7584:64:0;;9664:2:1;7584:64:0;;;9646:21:1;9703:2;9683:18;;;9676:30;9742:34;9722:18;;;9715:62;-1:-1:-1;;;9793:18:1;;;9786:33;9836:19;;7584:64:0;9462:399:1;7584:64:0;7676:1;7667:6;:10;7659:64;;;;-1:-1:-1;;;7659:64:0;;10068:2:1;7659:64:0;;;10050:21:1;10107:2;10087:18;;;10080:30;10146:34;10126:18;;;10119:62;-1:-1:-1;;;10197:18:1;;;10190:39;10246:19;;7659:64:0;9866:405:1;7659:64:0;1900:7;1927:6;-1:-1:-1;;;;;7739:15:0;;;1927:6;;7739:15;;:40;;-1:-1:-1;;;;;;7758:21:0;;7774:4;7758:21;7739:40;7736:118;;;7796:38;7811:4;7817:2;7821:6;7829:4;7796:14;:38::i;:::-;7415:1896;;;:::o;7736:118::-;-1:-1:-1;;;;;7870:28:0;;;;;;:22;:28;;;;;;;;7866:1094;;;7926:1;7915:8;:12;;;;7942:39;7957:4;7963:2;7967:6;7975:5;7942:14;:39::i;7866:1094::-;8030:6;;;;8022:40;;;;-1:-1:-1;;;8022:40:0;;10478:2:1;8022:40:0;;;10460:21:1;10517:2;10497:18;;;10490:30;-1:-1:-1;;;10536:18:1;;;10529:51;10597:18;;8022:40:0;10276:345:1;8022:40:0;8111:11;;8098:10;;:24;;;;:::i;:::-;8083:12;:39;8079:870;;;8134:2;8125:8;:11;8079:870;;;8175:13;;-1:-1:-1;;;;;8175:13:0;;;8167:21;;;;8163:771;;8247:15;;8237:6;8221:13;8231:2;-1:-1:-1;;;;;6088:17:0;6061:7;6088:17;;;:8;:17;;;;;;;5995:118;8221:13;:22;;;;:::i;:::-;:41;;8213:77;;;;-1:-1:-1;;;8213:77:0;;10958:2:1;8213:77:0;;;10940:21:1;10997:2;10977:18;;;10970:30;11036:25;11016:18;;;11009:53;11079:18;;8213:77:0;10756:347:1;8213:77:0;8324:6;;8313:8;:17;8163:771;;;8366:13;;-1:-1:-1;;;;;8366:13:0;;;8360:19;;;;8356:578;;8445:4;8404:20;6088:17;;;:8;:17;;;;;;5023:4;4372:13;4237:2;4372;:13;:::i;:::-;4362:23;;:7;:23;:::i;:::-;5010:17;;;;:::i;:::-;8478:12;:26;:47;;;;-1:-1:-1;8509:16:0;;;;;;;8508:17;8478:47;8474:329;;;4372:13;4237:2;4372;:13;:::i;:::-;4362:23;;:7;:23;:::i;:::-;8558:12;:25;8554:115;;;4372:13;4237:2;4372;:13;:::i;:::-;4362:23;;:7;:23;:::i;:::-;8616:25;;8554:115;5023:4;4372:13;4237:2;4372;:13;:::i;:::-;4362:23;;:7;:23;:::i;:::-;5010:17;;;;:::i;:::-;8698:6;:20;8695:84;;;8749:30;8766:12;8749:16;:30::i;:::-;-1:-1:-1;8836:7:0;;8825:8;:18;8356:578;;;8903:11;;8892:8;:22;8356:578;8972:17;9014:3;9002:8;;8993:6;:17;;;;:::i;:::-;8992:25;;;;:::i;:::-;8972:45;-1:-1:-1;9028:22:0;9053:18;8972:45;9053:6;:18;:::i;:::-;-1:-1:-1;;;;;9101:14:0;;;;;;:8;:14;;;;;;9028:43;;-1:-1:-1;9101:23:0;;9118:6;;9101:23;:::i;:::-;-1:-1:-1;;;;;9084:14:0;;;;;;;:8;:14;;;;;;:40;;;;9150:12;;;;;;;:29;;9165:14;;9150:29;:::i;:::-;-1:-1:-1;;;;;9135:12:0;;;;;;:8;:12;;;;;;:44;;;;9233:4;9216:23;;;;:35;;9242:9;;9216:35;:::i;:::-;9207:4;9190:23;;;;:8;:23;;;;;;;;;:61;;;;9267:34;1585:25:1;;;-1:-1:-1;;;;;9267:34:0;;;;;;;;;;1558:18:1;9267:34:0;;;;;;;7484:1827;;7415:1896;;;:::o;751:190::-;837:7;873:12;865:6;;;;857:29;;;;-1:-1:-1;;;857:29:0;;;;;;;;:::i;:::-;-1:-1:-1;897:9:0;909:5;913:1;909;:5;:::i;:::-;897:17;751:190;-1:-1:-1;;;;;751:190:0:o;10118:402::-;10272:6;10269:128;;;10308:89;;;;;;;;;;;-1:-1:-1;;;10308:89:0;;;;;;;;-1:-1:-1;;;;;10308:16:0;;-1:-1:-1;10308:16:0;;;:8;:16;;;;;;;;:89;;10343:6;;10308:20;:89::i;:::-;-1:-1:-1;;;;;10289:16:0;;;;;;:8;:16;;;;;:108;10269:128;-1:-1:-1;;;;;10430:19:0;;;;;;:8;:19;;;;;;:31;;10454:6;10430:23;:31::i;:::-;-1:-1:-1;;;;;10408:19:0;;;;;;;:8;:19;;;;;;;:53;;;;10477:35;;;;;;;;;;10505:6;1585:25:1;;1573:2;1558:18;;1439:177;10477:35:0;;;;;;;;10118:402;;;;:::o;9523:587::-;5136:16;:23;;-1:-1:-1;;5136:23:0;;;;;9625:16:::1;::::0;;9639:1:::1;9625:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9625:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9625:16:0::1;9601:40;;9670:4;9652;9657:1;9652:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9652:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9696:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9696:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9652:7;;9696:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9686:4;9691:1;9686:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9686:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9761:15:::1;::::0;9729:62:::1;::::0;9746:4:::1;::::0;9761:15:::1;9779:11:::0;9729:8:::1;:62::i;:::-;9802:15;::::0;:196:::1;::::0;-1:-1:-1;;;9802:196:0;;-1:-1:-1;;;;;9802:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9883:11;;9802:15:::1;::::0;9925:4;;9952::::1;::::0;9972:15:::1;::::0;9802:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10069:7:0::1;::::0;:33:::1;::::0;10037:21:::1;::::0;-1:-1:-1;;;;;;10069:7:0;;::::1;::::0;-1:-1:-1;10069:33:0;::::1;;;::::0;10037:21;;10011:23:::1;10069:33:::0;10011:23;10069:33;10037:21;10069:7;:33;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5182:16:0;:24;;-1:-1:-1;;5182:24:0;;;-1:-1:-1;;9523:587:0:o;440:169::-;498:7;;530:5;534:1;530;:5;:::i;:::-;518:17;;559:1;554;:6;;546:36;;;;-1:-1:-1;;;546:36:0;;12914:2:1;546:36:0;;;12896:21:1;12953:2;12933:18;;;12926:30;-1:-1:-1;;;12972:18:1;;;12965:47;13029:18;;546:36:0;12712:341:1;546:36:0;600:1;440:169;-1:-1:-1;;;440:169:0:o;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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1621:456::-;1698:6;1706;1714;1767:2;1755:9;1746:7;1742:23;1738:32;1735:52;;;1783:1;1780;1773:12;1735:52;1822:9;1809:23;1841:31;1866:5;1841:31;:::i;:::-;1891:5;-1:-1:-1;1948:2:1;1933:18;;1920:32;1961:33;1920:32;1961:33;:::i;:::-;1621:456;;2013:7;;-1:-1:-1;;;2067:2:1;2052:18;;;;2039:32;;1621:456::o;2479:247::-;2538:6;2591:2;2579:9;2570:7;2566:23;2562:32;2559:52;;;2607:1;2604;2597:12;2559:52;2646:9;2633:23;2665:31;2690:5;2665:31;:::i;2731:248::-;2799:6;2807;2860:2;2848:9;2839:7;2835:23;2831:32;2828:52;;;2876:1;2873;2866:12;2828:52;-1:-1:-1;;2899:23:1;;;2969:2;2954:18;;;2941:32;;-1:-1:-1;2731:248:1:o;2984:180::-;3043:6;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;-1:-1:-1;3135:23:1;;2984:180;-1:-1:-1;2984:180:1:o;3169:388::-;3237:6;3245;3298:2;3286:9;3277:7;3273:23;3269:32;3266:52;;;3314:1;3311;3304:12;3266:52;3353:9;3340:23;3372:31;3397:5;3372:31;:::i;:::-;3422:5;-1:-1:-1;3479:2:1;3464:18;;3451:32;3492:33;3451:32;3492:33;:::i;:::-;3544:7;3534:17;;;3169:388;;;;;:::o;3562:347::-;3764:2;3746:21;;;3803:2;3783:18;;;3776:30;3842:25;3837:2;3822:18;;3815:53;3900:2;3885:18;;3562:347::o;4260:127::-;4321:10;4316:3;4312:20;4309:1;4302:31;4352:4;4349:1;4342:15;4376:4;4373:1;4366:15;4392:422;4481:1;4524:5;4481:1;4538:270;4559:7;4549:8;4546:21;4538:270;;;4618:4;4614:1;4610:6;4606:17;4600:4;4597:27;4594:53;;;4627:18;;:::i;:::-;4677:7;4667:8;4663:22;4660:55;;;4697:16;;;;4660:55;4776:22;;;;4736:15;;;;4538:270;;;4542:3;4392:422;;;;;:::o;4819:806::-;4868:5;4898:8;4888:80;;-1:-1:-1;4939:1:1;4953:5;;4888:80;4987:4;4977:76;;-1:-1:-1;5024:1:1;5038:5;;4977:76;5069:4;5087:1;5082:59;;;;5155:1;5150:130;;;;5062:218;;5082:59;5112:1;5103:10;;5126:5;;;5150:130;5187:3;5177:8;5174:17;5171:43;;;5194:18;;:::i;:::-;-1:-1:-1;;5250:1:1;5236:16;;5265:5;;5062:218;;5364:2;5354:8;5351:16;5345:3;5339:4;5336:13;5332:36;5326:2;5316:8;5313:16;5308:2;5302:4;5299:12;5295:35;5292:77;5289:159;;;-1:-1:-1;5401:19:1;;;5433:5;;5289:159;5480:34;5505:8;5499:4;5480:34;:::i;:::-;5550:6;5546:1;5542:6;5538:19;5529:7;5526:32;5523:58;;;5561:18;;:::i;:::-;5599:20;;4819:806;-1:-1:-1;;;4819:806:1:o;5630:140::-;5688:5;5717:47;5758:4;5748:8;5744:19;5738:4;5717:47;:::i;5775:168::-;5848:9;;;5879;;5896:15;;;5890:22;;5876:37;5866:71;;5917:18;;:::i;5948:251::-;6018:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:52;;;6087:1;6084;6077:12;6039:52;6119:9;6113:16;6138:31;6163:5;6138:31;:::i;7125:306::-;7213:6;7221;7229;7282:2;7270:9;7261:7;7257:23;7253:32;7250:52;;;7298:1;7295;7288:12;7250:52;7327:9;7321:16;7311:26;;7377:2;7366:9;7362:18;7356:25;7346:35;;7421:2;7410:9;7406:18;7400:25;7390:35;;7125:306;;;;;:::o;7715:277::-;7782:6;7835:2;7823:9;7814:7;7810:23;7806:32;7803:52;;;7851:1;7848;7841:12;7803:52;7883:9;7877:16;7936:5;7929:13;7922:21;7915:5;7912:32;7902:60;;7958:1;7955;7948:12;10626:125;10691:9;;;10712:10;;;10709:36;;;10725:18;;:::i;11108:217::-;11148:1;11174;11164:132;;11218:10;11213:3;11209:20;11206:1;11199:31;11253:4;11250:1;11243:15;11281:4;11278:1;11271:15;11164:132;-1:-1:-1;11310:9:1;;11108:217::o;11330:128::-;11397:9;;;11418:11;;;11415:37;;;11432:18;;:::i;11595:127::-;11656:10;11651:3;11647:20;11644:1;11637:31;11687:4;11684:1;11677:15;11711:4;11708:1;11701:15;11727:980;11989:4;12037:3;12026:9;12022:19;12068:6;12057:9;12050:25;12094:2;12132:6;12127:2;12116:9;12112:18;12105:34;12175:3;12170:2;12159:9;12155:18;12148:31;12199:6;12234;12228:13;12265:6;12257;12250:22;12303:3;12292:9;12288:19;12281:26;;12342:2;12334:6;12330:15;12316:29;;12363:1;12373:195;12387:6;12384:1;12381:13;12373:195;;;12452:13;;-1:-1:-1;;;;;12448:39:1;12436:52;;12543:15;;;;12508:12;;;;12484:1;12402:9;12373:195;;;-1:-1:-1;;;;;;;12624:32:1;;;;12619:2;12604:18;;12597:60;-1:-1:-1;;;12688:3:1;12673:19;12666:35;12585:3;11727:980;-1:-1:-1;;;11727:980:1:o

Swarm Source

ipfs://21fbc2bc0640196b64e3d1717b9f50cd2ee1e9ed4b60465658866e11a6360e4a
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.