ETH Price: $3,894.45 (+0.26%)

Token

ERC-20: SharesBot (SB)
 

Overview

Max Total Supply

10,000,000 SB

Holders

623

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
elzamani.eth
Balance
0.76525746895950648 SB

Value
$0.00
0xc8F0fFFf7514f8a90263856635A7A4c063a8c166
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:
SB

Compiler Version
v0.8.20+commit.a1b79de6

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-21
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.9.0;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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(), "Ownable: caller is not the owner");
        _;
    }

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract SB is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _buyerMap;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 5;
    uint256 private _finalSellTax = 5;
    uint256 private _preventSwapBefore = 1;
    uint256 private _buyCount = 0;
    bool private _isFinalFeeApplied = false;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10_000_000 * 10 ** _decimals;
    string private constant _name = unicode"SharesBot";
    string private constant _symbol = unicode"SB";
    uint256 public _maxTxAmount = 100_000 * 10 ** _decimals; // 1% of total supply
    uint256 public _maxWalletSize = 100_000 * 10 ** _decimals; // 1% of total supply
    uint256 public _taxSwapThreshold = 50_000 * 10 ** _decimals; // 0.5% of total supply
    uint256 public _maxTaxSwap = 50_000 * 10 ** _decimals; // 0.5% of total supply

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "Only one transfer per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                if (_buyCount < _preventSwapBefore) {
                    require(!isContract(to));
                }
                _buyCount++;
                _buyerMap[to] = true;
            }

            taxAmount = amount
                .mul((_isFinalFeeApplied) ? _finalBuyTax : _initialBuyTax)
                .div(100);
            if (to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount
                    .mul((_isFinalFeeApplied) ? _finalSellTax : _initialSellTax)
                    .div(100);
                require(
                    _buyCount > _preventSwapBefore || _buyerMap[from],
                    "Seller is not buyer"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        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
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function setFinalTax() external onlyOwner {
        _isFinalFeeApplied = true;
    }

    function setTaxSwapThreshold(uint256 newTax) external onlyOwner {
        _taxSwapThreshold = newTax;
    }

    function setMaxTaxSwap(uint256 newTax) external onlyOwner {
        _maxTaxSwap = newTax;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setMaxTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526007805460ff19908116909155601460088190556009556005600a818155600b919091556001600c555f600d55600e80549092169091556200004990601290620004fa565b6200005890620186a062000511565b600f55620000696012600a620004fa565b6200007890620186a062000511565b601055620000896012600a620004fa565b620000979061c35062000511565b601155620000a86012600a620004fa565b620000b69061c35062000511565b6012556014805461ffff60a81b19169055348015620000d3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000177573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019d91906200052b565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022391906200052b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200026e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029491906200052b565b601480546001600160a01b0319166001600160a01b0392909216919091179055620002bc3390565b600780546001600160a01b039290921661010002610100600160a81b0319909216919091179055620002f16012600a620004fa565b62000300906298968062000511565b335f908152600160208190526040822092909255600390620003295f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600390935281832080548516600190811790915560075461010090049091168352912080549092161790556200038c3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003c56012600a620004fa565b620003d4906298968062000511565b60405190815260200160405180910390a362000553565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200043f57815f1904821115620004235762000423620003eb565b808516156200043157918102915b93841c939080029062000404565b509250929050565b5f826200045757506001620004f4565b816200046557505f620004f4565b81600181146200047e57600281146200048957620004a9565b6001915050620004f4565b60ff8411156200049d576200049d620003eb565b50506001821b620004f4565b5060208310610133831016604e8410600b8410161715620004ce575081810a620004f4565b620004da8383620003ff565b805f1904821115620004f057620004f0620003eb565b0290505b92915050565b5f6200050a60ff84168362000447565b9392505050565b8082028115828204841417620004f457620004f4620003eb565b5f602082840312156200053c575f80fd5b81516001600160a01b03811681146200050a575f80fd5b61171d80620005615f395ff3fe60806040526004361061013f575f3560e01c80637d1db4a5116100b3578063bf474bed1161006d578063bf474bed1461038e578063c876d0b9146103a3578063c9567bf9146103bc578063dd62ed3e146103d0578063de2aa57d14610414578063ec6c129014610433575f80fd5b80637d1db4a5146102d65780638da5cb5b146102eb5780638f9a55c01461031157806395d89b4114610326578063a9059cbb14610350578063b9d0f1af1461036f575f80fd5b8063313ce56711610104578063313ce567146102125780633bbac5791461022d57806351bc3c851461026457806370a082311461027a578063715018a6146102ae578063751039fc146102c2575f80fd5b806306fdde031461014a578063095ea7b31461018d5780630faee56f146101bc57806318160ddd146101df57806323b872dd146101f3575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600981526814da185c995cd09bdd60ba1b60208201525b6040516101849190611343565b60405180910390f35b348015610198575f80fd5b506101ac6101a73660046113a5565b610447565b6040519015158152602001610184565b3480156101c7575f80fd5b506101d160125481565b604051908152602001610184565b3480156101ea575f80fd5b506101d161045d565b3480156101fe575f80fd5b506101ac61020d3660046113cf565b61047c565b34801561021d575f80fd5b5060405160128152602001610184565b348015610238575f80fd5b506101ac61024736600461140d565b6001600160a01b03165f9081526005602052604090205460ff1690565b34801561026f575f80fd5b506102786104e3565b005b348015610285575f80fd5b506101d161029436600461140d565b6001600160a01b03165f9081526001602052604090205490565b3480156102b9575f80fd5b50610278610539565b3480156102cd575f80fd5b506102786105b3565b3480156102e1575f80fd5b506101d1600f5481565b3480156102f6575f80fd5b505f546040516001600160a01b039091168152602001610184565b34801561031c575f80fd5b506101d160105481565b348015610331575f80fd5b5060408051808201909152600281526129a160f11b6020820152610177565b34801561035b575f80fd5b506101ac61036a3660046113a5565b61066b565b34801561037a575f80fd5b50610278610389366004611428565b610677565b348015610399575f80fd5b506101d160115481565b3480156103ae575f80fd5b506007546101ac9060ff1681565b3480156103c7575f80fd5b506102786106a5565b3480156103db575f80fd5b506101d16103ea36600461143f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041f575f80fd5b5061027861042e366004611428565b610741565b34801561043e575f80fd5b5061027861076f565b5f6104533384846107a7565b5060015b92915050565b5f61046a6012600a61156a565b6104779062989680611578565b905090565b5f6104888484846108ca565b6104d984336104d4856040518060600160405280602881526020016116c0602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610fa2565b6107a7565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b031614610507575f80fd5b305f9081526001602052604090205480156105255761052581610fda565b4780156105355761053581611163565b5050565b5f546001600160a01b0316331461056b5760405162461bcd60e51b81526004016105629061158f565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105dc5760405162461bcd60e51b81526004016105629061158f565b6105e86012600a61156a565b6105f59062989680611578565b600f556106046012600a61156a565b6106119062989680611578565b6010556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61064b6012600a61156a565b6106589062989680611578565b60405190815260200160405180910390a1565b5f6104533384846108ca565b5f546001600160a01b031633146106a05760405162461bcd60e51b81526004016105629061158f565b601255565b5f546001600160a01b031633146106ce5760405162461bcd60e51b81526004016105629061158f565b601454600160a01b900460ff16156107285760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610562565b6014805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b0316331461076a5760405162461bcd60e51b81526004016105629061158f565b601155565b5f546001600160a01b031633146107985760405162461bcd60e51b81526004016105629061158f565b600e805460ff19166001179055565b6001600160a01b0383166108095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610562565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610562565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661092e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610562565b6001600160a01b0382166109905760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610562565b5f81116109f15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610562565b5f80546001600160a01b03858116911614801590610a1c57505f546001600160a01b03848116911614155b15610e65576001600160a01b0384165f9081526005602052604090205460ff16158015610a6157506001600160a01b0383165f9081526005602052604090205460ff16155b610a69575f80fd5b60075460ff1615610b20576013546001600160a01b03848116911614801590610aa057506014546001600160a01b03848116911614155b15610b2057325f908152600660205260409020544311610b0e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610562565b325f9081526006602052604090204390555b6014546001600160a01b038581169116148015610b4b57506013546001600160a01b03848116911614155b8015610b6f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610c8a57600f54821115610bc25760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610562565b60105482610be4856001600160a01b03165f9081526001602052604090205490565b610bee91906115c4565b1115610c3c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610562565b600c54600d541015610c5357823b15610c53575f80fd5b600d8054905f610c62836115d7565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b600e54610cb890606490610cb29060ff16610ca757600854610cab565b600a545b859061119e565b90611223565b6014549091506001600160a01b038481169116148015610ce157506001600160a01b0384163014155b15610dc857600f54821115610d345760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610562565b600e54610d5b90606490610cb29060ff16610d5157600954610cab565b600b54859061119e565b9050600c54600d541180610d8657506001600160a01b0384165f9081526004602052604090205460ff165b610dc85760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b6044820152606401610562565b305f90815260016020526040902054601454600160a81b900460ff16158015610dfe57506014546001600160a01b038581169116145b8015610e135750601454600160b01b900460ff165b8015610e20575060115481115b8015610e2f5750600c54600d54115b15610e6357610e51610e4c84610e4784601254611264565b611264565b610fda565b478015610e6157610e6147611163565b505b505b8015610edd57305f90815260016020526040902054610e849082611278565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed49085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610eff90836112d6565b6001600160a01b0385165f90815260016020526040902055610f42610f2483836112d6565b6001600160a01b0385165f9081526001602052604090205490611278565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f8b85856112d6565b60405190815260200160405180910390a350505050565b5f8184841115610fc55760405162461bcd60e51b81526004016105629190611343565b505f610fd184866115ef565b95945050505050565b6014805460ff60a81b1916600160a81b179055801561115357601454600160a01b900460ff1615611153576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061103857611038611602565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561108f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b39190611616565b816001815181106110c6576110c6611602565b6001600160a01b0392831660209182029290920101526013546110ec91309116846107a7565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111249085905f90869030904290600401611631565b5f604051808303815f87803b15801561113b575f80fd5b505af115801561114d573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610535573d5f803e3d5ffd5b5f825f036111ad57505f610457565b5f6111b88385611578565b9050826111c585836116a0565b1461121c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610562565b9392505050565b5f61121c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611317565b5f818311611272578261121c565b50919050565b5f8061128483856115c4565b90508381101561121c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610562565b5f61121c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fa2565b5f81836113375760405162461bcd60e51b81526004016105629190611343565b505f610fd184866116a0565b5f6020808352835180828501525f5b8181101561136e57858101830151858201604001528201611352565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113a2575f80fd5b50565b5f80604083850312156113b6575f80fd5b82356113c18161138e565b946020939093013593505050565b5f805f606084860312156113e1575f80fd5b83356113ec8161138e565b925060208401356113fc8161138e565b929592945050506040919091013590565b5f6020828403121561141d575f80fd5b813561121c8161138e565b5f60208284031215611438575f80fd5b5035919050565b5f8060408385031215611450575f80fd5b823561145b8161138e565b9150602083013561146b8161138e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156114c457815f19048211156114aa576114aa611476565b808516156114b757918102915b93841c939080029061148f565b509250929050565b5f826114da57506001610457565b816114e657505f610457565b81600181146114fc576002811461150657611522565b6001915050610457565b60ff84111561151757611517611476565b50506001821b610457565b5060208310610133831016604e8410600b8410161715611545575081810a610457565b61154f838361148a565b805f190482111561156257611562611476565b029392505050565b5f61121c60ff8416836114cc565b808202811582820484141761045757610457611476565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561045757610457611476565b5f600182016115e8576115e8611476565b5060010190565b8181038181111561045757610457611476565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611626575f80fd5b815161121c8161138e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561167f5784516001600160a01b03168352938301939183019160010161165a565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826116ba57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204660ffb78fcc3b1c937536ab48ca68e95af1a1af1697b6197ac3b24637b3bbc064736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c80637d1db4a5116100b3578063bf474bed1161006d578063bf474bed1461038e578063c876d0b9146103a3578063c9567bf9146103bc578063dd62ed3e146103d0578063de2aa57d14610414578063ec6c129014610433575f80fd5b80637d1db4a5146102d65780638da5cb5b146102eb5780638f9a55c01461031157806395d89b4114610326578063a9059cbb14610350578063b9d0f1af1461036f575f80fd5b8063313ce56711610104578063313ce567146102125780633bbac5791461022d57806351bc3c851461026457806370a082311461027a578063715018a6146102ae578063751039fc146102c2575f80fd5b806306fdde031461014a578063095ea7b31461018d5780630faee56f146101bc57806318160ddd146101df57806323b872dd146101f3575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600981526814da185c995cd09bdd60ba1b60208201525b6040516101849190611343565b60405180910390f35b348015610198575f80fd5b506101ac6101a73660046113a5565b610447565b6040519015158152602001610184565b3480156101c7575f80fd5b506101d160125481565b604051908152602001610184565b3480156101ea575f80fd5b506101d161045d565b3480156101fe575f80fd5b506101ac61020d3660046113cf565b61047c565b34801561021d575f80fd5b5060405160128152602001610184565b348015610238575f80fd5b506101ac61024736600461140d565b6001600160a01b03165f9081526005602052604090205460ff1690565b34801561026f575f80fd5b506102786104e3565b005b348015610285575f80fd5b506101d161029436600461140d565b6001600160a01b03165f9081526001602052604090205490565b3480156102b9575f80fd5b50610278610539565b3480156102cd575f80fd5b506102786105b3565b3480156102e1575f80fd5b506101d1600f5481565b3480156102f6575f80fd5b505f546040516001600160a01b039091168152602001610184565b34801561031c575f80fd5b506101d160105481565b348015610331575f80fd5b5060408051808201909152600281526129a160f11b6020820152610177565b34801561035b575f80fd5b506101ac61036a3660046113a5565b61066b565b34801561037a575f80fd5b50610278610389366004611428565b610677565b348015610399575f80fd5b506101d160115481565b3480156103ae575f80fd5b506007546101ac9060ff1681565b3480156103c7575f80fd5b506102786106a5565b3480156103db575f80fd5b506101d16103ea36600461143f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561041f575f80fd5b5061027861042e366004611428565b610741565b34801561043e575f80fd5b5061027861076f565b5f6104533384846107a7565b5060015b92915050565b5f61046a6012600a61156a565b6104779062989680611578565b905090565b5f6104888484846108ca565b6104d984336104d4856040518060600160405280602881526020016116c0602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610fa2565b6107a7565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b031614610507575f80fd5b305f9081526001602052604090205480156105255761052581610fda565b4780156105355761053581611163565b5050565b5f546001600160a01b0316331461056b5760405162461bcd60e51b81526004016105629061158f565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105dc5760405162461bcd60e51b81526004016105629061158f565b6105e86012600a61156a565b6105f59062989680611578565b600f556106046012600a61156a565b6106119062989680611578565b6010556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61064b6012600a61156a565b6106589062989680611578565b60405190815260200160405180910390a1565b5f6104533384846108ca565b5f546001600160a01b031633146106a05760405162461bcd60e51b81526004016105629061158f565b601255565b5f546001600160a01b031633146106ce5760405162461bcd60e51b81526004016105629061158f565b601454600160a01b900460ff16156107285760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610562565b6014805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b0316331461076a5760405162461bcd60e51b81526004016105629061158f565b601155565b5f546001600160a01b031633146107985760405162461bcd60e51b81526004016105629061158f565b600e805460ff19166001179055565b6001600160a01b0383166108095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610562565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610562565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661092e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610562565b6001600160a01b0382166109905760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610562565b5f81116109f15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610562565b5f80546001600160a01b03858116911614801590610a1c57505f546001600160a01b03848116911614155b15610e65576001600160a01b0384165f9081526005602052604090205460ff16158015610a6157506001600160a01b0383165f9081526005602052604090205460ff16155b610a69575f80fd5b60075460ff1615610b20576013546001600160a01b03848116911614801590610aa057506014546001600160a01b03848116911614155b15610b2057325f908152600660205260409020544311610b0e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610562565b325f9081526006602052604090204390555b6014546001600160a01b038581169116148015610b4b57506013546001600160a01b03848116911614155b8015610b6f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610c8a57600f54821115610bc25760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610562565b60105482610be4856001600160a01b03165f9081526001602052604090205490565b610bee91906115c4565b1115610c3c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610562565b600c54600d541015610c5357823b15610c53575f80fd5b600d8054905f610c62836115d7565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b600e54610cb890606490610cb29060ff16610ca757600854610cab565b600a545b859061119e565b90611223565b6014549091506001600160a01b038481169116148015610ce157506001600160a01b0384163014155b15610dc857600f54821115610d345760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610562565b600e54610d5b90606490610cb29060ff16610d5157600954610cab565b600b54859061119e565b9050600c54600d541180610d8657506001600160a01b0384165f9081526004602052604090205460ff165b610dc85760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b6044820152606401610562565b305f90815260016020526040902054601454600160a81b900460ff16158015610dfe57506014546001600160a01b038581169116145b8015610e135750601454600160b01b900460ff165b8015610e20575060115481115b8015610e2f5750600c54600d54115b15610e6357610e51610e4c84610e4784601254611264565b611264565b610fda565b478015610e6157610e6147611163565b505b505b8015610edd57305f90815260016020526040902054610e849082611278565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed49085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610eff90836112d6565b6001600160a01b0385165f90815260016020526040902055610f42610f2483836112d6565b6001600160a01b0385165f9081526001602052604090205490611278565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f8b85856112d6565b60405190815260200160405180910390a350505050565b5f8184841115610fc55760405162461bcd60e51b81526004016105629190611343565b505f610fd184866115ef565b95945050505050565b6014805460ff60a81b1916600160a81b179055801561115357601454600160a01b900460ff1615611153576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061103857611038611602565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561108f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b39190611616565b816001815181106110c6576110c6611602565b6001600160a01b0392831660209182029290920101526013546110ec91309116846107a7565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111249085905f90869030904290600401611631565b5f604051808303815f87803b15801561113b575f80fd5b505af115801561114d573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610535573d5f803e3d5ffd5b5f825f036111ad57505f610457565b5f6111b88385611578565b9050826111c585836116a0565b1461121c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610562565b9392505050565b5f61121c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611317565b5f818311611272578261121c565b50919050565b5f8061128483856115c4565b90508381101561121c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610562565b5f61121c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fa2565b5f81836113375760405162461bcd60e51b81526004016105629190611343565b505f610fd184866116a0565b5f6020808352835180828501525f5b8181101561136e57858101830151858201604001528201611352565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113a2575f80fd5b50565b5f80604083850312156113b6575f80fd5b82356113c18161138e565b946020939093013593505050565b5f805f606084860312156113e1575f80fd5b83356113ec8161138e565b925060208401356113fc8161138e565b929592945050506040919091013590565b5f6020828403121561141d575f80fd5b813561121c8161138e565b5f60208284031215611438575f80fd5b5035919050565b5f8060408385031215611450575f80fd5b823561145b8161138e565b9150602083013561146b8161138e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156114c457815f19048211156114aa576114aa611476565b808516156114b757918102915b93841c939080029061148f565b509250929050565b5f826114da57506001610457565b816114e657505f610457565b81600181146114fc576002811461150657611522565b6001915050610457565b60ff84111561151757611517611476565b50506001821b610457565b5060208310610133831016604e8410600b8410161715611545575081810a610457565b61154f838361148a565b805f190482111561156257611562611476565b029392505050565b5f61121c60ff8416836114cc565b808202811582820484141761045757610457611476565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561045757610457611476565b5f600182016115e8576115e8611476565b5060010190565b8181038181111561045757610457611476565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611626575f80fd5b815161121c8161138e565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561167f5784516001600160a01b03168352938301939183019160010161165a565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826116ba57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204660ffb78fcc3b1c937536ab48ca68e95af1a1af1697b6197ac3b24637b3bbc064736f6c63430008140033

Deployed Bytecode Sourcemap

3757:9628:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6083:83;;;;;;;;;;-1:-1:-1;6153:5:0;;;;;;;;;;;;-1:-1:-1;;;6153:5:0;;;;6083:83;;;;;;;:::i;:::-;;;;;;;;6966:186;;;;;;;;;;-1:-1:-1;6966:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6966:186:0;1023:187:1;5057:53:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5057:53:0;1215:177:1;6360:95:0;;;;;;;;;;;;;:::i;7160:446::-;;;;;;;;;;-1:-1:-1;7160:446:0;;;;;:::i;:::-;;:::i;6269:83::-;;;;;;;;;;-1:-1:-1;6269:83:0;;4609:2;2000:36:1;;1988:2;1973:18;6269:83:0;1858:184:1;12507:86:0;;;;;;;;;;-1:-1:-1;12507:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;12578:7:0;12554:4;12578:7;;;:4;:7;;;;;;;;;12507:86;13016:366;;;;;;;;;;;;;:::i;:::-;;6463:119;;;;;;;;;;-1:-1:-1;6463:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6556:18:0;6529:7;6556:18;;;:9;:18;;;;;;;6463:119;2782:148;;;;;;;;;;;;;:::i;11882:201::-;;;;;;;;;;;;;:::i;4797:55::-;;;;;;;;;;;;;;;;2568:79;;;;;;;;;;-1:-1:-1;2606:7:0;2633:6;2568:79;;-1:-1:-1;;;;;2633:6:0;;;2445:51:1;;2433:2;2418:18;2568:79:0;2299:203:1;4881:57:0;;;;;;;;;;;;;;;;6174:87;;;;;;;;;;-1:-1:-1;6246:7:0;;;;;;;;;;;;-1:-1:-1;;;6246:7:0;;;;6174:87;;6590:192;;;;;;;;;;-1:-1:-1;6590:192:0;;;;;:::i;:::-;;:::i;12302:97::-;;;;;;;;;;-1:-1:-1;12302:97:0;;;;;:::i;:::-;;:::i;4967:59::-;;;;;;;;;;;;;;;;4191:40;;;;;;;;;;-1:-1:-1;4191:40:0;;;;;;;;12601:167;;;;;;;;;;;;;:::i;6790:168::-;;;;;;;;;;-1:-1:-1;6790:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6923:18:0;;;6896:7;6923:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6790:168;12185:109;;;;;;;;;;-1:-1:-1;12185:109:0;;;;;:::i;:::-;;:::i;12091:86::-;;;;;;;;;;;;;:::i;6966:186::-;7066:4;7083:39;183:10;7106:7;7115:6;7083:8;:39::i;:::-;-1:-1:-1;7140:4:0;6966:186;;;;;:::o;6360:95::-;6413:7;4666:15;4609:2;4666;:15;:::i;:::-;4653:28;;:10;:28;:::i;:::-;6433:14;;6360:95;:::o;7160:446::-;7292:4;7309:36;7319:6;7327:9;7338:6;7309:9;:36::i;:::-;7356:220;7379:6;183:10;7427:138;7483:6;7427:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7427:19:0;;;;;;:11;:19;;;;;;;;183:10;7427:33;;;;;;;;;;:37;:138::i;:::-;7356:8;:220::i;:::-;-1:-1:-1;7594:4:0;7160:446;;;;;:::o;13016:366::-;13082:10;;;;;-1:-1:-1;;;;;13082:10:0;183;-1:-1:-1;;;;;13066:26:0;;13058:35;;;;;;13145:4;13104:20;6556:18;;;:9;:18;;;;;;13166:16;;13162:79;;13199:30;13216:12;13199:16;:30::i;:::-;13272:21;13308:14;;13304:71;;13339:24;13352:10;13339:12;:24::i;:::-;13047:335;;13016:366::o;2782:148::-;2695:6;;-1:-1:-1;;;;;2695:6:0;183:10;2695:22;2687:67;;;;-1:-1:-1;;;2687:67:0;;;;;;;:::i;:::-;;;;;;;;;2889:1:::1;2873:6:::0;;2852:40:::1;::::0;-1:-1:-1;;;;;2873:6:0;;::::1;::::0;2852:40:::1;::::0;2889:1;;2852:40:::1;2920:1;2903:19:::0;;-1:-1:-1;;;;;;2903:19:0::1;::::0;;2782:148::o;11882:201::-;2695:6;;-1:-1:-1;;;;;2695:6:0;183:10;2695:22;2687:67;;;;-1:-1:-1;;;2687:67:0;;;;;;;:::i;:::-;4666:15:::1;4609:2;4666;:15;:::i;:::-;4653:28;::::0;:10:::1;:28;:::i;:::-;11936:12;:22:::0;4666:15:::1;4609:2;4666;:15;:::i;:::-;4653:28;::::0;:10:::1;:28;:::i;:::-;11969:14;:24:::0;12004:20:::1;:28:::0;;-1:-1:-1;;12004:28:0::1;::::0;;12048:27:::1;4666:15;4609:2;4666;:15;:::i;:::-;4653:28;::::0;:10:::1;:28;:::i;:::-;12048:27;::::0;1361:25:1;;;1349:2;1334:18;12048:27:0::1;;;;;;;11882:201::o:0;6590:192::-;6693:4;6710:42;183:10;6734:9;6745:6;6710:9;:42::i;12302:97::-;2695:6;;-1:-1:-1;;;;;2695:6:0;183:10;2695:22;2687:67;;;;-1:-1:-1;;;2687:67:0;;;;;;;:::i;:::-;12371:11:::1;:20:::0;12302:97::o;12601:167::-;2695:6;;-1:-1:-1;;;;;2695:6:0;183:10;2695:22;2687:67;;;;-1:-1:-1;;;2687:67:0;;;;;;;:::i;:::-;12663:11:::1;::::0;-1:-1:-1;;;12663:11:0;::::1;;;12662:12;12654:48;;;::::0;-1:-1:-1;;;12654:48:0;;5336:2:1;12654:48:0::1;::::0;::::1;5318:21:1::0;5375:2;5355:18;;;5348:30;5414:25;5394:18;;;5387:53;5457:18;;12654:48:0::1;5134:347:1::0;12654:48:0::1;12713:11;:18:::0;;-1:-1:-1;;;;12742:18:0;-1:-1:-1;;;12742:18:0;;;12601:167::o;12185:109::-;2695:6;;-1:-1:-1;;;;;2695:6:0;183:10;2695:22;2687:67;;;;-1:-1:-1;;;2687:67:0;;;;;;;:::i;:::-;12260:17:::1;:26:::0;12185:109::o;12091:86::-;2695:6;;-1:-1:-1;;;;;2695:6:0;183:10;2695:22;2687:67;;;;-1:-1:-1;;;2687:67:0;;;;;;;:::i;:::-;12144:18:::1;:25:::0;;-1:-1:-1;;12144:25:0::1;12165:4;12144:25;::::0;;12091:86::o;7614:335::-;-1:-1:-1;;;;;7707:19:0;;7699:68;;;;-1:-1:-1;;;7699:68:0;;5688:2:1;7699:68:0;;;5670:21:1;5727:2;5707:18;;;5700:30;5766:34;5746:18;;;5739:62;-1:-1:-1;;;5817:18:1;;;5810:34;5861:19;;7699:68:0;5486:400:1;7699:68:0;-1:-1:-1;;;;;7786:21:0;;7778:68;;;;-1:-1:-1;;;7778:68:0;;6093:2:1;7778:68:0;;;6075:21:1;6132:2;6112:18;;;6105:30;6171:34;6151:18;;;6144:62;-1:-1:-1;;;6222:18:1;;;6215:32;6264:19;;7778:68:0;5891:398:1;7778:68:0;-1:-1:-1;;;;;7857:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7909:32;;1361:25:1;;;7909:32:0;;1334:18:1;7909:32:0;;;;;;;7614:335;;;:::o;7957:3185::-;-1:-1:-1;;;;;8045:18:0;;8037:68;;;;-1:-1:-1;;;8037:68:0;;6496:2:1;8037:68:0;;;6478:21:1;6535:2;6515:18;;;6508:30;6574:34;6554:18;;;6547:62;-1:-1:-1;;;6625:18:1;;;6618:35;6670:19;;8037:68:0;6294:401:1;8037:68:0;-1:-1:-1;;;;;8124:16:0;;8116:64;;;;-1:-1:-1;;;8116:64:0;;6902:2:1;8116:64:0;;;6884:21:1;6941:2;6921:18;;;6914:30;6980:34;6960:18;;;6953:62;-1:-1:-1;;;7031:18:1;;;7024:33;7074:19;;8116:64:0;6700:399:1;8116:64:0;8208:1;8199:6;:10;8191:64;;;;-1:-1:-1;;;8191:64:0;;7306:2:1;8191:64:0;;;7288:21:1;7345:2;7325:18;;;7318:30;7384:34;7364:18;;;7357:62;-1:-1:-1;;;7435:18:1;;;7428:39;7484:19;;8191:64:0;7104:405:1;8191:64:0;8266:17;2633:6;;-1:-1:-1;;;;;8302:15:0;;;2633:6;;8302:15;;;;:32;;-1:-1:-1;2606:7:0;2633:6;-1:-1:-1;;;;;8321:13:0;;;2633:6;;8321:13;;8302:32;8298:2473;;;-1:-1:-1;;;;;8360:10:0;;;;;;:4;:10;;;;;;;;8359:11;:24;;;;-1:-1:-1;;;;;;8375:8:0;;;;;;:4;:8;;;;;;;;8374:9;8359:24;8351:33;;;;;;8405:20;;;;8401:485;;;8486:15;;-1:-1:-1;;;;;8472:30:0;;;8486:15;;8472:30;;;;:83;;-1:-1:-1;8541:13:0;;-1:-1:-1;;;;;8527:28:0;;;8541:13;;8527:28;;8472:83;8446:425;;;8661:9;8632:39;;;;:28;:39;;;;;;8674:12;-1:-1:-1;8598:176:0;;;;-1:-1:-1;;;8598:176:0;;7716:2:1;8598:176:0;;;7698:21:1;7755:2;7735:18;;;7728:30;7794:34;7774:18;;;7767:62;-1:-1:-1;;;7845:18:1;;;7838:34;7889:19;;8598:176:0;7514:400:1;8598:176:0;8826:9;8797:39;;;;:28;:39;;;;;8839:12;8797:54;;8446:425;8932:13;;-1:-1:-1;;;;;8924:21:0;;;8932:13;;8924:21;:72;;;;-1:-1:-1;8980:15:0;;-1:-1:-1;;;;;8966:30:0;;;8980:15;;8966:30;;8924:72;:116;;;;-1:-1:-1;;;;;;9018:22:0;;;;;;:18;:22;;;;;;;;9017:23;8924:116;8902:598;;;9093:12;;9083:6;:22;;9075:60;;;;-1:-1:-1;;;9075:60:0;;8121:2:1;9075:60:0;;;8103:21:1;8160:2;8140:18;;;8133:30;-1:-1:-1;;;8179:18:1;;;8172:55;8244:18;;9075:60:0;7919:349:1;9075:60:0;9210:14;;9200:6;9184:13;9194:2;-1:-1:-1;;;;;6556:18:0;6529:7;6556:18;;;:9;:18;;;;;;;6463:119;9184:13;:22;;;;:::i;:::-;:40;;9154:140;;;;-1:-1:-1;;;9154:140:0;;8605:2:1;9154:140:0;;;8587:21:1;8644:2;8624:18;;;8617:30;8683:28;8663:18;;;8656:56;8729:18;;9154:140:0;8403:350:1;9154:140:0;9329:18;;9317:9;;:30;9313:103;;;12944:20;;12992:8;9372:24;;;;;;9434:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;9464:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;9464:20:0;9480:4;9464:20;;;8902:598;9558:18;;9528:109;;9633:3;;9528:82;;9558:18;;9557:52;;9595:14;;9557:52;;;9580:12;;9557:52;9528:6;;:28;:82::i;:::-;:104;;:109::i;:::-;9662:13;;9516:121;;-1:-1:-1;;;;;;9656:19:0;;;9662:13;;9656:19;:44;;;;-1:-1:-1;;;;;;9679:21:0;;9695:4;9679:21;;9656:44;9652:456;;;9739:12;;9729:6;:22;;9721:60;;;;-1:-1:-1;;;9721:60:0;;8121:2:1;9721:60:0;;;8103:21:1;8160:2;8140:18;;;8133:30;-1:-1:-1;;;8179:18:1;;;8172:55;8244:18;;9721:60:0;7919:349:1;9721:60:0;9846:18;;9812:119;;9927:3;;9812:88;;9846:18;;9845:54;;9884:15;;9845:54;;;9868:13;;9812:6;;:32;:88::i;:119::-;9800:131;;9992:18;;9980:9;;:30;:49;;;-1:-1:-1;;;;;;10014:15:0;;;;;;:9;:15;;;;;;;;9980:49;9950:142;;;;-1:-1:-1;;;9950:142:0;;9100:2:1;9950:142:0;;;9082:21:1;9139:2;9119:18;;;9112:30;-1:-1:-1;;;9158:18:1;;;9151:49;9217:18;;9950:142:0;8898:343:1;9950:142:0;10173:4;10124:28;6556:18;;;:9;:18;;;;;;10217:6;;-1:-1:-1;;;10217:6:0;;;;10216:7;:47;;;;-1:-1:-1;10250:13:0;;-1:-1:-1;;;;;10244:19:0;;;10250:13;;10244:19;10216:47;:79;;;;-1:-1:-1;10284:11:0;;-1:-1:-1;;;10284:11:0;;;;10216:79;:140;;;;;10339:17;;10316:20;:40;10216:140;:191;;;;;10389:18;;10377:9;;:30;10216:191;10194:566;;;10442:109;10481:51;10485:6;10493:38;10497:20;10519:11;;10493:3;:38::i;:::-;10481:3;:51::i;:::-;10442:16;:109::i;:::-;10599:21;10643:22;;10639:106;;10690:35;10703:21;10690:12;:35::i;:::-;10423:337;10194:566;8336:2435;8298:2473;10787:13;;10783:172;;10862:4;10844:24;;;;:9;:24;;;;;;:39;;10873:9;10844:28;:39::i;:::-;10835:4;10817:24;;;;:9;:24;;;;;;;:66;;;;10903:40;;-1:-1:-1;;;;;10903:40:0;;;;;;;10933:9;1361:25:1;;1349:2;1334:18;;1215:177;10903:40:0;;;;;;;;10783:172;-1:-1:-1;;;;;10983:15:0;;;;;;:9;:15;;;;;;:27;;11003:6;10983:19;:27::i;:::-;-1:-1:-1;;;;;10965:15:0;;;;;;:9;:15;;;;;:45;11037:40;11055:21;:6;11066:9;11055:10;:21::i;:::-;-1:-1:-1;;;;;11037:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11021:13:0;;;;;;;:9;:13;;;;;:56;;;;11093:41;;;11112:21;:6;11123:9;11112:10;:21::i;:::-;11093:41;;1361:25:1;;;1349:2;1334:18;11093:41:0;;;;;;;8026:3116;7957:3185;;;:::o;1370:224::-;1490:7;1526:12;1518:6;;;;1510:29;;;;-1:-1:-1;;;1510:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1550:9:0;1562:5;1566:1;1562;:5;:::i;:::-;1550:17;1370:224;-1:-1:-1;;;;;1370:224:0:o;11265:609::-;5418:6;:13;;-1:-1:-1;;;;5418:13:0;-1:-1:-1;;;5418:13:0;;;11343:55;;11380:7:::1;11343:55;11413:11;::::0;-1:-1:-1;;;11413:11:0;::::1;;;11408:51:::0;11441:7:::1;11408:51;11493:16;::::0;;11507:1:::1;11493:16:::0;;;;;::::1;::::0;;11469:21:::1;::::0;11493:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11493:16:0::1;11469:40;;11538:4;11520;11525:1;11520:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11520:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11564:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11564:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11520:7;;11564:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11554:4;11559:1;11554:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11554:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11629:15:::1;::::0;11597:62:::1;::::0;11614:4:::1;::::0;11629:15:::1;11647:11:::0;11597:8:::1;:62::i;:::-;11670:15;::::0;:196:::1;::::0;-1:-1:-1;;;11670:196:0;;-1:-1:-1;;;;;11670:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11751:11;;11670:15:::1;::::0;11793:4;;11820::::1;::::0;11840:15:::1;::::0;11670:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11332:542;5442:1;-1:-1:-1::0;5454:6:0;:14;;-1:-1:-1;;;;5454:14:0;;;11265:609::o;12407:92::-;12464:10;;:27;;:10;;;;-1:-1:-1;;;;;12464:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1602:246;1660:7;1684:1;1689;1684:6;1680:47;;-1:-1:-1;1714:1:0;1707:8;;1680:47;1737:9;1749:5;1753:1;1749;:5;:::i;:::-;1737:17;-1:-1:-1;1782:1:0;1773:5;1777:1;1737:17;1773:5;:::i;:::-;:10;1765:56;;;;-1:-1:-1;;;1765:56:0;;11308:2:1;1765:56:0;;;11290:21:1;11347:2;11327:18;;;11320:30;11386:34;11366:18;;;11359:62;-1:-1:-1;;;11437:18:1;;;11430:31;11478:19;;1765:56:0;11106:397:1;1765:56:0;1839:1;1602:246;-1:-1:-1;;;1602:246:0:o;1856:132::-;1914:7;1941:39;1945:1;1948;1941:39;;;;;;;;;;;;;;;;;:3;:39::i;11150:107::-;11207:7;11239:1;11235;:5;11234:15;;11248:1;11234:15;;;-1:-1:-1;11244:1:0;11150:107;-1:-1:-1;11150:107:0:o;1039:179::-;1097:7;;1129:5;1133:1;1129;:5;:::i;:::-;1117:17;;1158:1;1153;:6;;1145:46;;;;-1:-1:-1;;;1145:46:0;;11710:2:1;1145:46:0;;;11692:21:1;11749:2;11729:18;;;11722:30;11788:29;11768:18;;;11761:57;11835:18;;1145:46:0;11508:351:1;1226:136:0;1284:7;1311:43;1315:1;1318;1311:43;;;;;;;;;;;;;;;;;:3;:43::i;1996:223::-;2116:7;2151:12;2144:5;2136:28;;;;-1:-1:-1;;;2136:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2175:9:0;2187:5;2191:1;2187;:5;:::i;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;622:70;567:131;:::o;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;4773:356::-;4975:2;4957:21;;;4994:18;;;4987:30;5053:34;5048:2;5033:18;;5026:62;5120:2;5105:18;;4773:356::o;8273:125::-;8338:9;;;8359:10;;;8356:36;;;8372:18;;:::i;8758:135::-;8797:3;8818:17;;;8815:43;;8838:18;;:::i;:::-;-1:-1:-1;8885:1:1;8874:13;;8758:135::o;9246:128::-;9313:9;;;9334:11;;;9331:37;;;9348:18;;:::i;9511:127::-;9572:10;9567:3;9563:20;9560:1;9553:31;9603:4;9600:1;9593:15;9627:4;9624:1;9617:15;9643:251;9713:6;9766:2;9754:9;9745:7;9741:23;9737:32;9734:52;;;9782:1;9779;9772:12;9734:52;9814:9;9808:16;9833:31;9858:5;9833:31;:::i;9899:980::-;10161:4;10209:3;10198:9;10194:19;10240:6;10229:9;10222:25;10266:2;10304:6;10299:2;10288:9;10284:18;10277:34;10347:3;10342:2;10331:9;10327:18;10320:31;10371:6;10406;10400:13;10437:6;10429;10422:22;10475:3;10464:9;10460:19;10453:26;;10514:2;10506:6;10502:15;10488:29;;10535:1;10545:195;10559:6;10556:1;10553:13;10545:195;;;10624:13;;-1:-1:-1;;;;;10620:39:1;10608:52;;10715:15;;;;10680:12;;;;10656:1;10574:9;10545:195;;;-1:-1:-1;;;;;;;10796:32:1;;;;10791:2;10776:18;;10769:60;-1:-1:-1;;;10860:3:1;10845:19;10838:35;10757:3;9899:980;-1:-1:-1;;;9899:980:1:o;10884:217::-;10924:1;10950;10940:132;;10994:10;10989:3;10985:20;10982:1;10975:31;11029:4;11026:1;11019:15;11057:4;11054:1;11047:15;10940:132;-1:-1:-1;11086:9:1;;10884:217::o

Swarm Source

ipfs://4660ffb78fcc3b1c937536ab48ca68e95af1a1af1697b6197ac3b24637b3bbc0
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.