ETH Price: $3,346.08 (-0.52%)
Gas: 5.26 Gwei

Token

ETHEREUM IS GOOD (EBULL)
 

Overview

Max Total Supply

10,000,000,000 EBULL

Holders

5,730 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (-4.73%)

Onchain Market Cap

$4,988,700.00

Circulating Supply Market Cap

$4,990,196.00

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
sybilian.eth
Balance
245,168.410864587 EBULL

Value
$122.31 ( ~0.0365531757396134 Eth) [0.0025%]
0x08c4e146e9e0935c627049cc21dfefbe9e384004
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Bullposted and brought to life by Vitalik the official Bull of Ethereum

Market

Volume (24H):$193,060.00
Market Capitalization:$4,990,196.00
Circulating Supply:10,000,000,000.00 EBULL
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EBULL

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

/**
 */

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
pragma experimental ABIEncoderV2;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
    external
    view
    returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
    external
    returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
    external
    view
    returns (
        uint112 reserve0,
        uint112 reserve1,
        uint32 blockTimestampLast
    );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
    external
    returns (
        uint256 amountA,
        uint256 amountB,
        uint256 liquidity
    );

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

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

library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

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

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;

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

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

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

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

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

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

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

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

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private devWallet;
    address private constant deadAddress = address(0xdead);

    uint8 private constant _decimals = 9;
    uint256 public initialTotalSupply = 10000000000 * 10**_decimals;

    // 1% is the max wallet
    uint256 public maxWallet = (initialTotalSupply * 10)/1000;
    uint256 public maxTransactionAmount = maxWallet;

    // buy / sell tax
    uint256 public buyFee = 0;
    uint256 public sellFee = 0;

    bool private swapping;

    bool public transferDelayEnabled = true;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    
    //swap for 0.1%
    uint256 public swapTokensAtAmount = (initialTotalSupply * 1)/1000;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("ETHEREUM IS GOOD", "EBULL"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        devWallet = payable(_msgSender());

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromFees(address(_msgSender()), true);
        excludeFromFees(devWallet, true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}

    function addLP() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            0x0eeA6Ae7Dea6378e6c5FdAd2B08273B8fcF0ac31,
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
    }

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

    function openTrading() external onlyOwner() {
        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
    public
    onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (transferDelayEnabled && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
                    if (to != address(_uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number && _holderLastTransferTimestamp[to] < block.number, "_transfer:: Transfer Delay enabled.  Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
            }

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

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= 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,
            devWallet,
            block.timestamp
        );
    }

    function stopTheDelay() external onlyOwner{
        require(transferDelayEnabled, "Already disabled!");
        transferDelayEnabled = false;
    }


    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        sellFee = _sellFee;
        buyFee = _buyFee;
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = initialTotalSupply;
        maxWallet = initialTotalSupply;
    }

    function manualSwapToken(uint256 percent) external {
        require(_msgSender() == devWallet);
        uint256 contractBalance = balanceOf(address(this));
        uint256 swapAmount = contractBalance * percent / 100;
        swapTokensForEth(swapAmount);
    }

    function tokensWithdraw() external {
        require(_msgSender() == devWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), devWallet, amount);
    }

    function withdrawEth() external {
        require(address(this).balance > 0, "Token: no ETH in the contract");
        require(_msgSender() == devWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        uint256 tokensToSwap = contractBalance;

        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }

        swapTokensForEth(tokensToSwap);
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLP","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapToken","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":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopTheDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"tokensWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052620000126009600a6200070e565b62000023906402540be40062000725565b6008556103e8600854600a6200003a919062000725565b6200004691906200073f565b6009819055600a555f600b819055600c55600d805461ff0019166101001790556008546103e8906200007a90600162000725565b6200008691906200073f565b600f556010805461ffff19169055348015620000a0575f80fd5b506040518060400160405280601081526020016f1155121154915553481254c811d3d3d160821b81525060405180604001604052806005815260200164115095531360da1b8152508160039081620000f99190620007fe565b506004620001088282620007fe565b505050620001256200011f6200039360201b60201c565b62000397565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600780546001600160a01b031916331790556200015c306001620003e8565b6200016b61dead6001620003e8565b6080516200017b90600162000450565b6200018830600162000450565b6200019761dead600162000450565b620001a433600162000450565b600754620001bd906001600160a01b0316600162000450565b620001ca336001620003e8565b600754620001e3906001600160a01b03166001620003e8565b6080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000222573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002489190620008c6565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000296573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bc9190620008c6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000307573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032d9190620008c6565b600680546001600160a01b0319166001600160a01b039290921691821790556200035990600162000450565b60065462000372906001600160a01b0316600162000484565b6007546008546200038d916001600160a01b031690620004d7565b62000904565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b620003f26200059c565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6200045a6200059c565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005335760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620005469190620008ee565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620005f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200052a565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200065357815f1904821115620006375762000637620005ff565b808516156200064557918102915b93841c939080029062000618565b509250929050565b5f826200066b5750600162000708565b816200067957505f62000708565b81600181146200069257600281146200069d57620006bd565b600191505062000708565b60ff841115620006b157620006b1620005ff565b50506001821b62000708565b5060208310610133831016604e8410600b8410161715620006e2575081810a62000708565b620006ee838362000613565b805f1904821115620007045762000704620005ff565b0290505b92915050565b5f6200071e60ff8416836200065b565b9392505050565b8082028115828204841417620007085762000708620005ff565b5f826200075a57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200078857607f821691505b602082108103620007a757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005fa575f81815260208120601f850160051c81016020861015620007d55750805b601f850160051c820191505b81811015620007f657828155600101620007e1565b505050505050565b81516001600160401b038111156200081a576200081a6200075f565b62000832816200082b845462000773565b84620007ad565b602080601f83116001811462000868575f8415620008505750858301515b5f19600386901b1c1916600185901b178555620007f6565b5f85815260208120601f198616915b82811015620008985788860151825594840194600190910190840162000877565b5085821015620008b657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620008d7575f80fd5b81516001600160a01b03811681146200071e575f80fd5b80820180821115620007085762000708620005ff565b608051611f6d6200094e5f395f818161040d01528181610b2401528181610b4d01528181610c3b0152818161111f0152818161186a0152818161192101526119600152611f6d5ff3fe608060405260043610610220575f3560e01c8063751039fc1161011e578063bc37e1a3116100a8578063dd62ed3e1161006d578063dd62ed3e14610602578063e2f4560514610621578063f2fde38b14610636578063f8b45b0514610655578063ffb54a991461066a575f80fd5b8063bc37e1a314610588578063c02466681461059c578063c876d0b9146105bb578063c8c8ebe4146105d9578063c9567bf9146105ee575f80fd5b806395d89b41116100ee57806395d89b41146105035780639a7a23d614610517578063a0ef91df14610536578063a457c2d71461054a578063a9059cbb14610569575f80fd5b8063751039fc1461049f5780637571336a146104b357806385447656146104d25780638da5cb5b146104e6575f80fd5b806342966c68116101aa578063583e05681161016f578063583e0568146103fc5780636ddd17131461042f57806370a082311461044d578063715018a61461046c57806371f5f01a14610480575f80fd5b806342966c681461033b578063470624021461035a57806349bd5a5e1461036f5780634fbee193146103a657806352f7c988146103dd575f80fd5b80632b14ca56116101f05780632b14ca56146102c15780632cb743f7146102d6578063311028af146102ec578063313ce56714610301578063395093511461031c575f80fd5b806306fdde031461022b578063095ea7b31461025557806318160ddd1461028457806323b872dd146102a2575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610683565b60405161024c9190611b9a565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611bf9565b610713565b604051901515815260200161024c565b34801561028f575f80fd5b506002545b60405190815260200161024c565b3480156102ad575f80fd5b506102746102bc366004611c23565b61072c565b3480156102cc575f80fd5b50610294600c5481565b3480156102e1575f80fd5b506102ea61074f565b005b3480156102f7575f80fd5b5061029460085481565b34801561030c575f80fd5b506040516009815260200161024c565b348015610327575f80fd5b50610274610336366004611bf9565b610796565b348015610346575f80fd5b506102ea610355366004611c61565b6107b7565b348015610365575f80fd5b50610294600b5481565b34801561037a575f80fd5b5060065461038e906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156103b1575f80fd5b506102746103c0366004611c78565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103e8575f80fd5b506102ea6103f7366004611c93565b6107c1565b348015610407575f80fd5b5061038e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561043a575f80fd5b5060105461027490610100900460ff1681565b348015610458575f80fd5b50610294610467366004611c78565b6107d1565b348015610477575f80fd5b506102ea6107eb565b34801561048b575f80fd5b506102ea61049a366004611c61565b6107fe565b3480156104aa575f80fd5b506102ea610850565b3480156104be575f80fd5b506102ea6104cd366004611cc0565b610865565b3480156104dd575f80fd5b506102ea610897565b3480156104f1575f80fd5b506005546001600160a01b031661038e565b34801561050e575f80fd5b5061023f6108fc565b348015610522575f80fd5b506102ea610531366004611cc0565b61090b565b348015610541575f80fd5b506102ea6109a5565b348015610555575f80fd5b50610274610564366004611bf9565b610a3c565b348015610574575f80fd5b50610274610583366004611bf9565b610ab6565b348015610593575f80fd5b506102ea610ac3565b3480156105a7575f80fd5b506102ea6105b6366004611cc0565b610cb6565b3480156105c6575f80fd5b50600d5461027490610100900460ff1681565b3480156105e4575f80fd5b50610294600a5481565b3480156105f9575f80fd5b506102ea610d1c565b34801561060d575f80fd5b5061029461061c366004611cf7565b610d35565b34801561062c575f80fd5b50610294600f5481565b348015610641575f80fd5b506102ea610650366004611c78565b610d5f565b348015610660575f80fd5b5061029460095481565b348015610675575f80fd5b506010546102749060ff1681565b60606003805461069290611d23565b80601f01602080910402602001604051908101604052809291908181526020018280546106be90611d23565b80156107095780601f106106e057610100808354040283529160200191610709565b820191905f5260205f20905b8154815290600101906020018083116106ec57829003601f168201915b5050505050905090565b5f33610720818585610dd5565b60019150505b92915050565b5f33610739858285610ef8565b610744858585610f70565b506001949350505050565b6007546001600160a01b0316336001600160a01b03161461076e575f80fd5b5f610778306107d1565b6007549091506107939030906001600160a01b031683610f70565b50565b5f336107208185856107a88383610d35565b6107b29190611d6f565b610dd5565b610793338261163a565b6107c961176a565b600c55600b55565b6001600160a01b03165f9081526020819052604090205490565b6107f361176a565b6107fc5f6117c4565b565b6007546001600160a01b0316336001600160a01b03161461081d575f80fd5b5f610827306107d1565b90505f60646108368484611d82565b6108409190611d99565b905061084b81611815565b505050565b61085861176a565b600854600a819055600955565b61086d61176a565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b61089f61176a565b600d54610100900460ff166108ef5760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b60448201526064015b60405180910390fd5b600d805461ff0019169055565b60606004805461069290611d23565b61091361176a565b6006546001600160a01b03908116908316036109975760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108e6565b6109a182826119d2565b5050565b5f47116109f45760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064016108e6565b6007546001600160a01b0316336001600160a01b031614610a13575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610793573d5f803e3d5ffd5b5f3381610a498286610d35565b905083811015610aa95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e6565b6107448286868403610dd5565b5f33610720818585610f70565b610acb61176a565b60105460ff1615610b1e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016108e6565b610b4b307f0000000000000000000000000000000000000000000000000000000000000000600854610dd5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610b85306107d1565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f604482018190526064820152730eea6ae7dea6378e6c5fdad2b08273b8fcf0ac3160848201524260a482015260c40160606040518083038185885af1158015610bfa573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c1f9190611db8565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610c92573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190611de3565b610cbe61176a565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610d2461176a565b6010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610d6761176a565b6001600160a01b038116610dcc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e6565b610793816117c4565b6001600160a01b038316610e375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e6565b6001600160a01b038216610e985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610f038484610d35565b90505f198114610f6a5781811015610f5d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108e6565b610f6a8484848403610dd5565b50505050565b6001600160a01b038316610f965760405162461bcd60e51b81526004016108e690611dfe565b6001600160a01b038216610fbc5760405162461bcd60e51b81526004016108e690611e43565b805f03610fce5761084b83835f611a25565b6005546001600160a01b03848116911614801590610ffa57506005546001600160a01b03838116911614155b801561100e57506001600160a01b03821615155b801561102557506001600160a01b03821661dead14155b80156110345750600d5460ff16155b156114645760105460ff166110c5576001600160a01b0383165f9081526011602052604090205460ff168061108057506001600160a01b0382165f9081526011602052604090205460ff165b6110c55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e6565b600d54610100900460ff1680156110f457506001600160a01b0383165f9081526011602052604090205460ff16155b801561111857506001600160a01b0382165f9081526011602052604090205460ff16155b15611233577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415801561116d57506006546001600160a01b03838116911614155b1561123357325f908152600e6020526040902054431180156111a557506001600160a01b0382165f908152600e602052604090205443115b61120f5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016108e6565b325f908152600e602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f9081526013602052604090205460ff16801561127257506001600160a01b0382165f9081526012602052604090205460ff16155b1561133e57600a548111156112e75760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016108e6565b6009546112f3836107d1565b6112fd9083611d6f565b11156113395760405162461bcd60e51b815260206004820152600b60248201526a4d61782077616c6c65742160a81b60448201526064016108e6565b611464565b6001600160a01b0382165f9081526013602052604090205460ff16801561137d57506001600160a01b0383165f9081526012602052604090205460ff16155b156113f357600a548111156113395760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016108e6565b6001600160a01b0382165f9081526012602052604090205460ff166114645760095461141e836107d1565b6114289083611d6f565b11156114645760405162461bcd60e51b815260206004820152600b60248201526a4d61782077616c6c65742160a81b60448201526064016108e6565b5f61146e306107d1565b600f54909150811180801561148a5750601054610100900460ff165b80156114995750600d5460ff16155b80156114bd57506001600160a01b0385165f9081526013602052604090205460ff16155b80156114e157506001600160a01b0385165f9081526011602052604090205460ff16155b801561150557506001600160a01b0384165f9081526011602052604090205460ff16155b1561152a57600d805460ff1916600117905561151f611b4d565b600d805460ff191690555b600d545f9060ff1615801561155757506001600160a01b0386165f9081526011602052604090205460ff16155b801561157b57506001600160a01b0385165f9081526011602052604090205460ff16155b90505f8115611626576001600160a01b0386165f9081526013602052604090205460ff16156115cb576115c460646115be600c5488611b7d90919063ffffffff16565b90611b8f565b9050611608565b6001600160a01b0387165f9081526013602052604090205460ff16156116085761160560646115be600b5488611b7d90919063ffffffff16565b90505b801561161957611619873083611a25565b6116238186611e86565b94505b611631878787611a25565b50505050505050565b6001600160a01b03821661169a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108e6565b6001600160a01b0382165f908152602081905260409020548181101561170d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108e6565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6005546001600160a01b031633146107fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e6565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061184857611848611e99565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e89190611ead565b816001815181106118fb576118fb611e99565b60200260200101906001600160a01b031690816001600160a01b031681525050611946307f000000000000000000000000000000000000000000000000000000000000000084610dd5565b60075460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926119a19287925f92889291909116904290600401611ec8565b5f604051808303815f87803b1580156119b8575f80fd5b505af11580156119ca573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611a4b5760405162461bcd60e51b81526004016108e690611dfe565b6001600160a01b038216611a715760405162461bcd60e51b81526004016108e690611e43565b6001600160a01b0383165f9081526020819052604090205481811015611ae85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e6565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f6a565b5f611b57306107d1565b9050805f03611b635750565b600f548190811115611b745750600f545b6109a181611815565b5f611b888284611d82565b9392505050565b5f611b888284611d99565b5f6020808352835180828501525f5b81811015611bc557858101830151858201604001528201611ba9565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610793575f80fd5b5f8060408385031215611c0a575f80fd5b8235611c1581611be5565b946020939093013593505050565b5f805f60608486031215611c35575f80fd5b8335611c4081611be5565b92506020840135611c5081611be5565b929592945050506040919091013590565b5f60208284031215611c71575f80fd5b5035919050565b5f60208284031215611c88575f80fd5b8135611b8881611be5565b5f8060408385031215611ca4575f80fd5b50508035926020909101359150565b8015158114610793575f80fd5b5f8060408385031215611cd1575f80fd5b8235611cdc81611be5565b91506020830135611cec81611cb3565b809150509250929050565b5f8060408385031215611d08575f80fd5b8235611d1381611be5565b91506020830135611cec81611be5565b600181811c90821680611d3757607f821691505b602082108103611d5557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561072657610726611d5b565b808202811582820484141761072657610726611d5b565b5f82611db357634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611dca575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611df3575f80fd5b8151611b8881611cb3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561072657610726611d5b565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611ebd575f80fd5b8151611b8881611be5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f165784516001600160a01b031683529383019391830191600101611ef1565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122032497bfb9f977074426826f1d4344d2e2bcebe541ec573f3dc7fcc1b6f39bb2a64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610220575f3560e01c8063751039fc1161011e578063bc37e1a3116100a8578063dd62ed3e1161006d578063dd62ed3e14610602578063e2f4560514610621578063f2fde38b14610636578063f8b45b0514610655578063ffb54a991461066a575f80fd5b8063bc37e1a314610588578063c02466681461059c578063c876d0b9146105bb578063c8c8ebe4146105d9578063c9567bf9146105ee575f80fd5b806395d89b41116100ee57806395d89b41146105035780639a7a23d614610517578063a0ef91df14610536578063a457c2d71461054a578063a9059cbb14610569575f80fd5b8063751039fc1461049f5780637571336a146104b357806385447656146104d25780638da5cb5b146104e6575f80fd5b806342966c68116101aa578063583e05681161016f578063583e0568146103fc5780636ddd17131461042f57806370a082311461044d578063715018a61461046c57806371f5f01a14610480575f80fd5b806342966c681461033b578063470624021461035a57806349bd5a5e1461036f5780634fbee193146103a657806352f7c988146103dd575f80fd5b80632b14ca56116101f05780632b14ca56146102c15780632cb743f7146102d6578063311028af146102ec578063313ce56714610301578063395093511461031c575f80fd5b806306fdde031461022b578063095ea7b31461025557806318160ddd1461028457806323b872dd146102a2575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610683565b60405161024c9190611b9a565b60405180910390f35b348015610260575f80fd5b5061027461026f366004611bf9565b610713565b604051901515815260200161024c565b34801561028f575f80fd5b506002545b60405190815260200161024c565b3480156102ad575f80fd5b506102746102bc366004611c23565b61072c565b3480156102cc575f80fd5b50610294600c5481565b3480156102e1575f80fd5b506102ea61074f565b005b3480156102f7575f80fd5b5061029460085481565b34801561030c575f80fd5b506040516009815260200161024c565b348015610327575f80fd5b50610274610336366004611bf9565b610796565b348015610346575f80fd5b506102ea610355366004611c61565b6107b7565b348015610365575f80fd5b50610294600b5481565b34801561037a575f80fd5b5060065461038e906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156103b1575f80fd5b506102746103c0366004611c78565b6001600160a01b03165f9081526011602052604090205460ff1690565b3480156103e8575f80fd5b506102ea6103f7366004611c93565b6107c1565b348015610407575f80fd5b5061038e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561043a575f80fd5b5060105461027490610100900460ff1681565b348015610458575f80fd5b50610294610467366004611c78565b6107d1565b348015610477575f80fd5b506102ea6107eb565b34801561048b575f80fd5b506102ea61049a366004611c61565b6107fe565b3480156104aa575f80fd5b506102ea610850565b3480156104be575f80fd5b506102ea6104cd366004611cc0565b610865565b3480156104dd575f80fd5b506102ea610897565b3480156104f1575f80fd5b506005546001600160a01b031661038e565b34801561050e575f80fd5b5061023f6108fc565b348015610522575f80fd5b506102ea610531366004611cc0565b61090b565b348015610541575f80fd5b506102ea6109a5565b348015610555575f80fd5b50610274610564366004611bf9565b610a3c565b348015610574575f80fd5b50610274610583366004611bf9565b610ab6565b348015610593575f80fd5b506102ea610ac3565b3480156105a7575f80fd5b506102ea6105b6366004611cc0565b610cb6565b3480156105c6575f80fd5b50600d5461027490610100900460ff1681565b3480156105e4575f80fd5b50610294600a5481565b3480156105f9575f80fd5b506102ea610d1c565b34801561060d575f80fd5b5061029461061c366004611cf7565b610d35565b34801561062c575f80fd5b50610294600f5481565b348015610641575f80fd5b506102ea610650366004611c78565b610d5f565b348015610660575f80fd5b5061029460095481565b348015610675575f80fd5b506010546102749060ff1681565b60606003805461069290611d23565b80601f01602080910402602001604051908101604052809291908181526020018280546106be90611d23565b80156107095780601f106106e057610100808354040283529160200191610709565b820191905f5260205f20905b8154815290600101906020018083116106ec57829003601f168201915b5050505050905090565b5f33610720818585610dd5565b60019150505b92915050565b5f33610739858285610ef8565b610744858585610f70565b506001949350505050565b6007546001600160a01b0316336001600160a01b03161461076e575f80fd5b5f610778306107d1565b6007549091506107939030906001600160a01b031683610f70565b50565b5f336107208185856107a88383610d35565b6107b29190611d6f565b610dd5565b610793338261163a565b6107c961176a565b600c55600b55565b6001600160a01b03165f9081526020819052604090205490565b6107f361176a565b6107fc5f6117c4565b565b6007546001600160a01b0316336001600160a01b03161461081d575f80fd5b5f610827306107d1565b90505f60646108368484611d82565b6108409190611d99565b905061084b81611815565b505050565b61085861176a565b600854600a819055600955565b61086d61176a565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b61089f61176a565b600d54610100900460ff166108ef5760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b60448201526064015b60405180910390fd5b600d805461ff0019169055565b60606004805461069290611d23565b61091361176a565b6006546001600160a01b03908116908316036109975760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016108e6565b6109a182826119d2565b5050565b5f47116109f45760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e3a206e6f2045544820696e2074686520636f6e747261637400000060448201526064016108e6565b6007546001600160a01b0316336001600160a01b031614610a13575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610793573d5f803e3d5ffd5b5f3381610a498286610d35565b905083811015610aa95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108e6565b6107448286868403610dd5565b5f33610720818585610f70565b610acb61176a565b60105460ff1615610b1e5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016108e6565b610b4b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600854610dd5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610b85306107d1565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f604482018190526064820152730eea6ae7dea6378e6c5fdad2b08273b8fcf0ac3160848201524260a482015260c40160606040518083038185885af1158015610bfa573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c1f9190611db8565b505060065460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610c92573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107939190611de3565b610cbe61176a565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610d2461176a565b6010805461ffff1916610101179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610d6761176a565b6001600160a01b038116610dcc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108e6565b610793816117c4565b6001600160a01b038316610e375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108e6565b6001600160a01b038216610e985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108e6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610f038484610d35565b90505f198114610f6a5781811015610f5d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108e6565b610f6a8484848403610dd5565b50505050565b6001600160a01b038316610f965760405162461bcd60e51b81526004016108e690611dfe565b6001600160a01b038216610fbc5760405162461bcd60e51b81526004016108e690611e43565b805f03610fce5761084b83835f611a25565b6005546001600160a01b03848116911614801590610ffa57506005546001600160a01b03838116911614155b801561100e57506001600160a01b03821615155b801561102557506001600160a01b03821661dead14155b80156110345750600d5460ff16155b156114645760105460ff166110c5576001600160a01b0383165f9081526011602052604090205460ff168061108057506001600160a01b0382165f9081526011602052604090205460ff165b6110c55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108e6565b600d54610100900460ff1680156110f457506001600160a01b0383165f9081526011602052604090205460ff16155b801561111857506001600160a01b0382165f9081526011602052604090205460ff16155b15611233577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b03161415801561116d57506006546001600160a01b03838116911614155b1561123357325f908152600e6020526040902054431180156111a557506001600160a01b0382165f908152600e602052604090205443115b61120f5760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016108e6565b325f908152600e602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f9081526013602052604090205460ff16801561127257506001600160a01b0382165f9081526012602052604090205460ff16155b1561133e57600a548111156112e75760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016108e6565b6009546112f3836107d1565b6112fd9083611d6f565b11156113395760405162461bcd60e51b815260206004820152600b60248201526a4d61782077616c6c65742160a81b60448201526064016108e6565b611464565b6001600160a01b0382165f9081526013602052604090205460ff16801561137d57506001600160a01b0383165f9081526012602052604090205460ff16155b156113f357600a548111156113395760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016108e6565b6001600160a01b0382165f9081526012602052604090205460ff166114645760095461141e836107d1565b6114289083611d6f565b11156114645760405162461bcd60e51b815260206004820152600b60248201526a4d61782077616c6c65742160a81b60448201526064016108e6565b5f61146e306107d1565b600f54909150811180801561148a5750601054610100900460ff165b80156114995750600d5460ff16155b80156114bd57506001600160a01b0385165f9081526013602052604090205460ff16155b80156114e157506001600160a01b0385165f9081526011602052604090205460ff16155b801561150557506001600160a01b0384165f9081526011602052604090205460ff16155b1561152a57600d805460ff1916600117905561151f611b4d565b600d805460ff191690555b600d545f9060ff1615801561155757506001600160a01b0386165f9081526011602052604090205460ff16155b801561157b57506001600160a01b0385165f9081526011602052604090205460ff16155b90505f8115611626576001600160a01b0386165f9081526013602052604090205460ff16156115cb576115c460646115be600c5488611b7d90919063ffffffff16565b90611b8f565b9050611608565b6001600160a01b0387165f9081526013602052604090205460ff16156116085761160560646115be600b5488611b7d90919063ffffffff16565b90505b801561161957611619873083611a25565b6116238186611e86565b94505b611631878787611a25565b50505050505050565b6001600160a01b03821661169a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108e6565b6001600160a01b0382165f908152602081905260409020548181101561170d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108e6565b6001600160a01b0383165f818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6005546001600160a01b031633146107fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108e6565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061184857611848611e99565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e89190611ead565b816001815181106118fb576118fb611e99565b60200260200101906001600160a01b031690816001600160a01b031681525050611946307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610dd5565b60075460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac947926119a19287925f92889291909116904290600401611ec8565b5f604051808303815f87803b1580156119b8575f80fd5b505af11580156119ca573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611a4b5760405162461bcd60e51b81526004016108e690611dfe565b6001600160a01b038216611a715760405162461bcd60e51b81526004016108e690611e43565b6001600160a01b0383165f9081526020819052604090205481811015611ae85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108e6565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f6a565b5f611b57306107d1565b9050805f03611b635750565b600f548190811115611b745750600f545b6109a181611815565b5f611b888284611d82565b9392505050565b5f611b888284611d99565b5f6020808352835180828501525f5b81811015611bc557858101830151858201604001528201611ba9565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610793575f80fd5b5f8060408385031215611c0a575f80fd5b8235611c1581611be5565b946020939093013593505050565b5f805f60608486031215611c35575f80fd5b8335611c4081611be5565b92506020840135611c5081611be5565b929592945050506040919091013590565b5f60208284031215611c71575f80fd5b5035919050565b5f60208284031215611c88575f80fd5b8135611b8881611be5565b5f8060408385031215611ca4575f80fd5b50508035926020909101359150565b8015158114610793575f80fd5b5f8060408385031215611cd1575f80fd5b8235611cdc81611be5565b91506020830135611cec81611cb3565b809150509250929050565b5f8060408385031215611d08575f80fd5b8235611d1381611be5565b91506020830135611cec81611be5565b600181811c90821680611d3757607f821691505b602082108103611d5557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561072657610726611d5b565b808202811582820484141761072657610726611d5b565b5f82611db357634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611dca575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611df3575f80fd5b8151611b8881611cb3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561072657610726611d5b565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611ebd575f80fd5b8151611b8881611be5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f165784516001600160a01b031683529383019391830191600101611ef1565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122032497bfb9f977074426826f1d4344d2e2bcebe541ec573f3dc7fcc1b6f39bb2a64736f6c63430008140033

Deployed Bytecode Sourcemap

14463:8914:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9692:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10623:201;;;;;;;;;;-1:-1:-1;10623:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10623:201:0;1023:187:1;10012:108:0;;;;;;;;;;-1:-1:-1;10100:12:0;;10012:108;;;1361:25:1;;;1349:2;1334:18;10012:108:0;1215:177:1;10832:261:0;;;;;;;;;;-1:-1:-1;10832:261:0;;;;;:::i;:::-;;:::i;15046:26::-;;;;;;;;;;;;;;;;22570:194;;;;;;;;;;;;;:::i;:::-;;14770:63;;;;;;;;;;;;;;;;9912:92;;;;;;;;;;-1:-1:-1;9912:92:0;;9995:1;2000:36:1;;1988:2;1973:18;9912:92:0;1858:184:1;11101:238:0;;;;;;;;;;-1:-1:-1;11101:238:0;;;;;:::i;:::-;;:::i;17364:85::-;;;;;;;;;;-1:-1:-1;17364:85:0;;;;;:::i;:::-;;:::i;15014:25::-;;;;;;;;;;;;;;;;14597:28;;;;;;;;;;-1:-1:-1;14597:28:0;;;;-1:-1:-1;;;;;14597:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;14597:28:0;2232:203:1;18182:126:0;;;;;;;;;;-1:-1:-1;18182:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;18272:28:0;18248:4;18272:28;;;:19;:28;;;;;;;;;18182:126;22001:134;;;;;;;;;;-1:-1:-1;22001:134:0;;;;;:::i;:::-;;:::i;14538:52::-;;;;;;;;;;;;;;;15367:31;;;;;;;;;;-1:-1:-1;15367:31:0;;;;;;;;;;;10128:127;;;;;;;;;;-1:-1:-1;10128:127:0;;;;;:::i;:::-;;:::i;903:103::-;;;;;;;;;;;;;:::i;22295:267::-;;;;;;;;;;-1:-1:-1;22295:267:0;;;;;:::i;:::-;;:::i;22143:144::-;;;;;;;;;;;;;:::i;17575:::-;;;;;;;;;;-1:-1:-1;17575:144:0;;;;;:::i;:::-;;:::i;21841:150::-;;;;;;;;;;;;;:::i;668:87::-;;;;;;;;;;-1:-1:-1;741:6:0;;-1:-1:-1;;;;;741:6:0;668:87;;9800:104;;;;;;;;;;;;;:::i;17917:257::-;;;;;;;;;;-1:-1:-1;17917:257:0;;;;;:::i;:::-;;:::i;22772:225::-;;;;;;;;;;;;;:::i;11347:436::-;;;;;;;;;;-1:-1:-1;11347:436:0;;;;;:::i;:::-;;:::i;10263:193::-;;;;;;;;;;-1:-1:-1;10263:193:0;;;;;:::i;:::-;;:::i;16818:538::-;;;;;;;;;;;;;:::i;17727:182::-;;;;;;;;;;-1:-1:-1;17727:182:0;;;;;:::i;:::-;;:::i;15111:39::-;;;;;;;;;;-1:-1:-1;15111:39:0;;;;;;;;;;;14935:47;;;;;;;;;;;;;;;;17457:110;;;;;;;;;;;;;:::i;10464:151::-;;;;;;;;;;-1:-1:-1;10464:151:0;;;;;:::i;:::-;;:::i;15255:65::-;;;;;;;;;;;;;;;;1014:201;;;;;;;;;;-1:-1:-1;1014:201:0;;;;;:::i;:::-;;:::i;14871:57::-;;;;;;;;;;;;;;;;15329:31;;;;;;;;;;-1:-1:-1;15329:31:0;;;;;;;;9692:100;9746:13;9779:5;9772:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9692:100;:::o;10623:201::-;10706:4;221:10;10762:32;221:10;10778:7;10787:6;10762:8;:32::i;:::-;10812:4;10805:11;;;10623:201;;;;;:::o;10832:261::-;10929:4;221:10;10987:38;11003:4;221:10;11018:6;10987:15;:38::i;:::-;11036:27;11046:4;11052:2;11056:6;11036:9;:27::i;:::-;-1:-1:-1;11081:4:0;;10832:261;-1:-1:-1;;;;10832:261:0:o;22570:194::-;22640:9;;-1:-1:-1;;;;;22640:9:0;221:10;-1:-1:-1;;;;;22624:25:0;;22616:34;;;;;;22661:14;22678:24;22696:4;22678:9;:24::i;:::-;22738:9;;22661:41;;-1:-1:-1;22713:43:0;;22731:4;;-1:-1:-1;;;;;22738:9:0;22661:41;22713:9;:43::i;:::-;22605:159;22570:194::o;11101:238::-;11189:4;221:10;11245:64;221:10;11261:7;11298:10;11270:25;221:10;11261:7;11270:9;:25::i;:::-;:38;;;;:::i;:::-;11245:8;:64::i;17364:85::-;17414:27;221:10;17434:6;17414:5;:27::i;22001:134::-;627:13;:11;:13::i;:::-;22082:7:::1;:18:::0;22111:6:::1;:16:::0;22001:134::o;10128:127::-;-1:-1:-1;;;;;10229:18:0;10202:7;10229:18;;;;;;;;;;;;10128:127::o;903:103::-;627:13;:11;:13::i;:::-;968:30:::1;995:1;968:18;:30::i;:::-;903:103::o:0;22295:267::-;22381:9;;-1:-1:-1;;;;;22381:9:0;221:10;-1:-1:-1;;;;;22365:25:0;;22357:34;;;;;;22402:23;22428:24;22446:4;22428:9;:24::i;:::-;22402:50;-1:-1:-1;22463:18:0;22512:3;22484:25;22502:7;22402:50;22484:25;:::i;:::-;:31;;;;:::i;:::-;22463:52;;22526:28;22543:10;22526:16;:28::i;:::-;22346:216;;22295:267;:::o;22143:144::-;627:13;:11;:13::i;:::-;22220:18:::1;::::0;22197:20:::1;:41:::0;;;22249:9:::1;:30:::0;22143:144::o;17575:::-;627:13;:11;:13::i;:::-;-1:-1:-1;;;;;17665:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;17665:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17575:144::o;21841:150::-;627:13;:11;:13::i;:::-;21902:20:::1;::::0;::::1;::::0;::::1;;;21894:50;;;::::0;-1:-1:-1;;;21894:50:0;;5326:2:1;21894:50:0::1;::::0;::::1;5308:21:1::0;5365:2;5345:18;;;5338:30;-1:-1:-1;;;5384:18:1;;;5377:47;5441:18;;21894:50:0::1;;;;;;;;;21955:20;:28:::0;;-1:-1:-1;;21955:28:0::1;::::0;;21841:150::o;9800:104::-;9856:13;9889:7;9882:14;;;;;:::i;17917:257::-;627:13;:11;:13::i;:::-;18039::::1;::::0;-1:-1:-1;;;;;18039:13:0;;::::1;18031:21:::0;;::::1;::::0;18023:91:::1;;;::::0;-1:-1:-1;;;18023:91:0;;5672:2:1;18023:91:0::1;::::0;::::1;5654:21:1::0;5711:2;5691:18;;;5684:30;5750:34;5730:18;;;5723:62;5821:27;5801:18;;;5794:55;5866:19;;18023:91:0::1;5470:421:1::0;18023:91:0::1;18125:41;18154:4;18160:5;18125:28;:41::i;:::-;17917:257:::0;;:::o;22772:225::-;22847:1;22823:21;:25;22815:67;;;;-1:-1:-1;;;22815:67:0;;6098:2:1;22815:67:0;;;6080:21:1;6137:2;6117:18;;;6110:30;6176:31;6156:18;;;6149:59;6225:18;;22815:67:0;5896:353:1;22815:67:0;22917:9;;-1:-1:-1;;;;;22917:9:0;221:10;-1:-1:-1;;;;;22901:25:0;;22893:34;;;;;;22938:51;;22946:10;;22967:21;22938:51;;;;;;;;;22967:21;22946:10;22938:51;;;;;;;;;;;;;;;;;;;11347:436;11440:4;221:10;11440:4;11523:25;221:10;11540:7;11523:9;:25::i;:::-;11496:52;;11587:15;11567:16;:35;;11559:85;;;;-1:-1:-1;;;11559:85:0;;6456:2:1;11559:85:0;;;6438:21:1;6495:2;6475:18;;;6468:30;6534:34;6514:18;;;6507:62;-1:-1:-1;;;6585:18:1;;;6578:35;6630:19;;11559:85:0;6254:401:1;11559:85:0;11680:60;11689:5;11696:7;11724:15;11705:16;:34;11680:8;:60::i;10263:193::-;10342:4;221:10;10398:28;221:10;10415:2;10419:6;10398:9;:28::i;16818:538::-;627:13;:11;:13::i;:::-;16876:11:::1;::::0;::::1;;16875:12;16867:47;;;::::0;-1:-1:-1;;;16867:47:0;;6862:2:1;16867:47:0::1;::::0;::::1;6844:21:1::0;6901:2;6881:18;;;6874:30;6940:25;6920:18;;;6913:53;6983:18;;16867:47:0::1;6660:347:1::0;16867:47:0::1;16925:70;16942:4;16957:16;16976:18;;16925:8;:70::i;:::-;17006:16;-1:-1:-1::0;;;;;17006:32:0::1;;17046:21;17091:4;17111:24;17129:4;17111:9;:24::i;:::-;17006:259;::::0;-1:-1:-1;;;;;;17006:259:0::1;::::0;;;;;;-1:-1:-1;;;;;7371:15:1;;;17006:259:0::1;::::0;::::1;7353:34:1::0;7403:18;;;7396:34;17150:1:0::1;7446:18:1::0;;;7439:34;;;7489:18;;;7482:34;17182:42:0::1;7532:19:1::0;;;7525:44;17239:15:0::1;7585:19:1::0;;;7578:35;7287:19;;17006:259:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17283:13:0::1;::::0;17276:72:::1;::::0;-1:-1:-1;;;17276:72:0;;-1:-1:-1;;;;;17314:16:0::1;8127:32:1::0;;17276:72:0::1;::::0;::::1;8109:51:1::0;-1:-1:-1;;8176:18:1;;;8169:34;17283:13:0;;::::1;::::0;-1:-1:-1;17276:29:0::1;::::0;8082:18:1;;17276:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17727:182::-:0;627:13;:11;:13::i;:::-;-1:-1:-1;;;;;17812:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;17812:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17867:34;;1163:41:1;;;17867:34:0::1;::::0;1136:18:1;17867:34:0::1;;;;;;;17727:182:::0;;:::o;17457:110::-;627:13;:11;:13::i;:::-;17512:11:::1;:18:::0;;-1:-1:-1;;17541:18:0;;;;;17457:110::o;10464:151::-;-1:-1:-1;;;;;10580:18:0;;;10553:7;10580:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10464:151::o;1014:201::-;627:13;:11;:13::i;:::-;-1:-1:-1;;;;;1103:22:0;::::1;1095:73;;;::::0;-1:-1:-1;;;1095:73:0;;8666:2:1;1095:73:0::1;::::0;::::1;8648:21:1::0;8705:2;8685:18;;;8678:30;8744:34;8724:18;;;8717:62;-1:-1:-1;;;8795:18:1;;;8788:36;8841:19;;1095:73:0::1;8464:402:1::0;1095:73:0::1;1179:28;1198:8;1179:18;:28::i;13486:346::-:0;-1:-1:-1;;;;;13588:19:0;;13580:68;;;;-1:-1:-1;;;13580:68:0;;9073:2:1;13580:68:0;;;9055:21:1;9112:2;9092:18;;;9085:30;9151:34;9131:18;;;9124:62;-1:-1:-1;;;9202:18:1;;;9195:34;9246:19;;13580:68:0;8871:400:1;13580:68:0;-1:-1:-1;;;;;13667:21:0;;13659:68;;;;-1:-1:-1;;;13659:68:0;;9478:2:1;13659:68:0;;;9460:21:1;9517:2;9497:18;;;9490:30;9556:34;9536:18;;;9529:62;-1:-1:-1;;;9607:18:1;;;9600:32;9649:19;;13659:68:0;9276:398:1;13659:68:0;-1:-1:-1;;;;;13740:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13792:32;;1361:25:1;;;13792:32:0;;1334:18:1;13792:32:0;;;;;;;13486:346;;;:::o;13840:419::-;13941:24;13968:25;13978:5;13985:7;13968:9;:25::i;:::-;13941:52;;-1:-1:-1;;14008:16:0;:37;14004:248;;14090:6;14070:16;:26;;14062:68;;;;-1:-1:-1;;;14062:68:0;;9881:2:1;14062:68:0;;;9863:21:1;9920:2;9900:18;;;9893:30;9959:31;9939:18;;;9932:59;10008:18;;14062:68:0;9679:353:1;14062:68:0;14174:51;14183:5;14190:7;14218:6;14199:16;:25;14174:8;:51::i;:::-;13930:329;13840:419;;;:::o;18510:2845::-;-1:-1:-1;;;;;18608:18:0;;18600:68;;;;-1:-1:-1;;;18600:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18687:16:0;;18679:64;;;;-1:-1:-1;;;18679:64:0;;;;;;;:::i;:::-;18760:6;18770:1;18760:11;18756:93;;18788:28;18804:4;18810:2;18814:1;18788:15;:28::i;18756:93::-;741:6;;-1:-1:-1;;;;;18865:15:0;;;741:6;;18865:15;;;;:32;;-1:-1:-1;741:6:0;;-1:-1:-1;;;;;18884:13:0;;;741:6;;18884:13;;18865:32;:52;;;;-1:-1:-1;;;;;;18901:16:0;;;;18865:52;:77;;;;-1:-1:-1;;;;;;18921:21:0;;18935:6;18921:21;;18865:77;:90;;;;-1:-1:-1;18947:8:0;;;;18946:9;18865:90;18861:1529;;;18977:11;;;;18972:140;;-1:-1:-1;;;;;19017:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19046:23:0;;;;;;:19;:23;;;;;;;;19017:52;19009:87;;;;-1:-1:-1;;;19009:87:0;;11049:2:1;19009:87:0;;;11031:21:1;11088:2;11068:18;;;11061:30;-1:-1:-1;;;11107:18:1;;;11100:52;11169:18;;19009:87:0;10847:346:1;19009:87:0;19132:20;;;;;;;:50;;;;-1:-1:-1;;;;;;19157:25:0;;;;;;:19;:25;;;;;;;;19156:26;19132:50;:78;;;;-1:-1:-1;;;;;;19187:23:0;;;;;;:19;:23;;;;;;;;19186:24;19132:78;19128:566;;;19252:16;-1:-1:-1;;;;;19238:31:0;:2;-1:-1:-1;;;;;19238:31:0;;;:63;;;;-1:-1:-1;19287:13:0;;-1:-1:-1;;;;;19273:28:0;;;19287:13;;19273:28;;19238:63;19234:445;;;19366:9;19337:39;;;;:28;:39;;;;;;19379:12;-1:-1:-1;19337:105:0;;;;-1:-1:-1;;;;;;19395:32:0;;;;;;:28;:32;;;;;;19430:12;-1:-1:-1;19337:105:0;19329:171;;;;-1:-1:-1;;;19329:171:0;;11400:2:1;19329:171:0;;;11382:21:1;11439:2;11419:18;;;11412:30;11478:34;11458:18;;;11451:62;-1:-1:-1;;;11529:18:1;;;11522:51;11590:19;;19329:171:0;11198:417:1;19329:171:0;19556:9;19527:39;;;;:28;:39;;;;;;19569:12;19527:54;;;;-1:-1:-1;;;;;19608:32:0;;;;;;:47;19234:445;-1:-1:-1;;;;;19714:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19750:35:0;;;;;;:31;:35;;;;;;;;19749:36;19714:71;19710:669;;;19824:20;;19814:6;:30;;19806:96;;;;-1:-1:-1;;;19806:96:0;;11822:2:1;19806:96:0;;;11804:21:1;11861:2;11841:18;;;11834:30;11900:34;11880:18;;;11873:62;-1:-1:-1;;;11951:18:1;;;11944:51;12012:19;;19806:96:0;11620:417:1;19806:96:0;19955:9;;19938:13;19948:2;19938:9;:13::i;:::-;19929:22;;:6;:22;:::i;:::-;:35;;19921:59;;;;-1:-1:-1;;;19921:59:0;;12244:2:1;19921:59:0;;;12226:21:1;12283:2;12263:18;;;12256:30;-1:-1:-1;;;12302:18:1;;;12295:41;12353:18;;19921:59:0;12042:335:1;19921:59:0;19710:669;;;-1:-1:-1;;;;;20019:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;20053:37:0;;;;;;:31;:37;;;;;;;;20052:38;20019:71;20015:364;;;20129:20;;20119:6;:30;;20111:97;;;;-1:-1:-1;;;20111:97:0;;12584:2:1;20111:97:0;;;12566:21:1;12623:2;12603:18;;;12596:30;12662:34;12642:18;;;12635:62;-1:-1:-1;;;12713:18:1;;;12706:52;12775:19;;20111:97:0;12382:418:1;20015:364:0;-1:-1:-1;;;;;20248:35:0;;;;;;:31;:35;;;;;;;;20243:136;;20338:9;;20321:13;20331:2;20321:9;:13::i;:::-;20312:22;;:6;:22;:::i;:::-;:35;;20304:59;;;;-1:-1:-1;;;20304:59:0;;12244:2:1;20304:59:0;;;12226:21:1;12283:2;12263:18;;;12256:30;-1:-1:-1;;;12302:18:1;;;12295:41;12353:18;;20304:59:0;12042:335:1;20304:59:0;20402:28;20433:24;20451:4;20433:9;:24::i;:::-;20506:18;;20402:55;;-1:-1:-1;20483:41:0;;;20539:22;;;;-1:-1:-1;20550:11:0;;;;;;;20539:22;:35;;;;-1:-1:-1;20566:8:0;;;;20565:9;20539:35;:71;;;;-1:-1:-1;;;;;;20579:31:0;;;;;;:25;:31;;;;;;;;20578:32;20539:71;:101;;;;-1:-1:-1;;;;;;20615:25:0;;;;;;:19;:25;;;;;;;;20614:26;20539:101;:129;;;;-1:-1:-1;;;;;;20645:23:0;;;;;;:19;:23;;;;;;;;20644:24;20539:129;20535:233;;;20685:8;:15;;-1:-1:-1;;20685:15:0;20696:4;20685:15;;;20715:10;:8;:10::i;:::-;20740:8;:16;;-1:-1:-1;;20740:16:0;;;20535:233;20796:8;;20780:12;;20796:8;;20795:9;:39;;;;-1:-1:-1;;;;;;20809:25:0;;;;;;:19;:25;;;;;;;;20808:26;20795:39;:67;;;;-1:-1:-1;;;;;;20839:23:0;;;;;;:19;:23;;;;;;;;20838:24;20795:67;20780:82;;20875:12;20906:7;20902:402;;;-1:-1:-1;;;;;20934:29:0;;;;;;:25;:29;;;;;;;;20930:229;;;20991:28;21015:3;20991:19;21002:7;;20991:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20984:35;;20930:229;;;-1:-1:-1;;;;;21057:31:0;;;;;;:25;:31;;;;;;;;21054:105;;;21116:27;21139:3;21116:18;21127:6;;21116;:10;;:18;;;;:::i;:27::-;21109:34;;21054:105;21177:8;;21173:91;;21206:42;21222:4;21236;21243;21206:15;:42::i;:::-;21278:14;21288:4;21278:14;;:::i;:::-;;;20902:402;21314:33;21330:4;21336:2;21340:6;21314:15;:33::i;:::-;18589:2766;;;;18510:2845;;;:::o;12883:595::-;-1:-1:-1;;;;;12967:21:0;;12959:67;;;;-1:-1:-1;;;12959:67:0;;13140:2:1;12959:67:0;;;13122:21:1;13179:2;13159:18;;;13152:30;13218:34;13198:18;;;13191:62;-1:-1:-1;;;13269:18:1;;;13262:31;13310:19;;12959:67:0;12938:397:1;12959:67:0;-1:-1:-1;;;;;13126:18:0;;13101:22;13126:18;;;;;;;;;;;13163:24;;;;13155:71;;;;-1:-1:-1;;;13155:71:0;;13542:2:1;13155:71:0;;;13524:21:1;13581:2;13561:18;;;13554:30;13620:34;13600:18;;;13593:62;-1:-1:-1;;;13671:18:1;;;13664:32;13713:19;;13155:71:0;13340:398:1;13155:71:0;-1:-1:-1;;;;;13262:18:0;;:9;:18;;;;;;;;;;;13283:23;;;13262:44;;13321:12;:22;;;;;;;13372:37;1361:25:1;;;13262:9:0;;:18;13372:37;;1334:18:1;13372:37:0;;;;;;;22346:216;;22295:267;:::o;763:132::-;741:6;;-1:-1:-1;;;;;741:6:0;221:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;13945:2:1;819:68:0;;;13927:21:1;;;13964:18;;;13957:30;14023:34;14003:18;;;13996:62;14075:18;;819:68:0;13743:356:1;1223:191:0;1316:6;;;-1:-1:-1;;;;;1333:17:0;;;-1:-1:-1;;;;;;1333:17:0;;;;;;;1366:40;;1316:6;;;1333:17;1316:6;;1366:40;;1297:16;;1366:40;1286:128;1223:191;:::o;21363:470::-;21453:16;;;21467:1;21453:16;;;;;;;;21429:21;;21453:16;;;;;;;;;;-1:-1:-1;21453:16:0;21429:40;;21498:4;21480;21485:1;21480:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21480:23:0;;;-1:-1:-1;;;;;21480:23:0;;;;;21524:16;-1:-1:-1;;;;;21524:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21514:4;21519:1;21514:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;21514:33:0;;;-1:-1:-1;;;;;21514:33:0;;;;;21558:63;21575:4;21590:16;21609:11;21558:8;:63::i;:::-;21775:9;;21632:193;;-1:-1:-1;;;21632:193:0;;-1:-1:-1;;;;;21632:16:0;:67;;;;;:193;;21714:11;;21740:1;;21756:4;;21775:9;;;;;21799:15;;21632:193;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21418:415;21363:470;:::o;18316:186::-;-1:-1:-1;;;;;18399:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18399:39:0;;;;;;;;;;18454:40;;18399:39;;:31;18454:40;;;18316:186;;:::o;11791:641::-;-1:-1:-1;;;;;11888:18:0;;11880:68;;;;-1:-1:-1;;;11880:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11967:16:0;;11959:64;;;;-1:-1:-1;;;11959:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12109:15:0;;12087:19;12109:15;;;;;;;;;;;12143:21;;;;12135:72;;;;-1:-1:-1;;;12135:72:0;;15811:2:1;12135:72:0;;;15793:21:1;15850:2;15830:18;;;15823:30;15889:34;15869:18;;;15862:62;-1:-1:-1;;;15940:18:1;;;15933:36;15986:19;;12135:72:0;15609:402:1;12135:72:0;-1:-1:-1;;;;;12243:15:0;;;:9;:15;;;;;;;;;;;12261:20;;;12243:38;;12296:13;;;;;;;;;;:23;;;;;;12348:26;;1361:25:1;;;12296:13:0;;12348:26;;1334:18:1;12348:26:0;;;;;;;12387:37;22295:267;23005:369;23044:23;23070:24;23088:4;23070:9;:24::i;:::-;23044:50;;23109:15;23128:1;23109:20;23105:59;;23146:7;23005:369::o;23105:59::-;23244:18;;23197:15;;23229:33;;23225:99;;;-1:-1:-1;23294:18:0;;23225:99;23336:30;23353:12;23336:16;:30::i;8149:98::-;8207:7;8234:5;8238:1;8234;:5;:::i;:::-;8227:12;8149:98;-1:-1:-1;;;8149:98:0:o;8255:::-;8313:7;8340:5;8344:1;8340;: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;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:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;3179:118::-;3265:5;3258:13;3251:21;3244:5;3241:32;3231:60;;3287:1;3284;3277:12;3302:382;3367:6;3375;3428:2;3416:9;3407:7;3403:23;3399:32;3396:52;;;3444:1;3441;3434:12;3396:52;3483:9;3470:23;3502:31;3527:5;3502:31;:::i;:::-;3552:5;-1:-1:-1;3609:2:1;3594:18;;3581:32;3622:30;3581:32;3622:30;:::i;:::-;3671:7;3661:17;;;3302:382;;;;;:::o;3689:388::-;3757:6;3765;3818:2;3806:9;3797:7;3793:23;3789:32;3786:52;;;3834:1;3831;3824:12;3786:52;3873:9;3860:23;3892:31;3917:5;3892:31;:::i;:::-;3942:5;-1:-1:-1;3999:2:1;3984:18;;3971:32;4012:33;3971:32;4012:33;:::i;4082:380::-;4161:1;4157:12;;;;4204;;;4225:61;;4279:4;4271:6;4267:17;4257:27;;4225:61;4332:2;4324:6;4321:14;4301:18;4298:38;4295:161;;4378:10;4373:3;4369:20;4366:1;4359:31;4413:4;4410:1;4403:15;4441:4;4438:1;4431:15;4295:161;;4082:380;;;:::o;4467:127::-;4528:10;4523:3;4519:20;4516:1;4509:31;4559:4;4556:1;4549:15;4583:4;4580:1;4573:15;4599:125;4664:9;;;4685:10;;;4682:36;;;4698:18;;:::i;4729:168::-;4802:9;;;4833;;4850:15;;;4844:22;;4830:37;4820:71;;4871:18;;:::i;4902:217::-;4942:1;4968;4958:132;;5012:10;5007:3;5003:20;5000:1;4993:31;5047:4;5044:1;5037:15;5075:4;5072:1;5065:15;4958:132;-1:-1:-1;5104:9:1;;4902:217::o;7624:306::-;7712:6;7720;7728;7781:2;7769:9;7760:7;7756:23;7752:32;7749:52;;;7797:1;7794;7787:12;7749:52;7826:9;7820:16;7810:26;;7876:2;7865:9;7861:18;7855:25;7845:35;;7920:2;7909:9;7905:18;7899:25;7889:35;;7624:306;;;;;:::o;8214:245::-;8281:6;8334:2;8322:9;8313:7;8309:23;8305:32;8302:52;;;8350:1;8347;8340:12;8302:52;8382:9;8376:16;8401:28;8423:5;8401:28;:::i;10037:401::-;10239:2;10221:21;;;10278:2;10258:18;;;10251:30;10317:34;10312:2;10297:18;;10290:62;-1:-1:-1;;;10383:2:1;10368:18;;10361:35;10428:3;10413:19;;10037:401::o;10443:399::-;10645:2;10627:21;;;10684:2;10664:18;;;10657:30;10723:34;10718:2;10703:18;;10696:62;-1:-1:-1;;;10789:2:1;10774:18;;10767:33;10832:3;10817:19;;10443:399::o;12805:128::-;12872:9;;;12893:11;;;12890:37;;;12907:18;;:::i;14236:127::-;14297:10;14292:3;14288:20;14285:1;14278:31;14328:4;14325:1;14318:15;14352:4;14349:1;14342:15;14368:251;14438:6;14491:2;14479:9;14470:7;14466:23;14462:32;14459:52;;;14507:1;14504;14497:12;14459:52;14539:9;14533:16;14558:31;14583:5;14558:31;:::i;14624:980::-;14886:4;14934:3;14923:9;14919:19;14965:6;14954:9;14947:25;14991:2;15029:6;15024:2;15013:9;15009:18;15002:34;15072:3;15067:2;15056:9;15052:18;15045:31;15096:6;15131;15125:13;15162:6;15154;15147:22;15200:3;15189:9;15185:19;15178:26;;15239:2;15231:6;15227:15;15213:29;;15260:1;15270:195;15284:6;15281:1;15278:13;15270:195;;;15349:13;;-1:-1:-1;;;;;15345:39:1;15333:52;;15440:15;;;;15405:12;;;;15381:1;15299:9;15270:195;;;-1:-1:-1;;;;;;;15521:32:1;;;;15516:2;15501:18;;15494:60;-1:-1:-1;;;15585:3:1;15570:19;15563:35;15482:3;14624:980;-1:-1:-1;;;14624:980:1:o

Swarm Source

ipfs://32497bfb9f977074426826f1d4344d2e2bcebe541ec573f3dc7fcc1b6f39bb2a
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.