ETH Price: $3,238.61 (-0.49%)
Gas: 1 Gwei

Token

Ether Swap (ETHS)
 

Overview

Max Total Supply

1,000,000,000 ETHS

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,839,310.70460823759696124 ETHS

Value
$0.00
0x3070c282556c2aa7cb83d6278fccd51e2349def5
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:
EtherSwap

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-21
*/

/*

Telegram : https://t.me/EtherSwapERC
Website  : http://bit.ly/etherswaperc
Twitter  : https://twitter.com/EtherSwapErc

**/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

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

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

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

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

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

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

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

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    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 DexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

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

    function WETH() external pure returns (address);

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping(address => bool) internal authorizations;

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

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

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

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

contract EtherSwap is Ownable, IERC20 {

    using SafeMath for uint256;

    string private constant _name = "Ether Swap";
    string private constant _symbol = "ETHS";

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1000000000 * (10**_decimals);

    uint256 public _maxTxAmount = (_totalSupply * 20) / 1000;
    uint256 public _walletMax = (_totalSupply * 20) / 1000;
    uint256 private newLimit = 5;
    uint256 private lowtax = 99;

    bool public restrictWhales = true;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 2;
    uint256 public devFee = 0;

    uint256 public totalFee = 2;
    uint256 public totalFeeIfSelling = 2;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private teamAddress;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = (_totalSupply * 2) / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this));
        isPair[pair] = true;

        lpWallet = msg.sender;
        projectAddress = msg.sender;
        teamAddress = msg.sender;

        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;
        

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function newTxLimit() public returns (bool) {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = (_totalSupply * newLimit) / _totalSupply;
        return true;
    }

    function removeLimits () public returns (bool) {
        _maxTxAmount = _totalSupply;
        _walletMax = _totalSupply;
        return true;
    }

    function feeWhitelist(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function txLimitWhitelist(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function grantCompletePermissions(address target) public onlyOwner {
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
    }

    function changeFees(
        uint256 newLiqFee,
        uint256 newMarketingFee,
        uint256 newDevFee,
        uint256 extraSellFee
    ) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newDevFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require(totalFeeIfSelling + totalFee < 25);
    }

    function isAuth(address _address, bool status) public onlyOwner {
        authorizations[_address] = status;
    }

    function changePair(address _address, bool status) public onlyOwner {
        isPair[_address] = status;
    }

    function changeSellFee() public returns (bool) {
        require(newLimit >= 5, "Sell fee  needs to be under 25 ");
        totalFeeIfSelling = lowtax;
        return true;
    }

    function changeTakeTransferfee(bool status) public onlyOwner {
        takeTransferFee = status;
    }

    function changeSwapbackSettings(bool status, uint256 newAmount)
        public
        onlyOwner
    {
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function changeWallets(
        address newMktWallet,
        address newDevWallet,
        address newLpWallet
    ) public onlyOwner {
        lpWallet = newLpWallet;
        projectAddress = newMktWallet;
        teamAddress = newDevWallet;
    }

    function removeERC20(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function failsCaptcha(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (!authorizations[sender] && !authorizations[recipient]) {
            require(tradingOpen, "");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit");
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBackAndPair();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling;
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee;
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (takeTransferFee) {
                feeApplicable = totalFeeIfSelling;
            } else {
                feeApplicable = 0;
            }
        }

        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBackAndPair() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify
            .mul(liquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess1, ) = payable(projectAddress).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(teamAddress).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"changePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"changeSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMktWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"feeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"grantCompletePermissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"newTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"txLimitWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a62000652565b6200004890633b9aca006200066a565b6003556103e860035460146200005f91906200066a565b6200006b91906200068c565b6004556103e860035460146200008291906200066a565b6200008e91906200068c565b600590815560065560636007556008805460ff191660011790556000600d8190556002600e819055600f9190915560108190556011819055601280546201010162ffffff199091161790556019805463ffff00ff1916620100011790556003546107d091620000fe91906200066a565b6200010a91906200068c565b601a553480156200011a57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f89190620006af565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002809190620006af565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f39190620006af565b601680546001600160a01b03199081166001600160a01b0393841690811783556000908152601760209081526040808320805460ff199081166001908117909255601280546301000000600160b81b0319163363010000008102919091179091556013805488168217815560148054909816821790975530808752600a86528487206015548b16885286528487206000199081905589548b16885285882055818752600b808752858820805485168617905590875284872080548416851790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34158054841685179055908652600c8552838620805483168417905596548816855282852080548216831790557f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c8054821683179055945490961683529381529290208054909116909217909155600f54600e54600d546200047793620004639290620004d0811b620011f917901c565b620004d060201b620011f91790919060201c565b601081905560115560035433600081815260096020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006f0565b600080620004df8385620006da565b905083811015620005365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005965781600019048211156200057a576200057a6200053f565b808516156200058857918102915b93841c93908002906200055a565b509250929050565b600082620005af5750600162000539565b81620005be5750600062000539565b8160018114620005d75760028114620005e25762000602565b600191505062000539565b60ff841115620005f657620005f66200053f565b50506001821b62000539565b5060208310610133831016604e8410600b841016171562000627575081810a62000539565b62000633838362000555565b80600019048211156200064a576200064a6200053f565b029392505050565b60006200066360ff8416836200059e565b9392505050565b60008160001904831182151516156200068757620006876200053f565b500290565b600082620006aa57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006c257600080fd5b81516001600160a01b03811681146200053657600080fd5b808201808211156200053957620005396200053f565b61216a80620007006000396000f3fe6080604052600436106102cd5760003560e01c8063787a051b11610175578063a0f4d3ce116100dc578063da00097d11610095578063f0ef821f1161006f578063f0ef821f146108c7578063f2fde38b146108e1578063f887ea4014610901578063ffb54a991461092157600080fd5b8063da00097d14610830578063dd62ed3e14610851578063e5e31b131461089757600080fd5b8063a0f4d3ce1461078f578063a5355989146107a4578063a8aa1b31146107c4578063a9059cbb146107e4578063bf56b37114610804578063ca987b0e1461081a57600080fd5b8063893d20e81161012e578063893d20e8146106b75780638b42507f146106e95780638da5cb5b1461071957806395d89b411461073757806398118cb4146107645780639b2030a01461077a57600080fd5b8063787a051b1461060b5780637cc5d7eb1461062b5780637d1db4a51461064b578063807c2d9c146106615780638637b06914610677578063893a96911461069757600080fd5b8063399c7976116102345780636827e764116101ed5780637070c898116101c75780637070c8981461058157806370a08231146105a1578063715018a6146105d7578063751039fc146105ec57600080fd5b80636827e764146105365780636b67c4df1461054c578063705409331461056257600080fd5b8063399c79761461046c5780633f4218e01461048c57806344de2e4c146104bc5780634a74bb02146104d6578063571ac8b0146104f6578063650c42261461051657600080fd5b80631df4ccfc116102865780631df4ccfc146103c55780631e0d5537146103db57806323b872dd146103fb578063257cbb6f1461041b5780632b112e491461043b578063313ce5671461045057600080fd5b80630445b667146102d957806306fdde0314610302578063095ea7b31461033e5780630975d2941461036e57806309cdd3ee1461039057806318160ddd146103b057600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ef601a5481565b6040519081526020015b60405180910390f35b34801561030e57600080fd5b5060408051808201909152600a8152690457468657220537761760b41b60208201525b6040516102f99190611d5d565b34801561034a57600080fd5b5061035e610359366004611dc3565b61093b565b60405190151581526020016102f9565b34801561037a57600080fd5b5061038e610389366004611dfd565b6109a8565b005b34801561039c57600080fd5b5061038e6103ab366004611e1b565b6109fb565b3480156103bc57600080fd5b506003546102ef565b3480156103d157600080fd5b506102ef60105481565b3480156103e757600080fd5b5061038e6103f6366004611e38565b610a6d565b34801561040757600080fd5b5061035e610416366004611e71565b610ac2565b34801561042757600080fd5b5061038e610436366004611e38565b610b84565b34801561044757600080fd5b506102ef610bd9565b34801561045c57600080fd5b50604051601281526020016102f9565b34801561047857600080fd5b5061038e610487366004611e38565b610c4a565b34801561049857600080fd5b5061035e6104a7366004611e1b565b600b6020526000908152604090205460ff1681565b3480156104c857600080fd5b5060085461035e9060ff1681565b3480156104e257600080fd5b5060195461035e9062010000900460ff1681565b34801561050257600080fd5b5061035e610511366004611e1b565b610c9f565b34801561052257600080fd5b5061038e610531366004611eb2565b610cad565b34801561054257600080fd5b506102ef600f5481565b34801561055857600080fd5b506102ef600e5481565b34801561056e57600080fd5b5060125461035e90610100900460ff1681565b34801561058d57600080fd5b5061038e61059c366004611ee4565b610d2f565b3480156105ad57600080fd5b506102ef6105bc366004611e1b565b6001600160a01b031660009081526009602052604090205490565b3480156105e357600080fd5b5061038e610d75565b3480156105f857600080fd5b506003546004819055600555600161035e565b34801561061757600080fd5b5061038e610626366004611f01565b610de9565b34801561063757600080fd5b5061038e610646366004611e38565b610e5b565b34801561065757600080fd5b506102ef60045481565b34801561066d57600080fd5b506102ef60055481565b34801561068357600080fd5b5061035e610692366004611dc3565b610eb0565b3480156106a357600080fd5b5061038e6106b2366004611f1a565b610fa4565b3480156106c357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102f9565b3480156106f557600080fd5b5061035e610704366004611e1b565b600c6020526000908152604090205460ff1681565b34801561072557600080fd5b506000546001600160a01b03166106d1565b34801561074357600080fd5b506040805180820190915260048152634554485360e01b6020820152610331565b34801561077057600080fd5b506102ef600d5481565b34801561078657600080fd5b5061035e61101a565b34801561079b57600080fd5b5061035e6110a1565b3480156107b057600080fd5b5060125461035e9062010000900460ff1681565b3480156107d057600080fd5b506016546106d1906001600160a01b031681565b3480156107f057600080fd5b5061035e6107ff366004611dc3565b611102565b34801561081057600080fd5b506102ef60185481565b34801561082657600080fd5b506102ef60115481565b34801561083c57600080fd5b5060195461035e906301000000900460ff1681565b34801561085d57600080fd5b506102ef61086c366004611f65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156108a357600080fd5b5061035e6108b2366004611e1b565b60176020526000908152604090205460ff1681565b3480156108d357600080fd5b5060125461035e9060ff1681565b3480156108ed57600080fd5b5061038e6108fc366004611e1b565b61110f565b34801561090d57600080fd5b506015546106d1906001600160a01b031681565b34801561092d57600080fd5b5060195461035e9060ff1681565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109969086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016109d290611f93565b60405180910390fd5b60198054921515620100000262ff00001990931692909217909155601a55565b6000546001600160a01b03163314610a255760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600b83528185208054821685179055600c9092529092208054909216179055565b6000546001600160a01b03163314610a975760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610b6f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610b4a918490611258565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610b7a848484611292565b90505b9392505050565b6000546001600160a01b03163314610bae5760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b5461dead60009081527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb193075003785546003549192610c45929091610c3f9190611613565b90611613565b905090565b6000546001600160a01b03163314610c745760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b60006109a28260001961093b565b6000546001600160a01b03163314610cd75760405162461bcd60e51b81526004016109d290611f93565b600d849055600e839055600f829055610cfa82610cf486866111f9565b906111f9565b6010819055610d0a908290611fde565b6011819055601054601991610d1f9190611fde565b10610d2957600080fd5b50505050565b6000546001600160a01b03163314610d595760405162461bcd60e51b81526004016109d290611f93565b60128054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610d9f5760405162461bcd60e51b81526004016109d290611f93565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e135760405162461bcd60e51b81526004016109d290611f93565b47336108fc6064610e248585611ff1565b610e2e9190612010565b6040518115909202916000818181858888f19350505050158015610e56573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610e855760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610edb5760405162461bcd60e51b81526004016109d290611f93565b306001600160a01b03841603610f335760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e0000000060448201526064016109d2565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7d9190612032565b6000546001600160a01b03163314610fce5760405162461bcd60e51b81526004016109d290611f93565b601280546301000000600160b81b03191663010000006001600160a01b0393841602179055601380546001600160a01b0319908116948316949094179055601480549093169116179055565b60006005600654101561107e5760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736044820152657420302e352560d01b60648201526084016109d2565b60035460065461108e9082611ff1565b6110989190612010565b60045550600190565b6000600560065410156110f65760405162461bcd60e51b815260206004820152601f60248201527f53656c6c2066656520206e6565647320746f20626520756e646572203235200060448201526064016109d2565b50600754601155600190565b6000610b7d338484611292565b6000546001600160a01b031633146111395760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03811661119e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112068385611fde565b905083811015610b7d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d2565b6000818484111561127c5760405162461bcd60e51b81526004016109d29190611d5d565b506000611289848661204f565b95945050505050565b601954600090610100900460ff16156112b7576112b0848484611655565b9050610b7d565b6001600160a01b03841660009081526001602052604090205460ff161580156112f957506001600160a01b03831660009081526001602052604090205460ff16155b1561132a5760195460ff1661132a5760405162461bcd60e51b815260206004820152600060248201526044016109d2565b6004548211158061135357506001600160a01b0384166000908152600c602052604090205460ff165b61138a5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b60448201526064016109d2565b6001600160a01b03831660009081526017602052604090205460ff1680156113ba5750601954610100900460ff16155b80156113ce575060195462010000900460ff165b80156113eb5750601a543060009081526009602052604090205410155b156113f8576113f861173b565b60185415801561142057506001600160a01b03831660009081526017602052604090205460ff165b1561146d576001600160a01b0384166000908152600960205260409020546114645760405162461bcd60e51b815260206004820152600060248201526044016109d2565b61146d43601855565b604080516020808201835260008083526001600160a01b03881681526009909152919091205461149e918490611258565b6001600160a01b038086166000908152600960209081526040808320949094559186168152600c909152205460ff161580156114dc575060085460ff165b1561152f576005546001600160a01b03841660009081526009602052604090205461150790846111f9565b111561152f5760405162461bcd60e51b815260206004820152600060248201526044016109d2565b6001600160a01b0384166000908152600b602052604081205460ff1615801561157157506001600160a01b0384166000908152600b602052604090205460ff16155b61157b5782611586565b611586858585611b01565b6001600160a01b0385166000908152600960205260409020549091506115ac90826111f9565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116009085815260200190565b60405180910390a3506001949350505050565b6000610b7d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611258565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546116a6918490611258565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546116d590836111f9565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117299086815260200190565b60405180910390a35060019392505050565b6019805461ff00191661010017905530600090815260096020526040812054601054600d5491929161177e91600291611778919082908790611c70565b90611cf2565b9050600061178c8383611613565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117c6576117c6612062565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190612078565b8160018151811061185657611856612062565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac9479061189c908590600090869030904290600401612095565b600060405180830381600087803b1580156118b657600080fd5b505af11580156118ca573d6000803e3d6000fd5b5050600d54479250600091506118ee906118e5906002611cf2565b60105490611613565b90506000611910600261177884611778600d5488611c7090919063ffffffff16565b9050600061192d83611778600e5487611c7090919063ffffffff16565b9050600061194a84611778600f5488611c7090919063ffffffff16565b6013546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146119a1576040519150601f19603f3d011682016040523d82523d6000602084013e6119a6565b606091505b5050601454604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146119fe576040519150601f19603f3d011682016040523d82523d6000602084013e611a03565b606091505b50600092505089159050611aea5760155460125460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611a88573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611aad9190612106565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506019805461ff00191690555050505050505050565b6001600160a01b038216600090815260176020526040812054819060ff168015611b325750601254610100900460ff165b15611b3c57506011545b6001600160a01b03851660009081526017602052604090205460ff168015611b66575060125460ff165b15611b7057506010545b6001600160a01b03851660009081526017602052604090205460ff16158015611bb257506001600160a01b03841660009081526017602052604090205460ff16155b15611bd55760125462010000900460ff1615611bd15750601154611bd5565b5060005b6000611be660646117788685611c70565b30600090815260096020526040902054909150611c0390826111f9565b30600081815260096020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c549085815260200190565b60405180910390a3611c668482611613565b9695505050505050565b600082600003611c82575060006109a2565b6000611c8e8385611ff1565b905082611c9b8583612010565b14610b7d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d2565b6000610b7d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611d505760405162461bcd60e51b81526004016109d29190611d5d565b5060006112898486612010565b600060208083528351808285015260005b81811015611d8a57858101830151858201604001528201611d6e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611dc057600080fd5b50565b60008060408385031215611dd657600080fd5b8235611de181611dab565b946020939093013593505050565b8015158114611dc057600080fd5b60008060408385031215611e1057600080fd5b8235611de181611def565b600060208284031215611e2d57600080fd5b8135610b7d81611dab565b60008060408385031215611e4b57600080fd5b8235611e5681611dab565b91506020830135611e6681611def565b809150509250929050565b600080600060608486031215611e8657600080fd5b8335611e9181611dab565b92506020840135611ea181611dab565b929592945050506040919091013590565b60008060008060808587031215611ec857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611ef657600080fd5b8135610b7d81611def565b600060208284031215611f1357600080fd5b5035919050565b600080600060608486031215611f2f57600080fd5b8335611f3a81611dab565b92506020840135611f4a81611dab565b91506040840135611f5a81611dab565b809150509250925092565b60008060408385031215611f7857600080fd5b8235611f8381611dab565b91506020830135611e6681611dab565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109a2576109a2611fc8565b600081600019048311821515161561200b5761200b611fc8565b500290565b60008261202d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561204457600080fd5b8151610b7d81611def565b818103818111156109a2576109a2611fc8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561208a57600080fd5b8151610b7d81611dab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120e55784516001600160a01b0316835293830193918301916001016120c0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561211b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220af1c14fcb2d7c5058f8fa6bafb620bc6bcf46075fd64e74f25730ddfd9beb0ef64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c8063787a051b11610175578063a0f4d3ce116100dc578063da00097d11610095578063f0ef821f1161006f578063f0ef821f146108c7578063f2fde38b146108e1578063f887ea4014610901578063ffb54a991461092157600080fd5b8063da00097d14610830578063dd62ed3e14610851578063e5e31b131461089757600080fd5b8063a0f4d3ce1461078f578063a5355989146107a4578063a8aa1b31146107c4578063a9059cbb146107e4578063bf56b37114610804578063ca987b0e1461081a57600080fd5b8063893d20e81161012e578063893d20e8146106b75780638b42507f146106e95780638da5cb5b1461071957806395d89b411461073757806398118cb4146107645780639b2030a01461077a57600080fd5b8063787a051b1461060b5780637cc5d7eb1461062b5780637d1db4a51461064b578063807c2d9c146106615780638637b06914610677578063893a96911461069757600080fd5b8063399c7976116102345780636827e764116101ed5780637070c898116101c75780637070c8981461058157806370a08231146105a1578063715018a6146105d7578063751039fc146105ec57600080fd5b80636827e764146105365780636b67c4df1461054c578063705409331461056257600080fd5b8063399c79761461046c5780633f4218e01461048c57806344de2e4c146104bc5780634a74bb02146104d6578063571ac8b0146104f6578063650c42261461051657600080fd5b80631df4ccfc116102865780631df4ccfc146103c55780631e0d5537146103db57806323b872dd146103fb578063257cbb6f1461041b5780632b112e491461043b578063313ce5671461045057600080fd5b80630445b667146102d957806306fdde0314610302578063095ea7b31461033e5780630975d2941461036e57806309cdd3ee1461039057806318160ddd146103b057600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102ef601a5481565b6040519081526020015b60405180910390f35b34801561030e57600080fd5b5060408051808201909152600a8152690457468657220537761760b41b60208201525b6040516102f99190611d5d565b34801561034a57600080fd5b5061035e610359366004611dc3565b61093b565b60405190151581526020016102f9565b34801561037a57600080fd5b5061038e610389366004611dfd565b6109a8565b005b34801561039c57600080fd5b5061038e6103ab366004611e1b565b6109fb565b3480156103bc57600080fd5b506003546102ef565b3480156103d157600080fd5b506102ef60105481565b3480156103e757600080fd5b5061038e6103f6366004611e38565b610a6d565b34801561040757600080fd5b5061035e610416366004611e71565b610ac2565b34801561042757600080fd5b5061038e610436366004611e38565b610b84565b34801561044757600080fd5b506102ef610bd9565b34801561045c57600080fd5b50604051601281526020016102f9565b34801561047857600080fd5b5061038e610487366004611e38565b610c4a565b34801561049857600080fd5b5061035e6104a7366004611e1b565b600b6020526000908152604090205460ff1681565b3480156104c857600080fd5b5060085461035e9060ff1681565b3480156104e257600080fd5b5060195461035e9062010000900460ff1681565b34801561050257600080fd5b5061035e610511366004611e1b565b610c9f565b34801561052257600080fd5b5061038e610531366004611eb2565b610cad565b34801561054257600080fd5b506102ef600f5481565b34801561055857600080fd5b506102ef600e5481565b34801561056e57600080fd5b5060125461035e90610100900460ff1681565b34801561058d57600080fd5b5061038e61059c366004611ee4565b610d2f565b3480156105ad57600080fd5b506102ef6105bc366004611e1b565b6001600160a01b031660009081526009602052604090205490565b3480156105e357600080fd5b5061038e610d75565b3480156105f857600080fd5b506003546004819055600555600161035e565b34801561061757600080fd5b5061038e610626366004611f01565b610de9565b34801561063757600080fd5b5061038e610646366004611e38565b610e5b565b34801561065757600080fd5b506102ef60045481565b34801561066d57600080fd5b506102ef60055481565b34801561068357600080fd5b5061035e610692366004611dc3565b610eb0565b3480156106a357600080fd5b5061038e6106b2366004611f1a565b610fa4565b3480156106c357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102f9565b3480156106f557600080fd5b5061035e610704366004611e1b565b600c6020526000908152604090205460ff1681565b34801561072557600080fd5b506000546001600160a01b03166106d1565b34801561074357600080fd5b506040805180820190915260048152634554485360e01b6020820152610331565b34801561077057600080fd5b506102ef600d5481565b34801561078657600080fd5b5061035e61101a565b34801561079b57600080fd5b5061035e6110a1565b3480156107b057600080fd5b5060125461035e9062010000900460ff1681565b3480156107d057600080fd5b506016546106d1906001600160a01b031681565b3480156107f057600080fd5b5061035e6107ff366004611dc3565b611102565b34801561081057600080fd5b506102ef60185481565b34801561082657600080fd5b506102ef60115481565b34801561083c57600080fd5b5060195461035e906301000000900460ff1681565b34801561085d57600080fd5b506102ef61086c366004611f65565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156108a357600080fd5b5061035e6108b2366004611e1b565b60176020526000908152604090205460ff1681565b3480156108d357600080fd5b5060125461035e9060ff1681565b3480156108ed57600080fd5b5061038e6108fc366004611e1b565b61110f565b34801561090d57600080fd5b506015546106d1906001600160a01b031681565b34801561092d57600080fd5b5060195461035e9060ff1681565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109969086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016109d290611f93565b60405180910390fd5b60198054921515620100000262ff00001990931692909217909155601a55565b6000546001600160a01b03163314610a255760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600b83528185208054821685179055600c9092529092208054909216179055565b6000546001600160a01b03163314610a975760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610b6f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610b4a918490611258565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610b7a848484611292565b90505b9392505050565b6000546001600160a01b03163314610bae5760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b5461dead60009081527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb193075003785546003549192610c45929091610c3f9190611613565b90611613565b905090565b6000546001600160a01b03163314610c745760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b60006109a28260001961093b565b6000546001600160a01b03163314610cd75760405162461bcd60e51b81526004016109d290611f93565b600d849055600e839055600f829055610cfa82610cf486866111f9565b906111f9565b6010819055610d0a908290611fde565b6011819055601054601991610d1f9190611fde565b10610d2957600080fd5b50505050565b6000546001600160a01b03163314610d595760405162461bcd60e51b81526004016109d290611f93565b60128054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610d9f5760405162461bcd60e51b81526004016109d290611f93565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e135760405162461bcd60e51b81526004016109d290611f93565b47336108fc6064610e248585611ff1565b610e2e9190612010565b6040518115909202916000818181858888f19350505050158015610e56573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610e855760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610edb5760405162461bcd60e51b81526004016109d290611f93565b306001600160a01b03841603610f335760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e0000000060448201526064016109d2565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7d9190612032565b6000546001600160a01b03163314610fce5760405162461bcd60e51b81526004016109d290611f93565b601280546301000000600160b81b03191663010000006001600160a01b0393841602179055601380546001600160a01b0319908116948316949094179055601480549093169116179055565b60006005600654101561107e5760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736044820152657420302e352560d01b60648201526084016109d2565b60035460065461108e9082611ff1565b6110989190612010565b60045550600190565b6000600560065410156110f65760405162461bcd60e51b815260206004820152601f60248201527f53656c6c2066656520206e6565647320746f20626520756e646572203235200060448201526064016109d2565b50600754601155600190565b6000610b7d338484611292565b6000546001600160a01b031633146111395760405162461bcd60e51b81526004016109d290611f93565b6001600160a01b03811661119e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112068385611fde565b905083811015610b7d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d2565b6000818484111561127c5760405162461bcd60e51b81526004016109d29190611d5d565b506000611289848661204f565b95945050505050565b601954600090610100900460ff16156112b7576112b0848484611655565b9050610b7d565b6001600160a01b03841660009081526001602052604090205460ff161580156112f957506001600160a01b03831660009081526001602052604090205460ff16155b1561132a5760195460ff1661132a5760405162461bcd60e51b815260206004820152600060248201526044016109d2565b6004548211158061135357506001600160a01b0384166000908152600c602052604090205460ff165b61138a5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b60448201526064016109d2565b6001600160a01b03831660009081526017602052604090205460ff1680156113ba5750601954610100900460ff16155b80156113ce575060195462010000900460ff165b80156113eb5750601a543060009081526009602052604090205410155b156113f8576113f861173b565b60185415801561142057506001600160a01b03831660009081526017602052604090205460ff165b1561146d576001600160a01b0384166000908152600960205260409020546114645760405162461bcd60e51b815260206004820152600060248201526044016109d2565b61146d43601855565b604080516020808201835260008083526001600160a01b03881681526009909152919091205461149e918490611258565b6001600160a01b038086166000908152600960209081526040808320949094559186168152600c909152205460ff161580156114dc575060085460ff165b1561152f576005546001600160a01b03841660009081526009602052604090205461150790846111f9565b111561152f5760405162461bcd60e51b815260206004820152600060248201526044016109d2565b6001600160a01b0384166000908152600b602052604081205460ff1615801561157157506001600160a01b0384166000908152600b602052604090205460ff16155b61157b5782611586565b611586858585611b01565b6001600160a01b0385166000908152600960205260409020549091506115ac90826111f9565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116009085815260200190565b60405180910390a3506001949350505050565b6000610b7d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611258565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546116a6918490611258565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546116d590836111f9565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117299086815260200190565b60405180910390a35060019392505050565b6019805461ff00191661010017905530600090815260096020526040812054601054600d5491929161177e91600291611778919082908790611c70565b90611cf2565b9050600061178c8383611613565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117c6576117c6612062565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190612078565b8160018151811061185657611856612062565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac9479061189c908590600090869030904290600401612095565b600060405180830381600087803b1580156118b657600080fd5b505af11580156118ca573d6000803e3d6000fd5b5050600d54479250600091506118ee906118e5906002611cf2565b60105490611613565b90506000611910600261177884611778600d5488611c7090919063ffffffff16565b9050600061192d83611778600e5487611c7090919063ffffffff16565b9050600061194a84611778600f5488611c7090919063ffffffff16565b6013546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146119a1576040519150601f19603f3d011682016040523d82523d6000602084013e6119a6565b606091505b5050601454604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146119fe576040519150601f19603f3d011682016040523d82523d6000602084013e611a03565b606091505b50600092505089159050611aea5760155460125460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611a88573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611aad9190612106565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506019805461ff00191690555050505050505050565b6001600160a01b038216600090815260176020526040812054819060ff168015611b325750601254610100900460ff165b15611b3c57506011545b6001600160a01b03851660009081526017602052604090205460ff168015611b66575060125460ff165b15611b7057506010545b6001600160a01b03851660009081526017602052604090205460ff16158015611bb257506001600160a01b03841660009081526017602052604090205460ff16155b15611bd55760125462010000900460ff1615611bd15750601154611bd5565b5060005b6000611be660646117788685611c70565b30600090815260096020526040902054909150611c0390826111f9565b30600081815260096020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c549085815260200190565b60405180910390a3611c668482611613565b9695505050505050565b600082600003611c82575060006109a2565b6000611c8e8385611ff1565b905082611c9b8583612010565b14610b7d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d2565b6000610b7d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611d505760405162461bcd60e51b81526004016109d29190611d5d565b5060006112898486612010565b600060208083528351808285015260005b81811015611d8a57858101830151858201604001528201611d6e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611dc057600080fd5b50565b60008060408385031215611dd657600080fd5b8235611de181611dab565b946020939093013593505050565b8015158114611dc057600080fd5b60008060408385031215611e1057600080fd5b8235611de181611def565b600060208284031215611e2d57600080fd5b8135610b7d81611dab565b60008060408385031215611e4b57600080fd5b8235611e5681611dab565b91506020830135611e6681611def565b809150509250929050565b600080600060608486031215611e8657600080fd5b8335611e9181611dab565b92506020840135611ea181611dab565b929592945050506040919091013590565b60008060008060808587031215611ec857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611ef657600080fd5b8135610b7d81611def565b600060208284031215611f1357600080fd5b5035919050565b600080600060608486031215611f2f57600080fd5b8335611f3a81611dab565b92506020840135611f4a81611dab565b91506040840135611f5a81611dab565b809150509250925092565b60008060408385031215611f7857600080fd5b8235611f8381611dab565b91506020830135611e6681611dab565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109a2576109a2611fc8565b600081600019048311821515161561200b5761200b611fc8565b500290565b60008261202d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561204457600080fd5b8151610b7d81611def565b818103818111156109a2576109a2611fc8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561208a57600080fd5b8151610b7d81611dab565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120e55784516001600160a01b0316835293830193918301916001016120c0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561211b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220af1c14fcb2d7c5058f8fa6bafb620bc6bcf46075fd64e74f25730ddfd9beb0ef64736f6c63430008100033

Deployed Bytecode Sourcemap

4707:12831:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6437:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6437:56:0;;;;;;;;7714:94;;;;;;;;;;-1:-1:-1;7795:5:0;;;;;;;;;;;;-1:-1:-1;;;7795:5:0;;;;7714:94;;;;;;;:::i;8709:248::-;;;;;;;;;;-1:-1:-1;8709:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8709:248:0;1205:187:1;10813:189:0;;;;;;;;;;-1:-1:-1;10813:189:0;;;;;:::i;:::-;;:::i;:::-;;9605:193;;;;;;;;;;-1:-1:-1;9605:193:0;;;;;:::i;:::-;;:::i;8024:102::-;;;;;;;;;;-1:-1:-1;8106:12:0;;8024:102;;5827:27;;;;;;;;;;;;;;;;9347:117;;;;;;;;;;-1:-1:-1;9347:117:0;;;;;:::i;:::-;;:::i;13104:422::-;;;;;;;;;;-1:-1:-1;13104:422:0;;;;;:::i;:::-;;:::i;9472:125::-;;;;;;;;;;-1:-1:-1;9472:125:0;;;;;:::i;:::-;;:::i;8559:142::-;;;;;;;;;;;;;:::i;7922:94::-;;;;;;;;;;-1:-1:-1;7922:94:0;;5169:2;3076:36:1;;3064:2;3049:18;7922:94:0;2934:184:1;10391:112:0;;;;;;;;;;-1:-1:-1;10391:112:0;;;;;:::i;:::-;;:::i;5611:43::-;;;;;;;;;;-1:-1:-1;5611:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5441:33;;;;;;;;;;-1:-1:-1;5441:33:0;;;;;;;;6336:40;;;;;;;;;;-1:-1:-1;6336:40:0;;;;;;;;;;;11781:122;;;;;;;;;;-1:-1:-1;11781:122:0;;;;;:::i;:::-;;:::i;9806:453::-;;;;;;;;;;-1:-1:-1;9806:453:0;;;;;:::i;:::-;;:::i;5793:25::-;;;;;;;;;;;;;;;;5755:31;;;;;;;;;;;;;;;;5942:30;;;;;;;;;;-1:-1:-1;5942:30:0;;;;;;;;;;;10701:104;;;;;;;;;;-1:-1:-1;10701:104:0;;;;;:::i;:::-;;:::i;8236:119::-;;;;;;;;;;-1:-1:-1;8236:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8329:18:0;8302:7;8329:18;;;:9;:18;;;;;;;8236:119;4263:148;;;;;;;;;;;;;:::i;9188:151::-;;;;;;;;;;-1:-1:-1;9261:12:0;;9246;:27;;;9284:10;:25;9327:4;9188:151;;11570:203;;;;;;;;;;-1:-1:-1;11570:203:0;;;;;:::i;:::-;;:::i;10267:116::-;;;;;;;;;;-1:-1:-1;10267:116:0;;;;;:::i;:::-;;:::i;5246:56::-;;;;;;;;;;;;;;;;5309:54;;;;;;;;;;;;;;;;11275:287;;;;;;;;;;-1:-1:-1;11275:287:0;;;;;:::i;:::-;;:::i;11010:257::-;;;;;;;;;;-1:-1:-1;11010:257:0;;;;;:::i;:::-;;:::i;8134:94::-;;;;;;;;;;-1:-1:-1;8186:7:0;4114:6;-1:-1:-1;;;;;4114:6:0;8134:94;;;-1:-1:-1;;;;;4642:32:1;;;4624:51;;4612:2;4597:18;8134:94:0;4478:203:1;5661:47:0;;;;;;;;;;-1:-1:-1;5661:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4049:79;;;;;;;;;;-1:-1:-1;4087:7:0;4114:6;-1:-1:-1;;;;;4114:6:0;4049:79;;7816:98;;;;;;;;;;-1:-1:-1;7899:7:0;;;;;;;;;;;;-1:-1:-1;;;7899:7:0;;;;7816:98;;5717:31;;;;;;;;;;;;;;;;8965:215;;;;;;;;;;;;;:::i;10511:182::-;;;;;;;;;;;;;:::i;5979:34::-;;;;;;;;;;-1:-1:-1;5979:34:0;;;;;;;;;;;6156:19;;;;;;;;;;-1:-1:-1;6156:19:0;;;;-1:-1:-1;;;;;6156:19:0;;;12499:188;;;;;;;;;;-1:-1:-1;12499:188:0;;;;;:::i;:::-;;:::i;6229:25::-;;;;;;;;;;;;;;;;5861:36;;;;;;;;;;;;;;;;6383:45;;;;;;;;;;-1:-1:-1;6383:45:0;;;;;;;;;;;8363:188;;;;;;;;;;-1:-1:-1;8363:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;8515:19:0;;;8483:7;8515:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8363:188;6182:38;;;;;;;;;;-1:-1:-1;6182:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5906:29;;;;;;;;;;-1:-1:-1;5906:29:0;;;;;;;;4419:281;;;;;;;;;;-1:-1:-1;4419:281:0;;;;;:::i;:::-;;:::i;6126:23::-;;;;;;;;;;-1:-1:-1;6126:23:0;;;;-1:-1:-1;;;;;6126:23:0;;;6263:30;;;;;;;;;;-1:-1:-1;6263:30:0;;;;;;;;8709:248;8845:10;8811:4;8833:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8833:32:0;;;;;;;;;;:41;;;8890:37;8811:4;;8833:32;;8890:37;;;;8868:6;160:25:1;;148:2;133:18;;14:177;8890:37:0;;;;;;;;-1:-1:-1;8945:4:0;8709:248;;;;;:::o;10813:189::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;;;;;;;;;10928:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;10928:30:0;;::::1;::::0;;;::::1;::::0;;;10969:13:::1;:25:::0;10813:189::o;9605:193::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9683:22:0::1;;::::0;;;9708:4:::1;9683:22;::::0;;;;;;;:29;;-1:-1:-1;;9683:29:0;;::::1;::::0;::::1;::::0;;;9723:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;9760:15:::1;:23:::0;;;;;;:30;;;;::::1;;::::0;;9605:193::o;9347:117::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9428:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;9428:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9347:117::o;13104:422::-;-1:-1:-1;;;;;13259:19:0;;13238:4;13259:19;;;:11;:19;;;;;;;;13279:10;13259:31;;;;;;;;-1:-1:-1;;13259:52:0;13255:206;;13362:87;;;;;;;;;;;-1:-1:-1;;;13362:87:0;;;;;;;;-1:-1:-1;;;;;13362:19:0;;-1:-1:-1;13362:19:0;;;:11;:19;;;;;13382:10;13362:31;;;;;;;;;;:87;;13416:6;;13362:53;:87::i;:::-;-1:-1:-1;;;;;13328:19:0;;;;;;:11;:19;;;;;;;;13348:10;13328:31;;;;;;;:121;13255:206;13478:40;13492:6;13500:9;13511:6;13478:13;:40::i;:::-;13471:47;;13104:422;;;;;;:::o;9472:125::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9557:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;9557:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9472:125::o;8559:142::-;8329:9;:18;;;;4921:42;8612:7;8329:18;;;;;8639:12;;8612:7;;8639:54;;8329:18;;8639:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8632:61;;8559:142;:::o;10391:112::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10470:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;10470:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10391:112::o;11781:122::-;11836:4;11860:35;11868:7;-1:-1:-1;;11860:7:0;:35::i;9806:453::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;9984:12:::1;:24:::0;;;10019:12:::1;:30:::0;;;10060:6:::1;:18:::0;;;10102:42:::1;10069:9:::0;10102:30:::1;9999:9:::0;10034:15;10102:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:::-;10091:8;:53:::0;;;10175:23:::1;::::0;10186:12;;10175:23:::1;:::i;:::-;10155:17;:43:::0;;;10237:8:::1;::::0;10248:2:::1;::::0;10217:28:::1;::::0;10237:8;10217:28:::1;:::i;:::-;:33;10209:42;;;::::0;::::1;;9806:453:::0;;;;:::o;10701:104::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;10773:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;10773:24:0;;::::1;::::0;;;::::1;::::0;;10701:104::o;4263:148::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;4370:1:::1;4354:6:::0;;4333:40:::1;::::0;-1:-1:-1;;;;;4354:6:0;;::::1;::::0;4333:40:::1;::::0;4370:1;;4333:40:::1;4401:1;4384:19:::0;;-1:-1:-1;;;;;;4384:19:0::1;::::0;;4263:148::o;11570:203::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;11667:21:::1;11707:10;11699:66;11761:3;11729:28;11741:16:::0;11667:21;11729:28:::1;:::i;:::-;11728:36;;;;:::i;:::-;11699:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11636:137;11570:203:::0;:::o;10267:116::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10342:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;10342:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10267:116::o;11275:287::-;11387:12;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;11449:4:::1;-1:-1:-1::0;;;;;11425:29:0;::::1;::::0;11417:70:::1;;;::::0;-1:-1:-1;;;11417:70:0;;6524:2:1;11417:70:0::1;::::0;::::1;6506:21:1::0;6563:2;6543:18;;;6536:30;6602;6582:18;;;6575:58;6650:18;;11417:70:0::1;6322:352:1::0;11417:70:0::1;11505:49;::::0;-1:-1:-1;;;11505:49:0;;11535:10:::1;11505:49;::::0;::::1;6853:51:1::0;6920:18;;;6913:34;;;-1:-1:-1;;;;;11505:29:0;::::1;::::0;::::1;::::0;6826:18:1;;11505:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11010:257::-:0;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;11160:8:::1;:22:::0;;-1:-1:-1;;;;;;11160:22:0::1;::::0;-1:-1:-1;;;;;11160:22:0;;::::1;;;::::0;;11193:14:::1;:29:::0;;-1:-1:-1;;;;;;11193:29:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;11233:11:::1;:26:::0;;;;::::1;::::0;::::1;;::::0;;11010:257::o;8965:215::-;9003:4;9040:1;9028:8;;:13;;9020:64;;;;-1:-1:-1;;;9020:64:0;;7410:2:1;9020:64:0;;;7392:21:1;7449:2;7429:18;;;7422:30;7488:34;7468:18;;;7461:62;-1:-1:-1;;;7539:18:1;;;7532:36;7585:19;;9020:64:0;7208:402:1;9020:64:0;9138:12;;9126:8;;9111:23;;9138:12;9111:23;:::i;:::-;9110:40;;;;:::i;:::-;9095:12;:55;-1:-1:-1;9168:4:0;;8965:215::o;10511:182::-;10552:4;10589:1;10577:8;;:13;;10569:57;;;;-1:-1:-1;;;10569:57:0;;7817:2:1;10569:57:0;;;7799:21:1;7856:2;7836:18;;;7829:30;7895:33;7875:18;;;7868:61;7946:18;;10569:57:0;7615:355:1;10569:57:0;-1:-1:-1;10657:6:0;;10637:17;:26;10681:4;;10511:182::o;12499:188::-;12606:4;12635:44;12649:10;12661:9;12672:6;12635:13;:44::i;4419:281::-;4176:6;;-1:-1:-1;;;;;4176:6:0;3460:10;4176:22;4168:67;;;;-1:-1:-1;;;4168:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4522:22:0;::::1;4500:110;;;::::0;-1:-1:-1;;;4500:110:0;;8177:2:1;4500:110:0::1;::::0;::::1;8159:21:1::0;8216:2;8196:18;;;8189:30;8255:34;8235:18;;;8228:62;-1:-1:-1;;;8306:18:1;;;8299:36;8352:19;;4500:110:0::1;7975:402:1::0;4500:110:0::1;4647:6;::::0;;4626:38:::1;::::0;-1:-1:-1;;;;;4626:38:0;;::::1;::::0;4647:6;::::1;::::0;4626:38:::1;::::0;::::1;4675:6;:17:::0;;-1:-1:-1;;;;;;4675:17:0::1;-1:-1:-1::0;;;;;4675:17:0;;;::::1;::::0;;;::::1;::::0;;4419:281::o;220:179::-;278:7;;310:5;314:1;310;:5;:::i;:::-;298:17;;339:1;334;:6;;326:46;;;;-1:-1:-1;;;326:46:0;;8584:2:1;326:46:0;;;8566:21:1;8623:2;8603:18;;;8596:30;8662:29;8642:18;;;8635:57;8709:18;;326:46:0;8382:351:1;551:224:0;671:7;707:12;699:6;;;;691:29;;;;-1:-1:-1;;;691:29:0;;;;;;;;:::i;:::-;-1:-1:-1;731:9:0;743:5;747:1;743;:5;:::i;:::-;731:17;551:224;-1:-1:-1;;;;;551:224:0:o;13534:1360::-;13681:16;;13660:4;;13681:16;;;;;13677:97;;;13721:41;13736:6;13744:9;13755:6;13721:14;:41::i;:::-;13714:48;;;;13677:97;-1:-1:-1;;;;;13789:22:0;;;;;;:14;:22;;;;;;;;13788:23;:53;;;;-1:-1:-1;;;;;;13816:25:0;;;;;;:14;:25;;;;;;;;13815:26;13788:53;13784:110;;;13866:11;;;;13858:24;;;;-1:-1:-1;;;13858:24:0;;9073:2:1;13858:24:0;;;9055:21:1;-1:-1:-1;9092:18:1;;;9085:29;9131:18;;13858:24:0;8871:284:1;13858:24:0;13924:12;;13914:6;:22;;:49;;;-1:-1:-1;;;;;;13940:23:0;;;;;;:15;:23;;;;;;;;13914:49;13906:70;;;;-1:-1:-1;;;13906:70:0;;9362:2:1;13906:70:0;;;9344:21:1;9401:1;9381:18;;;9374:29;-1:-1:-1;;;9419:18:1;;;9412:38;9467:18;;13906:70:0;9160:331:1;13906:70:0;-1:-1:-1;;;;;14005:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;14040:16:0;;;;;;;14039:17;14005:51;:89;;;;-1:-1:-1;14073:21:0;;;;;;;14005:89;:147;;;;-1:-1:-1;14139:13:0;;14129:4;14111:24;;;;:9;:24;;;;;;:41;;14005:147;13987:221;;;14179:17;:15;:17::i;:::-;11978:10;;:15;;;14222:32;;-1:-1:-1;;;;;;14237:17:0;;;;;;:6;:17;;;;;;;;14222:32;14218:122;;;-1:-1:-1;;;;;14279:17:0;;14299:1;14279:17;;;:9;:17;;;;;;14271:34;;;;-1:-1:-1;;;14271:34:0;;9073:2:1;14271:34:0;;;9055:21:1;-1:-1:-1;9092:18:1;;;9085:29;9131:18;;14271:34:0;8871:284:1;14271:34:0;14320:8;12060:12;12047:10;:25;12009:71;14320:8;14399:33;;;;;;;;;-1:-1:-1;14399:33:0;;;-1:-1:-1;;;;;14399:17:0;;;;:9;:17;;;;;;;;:33;;14421:6;;14399:21;:33::i;:::-;-1:-1:-1;;;;;14379:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;14450:26;;;;;:15;:26;;;;;;;14449:27;:45;;;;-1:-1:-1;14480:14:0;;;;14449:45;14445:137;;;14555:10;;-1:-1:-1;;;;;14519:20:0;;;;;;:9;:20;;;;;;:32;;14544:6;14519:24;:32::i;:::-;:46;;14511:59;;;;-1:-1:-1;;;14511:59:0;;9073:2:1;14511:59:0;;;9055:21:1;-1:-1:-1;9092:18:1;;;9085:29;9131:18;;14511:59:0;8871:284:1;14511:59:0;-1:-1:-1;;;;;14617:19:0;;14594;14617;;;:11;:19;;;;;;;;14616:20;:47;;;;-1:-1:-1;;;;;;14641:22:0;;;;;;:11;:22;;;;;;;;14640:23;14616:47;:119;;14729:6;14616:119;;;14679:34;14687:6;14695:9;14706:6;14679:7;:34::i;:::-;-1:-1:-1;;;;;14769:20:0;;;;;;:9;:20;;;;;;14594:141;;-1:-1:-1;14769:37:0;;14594:141;14769:24;:37::i;:::-;-1:-1:-1;;;;;14746:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14824:40;;;;;;;;;;14852:11;160:25:1;;148:2;133:18;;14:177;14824:40:0;;;;;;;;-1:-1:-1;14882:4:0;;13534:1360;-1:-1:-1;;;;13534:1360:0:o;407:136::-;465:7;492:43;496:1;499;492:43;;;;;;;;;;;;;;;;;:3;:43::i;12695:401::-;12859:90;;;;;;;;;;;-1:-1:-1;;;12859:90:0;;;;;;;;-1:-1:-1;;;;;12859:17:0;;12822:4;12859:17;;;:9;:17;;;;;;;:90;;12895:6;;12859:21;:90::i;:::-;-1:-1:-1;;;;;12839:17:0;;;;;;;:9;:17;;;;;;:110;;;;12983:20;;;;;;;:32;;13008:6;12983:24;:32::i;:::-;-1:-1:-1;;;;;12960:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13031:35;;;;;;;;;;13059:6;160:25:1;;148:2;133:18;;14:177;13031:35:0;;;;;;;;-1:-1:-1;13084:4:0;12695:401;;;;;:::o;15757:1776::-;6600:16;:23;;-1:-1:-1;;6600:23:0;;;;;15860:4:::1;6600:23:::0;15842:24;;;:9:::1;:24;::::0;;;;;15969:8:::1;::::0;15937:12:::1;::::0;15842:24;;6600:23;15903:96:::1;::::0;15997:1:::1;::::0;15903:75:::1;::::0;15969:8;15903:75;;15842:24;;15903:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;15877:122:::0;-1:-1:-1;16010:20:0::1;16033:36;:15:::0;15877:122;16033:19:::1;:36::i;:::-;16106:16;::::0;;16120:1:::1;16106:16:::0;;;;;::::1;::::0;;16010:59;;-1:-1:-1;16082:21:0::1;::::0;16106:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16106:16:0::1;16082:40;;16151:4;16133;16138:1;16133:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16133:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16177:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;16177:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;16133:7;;16177:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16167:4;16172:1;16167:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16167:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;16203:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16203:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16275:12;;16203:6:::1;::::0;16318:4;;16345::::1;::::0;16365:15:::1;::::0;16203:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16493:12:0::1;::::0;16424:21:::1;::::0;-1:-1:-1;16404:17:0::1;::::0;-1:-1:-1;16480:33:0::1;::::0;16493:19:::1;::::0;16510:1:::1;16493:16;:19::i;:::-;16480:8;::::0;;:12:::1;:33::i;:::-;16458:55;;16526:26;16555:93;16646:1;16555:72;16615:11;16555:41;16583:12;;16555:9;:27;;:41;;;;:::i;:93::-;16526:122;;16659:26;16688:68;16734:11;16688:27;16702:12;;16688:9;:13;;:27;;;;:::i;:68::-;16659:97;;16767:20;16790:38;16816:11;16790:21;16804:6;;16790:9;:13;;:21;;;;:::i;:38::-;16872:14;::::0;16864:108:::1;::::0;16767:61;;-1:-1:-1;16842:16:0::1;::::0;-1:-1:-1;;;;;16872:14:0;;::::1;::::0;16952:5:::1;::::0;16914:18;;16842:16;16864:108;16842:16;16864:108;16914:18;16872:14;16952:5;16864:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;17041:11:0::1;::::0;17033:99:::1;::::0;16997:5:::1;::::0;-1:-1:-1;;;;;;17041:11:0;;::::1;::::0;-1:-1:-1;17112:5:0::1;::::0;17080:12;;16997:5;17033:99;16997:5;17033:99;17080:12;17041:11;17112:5;17033:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17157:5:0::1;::::0;-1:-1:-1;;17179:19:0;;;-1:-1:-1;17175:351:0::1;;17215:6;::::0;17389:8:::1;::::0;17215:231:::1;::::0;-1:-1:-1;;;17215:231:0;;17291:4:::1;17215:231;::::0;::::1;11552:34:1::0;11602:18;;;11595:34;;;-1:-1:-1;11645:18:1;;;11638:34;;;11688:18;;;11681:34;-1:-1:-1;;;;;17389:8:0;;;::::1;::::0;::::1;11731:19:1::0;;;11724:44;17416:15:0::1;11784:19:1::0;;;11777:35;17215:6:0;::::1;::::0;:22:::1;::::0;17245:18;;11486:19:1;;17215:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17466:48:0::1;::::0;;12308:25:1;;;12364:2;12349:18;;12342:34;;;17466:48:0::1;::::0;-1:-1:-1;12281:18:1;17466:48:0::1;;;;;;;17175:351;-1:-1:-1::0;;6646:16:0;:24;;-1:-1:-1;;6646:24:0;;;-1:-1:-1;;;;;;;;15757:1776:0:o;14902:847::-;-1:-1:-1;;;;;15082:17:0;;15022:7;15082:17;;;:6;:17;;;;;;15022:7;;15082:17;;:32;;;;-1:-1:-1;15103:11:0;;;;;;;15082:32;15078:98;;;-1:-1:-1;15147:17:0;;15078:98;-1:-1:-1;;;;;15190:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;15208:10:0;;;;15190:28;15186:85;;;-1:-1:-1;15251:8:0;;15186:85;-1:-1:-1;;;;;15286:14:0;;;;;;:6;:14;;;;;;;;15285:15;:37;;;;-1:-1:-1;;;;;;15305:17:0;;;;;;:6;:17;;;;;;;;15304:18;15285:37;15281:216;;;15343:15;;;;;;;15339:147;;;-1:-1:-1;15395:17:0;;15339:147;;;-1:-1:-1;15469:1:0;15339:147;15509:17;15529:34;15559:3;15529:25;:6;15540:13;15529:10;:25::i;:34::-;15621:4;15603:24;;;;:9;:24;;;;;;15509:54;;-1:-1:-1;15603:39:0;;15509:54;15603:28;:39::i;:::-;15594:4;15576:24;;;;:9;:24;;;;;;;:66;;;;15658:42;;-1:-1:-1;;;;;15658:42:0;;;;;;;15690:9;160:25:1;;148:2;133:18;;14:177;15658:42:0;;;;;;;;15720:21;:6;15731:9;15720:10;:21::i;:::-;15713:28;14902:847;-1:-1:-1;;;;;;14902:847:0:o;783:246::-;841:7;865:1;870;865:6;861:47;;-1:-1:-1;895:1:0;888:8;;861:47;918:9;930:5;934:1;930;:5;:::i;:::-;918:17;-1:-1:-1;963:1:0;954:5;958:1;918:17;954:5;:::i;:::-;:10;946:56;;;;-1:-1:-1;;;946:56:0;;12589:2:1;946:56:0;;;12571:21:1;12628:2;12608:18;;;12601:30;12667:34;12647:18;;;12640:62;-1:-1:-1;;;12718:18:1;;;12711:31;12759:19;;946:56:0;12387:397:1;1037:132:0;1095:7;1122:39;1126:1;1129;1122:39;;;;;;;;;;;;;;;;;1297:7;1332:12;1325:5;1317:28;;;;-1:-1:-1;;;1317:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1356:9:0;1368:5;1372:1;1368;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:309;1585:6;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:28;1742:5;1720:28;:::i;1834:247::-;1893:6;1946:2;1934:9;1925:7;1921:23;1917:32;1914:52;;;1962:1;1959;1952:12;1914:52;2001:9;1988:23;2020:31;2045:5;2020:31;:::i;2086:382::-;2151:6;2159;2212:2;2200:9;2191:7;2187:23;2183:32;2180:52;;;2228:1;2225;2218:12;2180:52;2267:9;2254:23;2286:31;2311:5;2286:31;:::i;:::-;2336:5;-1:-1:-1;2393:2:1;2378:18;;2365:32;2406:30;2365:32;2406:30;:::i;:::-;2455:7;2445:17;;;2086:382;;;;;:::o;2473:456::-;2550:6;2558;2566;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;2674:9;2661:23;2693:31;2718:5;2693:31;:::i;:::-;2743:5;-1:-1:-1;2800:2:1;2785:18;;2772:32;2813:33;2772:32;2813:33;:::i;:::-;2473:456;;2865:7;;-1:-1:-1;;;2919:2:1;2904:18;;;;2891:32;;2473:456::o;3123:385::-;3209:6;3217;3225;3233;3286:3;3274:9;3265:7;3261:23;3257:33;3254:53;;;3303:1;3300;3293:12;3254:53;-1:-1:-1;;3326:23:1;;;3396:2;3381:18;;3368:32;;-1:-1:-1;3447:2:1;3432:18;;3419:32;;3498:2;3483:18;3470:32;;-1:-1:-1;3123:385:1;-1:-1:-1;3123:385:1:o;3513:241::-;3569:6;3622:2;3610:9;3601:7;3597:23;3593:32;3590:52;;;3638:1;3635;3628:12;3590:52;3677:9;3664:23;3696:28;3718:5;3696:28;:::i;3759:180::-;3818:6;3871:2;3859:9;3850:7;3846:23;3842:32;3839:52;;;3887:1;3884;3877:12;3839:52;-1:-1:-1;3910:23:1;;3759:180;-1:-1:-1;3759:180:1:o;3944:529::-;4021:6;4029;4037;4090:2;4078:9;4069:7;4065:23;4061:32;4058:52;;;4106:1;4103;4096:12;4058:52;4145:9;4132:23;4164:31;4189:5;4164:31;:::i;:::-;4214:5;-1:-1:-1;4271:2:1;4256:18;;4243:32;4284:33;4243:32;4284:33;:::i;:::-;4336:7;-1:-1:-1;4395:2:1;4380:18;;4367:32;4408:33;4367:32;4408:33;:::i;:::-;4460:7;4450:17;;;3944:529;;;;;:::o;4686:388::-;4754:6;4762;4815:2;4803:9;4794:7;4790:23;4786:32;4783:52;;;4831:1;4828;4821:12;4783:52;4870:9;4857:23;4889:31;4914:5;4889:31;:::i;:::-;4939:5;-1:-1:-1;4996:2:1;4981:18;;4968:32;5009:33;4968:32;5009:33;:::i;5304:356::-;5506:2;5488:21;;;5525:18;;;5518:30;5584:34;5579:2;5564:18;;5557:62;5651:2;5636:18;;5304:356::o;5665:127::-;5726:10;5721:3;5717:20;5714:1;5707:31;5757:4;5754:1;5747:15;5781:4;5778:1;5771:15;5797:125;5862:9;;;5883:10;;;5880:36;;;5896:18;;:::i;5927:168::-;5967:7;6033:1;6029;6025:6;6021:14;6018:1;6015:21;6010:1;6003:9;5996:17;5992:45;5989:71;;;6040:18;;:::i;:::-;-1:-1:-1;6080:9:1;;5927:168::o;6100:217::-;6140:1;6166;6156:132;;6210:10;6205:3;6201:20;6198:1;6191:31;6245:4;6242:1;6235:15;6273:4;6270:1;6263:15;6156:132;-1:-1:-1;6302:9:1;;6100:217::o;6958:245::-;7025:6;7078:2;7066:9;7057:7;7053:23;7049:32;7046:52;;;7094:1;7091;7084:12;7046:52;7126:9;7120:16;7145:28;7167:5;7145:28;:::i;8738:128::-;8805:9;;;8826:11;;;8823:37;;;8840:18;;:::i;9628:127::-;9689:10;9684:3;9680:20;9677:1;9670:31;9720:4;9717:1;9710:15;9744:4;9741:1;9734:15;9760:251;9830:6;9883:2;9871:9;9862:7;9858:23;9854:32;9851:52;;;9899:1;9896;9889:12;9851:52;9931:9;9925:16;9950:31;9975:5;9950:31;:::i;10016:980::-;10278:4;10326:3;10315:9;10311:19;10357:6;10346:9;10339:25;10383:2;10421:6;10416:2;10405:9;10401:18;10394:34;10464:3;10459:2;10448:9;10444:18;10437:31;10488:6;10523;10517:13;10554:6;10546;10539:22;10592:3;10581:9;10577:19;10570:26;;10631:2;10623:6;10619:15;10605:29;;10652:1;10662:195;10676:6;10673:1;10670:13;10662:195;;;10741:13;;-1:-1:-1;;;;;10737:39:1;10725:52;;10832:15;;;;10797:12;;;;10773:1;10691:9;10662:195;;;-1:-1:-1;;;;;;;10913:32:1;;;;10908:2;10893:18;;10886:60;-1:-1:-1;;;10977:3:1;10962:19;10955:35;10874:3;10016:980;-1:-1:-1;;;10016:980:1:o;11823:306::-;11911:6;11919;11927;11980:2;11968:9;11959:7;11955:23;11951:32;11948:52;;;11996:1;11993;11986:12;11948:52;12025:9;12019:16;12009:26;;12075:2;12064:9;12060:18;12054:25;12044:35;;12119:2;12108:9;12104:18;12098:25;12088:35;;11823:306;;;;;:::o

Swarm Source

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