ETH Price: $2,528.41 (+0.38%)

Token

poco loco egg (pEGG)
 

Overview

Max Total Supply

1,000,000,000 pEGG

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,030,263.094544677 pEGG

Value
$0.00
0x87870f308647f728b52538afc6a8b0002af46600
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:
pocolocoegg

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 2023-08-11
*/

// SPDX-License-Identifier: MIT

/**
tg: https://t.me/PocoLocoEgg
tw: https://twitter.com/pEGGToken
web: http://pocolocoegg.com/
*/

pragma solidity ^0.8.19;

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    address public constant zeroAddress = address(0);

    bool private tradingEnabled = false;
    bool private swapEnabled = false;
    bool private swapping;
    uint256 public swapTokensAtAmount;
    uint256 private maxTaxSwap;

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; //Keep last transfer timestamp temporarily during launch
    bool private transferDelayEnabled = true; //Protect launch from bots

    address public taxWallet;

    struct Taxes {
        uint256 buy;
        uint256 sell;
    }
    Taxes public taxes;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFees;
    mapping(address => bool) private isExcludedMaxTransactionAmount;
    mapping(address => bool) private pairs;

    constructor() ERC20("poco loco egg", "pEGG", 9) {
        uint256 totalSupply = 1000000000 * 10**decimals();
        maxTransactionAmount = totalSupply.mul(2).div(100);
        maxWallet = totalSupply.mul(2).div(100);
        swapTokensAtAmount = totalSupply.mul(1).div(10000);
        maxTaxSwap = totalSupply.mul(12).div(1000);

        taxes = Taxes(20, 30);
        taxWallet = _msgSender();

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(taxWallet, true);

        excludeFromMaxTransactionAmount(owner(), true);
        excludeFromMaxTransactionAmount(address(this), true);
        excludeFromMaxTransactionAmount(deadAddress, true);
        excludeFromMaxTransactionAmount(taxWallet, true);

        _mint(_msgSender(), totalSupply);
    }

    receive() external payable {}

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

    function openTrading() external onlyOwner() {
        require(!tradingEnabled, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        excludeFromMaxTransactionAmount(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        pairs[address(uniswapV2Pair)] = true;
        excludeFromMaxTransactionAmount(address(uniswapV2Pair), true);

        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{value : address(this).balance}(
            address(this),
            balanceOf(address(this)).mul(100 - taxes.buy).div(100),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingEnabled = swapEnabled = true;
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = maxWallet = totalSupply();
        transferDelayEnabled = false;
    }

    function setFees(uint256 buy, uint256 sell) external onlyOwner {
        require(buy + sell <= 99, "Must keep fees at 99% or less");
        taxes = Taxes(buy, sell);
    }

    function excludeFromMaxTransactionAmount(address _address, bool excluded) public onlyOwner {
        isExcludedMaxTransactionAmount[_address] = excluded;
    }

    function excludeFromFees(address _address, bool excluded) public onlyOwner {
        isExcludedFromFees[_address] = excluded;
    }

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

        if (from != owner() && to != owner() && to != zeroAddress && to != deadAddress && !swapping) {
            if (!tradingEnabled) {
                require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active.");
            }

            //if the transfer delay is enabled at launch
            if (transferDelayEnabled) {
                if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (pairs[from] && !isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the max transaction amount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            } else if (pairs[to] && !isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the max transaction amount.");
            } else if (!isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            }
        }

        bool takeFee = !swapping;
        if (isExcludedFromFees[from] || isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        if (takeFee) {
            if (pairs[to] && taxes.sell > 0) {
                fees = amount.mul(taxes.sell).div(100);
            } else if (pairs[from] && taxes.buy > 0) {
                fees = amount.mul(taxes.buy).div(100);
            }
            amount -= fees;
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapTokensAtAmount;
        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !pairs[from] &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]
        ) {
            swapping = true;
            bool success;
            swapTokensForEth(min(amount, min(contractBalance, maxTaxSwap)));
            (success, ) = address(taxWallet).call{value: address(this).balance}("");
            swapping = false;
        }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }

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

    function swapTokensForEth(uint256 tokenAmount) private {
        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 withdrawStuckedBalance(uint256 _mount) external onlyOwner {
        require(address(this).balance >= _mount, "Insufficient balance");
        payable(_msgSender()).transfer(_mount);
    }
}

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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mount","type":"uint256"}],"name":"withdrawStuckedBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805461ffff60a01b19169055600b805460ff191660011790553480156200002c57600080fd5b506040518060400160405280600d81526020016c706f636f206c6f636f2065676760981b815250604051806040016040528060048152602001637045474760e01b81525060098260039081620000839190620004fb565b506004620000928382620004fb565b506005805460ff191660ff9290921691909117905550620000bc9050620000b63390565b6200023e565b6000620000cb60055460ff1690565b620000d890600a620006da565b620000e890633b9aca00620006eb565b9050620001046064620000fd83600262000298565b90620002af565b600e556200011a6064620000fd83600262000298565b600f5562000131612710620000fd83600162000298565b600855620001486103e8620000fd83600c62000298565b600955604080518082019091526014808252601e6020909201829052600c55600d55600b8054610100600160a81b0319163361010090810291909117909155600554620001a2916001600160a01b039104166001620002bd565b620001af306001620002bd565b600b54620001cd9061010090046001600160a01b03166001620002bd565b620001f1620001e960055461010090046001600160a01b031690565b6001620002f2565b620001fe306001620002f2565b6200020d61dead6001620002f2565b600b546200022b9061010090046001600160a01b03166001620002f2565b62000237338262000327565b506200073e565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000620002a68284620006eb565b90505b92915050565b6000620002a6828462000705565b620002c7620003ee565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b620002fc620003ee565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6001600160a01b038216620003835760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b806002600082825462000397919062000728565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03610100909104163314620004505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200037a565b565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200048257607f821691505b602082108103620004a357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200045257600081815260208120601f850160051c81016020861015620004d25750805b601f850160051c820191505b81811015620004f357828155600101620004de565b505050505050565b81516001600160401b0381111562000517576200051762000457565b6200052f816200052884546200046d565b84620004a9565b602080601f8311600181146200056757600084156200054e5750858301515b600019600386901b1c1916600185901b178555620004f3565b600085815260208120601f198616915b82811015620005985788860151825594840194600190910190840162000577565b5085821015620005b75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200061e578160001904821115620006025762000602620005c7565b808516156200061057918102915b93841c9390800290620005e2565b509250929050565b6000826200063757506001620002a9565b816200064657506000620002a9565b81600181146200065f57600281146200066a576200068a565b6001915050620002a9565b60ff8411156200067e576200067e620005c7565b50506001821b620002a9565b5060208310610133831016604e8410600b8410161715620006af575081810a620002a9565b620006bb8383620005dd565b8060001904821115620006d257620006d2620005c7565b029392505050565b6000620002a660ff84168362000626565b8082028115828204841417620002a957620002a9620005c7565b6000826200072357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620002a957620002a9620005c7565b611c96806200074e6000396000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063c02466681161008a578063dd62ed3e11610064578063dd62ed3e1461046a578063e2f45605146104b0578063f8b45b05146104c6578063f98b0adb146104dc57600080fd5b8063c02466681461041f578063c8c8ebe41461043f578063c9567bf91461045557600080fd5b8063715018a61461036d578063728f8eea14610382578063751039fc146103b25780638da5cb5b146103c757806395d89b41146103ea578063a9059cbb146103ff57600080fd5b806323b872dd1161013e5780632dc0562d116101185780632dc0562d146102d0578063313ce567146102f557806349bd5a5e1461031757806370a082311461033757600080fd5b806323b872dd1461027a57806327c8f8351461029a5780632ae2f121146102b057600080fd5b806306fdde03146101915780630930907b146101bc578063095ea7b3146101e95780630b78f9c0146102195780631694505e1461023b57806318160ddd1461025b57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66104fc565b6040516101b39190611928565b60405180910390f35b3480156101c857600080fd5b506101d1600081565b6040516001600160a01b0390911681526020016101b3565b3480156101f557600080fd5b5061020961020436600461198e565b61058e565b60405190151581526020016101b3565b34801561022557600080fd5b506102396102343660046119ba565b6105a8565b005b34801561024757600080fd5b506006546101d1906001600160a01b031681565b34801561026757600080fd5b506002545b6040519081526020016101b3565b34801561028657600080fd5b506102096102953660046119dc565b61062d565b3480156102a657600080fd5b506101d161dead81565b3480156102bc57600080fd5b506102396102cb366004611a2b565b610651565b3480156102dc57600080fd5b50600b546101d19061010090046001600160a01b031681565b34801561030157600080fd5b5060055460405160ff90911681526020016101b3565b34801561032357600080fd5b506007546101d1906001600160a01b031681565b34801561034357600080fd5b5061026c610352366004611a64565b6001600160a01b031660009081526020819052604090205490565b34801561037957600080fd5b50610239610684565b34801561038e57600080fd5b50600c54600d5461039d919082565b604080519283526020830191909152016101b3565b3480156103be57600080fd5b50610239610698565b3480156103d357600080fd5b5060055461010090046001600160a01b03166101d1565b3480156103f657600080fd5b506101a66106b7565b34801561040b57600080fd5b5061020961041a36600461198e565b6106c6565b34801561042b57600080fd5b5061023961043a366004611a2b565b6106d4565b34801561044b57600080fd5b5061026c600e5481565b34801561046157600080fd5b50610239610707565b34801561047657600080fd5b5061026c610485366004611a81565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104bc57600080fd5b5061026c60085481565b3480156104d257600080fd5b5061026c600f5481565b3480156104e857600080fd5b506102396104f7366004611aaf565b610afd565b60606003805461050b90611ac8565b80601f016020809104026020016040519081016040528092919081815260200182805461053790611ac8565b80156105845780601f1061055957610100808354040283529160200191610584565b820191906000526020600020905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b60003361059c818585610b7d565b60019150505b92915050565b6105b0610ca1565b60636105bc8284611b12565b111561060f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064015b60405180910390fd5b60408051808201909152828152602001819052600c91909155600d55565b60003361063b858285610d01565b610646858585610d93565b506001949350505050565b610659610ca1565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b61068c610ca1565b610696600061159c565b565b6106a0610ca1565b600254600f819055600e55600b805460ff19169055565b60606004805461050b90611ac8565b60003361059c818585610d93565b6106dc610ca1565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b61070f610ca1565b600754600160a01b900460ff16156107695760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610606565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561079d816001610651565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108149190611b25565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190611b25565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b9190611b25565b600780546001600160a01b0319166001600160a01b0392831690811782556000908152601260205260409020805460ff191660019081179091559054610952921690610651565b6006546109729030906001600160a01b031661096d60025490565b610b7d565b600654600c546001600160a01b039091169063f305d71990479030906109bf906064906109b9906109a39083611b42565b30600090815260208190526040902054906115f6565b90611609565b6000806109da6005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a42573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a679190611b55565b505060075460065460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae49190611b83565b50506007805461ffff60a01b191661010160a01b179055565b610b05610ca1565b80471015610b4c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610606565b604051339082156108fc029083906000818181858888f19350505050158015610b79573d6000803e3d6000fd5b5050565b6001600160a01b038316610bdf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610606565b6001600160a01b038216610c405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610606565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b036101009091041633146106965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610606565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610d8d5781811015610d805760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610606565b610d8d8484848403610b7d565b50505050565b6001600160a01b038316610df85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b6064820152608401610606565b6001600160a01b038216610e5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b6064820152608401610606565b60008111610ec45760405162461bcd60e51b815260206004820152603160248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b6064820152608401610606565b6005546001600160a01b038481166101009092041614801590610efa57506005546001600160a01b038381166101009092041614155b8015610f0e57506001600160a01b03821615155b8015610f2557506001600160a01b03821661dead14155b8015610f3b5750600754600160b01b900460ff16155b1561132457600754600160a01b900460ff16610fd5576001600160a01b03831660009081526010602052604090205460ff1680610f9057506001600160a01b03821660009081526010602052604090205460ff165b610fd55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610606565b600b5460ff16156110ad576005546001600160a01b03838116610100909204161480159061101157506006546001600160a01b03838116911614155b801561102b57506007546001600160a01b03838116911614155b156110ad57326000908152600a6020526040902054431161109a5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610606565b326000908152600a602052604090204390555b6001600160a01b03831660009081526012602052604090205460ff1680156110ee57506001600160a01b03821660009081526011602052604090205460ff16155b156111db57600e5481111561116b5760405162461bcd60e51b815260206004820152603760248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178207472616e73616374696f6e20616d6f756e742e0000000000000000006064820152608401610606565b600f546001600160a01b0383166000908152602081905260409020546111919083611b12565b11156111d65760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b6044820152606401610606565b611324565b6001600160a01b03821660009081526012602052604090205460ff16801561121c57506001600160a01b03831660009081526011602052604090205460ff16155b1561129957600e548111156111d65760405162461bcd60e51b815260206004820152603860248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178207472616e73616374696f6e20616d6f756e742e00000000000000006064820152608401610606565b6001600160a01b03821660009081526011602052604090205460ff1661132457600f546001600160a01b0383166000908152602081905260409020546112df9083611b12565b11156113245760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b6044820152606401610606565b6007546001600160a01b03841660009081526010602052604090205460ff600160b01b90920482161591168061137257506001600160a01b03831660009081526010602052604090205460ff165b1561137b575060005b60008115611420576001600160a01b03841660009081526012602052604090205460ff1680156113ac5750600d5415155b156113cd57600d546113c6906064906109b99086906115f6565b9050611413565b6001600160a01b03851660009081526012602052604090205460ff1680156113f65750600c5415155b1561141357600c54611410906064906109b99086906115f6565b90505b61141d8184611b42565b92505b306000908152602081905260409020546008548110801590819061144d5750600754600160a81b900460ff165b80156114635750600754600160b01b900460ff16155b801561148857506001600160a01b03871660009081526012602052604090205460ff16155b80156114ad57506001600160a01b03871660009081526010602052604090205460ff16155b80156114d257506001600160a01b03861660009081526010602052604090205460ff16155b15611577576007805460ff60b01b1916600160b01b17905560095460009061150f9061150a908890611505908790611615565b611615565b61162a565b600b546040516101009091046001600160a01b0316904790600081818185875af1925050503d8060008114611560576040519150601f19603f3d011682016040523d82523d6000602084013e611565565b606091505b50506007805460ff60b01b1916905550505b821561158857611588873085611784565b611593878787611784565b50505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006116028284611ba0565b9392505050565b60006116028284611bb7565b60008183116116245782611602565b50919050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061165f5761165f611bd9565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc9190611b25565b816001815181106116ef576116ef611bd9565b6001600160a01b0392831660209182029290920101526006546117159130911684610b7d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061174e908590600090869030904290600401611bef565b600060405180830381600087803b15801561176857600080fd5b505af115801561177c573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166117e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610606565b6001600160a01b03821661184a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610606565b6001600160a01b038316600090815260208190526040902054818110156118c25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610606565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d8d565b600060208083528351808285015260005b8181101561195557858101830151858201604001528201611939565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461198b57600080fd5b50565b600080604083850312156119a157600080fd5b82356119ac81611976565b946020939093013593505050565b600080604083850312156119cd57600080fd5b50508035926020909101359150565b6000806000606084860312156119f157600080fd5b83356119fc81611976565b92506020840135611a0c81611976565b929592945050506040919091013590565b801515811461198b57600080fd5b60008060408385031215611a3e57600080fd5b8235611a4981611976565b91506020830135611a5981611a1d565b809150509250929050565b600060208284031215611a7657600080fd5b813561160281611976565b60008060408385031215611a9457600080fd5b8235611a9f81611976565b91506020830135611a5981611976565b600060208284031215611ac157600080fd5b5035919050565b600181811c90821680611adc57607f821691505b60208210810361162457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105a2576105a2611afc565b600060208284031215611b3757600080fd5b815161160281611976565b818103818111156105a2576105a2611afc565b600080600060608486031215611b6a57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b9557600080fd5b815161160281611a1d565b80820281158282048414176105a2576105a2611afc565b600082611bd457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c3f5784516001600160a01b031683529383019391830191600101611c1a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220002d192b4551a1eb919209217d77c757f98423c58a3b11d84e8ab8e4dce1722b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063715018a6116100d1578063c02466681161008a578063dd62ed3e11610064578063dd62ed3e1461046a578063e2f45605146104b0578063f8b45b05146104c6578063f98b0adb146104dc57600080fd5b8063c02466681461041f578063c8c8ebe41461043f578063c9567bf91461045557600080fd5b8063715018a61461036d578063728f8eea14610382578063751039fc146103b25780638da5cb5b146103c757806395d89b41146103ea578063a9059cbb146103ff57600080fd5b806323b872dd1161013e5780632dc0562d116101185780632dc0562d146102d0578063313ce567146102f557806349bd5a5e1461031757806370a082311461033757600080fd5b806323b872dd1461027a57806327c8f8351461029a5780632ae2f121146102b057600080fd5b806306fdde03146101915780630930907b146101bc578063095ea7b3146101e95780630b78f9c0146102195780631694505e1461023b57806318160ddd1461025b57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66104fc565b6040516101b39190611928565b60405180910390f35b3480156101c857600080fd5b506101d1600081565b6040516001600160a01b0390911681526020016101b3565b3480156101f557600080fd5b5061020961020436600461198e565b61058e565b60405190151581526020016101b3565b34801561022557600080fd5b506102396102343660046119ba565b6105a8565b005b34801561024757600080fd5b506006546101d1906001600160a01b031681565b34801561026757600080fd5b506002545b6040519081526020016101b3565b34801561028657600080fd5b506102096102953660046119dc565b61062d565b3480156102a657600080fd5b506101d161dead81565b3480156102bc57600080fd5b506102396102cb366004611a2b565b610651565b3480156102dc57600080fd5b50600b546101d19061010090046001600160a01b031681565b34801561030157600080fd5b5060055460405160ff90911681526020016101b3565b34801561032357600080fd5b506007546101d1906001600160a01b031681565b34801561034357600080fd5b5061026c610352366004611a64565b6001600160a01b031660009081526020819052604090205490565b34801561037957600080fd5b50610239610684565b34801561038e57600080fd5b50600c54600d5461039d919082565b604080519283526020830191909152016101b3565b3480156103be57600080fd5b50610239610698565b3480156103d357600080fd5b5060055461010090046001600160a01b03166101d1565b3480156103f657600080fd5b506101a66106b7565b34801561040b57600080fd5b5061020961041a36600461198e565b6106c6565b34801561042b57600080fd5b5061023961043a366004611a2b565b6106d4565b34801561044b57600080fd5b5061026c600e5481565b34801561046157600080fd5b50610239610707565b34801561047657600080fd5b5061026c610485366004611a81565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104bc57600080fd5b5061026c60085481565b3480156104d257600080fd5b5061026c600f5481565b3480156104e857600080fd5b506102396104f7366004611aaf565b610afd565b60606003805461050b90611ac8565b80601f016020809104026020016040519081016040528092919081815260200182805461053790611ac8565b80156105845780601f1061055957610100808354040283529160200191610584565b820191906000526020600020905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b60003361059c818585610b7d565b60019150505b92915050565b6105b0610ca1565b60636105bc8284611b12565b111561060f5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064015b60405180910390fd5b60408051808201909152828152602001819052600c91909155600d55565b60003361063b858285610d01565b610646858585610d93565b506001949350505050565b610659610ca1565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b61068c610ca1565b610696600061159c565b565b6106a0610ca1565b600254600f819055600e55600b805460ff19169055565b60606004805461050b90611ac8565b60003361059c818585610d93565b6106dc610ca1565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b61070f610ca1565b600754600160a01b900460ff16156107695760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610606565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561079d816001610651565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108149190611b25565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190611b25565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b9190611b25565b600780546001600160a01b0319166001600160a01b0392831690811782556000908152601260205260409020805460ff191660019081179091559054610952921690610651565b6006546109729030906001600160a01b031661096d60025490565b610b7d565b600654600c546001600160a01b039091169063f305d71990479030906109bf906064906109b9906109a39083611b42565b30600090815260208190526040902054906115f6565b90611609565b6000806109da6005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a42573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a679190611b55565b505060075460065460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae49190611b83565b50506007805461ffff60a01b191661010160a01b179055565b610b05610ca1565b80471015610b4c5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610606565b604051339082156108fc029083906000818181858888f19350505050158015610b79573d6000803e3d6000fd5b5050565b6001600160a01b038316610bdf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610606565b6001600160a01b038216610c405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610606565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b036101009091041633146106965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610606565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610d8d5781811015610d805760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610606565b610d8d8484848403610b7d565b50505050565b6001600160a01b038316610df85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b6064820152608401610606565b6001600160a01b038216610e5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b6064820152608401610606565b60008111610ec45760405162461bcd60e51b815260206004820152603160248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b6064820152608401610606565b6005546001600160a01b038481166101009092041614801590610efa57506005546001600160a01b038381166101009092041614155b8015610f0e57506001600160a01b03821615155b8015610f2557506001600160a01b03821661dead14155b8015610f3b5750600754600160b01b900460ff16155b1561132457600754600160a01b900460ff16610fd5576001600160a01b03831660009081526010602052604090205460ff1680610f9057506001600160a01b03821660009081526010602052604090205460ff165b610fd55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610606565b600b5460ff16156110ad576005546001600160a01b03838116610100909204161480159061101157506006546001600160a01b03838116911614155b801561102b57506007546001600160a01b03838116911614155b156110ad57326000908152600a6020526040902054431161109a5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610606565b326000908152600a602052604090204390555b6001600160a01b03831660009081526012602052604090205460ff1680156110ee57506001600160a01b03821660009081526011602052604090205460ff16155b156111db57600e5481111561116b5760405162461bcd60e51b815260206004820152603760248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178207472616e73616374696f6e20616d6f756e742e0000000000000000006064820152608401610606565b600f546001600160a01b0383166000908152602081905260409020546111919083611b12565b11156111d65760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b6044820152606401610606565b611324565b6001600160a01b03821660009081526012602052604090205460ff16801561121c57506001600160a01b03831660009081526011602052604090205460ff16155b1561129957600e548111156111d65760405162461bcd60e51b815260206004820152603860248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178207472616e73616374696f6e20616d6f756e742e00000000000000006064820152608401610606565b6001600160a01b03821660009081526011602052604090205460ff1661132457600f546001600160a01b0383166000908152602081905260409020546112df9083611b12565b11156113245760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b6044820152606401610606565b6007546001600160a01b03841660009081526010602052604090205460ff600160b01b90920482161591168061137257506001600160a01b03831660009081526010602052604090205460ff165b1561137b575060005b60008115611420576001600160a01b03841660009081526012602052604090205460ff1680156113ac5750600d5415155b156113cd57600d546113c6906064906109b99086906115f6565b9050611413565b6001600160a01b03851660009081526012602052604090205460ff1680156113f65750600c5415155b1561141357600c54611410906064906109b99086906115f6565b90505b61141d8184611b42565b92505b306000908152602081905260409020546008548110801590819061144d5750600754600160a81b900460ff165b80156114635750600754600160b01b900460ff16155b801561148857506001600160a01b03871660009081526012602052604090205460ff16155b80156114ad57506001600160a01b03871660009081526010602052604090205460ff16155b80156114d257506001600160a01b03861660009081526010602052604090205460ff16155b15611577576007805460ff60b01b1916600160b01b17905560095460009061150f9061150a908890611505908790611615565b611615565b61162a565b600b546040516101009091046001600160a01b0316904790600081818185875af1925050503d8060008114611560576040519150601f19603f3d011682016040523d82523d6000602084013e611565565b606091505b50506007805460ff60b01b1916905550505b821561158857611588873085611784565b611593878787611784565b50505050505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006116028284611ba0565b9392505050565b60006116028284611bb7565b60008183116116245782611602565b50919050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061165f5761165f611bd9565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dc9190611b25565b816001815181106116ef576116ef611bd9565b6001600160a01b0392831660209182029290920101526006546117159130911684610b7d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061174e908590600090869030904290600401611bef565b600060405180830381600087803b15801561176857600080fd5b505af115801561177c573d6000803e3d6000fd5b505050505050565b6001600160a01b0383166117e85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610606565b6001600160a01b03821661184a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610606565b6001600160a01b038316600090815260208190526040902054818110156118c25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610606565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d8d565b600060208083528351808285015260005b8181101561195557858101830151858201604001528201611939565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461198b57600080fd5b50565b600080604083850312156119a157600080fd5b82356119ac81611976565b946020939093013593505050565b600080604083850312156119cd57600080fd5b50508035926020909101359150565b6000806000606084860312156119f157600080fd5b83356119fc81611976565b92506020840135611a0c81611976565b929592945050506040919091013590565b801515811461198b57600080fd5b60008060408385031215611a3e57600080fd5b8235611a4981611976565b91506020830135611a5981611a1d565b809150509250929050565b600060208284031215611a7657600080fd5b813561160281611976565b60008060408385031215611a9457600080fd5b8235611a9f81611976565b91506020830135611a5981611976565b600060208284031215611ac157600080fd5b5035919050565b600181811c90821680611adc57607f821691505b60208210810361162457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105a2576105a2611afc565b600060208284031215611b3757600080fd5b815161160281611976565b818103818111156105a2576105a2611afc565b600080600060608486031215611b6a57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b9557600080fd5b815161160281611a1d565b80820281158282048414176105a2576105a2611afc565b600082611bd457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c3f5784516001600160a01b031683529383019391830191600101611c1a565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220002d192b4551a1eb919209217d77c757f98423c58a3b11d84e8ab8e4dce1722b64736f6c63430008130033

Deployed Bytecode Sourcemap

7413:7393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2872:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7637:48;;;;;;;;;;;;7683:1;7637:48;;;;;-1:-1:-1;;;;;731:32:1;;;713:51;;701:2;686:18;7637:48:0;567:203:1;3811:201:0;;;;;;;;;;-1:-1:-1;3811:201:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;3811:201:0;1231:187:1;10729:175:0;;;;;;;;;;-1:-1:-1;10729:175:0;;;;;:::i;:::-;;:::i;:::-;;7494:41;;;;;;;;;;-1:-1:-1;7494:41:0;;;;-1:-1:-1;;;;;7494:41:0;;;3200:108;;;;;;;;;;-1:-1:-1;3288:12:0;;3200:108;;;2056:25:1;;;2044:2;2029:18;3200:108:0;1910:177:1;4020:261:0;;;;;;;;;;-1:-1:-1;4020:261:0;;;;;:::i;:::-;;:::i;7577:53::-;;;;;;;;;;;;7623:6;7577:53;;10912:161;;;;;;;;;;-1:-1:-1;10912:161:0;;;;;:::i;:::-;;:::i;8137:24::-;;;;;;;;;;-1:-1:-1;8137:24:0;;;;;;;-1:-1:-1;;;;;8137:24:0;;;3092:100;;;;;;;;;;-1:-1:-1;3175:9:0;;3092:100;;3175:9;;;;3205:36:1;;3193:2;3178:18;3092:100:0;3063:184:1;7542:28:0;;;;;;;;;;-1:-1:-1;7542:28:0;;;;-1:-1:-1;;;;;7542:28:0;;;3316:127;;;;;;;;;;-1:-1:-1;3316:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3417:18:0;3390:7;3417:18;;;;;;;;;;;;3316:127;1196:103;;;;;;;;;;;;;:::i;8242:18::-;;;;;;;;;;-1:-1:-1;8242:18:0;;;;;;;;;;;;;3678:25:1;;;3734:2;3719:18;;3712:34;;;;3651:18;8242::0;3504:248:1;10572:149:0;;;;;;;;;;;;;:::i;961:87::-;;;;;;;;;;-1:-1:-1;1034:6:0;;;;;-1:-1:-1;;;;;1034:6:0;961:87;;2980:104;;;;;;;;;;;;;:::i;3451:193::-;;;;;;;;;;-1:-1:-1;3451:193:0;;;;;:::i;:::-;;:::i;11081:133::-;;;;;;;;;;-1:-1:-1;11081:133:0;;;;;:::i;:::-;;:::i;8269:35::-;;;;;;;;;;;;;;;;9507:1057;;;;;;;;;;;;;:::i;3652:151::-;;;;;;;;;;-1:-1:-1;3652:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3768:18:0;;;3741:7;3768:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3652:151;7803:33;;;;;;;;;;;;;;;;8311:24;;;;;;;;;;;;;;;;14604:199;;;;;;;;;;-1:-1:-1;14604:199:0;;;;;:::i;:::-;;:::i;2872:100::-;2926:13;2959:5;2952:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2872:100;:::o;3811:201::-;3894:4;623:10;3950:32;623:10;3966:7;3975:6;3950:8;:32::i;:::-;4000:4;3993:11;;;3811:201;;;;;:::o;10729:175::-;920:13;:11;:13::i;:::-;10825:2:::1;10811:10;10817:4:::0;10811:3;:10:::1;:::i;:::-;:16;;10803:58;;;::::0;-1:-1:-1;;;10803:58:0;;5184:2:1;10803:58:0::1;::::0;::::1;5166:21:1::0;5223:2;5203:18;;;5196:30;5262:31;5242:18;;;5235:59;5311:18;;10803:58:0::1;;;;;;;;;10880:16;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;10872:5:::1;:24:::0;;;;;;10729:175::o;4020:261::-;4117:4;623:10;4175:38;4191:4;623:10;4206:6;4175:15;:38::i;:::-;4224:27;4234:4;4240:2;4244:6;4224:9;:27::i;:::-;-1:-1:-1;4269:4:0;;4020:261;-1:-1:-1;;;;4020:261:0:o;10912:161::-;920:13;:11;:13::i;:::-;-1:-1:-1;;;;;11014:40:0;;;::::1;;::::0;;;:30:::1;:40;::::0;;;;:51;;-1:-1:-1;;11014:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10912:161::o;1196:103::-;920:13;:11;:13::i;:::-;1261:30:::1;1288:1;1261:18;:30::i;:::-;1196:103::o:0;10572:149::-;920:13;:11;:13::i;:::-;3288:12;;10649:9:::1;:25:::0;;;10626:20:::1;:48:::0;10685:20:::1;:28:::0;;-1:-1:-1;;10685:28:0::1;::::0;;10572:149::o;2980:104::-;3036:13;3069:7;3062:14;;;;;:::i;3451:193::-;3530:4;623:10;3586:28;623:10;3603:2;3607:6;3586:9;:28::i;11081:133::-;920:13;:11;:13::i;:::-;-1:-1:-1;;;;;11167:28:0;;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:39;;-1:-1:-1;;11167:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11081:133::o;9507:1057::-;920:13;:11;:13::i;:::-;9571:14:::1;::::0;-1:-1:-1;;;9571:14:0;::::1;;;9570:15;9562:51;;;::::0;-1:-1:-1;;;9562:51:0;;5542:2:1;9562:51:0::1;::::0;::::1;5524:21:1::0;5581:2;5561:18;;;5554:30;5620:25;5600:18;;;5593:53;5663:18;;9562:51:0::1;5340:347:1::0;9562:51:0::1;9735:15;:34:::0;;-1:-1:-1;;;;;;9735:34:0::1;9681:42;9735:34:::0;;::::1;::::0;;;9780:64:::1;9681:42:::0;9735:34;9780:31:::1;:64::i;:::-;9891:15;;;;;;;;;-1:-1:-1::0;;;;;9891:15:0::1;-1:-1:-1::0;;;;;9891:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9873:55:0::1;;9937:4;9944:15;;;;;;;;;-1:-1:-1::0;;;;;9944:15:0::1;-1:-1:-1::0;;;;;9944:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9873:94;::::0;-1:-1:-1;;;;;;9873:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6178:15:1;;;9873:94:0::1;::::0;::::1;6160:34:1::0;6230:15;;6210:18;;;6203:43;6095:18;;9873:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9857:13;:110:::0;;-1:-1:-1;;;;;;9857:110:0::1;-1:-1:-1::0;;;;;9857:110:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;9978:29:0;;;:5:::1;:29;::::0;;;;:36;;-1:-1:-1;;9978:36:0::1;-1:-1:-1::0;9978:36:0;;::::1;::::0;;;10065:13;;10025:61:::1;::::0;10065:13:::1;::::0;10025:31:::1;:61::i;:::-;10131:15;::::0;10099:64:::1;::::0;10116:4:::1;::::0;-1:-1:-1;;;;;10131:15:0::1;10149:13;3288:12:::0;;;3200:108;10149:13:::1;10099:8;:64::i;:::-;10174:15;::::0;10314:5:::1;:9:::0;-1:-1:-1;;;;;10174:15:0;;::::1;::::0;:31:::1;::::0;10214:21:::1;::::0;10259:4:::1;::::0;10279:54:::1;::::0;10329:3:::1;::::0;10279:45:::1;::::0;10308:15:::1;::::0;10329:3;10308:15:::1;:::i;:::-;10297:4;3390:7:::0;3417:18;;;;;;;;;;;10279:28;::::1;:45::i;:::-;:49:::0;::::1;:54::i;:::-;10348:1;10364::::0;10380:7:::1;1034:6:::0;;-1:-1:-1;;;;;1034:6:0;;;;;;961:87;10380:7:::1;10174:254;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10174:254:0;;;-1:-1:-1;;;;;6749:15:1;;;10174:254:0::1;::::0;::::1;6731:34:1::0;6781:18;;;6774:34;;;;6824:18;;;6817:34;;;;6867:18;;;6860:34;6931:15;;;6910:19;;;6903:44;10402:15:0::1;6963:19:1::0;;;6956:35;6665:19;;10174:254:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10446:13:0::1;::::0;10477:15:::1;::::0;10439:71:::1;::::0;-1:-1:-1;;;10439:71:0;;-1:-1:-1;;;;;10477:15:0;;::::1;10439:71;::::0;::::1;7487:51:1::0;-1:-1:-1;;7554:18:1;;;7547:34;10446:13:0;::::1;::::0;-1:-1:-1;10439:29:0::1;::::0;7460:18:1;;10439:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10538:11:0::1;:18:::0;;-1:-1:-1;;;;10521:35:0;-1:-1:-1;;;10521:35:0;;;9507:1057::o;14604:199::-;920:13;:11;:13::i;:::-;14715:6:::1;14690:21;:31;;14682:64;;;::::0;-1:-1:-1;;;14682:64:0;;8044:2:1;14682:64:0::1;::::0;::::1;8026:21:1::0;8083:2;8063:18;;;8056:30;-1:-1:-1;;;8102:18:1;;;8095:50;8162:18;;14682:64:0::1;7842:344:1::0;14682:64:0::1;14757:38;::::0;623:10;;14757:38;::::1;;;::::0;14788:6;;14757:38:::1;::::0;;;14788:6;623:10;14757:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14604:199:::0;:::o;5659:346::-;-1:-1:-1;;;;;5761:19:0;;5753:68;;;;-1:-1:-1;;;5753:68:0;;8393:2:1;5753:68:0;;;8375:21:1;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;-1:-1:-1;;;8522:18:1;;;8515:34;8566:19;;5753:68:0;8191:400:1;5753:68:0;-1:-1:-1;;;;;5840:21:0;;5832:68;;;;-1:-1:-1;;;5832:68:0;;8798:2:1;5832:68:0;;;8780:21:1;8837:2;8817:18;;;8810:30;8876:34;8856:18;;;8849:62;-1:-1:-1;;;8927:18:1;;;8920:32;8969:19;;5832:68:0;8596:398:1;5832:68:0;-1:-1:-1;;;;;5913:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5965:32;;2056:25:1;;;5965:32:0;;2029:18:1;5965:32:0;;;;;;;5659:346;;;:::o;1056:132::-;1034:6;;-1:-1:-1;;;;;1034:6:0;;;;;623:10;1120:23;1112:68;;;;-1:-1:-1;;;1112:68:0;;9201:2:1;1112:68:0;;;9183:21:1;;;9220:18;;;9213:30;9279:34;9259:18;;;9252:62;9331:18;;1112:68:0;8999:356:1;6013:419:0;-1:-1:-1;;;;;3768:18:0;;;6114:24;3768:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6181:37:0;;6177:248;;6263:6;6243:16;:26;;6235:68;;;;-1:-1:-1;;;6235:68:0;;9562:2:1;6235:68:0;;;9544:21:1;9601:2;9581:18;;;9574:30;9640:31;9620:18;;;9613:59;9689:18;;6235:68:0;9360:353:1;6235:68:0;6347:51;6356:5;6363:7;6391:6;6372:16;:25;6347:8;:51::i;:::-;6103:329;6013:419;;;:::o;11222:2893::-;-1:-1:-1;;;;;11320:19:0;;11312:70;;;;-1:-1:-1;;;11312:70:0;;9920:2:1;11312:70:0;;;9902:21:1;9959:2;9939:18;;;9932:30;9998:34;9978:18;;;9971:62;-1:-1:-1;;;10049:18:1;;;10042:36;10095:19;;11312:70:0;9718:402:1;11312:70:0;-1:-1:-1;;;;;11401:17:0;;11393:66;;;;-1:-1:-1;;;11393:66:0;;10327:2:1;11393:66:0;;;10309:21:1;10366:2;10346:18;;;10339:30;10405:34;10385:18;;;10378:62;-1:-1:-1;;;10456:18:1;;;10449:34;10500:19;;11393:66:0;10125:400:1;11393:66:0;11487:1;11478:6;:10;11470:72;;;;-1:-1:-1;;;11470:72:0;;10732:2:1;11470:72:0;;;10714:21:1;10771:2;10751:18;;;10744:30;10810:34;10790:18;;;10783:62;-1:-1:-1;;;10861:18:1;;;10854:47;10918:19;;11470:72:0;10530:413:1;11470:72:0;1034:6;;-1:-1:-1;;;;;11559:15:0;;;1034:6;;;;;11559:15;;;;:32;;-1:-1:-1;1034:6:0;;-1:-1:-1;;;;;11578:13:0;;;1034:6;;;;;11578:13;;11559:32;:53;;;;-1:-1:-1;;;;;;11595:17:0;;;;11559:53;:74;;;;-1:-1:-1;;;;;;11616:17:0;;7623:6;11616:17;;11559:74;:87;;;;-1:-1:-1;11638:8:0;;-1:-1:-1;;;11638:8:0;;;;11637:9;11559:87;11555:1340;;;11668:14;;-1:-1:-1;;;11668:14:0;;;;11663:141;;-1:-1:-1;;;;;11711:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;11739:22:0;;;;;;:18;:22;;;;;;;;11711:50;11703:85;;;;-1:-1:-1;;;11703:85:0;;11150:2:1;11703:85:0;;;11132:21:1;11189:2;11169:18;;;11162:30;-1:-1:-1;;;11208:18:1;;;11201:52;11270:18;;11703:85:0;10948:346:1;11703:85:0;11882:20;;;;11878:368;;;1034:6;;-1:-1:-1;;;;;11927:13:0;;;1034:6;;;;;11927:13;;;;:47;;-1:-1:-1;11958:15:0;;-1:-1:-1;;;;;11944:30:0;;;11958:15;;11944:30;;11927:47;:79;;;;-1:-1:-1;11992:13:0;;-1:-1:-1;;;;;11978:28:0;;;11992:13;;11978:28;;11927:79;11923:308;;;12068:9;12039:39;;;;:28;:39;;;;;;12081:12;-1:-1:-1;12031:103:0;;;;-1:-1:-1;;;12031:103:0;;11501:2:1;12031:103:0;;;11483:21:1;11540:2;11520:18;;;11513:30;11579:34;11559:18;;;11552:62;-1:-1:-1;;;11630:18:1;;;11623:34;11674:19;;12031:103:0;11299:400:1;12031:103:0;12186:9;12157:39;;;;:28;:39;;;;;12199:12;12157:54;;11923:308;-1:-1:-1;;;;;12266:11:0;;;;;;:5;:11;;;;;;;;:50;;;;-1:-1:-1;;;;;;12282:34:0;;;;;;:30;:34;;;;;;;;12281:35;12266:50;12262:622;;;12355:20;;12345:6;:30;;12337:98;;;;-1:-1:-1;;;12337:98:0;;11906:2:1;12337:98:0;;;11888:21:1;11945:2;11925:18;;;11918:30;11984:34;11964:18;;;11957:62;12055:25;12035:18;;;12028:53;12098:19;;12337:98:0;11704:419:1;12337:98:0;12488:9;;-1:-1:-1;;;;;3417:18:0;;3390:7;3417:18;;;;;;;;;;;12462:22;;:6;:22;:::i;:::-;:35;;12454:68;;;;-1:-1:-1;;;12454:68:0;;12330:2:1;12454:68:0;;;12312:21:1;12369:2;12349:18;;;12342:30;-1:-1:-1;;;12388:18:1;;;12381:50;12448:18;;12454:68:0;12128:344:1;12454:68:0;12262:622;;;-1:-1:-1;;;;;12548:9:0;;;;;;:5;:9;;;;;;;;:50;;;;-1:-1:-1;;;;;;12562:36:0;;;;;;:30;:36;;;;;;;;12561:37;12548:50;12544:340;;;12637:20;;12627:6;:30;;12619:99;;;;-1:-1:-1;;;12619:99:0;;12679:2:1;12619:99:0;;;12661:21:1;12718:2;12698:18;;;12691:30;12757:34;12737:18;;;12730:62;12828:26;12808:18;;;12801:54;12872:19;;12619:99:0;12477:420:1;12544:340:0;-1:-1:-1;;;;;12745:34:0;;;;;;:30;:34;;;;;;;;12740:144;;12834:9;;-1:-1:-1;;;;;3417:18:0;;3390:7;3417:18;;;;;;;;;;;12808:22;;:6;:22;:::i;:::-;:35;;12800:68;;;;-1:-1:-1;;;12800:68:0;;12330:2:1;12800:68:0;;;12312:21:1;12369:2;12349:18;;;12342:30;-1:-1:-1;;;12388:18:1;;;12381:50;12448:18;;12800:68:0;12128:344:1;12800:68:0;12923:8;;-1:-1:-1;;;;;12946:24:0;;12907:12;12946:24;;;:18;:24;;;;;;12923:8;-1:-1:-1;;;12923:8:0;;;;;12922:9;;12946:24;;:50;;-1:-1:-1;;;;;;12974:22:0;;;;;;:18;:22;;;;;;;;12946:50;12942:98;;;-1:-1:-1;13023:5:0;12942:98;13052:12;13083:7;13079:286;;;-1:-1:-1;;;;;13111:9:0;;;;;;:5;:9;;;;;;;;:27;;;;-1:-1:-1;13124:10:0;;:14;;13111:27;13107:218;;;13177:10;;13166:31;;13193:3;;13166:22;;:6;;:10;:22::i;:31::-;13159:38;;13107:218;;;-1:-1:-1;;;;;13223:11:0;;;;;;:5;:11;;;;;;;;:28;;;;-1:-1:-1;13238:5:0;:9;:13;;13223:28;13219:106;;;13290:5;:9;13279:30;;13305:3;;13279:21;;:6;;:10;:21::i;:30::-;13272:37;;13219:106;13339:14;13349:4;13339:14;;:::i;:::-;;;13079:286;13421:4;13377:23;3417:18;;;;;;;;;;;13472;;13453:37;;;;;;;13519:35;;-1:-1:-1;13543:11:0;;-1:-1:-1;;;13543:11:0;;;;13519:35;:61;;;;-1:-1:-1;13572:8:0;;-1:-1:-1;;;13572:8:0;;;;13571:9;13519:61;:90;;;;-1:-1:-1;;;;;;13598:11:0;;;;;;:5;:11;;;;;;;;13597:12;13519:90;:132;;;;-1:-1:-1;;;;;;13627:24:0;;;;;;:18;:24;;;;;;;;13626:25;13519:132;:172;;;;-1:-1:-1;;;;;;13669:22:0;;;;;;:18;:22;;;;;;;;13668:23;13519:172;13501:466;;;13718:8;:15;;-1:-1:-1;;;;13718:15:0;-1:-1:-1;;;13718:15:0;;;13825:10;;13718:15;;13775:63;;13792:45;;13796:6;;13804:32;;13808:15;;13804:3;:32::i;:::-;13792:3;:45::i;:::-;13775:16;:63::i;:::-;13875:9;;13867:57;;13875:9;;;;-1:-1:-1;;;;;13875:9:0;;13898:21;;13867:57;;;;13898:21;13875:9;13867:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13939:8:0;:16;;-1:-1:-1;;;;13939:16:0;;;-1:-1:-1;;13501:466:0;13983:8;;13979:83;;14008:42;14024:4;14038;14045;14008:15;:42::i;:::-;14074:33;14090:4;14096:2;14100:6;14074:15;:33::i;:::-;11301:2814;;;;11222:2893;;;:::o;1307:191::-;1400:6;;;-1:-1:-1;;;;;1417:17:0;;;1400:6;1417:17;;;-1:-1:-1;;;;;;1417:17:0;;;;;;1450:40;;1400:6;;;;;;;;1450:40;;1381:16;;1450:40;1370:128;1307:191;:::o;193:98::-;251:7;278:5;282:1;278;:5;:::i;:::-;271:12;193:98;-1:-1:-1;;;193:98:0:o;299:::-;357:7;384:5;388:1;384;:5;:::i;9394:105::-;9451:7;9481:1;9477;:5;9476:15;;9490:1;9476:15;;;-1:-1:-1;9486:1:0;9394:105;-1:-1:-1;9394:105:0:o;14123:473::-;14213:16;;;14227:1;14213:16;;;;;;;;14189:21;;14213:16;;;;;;;;;;-1:-1:-1;14213:16:0;14189:40;;14258:4;14240;14245:1;14240:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14240:23:0;;;:7;;;;;;;;;;:23;;;;14284:15;;:22;;;-1:-1:-1;;;14284:22:0;;;;:15;;;;;:20;;:22;;;;;14240:7;;14284:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14274:4;14279:1;14274:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14274:32:0;;;:7;;;;;;;;;:32;14351:15;;14319:62;;14336:4;;14351:15;14369:11;14319:8;:62::i;:::-;14392:15;;:196;;-1:-1:-1;;;14392:196:0;;-1:-1:-1;;;;;14392:15:0;;;;:66;;:196;;14473:11;;14392:15;;14515:4;;14542;;14562:15;;14392:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14178:418;14123:473;:::o;4289:806::-;-1:-1:-1;;;;;4386:18:0;;4378:68;;;;-1:-1:-1;;;4378:68:0;;14958:2:1;4378:68:0;;;14940:21:1;14997:2;14977:18;;;14970:30;15036:34;15016:18;;;15009:62;-1:-1:-1;;;15087:18:1;;;15080:35;15132:19;;4378:68:0;14756:401:1;4378:68:0;-1:-1:-1;;;;;4465:16:0;;4457:64;;;;-1:-1:-1;;;4457:64:0;;15364:2:1;4457:64:0;;;15346:21:1;15403:2;15383:18;;;15376:30;15442:34;15422:18;;;15415:62;-1:-1:-1;;;15493:18:1;;;15486:33;15536:19;;4457:64:0;15162:399:1;4457:64:0;-1:-1:-1;;;;;4607:15:0;;4585:19;4607:15;;;;;;;;;;;4641:21;;;;4633:72;;;;-1:-1:-1;;;4633:72:0;;15768:2:1;4633:72:0;;;15750:21:1;15807:2;15787:18;;;15780:30;15846:34;15826:18;;;15819:62;-1:-1:-1;;;15897:18:1;;;15890:36;15943:19;;4633:72:0;15566:402:1;4633:72:0;-1:-1:-1;;;;;4741:15:0;;;:9;:15;;;;;;;;;;;4759:20;;;4741:38;;4959:13;;;;;;;;;;:23;;;;;;5011:26;;2056:25:1;;;4959:13:0;;5011:26;;2029:18:1;5011:26:0;;;;;;;5050:37;6440:91;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;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1423:248::-;1491:6;1499;1552:2;1540:9;1531:7;1527:23;1523:32;1520:52;;;1568:1;1565;1558:12;1520:52;-1:-1:-1;;1591:23:1;;;1661:2;1646:18;;;1633:32;;-1:-1:-1;1423:248:1:o;2092:456::-;2169:6;2177;2185;2238:2;2226:9;2217:7;2213:23;2209:32;2206:52;;;2254:1;2251;2244:12;2206:52;2293:9;2280:23;2312:31;2337:5;2312:31;:::i;:::-;2362:5;-1:-1:-1;2419:2:1;2404:18;;2391:32;2432:33;2391:32;2432:33;:::i;:::-;2092:456;;2484:7;;-1:-1:-1;;;2538:2:1;2523:18;;;;2510:32;;2092:456::o;2553:118::-;2639:5;2632:13;2625:21;2618:5;2615:32;2605:60;;2661:1;2658;2651:12;2676:382;2741:6;2749;2802:2;2790:9;2781:7;2777:23;2773:32;2770:52;;;2818:1;2815;2808:12;2770:52;2857:9;2844:23;2876:31;2901:5;2876:31;:::i;:::-;2926:5;-1:-1:-1;2983:2:1;2968:18;;2955:32;2996:30;2955:32;2996:30;:::i;:::-;3045:7;3035:17;;;2676:382;;;;;:::o;3252:247::-;3311:6;3364:2;3352:9;3343:7;3339:23;3335:32;3332:52;;;3380:1;3377;3370:12;3332:52;3419:9;3406:23;3438:31;3463:5;3438:31;:::i;3757:388::-;3825:6;3833;3886:2;3874:9;3865:7;3861:23;3857:32;3854:52;;;3902:1;3899;3892:12;3854:52;3941:9;3928:23;3960:31;3985:5;3960:31;:::i;:::-;4010:5;-1:-1:-1;4067:2:1;4052:18;;4039:32;4080:33;4039:32;4080:33;:::i;4150:180::-;4209:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:52;;;4278:1;4275;4268:12;4230:52;-1:-1:-1;4301:23:1;;4150:180;-1:-1:-1;4150:180:1:o;4335:380::-;4414:1;4410:12;;;;4457;;;4478:61;;4532:4;4524:6;4520:17;4510:27;;4478:61;4585:2;4577:6;4574:14;4554:18;4551:38;4548:161;;4631:10;4626:3;4622:20;4619:1;4612:31;4666:4;4663:1;4656:15;4694:4;4691:1;4684:15;4720:127;4781:10;4776:3;4772:20;4769:1;4762:31;4812:4;4809:1;4802:15;4836:4;4833:1;4826:15;4852:125;4917:9;;;4938:10;;;4935:36;;;4951:18;;:::i;5692:251::-;5762:6;5815:2;5803:9;5794:7;5790:23;5786:32;5783:52;;;5831:1;5828;5821:12;5783:52;5863:9;5857:16;5882:31;5907:5;5882:31;:::i;6257:128::-;6324:9;;;6345:11;;;6342:37;;;6359:18;;:::i;7002:306::-;7090:6;7098;7106;7159:2;7147:9;7138:7;7134:23;7130:32;7127:52;;;7175:1;7172;7165:12;7127:52;7204:9;7198:16;7188:26;;7254:2;7243:9;7239:18;7233:25;7223:35;;7298:2;7287:9;7283:18;7277:25;7267:35;;7002:306;;;;;:::o;7592:245::-;7659:6;7712:2;7700:9;7691:7;7687:23;7683:32;7680:52;;;7728:1;7725;7718:12;7680:52;7760:9;7754:16;7779:28;7801:5;7779:28;:::i;13112:168::-;13185:9;;;13216;;13233:15;;;13227:22;;13213:37;13203:71;;13254:18;;:::i;13285:217::-;13325:1;13351;13341:132;;13395:10;13390:3;13386:20;13383:1;13376:31;13430:4;13427:1;13420:15;13458:4;13455:1;13448:15;13341:132;-1:-1:-1;13487:9:1;;13285:217::o;13639:127::-;13700:10;13695:3;13691:20;13688:1;13681:31;13731:4;13728:1;13721:15;13755:4;13752:1;13745:15;13771:980;14033:4;14081:3;14070:9;14066:19;14112:6;14101:9;14094:25;14138:2;14176:6;14171:2;14160:9;14156:18;14149:34;14219:3;14214:2;14203:9;14199:18;14192:31;14243:6;14278;14272:13;14309:6;14301;14294:22;14347:3;14336:9;14332:19;14325:26;;14386:2;14378:6;14374:15;14360:29;;14407:1;14417:195;14431:6;14428:1;14425:13;14417:195;;;14496:13;;-1:-1:-1;;;;;14492:39:1;14480:52;;14587:15;;;;14552:12;;;;14528:1;14446:9;14417:195;;;-1:-1:-1;;;;;;;14668:32:1;;;;14663:2;14648:18;;14641:60;-1:-1:-1;;;14732:3:1;14717:19;14710:35;14629:3;13771:980;-1:-1:-1;;;13771:980:1:o

Swarm Source

ipfs://002d192b4551a1eb919209217d77c757f98423c58a3b11d84e8ab8e4dce1722b
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.