ETH Price: $2,630.56 (-0.84%)

Token

ERC42069 Protocol ($42069)
 

Overview

Max Total Supply

42,069 $42069

Holders

815

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 $42069

Value
$0.00
0xe9ac627b17010dc2423952811a953df67e1b2177
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:
ERC42069

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-19
*/

// SPDX-License-Identifier: MIT

/*

ERC42069 Protocol 
 
0 decimal, 42069 tokens, endless burn. 
 
Website: https://erc42069protocol.xyz/ 
Telegram: https://t.me/Protocol42069 
X: https://x.com/42069ERC20

*/

pragma solidity ^0.8.20;

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

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

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

    function sync() external;
}

interface IUniswapV2Router02 {
    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) {
        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 {
        _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);
    }
}

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

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

    uint256 private _totalSupply;

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

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

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

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

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

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

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

    function transfer(
        address 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 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 _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

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

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

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

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

contract ERC42069 is ERC20, Ownable {
    IUniswapV2Router02 public immutable dexRouter;
    address public dexPair;
    address private marketingWallet;
    address public constant deadAddress = address(0xdead);

    uint256 public marketBuyFee = 35;
    uint256 public burnBuyFee = 0;
    uint256 public totalBuyFees = 35;

    uint256 public marketSellFee = 32;
    uint256 public burnSellFee = 3;
    uint256 public totalSellFees = 35;

    uint256 public maxTxnAmount = 420;
    uint256 public maxWalletAmount = 420;
    uint256 public swapTokensAtAmount = 20;
    uint256 public maxSwapTokens = 328;
    uint256 public lpBurnFrequency = 8 hours;
    uint256 public lastLpBurnTime;
    uint256 private launchedAt;
    uint256 public sellCounter;
    uint256 public sellAmountCounter;

    bool public limitsInEffect = true;
    bool public isTrading;
    bool private isSwapping;

    mapping(address => bool) public _isExcludedFromFees;
    mapping(address => bool) public _isExcludedFromMaxTxn;
    mapping(address => bool) public _isExcludedFromMaxWallet;
    mapping(uint256 => uint256) private swapInBlock;
    mapping(address => bool) public dexPairs;

    event AutoNukeLP();
    event ExcludeFromFees(address indexed account, bool exempt);
    event ExcludeFromMaxTxn(address indexed account, bool exempt);
    event ExcludeFromMaxWallet(address indexed account, bool exempt);
    event DexPairUpdated(address indexed pair, bool indexed value);
    event MarketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor() ERC20("ERC42069 Protocol", "$42069", 0) {
        marketingWallet = address(0x93e174c3f3E470083321a0CD8b0599b84A3782c7);
        dexRouter = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        dexPair = IUniswapV2Factory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );
        dexPairs[dexPair] = true;

        _isExcludedFromFees[address(dexRouter)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[deadAddress] = true;

        _isExcludedFromMaxTxn[address(dexRouter)] = true;
        _isExcludedFromMaxTxn[address(this)] = true;
        _isExcludedFromMaxTxn[deadAddress] = true;
        _isExcludedFromMaxTxn[owner()] = true;

        _isExcludedFromMaxWallet[address(dexRouter)] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[deadAddress] = true;
        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[dexPair] = true;

        _mint(msg.sender, 42069);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        isTrading = true;
        launchedAt = block.number;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

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

    function excludeFromMaxTxn(address account, bool exempt) public onlyOwner {
        _isExcludedFromMaxTxn[account] = exempt;
        emit ExcludeFromMaxTxn(account, exempt);
    }

    function excludeFromMaxWallet(address account, bool exempt) public onlyOwner {
        _isExcludedFromMaxWallet[account] = exempt;
        emit ExcludeFromMaxWallet(account, exempt);
    }

    function updateMarketingWallet(
        address newWallet
    ) external onlyOwner {
        marketingWallet = newWallet;
        emit MarketingWalletUpdated(newWallet, marketingWallet);
    }

    function updateSwapBackSetting(
        uint256 swapAmount,
        uint256 maxSwap
    ) external onlyOwner {
        require(swapAmount >= 1 && maxSwap >= 1);
        swapTokensAtAmount = swapAmount;
        maxSwapTokens = maxSwap;
    }

    function updateBuyFees(
        uint256 _mrktFee,
        uint256 _burnFee
    ) external onlyOwner {
        marketBuyFee = _mrktFee;
        burnBuyFee = _burnFee;
        totalBuyFees = marketBuyFee + burnBuyFee;
        require(totalBuyFees <= 35);
    }

    function updateSellFees(
        uint256 _mrktFee,
        uint256 _burnFee
    ) external onlyOwner {
        marketSellFee = _mrktFee;
        burnSellFee = _burnFee;
        totalSellFees = marketSellFee + burnSellFee;
        require(totalSellFees <= 35);
    }

    function setDexPair(
        address pair,
        bool value
    ) public onlyOwner {
        require(
            pair != dexPair,
            "The pair cannot be removed from dexPairs"
        );
        dexPairs[pair] = value;
        emit DexPairUpdated(pair, value);
    }

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

        if (limitsInEffect) {    
            if (
                from != owner() &&
                to != owner() &&
                !isSwapping
            ) {
                if (!isTrading) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                if (
                    !_isExcludedFromMaxTxn[from] &&
                    !_isExcludedFromMaxTxn[to]
                ) {
                    require(
                        amount <= maxTxnAmount,
                        "Amount exceeds the maxTxnAmount."
                    );
                }
                
                if (!_isExcludedFromMaxWallet[to]) {
                    require(
                        amount + balanceOf(to) <= maxWalletAmount,
                        "Max wallet exceeded"
                    );
                }
            }   
        } 

        uint256 blockNumber = block.number;
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            !isSwapping &&
            (swapInBlock[blockNumber] <= 2) &&
            !dexPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            isSwapping = true;

            swapBack();

            ++swapInBlock[blockNumber];

            isSwapping = false;
        }

        if (
            !isSwapping &&
            dexPairs[to] &&
            !_isExcludedFromFees[from]
        ) {
            autoBurnLp();
        }

        bool takeFee = !isSwapping;

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

        uint256 fees = 0;
        uint256 toMrkt = 0;
        uint256 toBurn = 0;
        if (takeFee) {
            if (dexPairs[to] && totalSellFees > 0) {
                fees = (amount * totalSellFees) / 100;
                toBurn = (fees * burnSellFee) / totalSellFees;
                toMrkt = fees - toBurn;
                uint256 lpBalance = balanceOf(dexPair);
                sellCounter++;
                if (toBurn == 0) {
                    if (
                        (lpBalance > 21034 && sellCounter >= 2) ||
                        (lpBalance > 10517 && sellCounter >= 4) ||
                        (lpBalance > 5258 && sellCounter >= 8) ||
                        (lpBalance > 2629 && sellCounter >= 16)
                    ) {
                        sellCounter = 0;
                        toBurn = 10;
                        fees += 10;
                    }
                }

                sellAmountCounter += amount;
            }else if (totalBuyFees > 0 && dexPairs[from]) {
                fees = (amount * totalBuyFees) / 100;
                toBurn = (fees * burnBuyFee) / totalBuyFees;
                toMrkt = fees - toBurn;
            }

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

            if (toBurn > 0) {
                super._transfer(from, deadAddress, toBurn);
            }

            amount -= fees;
        }

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > maxSwapTokens) {
            contractBalance = maxSwapTokens;
        }

        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

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

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function autoBurnLp() internal {
        uint256 liquidityPairBalance = balanceOf(dexPair);

        if (liquidityPairBalance > 2629) {
            if (sellAmountCounter < 10517) {
                if (block.timestamp < lastLpBurnTime + lpBurnFrequency) {
                    return;
                } else {
                    lastLpBurnTime = block.timestamp;
                }
            } else {
                sellAmountCounter = 0;
            }

            super._transfer(dexPair, deadAddress, 10);
            IUniswapV2Pair(dexPair).sync();
            emit AutoNukeLP();
        }
    }
}

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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"DexPairUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromMaxTxn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exempt","type":"bool"}],"name":"ExcludeFromMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnSellFee","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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dexPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"excludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAmountCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setDexPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"_mrktFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mrktFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapAmount","type":"uint256"},{"internalType":"uint256","name":"maxSwap","type":"uint256"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405260236008555f6009556023600a556020600b556003600c556023600d556101a4600e556101a4600f556014601055610148601155617080601255600160175f6101000a81548160ff021916908315150217905550348015610063575f80fd5b506040518060400160405280601181526020017f45524334323036392050726f746f636f6c0000000000000000000000000000008152506040518060400160405280600681526020017f24343230363900000000000000000000000000000000000000000000000000008152505f82600390816100e09190610d2a565b5081600490816100f09190610d2a565b508060055f6101000a81548160ff021916908360ff16021790555050505061012a61011f61088e60201b60201c565b61089560201b60201c565b7393e174c3f3e470083321a0cd8b0599b84a3782c760075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102359190610e57565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c09190610e57565b6040518363ffffffff1660e01b81526004016102dd929190610e91565b6020604051808303815f875af11580156102f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031d9190610e57565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f61049161095a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160195f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160195f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160195f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160195f61064d61095a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f6107b261095a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506108893361a45561098360201b60201c565b610fb8565b5f33905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890610f12565b60405180910390fd5b610a025f8383610ae660201b60201c565b8060025f828254610a139190610f5d565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a659190610f5d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac99190610f9f565b60405180910390a3610ae25f8383610aeb60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b6b57607f821691505b602082108103610b7e57610b7d610b27565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610be07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610ba5565b610bea8683610ba5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c2e610c29610c2484610c02565b610c0b565b610c02565b9050919050565b5f819050919050565b610c4783610c14565b610c5b610c5382610c35565b848454610bb1565b825550505050565b5f90565b610c6f610c63565b610c7a818484610c3e565b505050565b5b81811015610c9d57610c925f82610c67565b600181019050610c80565b5050565b601f821115610ce257610cb381610b84565b610cbc84610b96565b81016020851015610ccb578190505b610cdf610cd785610b96565b830182610c7f565b50505b505050565b5f82821c905092915050565b5f610d025f1984600802610ce7565b1980831691505092915050565b5f610d1a8383610cf3565b9150826002028217905092915050565b610d3382610af0565b67ffffffffffffffff811115610d4c57610d4b610afa565b5b610d568254610b54565b610d61828285610ca1565b5f60209050601f831160018114610d92575f8415610d80578287015190505b610d8a8582610d0f565b865550610df1565b601f198416610da086610b84565b5f5b82811015610dc757848901518255600182019150602085019450602081019050610da2565b86831015610de45784890151610de0601f891682610cf3565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e2682610dfd565b9050919050565b610e3681610e1c565b8114610e40575f80fd5b50565b5f81519050610e5181610e2d565b92915050565b5f60208284031215610e6c57610e6b610df9565b5b5f610e7984828501610e43565b91505092915050565b610e8b81610e1c565b82525050565b5f604082019050610ea45f830185610e82565b610eb16020830184610e82565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610efc601f83610eb8565b9150610f0782610ec8565b602082019050919050565b5f6020820190508181035f830152610f2981610ef0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f6782610c02565b9150610f7283610c02565b9250828201905080821115610f8a57610f89610f30565b5b92915050565b610f9981610c02565b82525050565b5f602082019050610fb25f830184610f90565b92915050565b608051613e85610fe55f395f8181610c1d01528181612dc901528181612ea80152612ecf0152613e855ff3fe60806040526004361061028b575f3560e01c80638a8c523c11610159578063c0246668116100c0578063dd62ed3e11610079578063dd62ed3e146109bc578063e0bf7fd1146109f8578063e2f4560514610a34578063e55648f414610a5e578063f242ab4114610a86578063f2fde38b14610ab057610292565b8063c0246668146108b4578063cf46f24c146108dc578063d0a3981414610906578063d1d7d7ef14610930578063d2fcc0011461096c578063d3aea37b1461099457610292565b8063a9059cbb11610112578063a9059cbb14610798578063aa4bde28146107d4578063aacebbe3146107fe578063acdf269d14610826578063b9e937001461084e578063c002f9391461087857610292565b80638a8c523c1461069e5780638da5cb5b146106b457806395d89b41146106de578063a457c2d714610708578063a4c82a0014610744578063a4d0047d1461076e57610292565b80634a62bb65116101fd57806378d52722116101b657806378d52722146105905780637ae3ff47146105ba5780637b9d454d146105e45780637e761377146106205780637e84953f1461064a57806388d113321461067457610292565b80634a62bb651461049857806366ca9b83146104c25780636e9087db146104ea57806370a0823114610514578063715018a614610550578063751039fc1461056657610292565b806323b872dd1161024f57806323b872dd1461037857806327c8f835146103b45780632c3e486c146103de578063313ce5671461040857806336a1efe414610432578063395093511461045c57610292565b806302dbd8f81461029657806306fdde03146102be5780630758d924146102e8578063095ea7b31461031257806318160ddd1461034e57610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102bc60048036038101906102b79190612fa0565b610ad8565b005b3480156102c9575f80fd5b506102d2610b8b565b6040516102df919061304e565b60405180910390f35b3480156102f3575f80fd5b506102fc610c1b565b60405161030991906130e8565b60405180910390f35b34801561031d575f80fd5b506103386004803603810190610333919061313c565b610c3f565b6040516103459190613194565b60405180910390f35b348015610359575f80fd5b50610362610c5c565b60405161036f91906131bc565b60405180910390f35b348015610383575f80fd5b5061039e600480360381019061039991906131d5565b610c65565b6040516103ab9190613194565b60405180910390f35b3480156103bf575f80fd5b506103c8610d57565b6040516103d59190613234565b60405180910390f35b3480156103e9575f80fd5b506103f2610d5d565b6040516103ff91906131bc565b60405180910390f35b348015610413575f80fd5b5061041c610d63565b6040516104299190613268565b60405180910390f35b34801561043d575f80fd5b50610446610d78565b60405161045391906131bc565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d919061313c565b610d7e565b60405161048f9190613194565b60405180910390f35b3480156104a3575f80fd5b506104ac610e25565b6040516104b99190613194565b60405180910390f35b3480156104cd575f80fd5b506104e860048036038101906104e39190612fa0565b610e37565b005b3480156104f5575f80fd5b506104fe610eea565b60405161050b9190613194565b60405180910390f35b34801561051f575f80fd5b5061053a60048036038101906105359190613281565b610efd565b60405161054791906131bc565b60405180910390f35b34801561055b575f80fd5b50610564610f42565b005b348015610571575f80fd5b5061057a610fc9565b6040516105879190613194565b60405180910390f35b34801561059b575f80fd5b506105a4611066565b6040516105b191906131bc565b60405180910390f35b3480156105c5575f80fd5b506105ce61106c565b6040516105db91906131bc565b60405180910390f35b3480156105ef575f80fd5b5061060a60048036038101906106059190613281565b611072565b6040516106179190613194565b60405180910390f35b34801561062b575f80fd5b5061063461108f565b60405161064191906131bc565b60405180910390f35b348015610655575f80fd5b5061065e611095565b60405161066b91906131bc565b60405180910390f35b34801561067f575f80fd5b5061068861109b565b60405161069591906131bc565b60405180910390f35b3480156106a9575f80fd5b506106b26110a1565b005b3480156106bf575f80fd5b506106c8611141565b6040516106d59190613234565b60405180910390f35b3480156106e9575f80fd5b506106f261116a565b6040516106ff919061304e565b60405180910390f35b348015610713575f80fd5b5061072e6004803603810190610729919061313c565b6111fa565b60405161073b9190613194565b60405180910390f35b34801561074f575f80fd5b506107586112e0565b60405161076591906131bc565b60405180910390f35b348015610779575f80fd5b506107826112e6565b60405161078f91906131bc565b60405180910390f35b3480156107a3575f80fd5b506107be60048036038101906107b9919061313c565b6112ec565b6040516107cb9190613194565b60405180910390f35b3480156107df575f80fd5b506107e8611309565b6040516107f591906131bc565b60405180910390f35b348015610809575f80fd5b50610824600480360381019061081f9190613281565b61130f565b005b348015610831575f80fd5b5061084c60048036038101906108479190612fa0565b611449565b005b348015610859575f80fd5b506108626114f1565b60405161086f91906131bc565b60405180910390f35b348015610883575f80fd5b5061089e60048036038101906108999190613281565b6114f7565b6040516108ab9190613194565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d591906132d6565b611514565b005b3480156108e7575f80fd5b506108f0611636565b6040516108fd91906131bc565b60405180910390f35b348015610911575f80fd5b5061091a61163c565b60405161092791906131bc565b60405180910390f35b34801561093b575f80fd5b5061095660048036038101906109519190613281565b611642565b6040516109639190613194565b60405180910390f35b348015610977575f80fd5b50610992600480360381019061098d91906132d6565b61165f565b005b34801561099f575f80fd5b506109ba60048036038101906109b591906132d6565b611781565b005b3480156109c7575f80fd5b506109e260048036038101906109dd9190613314565b6118a3565b6040516109ef91906131bc565b60405180910390f35b348015610a03575f80fd5b50610a1e6004803603810190610a199190613281565b611925565b604051610a2b9190613194565b60405180910390f35b348015610a3f575f80fd5b50610a48611942565b604051610a5591906131bc565b60405180910390f35b348015610a69575f80fd5b50610a846004803603810190610a7f91906132d6565b611948565b005b348015610a91575f80fd5b50610a9a611af1565b604051610aa79190613234565b60405180910390f35b348015610abb575f80fd5b50610ad66004803603810190610ad19190613281565b611b16565b005b610ae0611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610afe611141565b73ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b9061339c565b60405180910390fd5b81600b8190555080600c81905550600c54600b54610b7291906133e7565b600d819055506023600d541115610b87575f80fd5b5050565b606060038054610b9a90613447565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc690613447565b8015610c115780601f10610be857610100808354040283529160200191610c11565b820191905f5260205f20905b815481529060010190602001808311610bf457829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610c52610c4b611c0c565b8484611c13565b6001905092915050565b5f600254905090565b5f610c71848484611dd6565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cb8611c0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e906134e7565b60405180910390fd5b610d4b85610d43611c0c565b858403611c13565b60019150509392505050565b61dead81565b60125481565b5f60055f9054906101000a900460ff16905090565b60115481565b5f610e1b610d8a611c0c565b848460015f610d97611c0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e1691906133e7565b611c13565b6001905092915050565b60175f9054906101000a900460ff1681565b610e3f611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610e5d611141565b73ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061339c565b60405180910390fd5b8160088190555080600981905550600954600854610ed191906133e7565b600a819055506023600a541115610ee6575f80fd5b5050565b601760019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4a611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610f68611141565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb59061339c565b60405180910390fd5b610fc75f6127da565b565b5f610fd2611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610ff0611141565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d9061339c565b60405180910390fd5b5f60175f6101000a81548160ff0219169083151502179055506001905090565b60165481565b60095481565b6019602052805f5260405f205f915054906101000a900460ff1681565b600c5481565b600b5481565b60085481565b6110a9611c0c565b73ffffffffffffffffffffffffffffffffffffffff166110c7611141565b73ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111149061339c565b60405180910390fd5b6001601760016101000a81548160ff02191690831515021790555043601481905550565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461117990613447565b80601f01602080910402602001604051908101604052809291908181526020018280546111a590613447565b80156111f05780601f106111c7576101008083540402835291602001916111f0565b820191905f5260205f20905b8154815290600101906020018083116111d357829003601f168201915b5050505050905090565b5f8060015f611207611c0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890613575565b60405180910390fd5b6112d56112cc611c0c565b85858403611c13565b600191505092915050565b60135481565b60155481565b5f6112ff6112f8611c0c565b8484611dd6565b6001905092915050565b600f5481565b611317611c0c565b73ffffffffffffffffffffffffffffffffffffffff16611335611141565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113829061339c565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a350565b611451611c0c565b73ffffffffffffffffffffffffffffffffffffffff1661146f611141565b73ffffffffffffffffffffffffffffffffffffffff16146114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc9061339c565b60405180910390fd5b600182101580156114d7575060018110155b6114df575f80fd5b81601081905550806011819055505050565b600a5481565b601c602052805f5260405f205f915054906101000a900460ff1681565b61151c611c0c565b73ffffffffffffffffffffffffffffffffffffffff1661153a611141565b73ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115879061339c565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161162a9190613194565b60405180910390a25050565b600e5481565b600d5481565b601a602052805f5260405f205f915054906101000a900460ff1681565b611667611c0c565b73ffffffffffffffffffffffffffffffffffffffff16611685611141565b73ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d29061339c565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b2826040516117759190613194565b60405180910390a25050565b611789611c0c565b73ffffffffffffffffffffffffffffffffffffffff166117a7611141565b73ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f49061339c565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f0e3805a5f2c1f0a980cd2b0d9f4fadc01ed6b86a11e0e76d567c9afd4d51a84f826040516118979190613194565b60405180910390a25050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6018602052805f5260405f205f915054906101000a900460ff1681565b60105481565b611950611c0c565b73ffffffffffffffffffffffffffffffffffffffff1661196e611141565b73ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb9061339c565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a90613603565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f568be47e27f53734673ed7d53af6e687fd70fdfff51f9f47304301d6f918900d60405160405180910390a35050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b1e611c0c565b73ffffffffffffffffffffffffffffffffffffffff16611b3c611141565b73ffffffffffffffffffffffffffffffffffffffff1614611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b899061339c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613691565b60405180910390fd5b611c09816127da565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c789061371f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce6906137ad565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dc991906131bc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b9061383b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea9906138c9565b60405180910390fd5b5f8111611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613931565b60405180910390fd5b60175f9054906101000a900460ff161561221d57611f10611141565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7e5750611f4e611141565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f975750601760029054906101000a900460ff16155b1561221c57601760019054906101000a900460ff1661208b5760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061204b575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208190613999565b60405180910390fd5b5b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612129575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561217457600e54811115612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216a90613a01565b60405180910390fd5b5b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661221b57600f546121ce83610efd565b826121d991906133e7565b111561221a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221190613a69565b60405180910390fd5b5b5b5b5f4390505f61222b30610efd565b90505f60105482101590508080156122505750601760029054906101000a900460ff16155b801561226e57506002601b5f8581526020019081526020015f205411155b80156122c15750601c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612314575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612367575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156123ce576001601760026101000a81548160ff02191690831515021790555061238f61289f565b601b5f8481526020019081526020015f205f81546123ac90613a87565b919050819055505f601760026101000a81548160ff0219169083151502179055505b601760029054906101000a900460ff161580156124315750601c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015612484575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561249257612491612967565b5b5f601760029054906101000a900460ff1615905060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612541575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561254a575f90505b5f805f83156127c357601c5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156125aa57505f600d54115b156126e5576064600d54896125bf9190613ace565b6125c99190613b3c565b9250600d54600c54846125dc9190613ace565b6125e69190613b3c565b905080836125f49190613b6c565b91505f61262160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610efd565b905060155f81548092919061263590613a87565b91905055505f82036126c75761522a811180156126555750600260155410155b8061267057506129158111801561266f5750600460155410155b5b8061268b575061148a8111801561268a5750600860155410155b5b806126a65750610a45811180156126a55750601060155410155b5b156126c6575f601581905550600a9150600a846126c391906133e7565b93505b5b8860165f8282546126d891906133e7565b925050819055505061278a565b5f600a5411801561273c5750601c5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612789576064600a54896127519190613ace565b61275b9190613b3c565b9250600a546009548461276e9190613ace565b6127789190613b3c565b905080836127869190613b6c565b91505b5b5f82111561279e5761279d8a3084612ab7565b5b5f8111156127b4576127b38a61dead83612ab7565b5b82886127c09190613b6c565b97505b6127ce8a8a8a612ab7565b50505050505050505050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6128a930610efd565b90505f8082036128ba575050612965565b6011548211156128ca5760115491505b5f8290506128d781612d2c565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161291c90613bcc565b5f6040518083038185875af1925050503d805f8114612956576040519150601f19603f3d011682016040523d82523d5f602084013e61295b565b606091505b5050809250505050505b565b5f61299260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610efd565b9050610a45811115612ab35761291560165410156129d3576012546013546129ba91906133e7565b4210156129c75750612ab5565b426013819055506129db565b5f6016819055505b612a0a60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead600a612ab7565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612a70575f80fd5b505af1158015612a82573d5f803e3d5ffd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a15b505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1c9061383b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8a906138c9565b60405180910390fd5b612b9e838383612f5f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1890613c50565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612caf91906133e7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d1391906131bc565b60405180910390a3612d26848484612f64565b50505050565b5f600267ffffffffffffffff811115612d4857612d47613c6e565b5b604051908082528060200260200182016040528015612d765781602001602082028036833780820191505090505b50905030815f81518110612d8d57612d8c613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e549190613cdc565b81600181518110612e6857612e67613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ecd307f000000000000000000000000000000000000000000000000000000000000000084611c13565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612f2e959493929190613df7565b5f604051808303815f87803b158015612f45575f80fd5b505af1158015612f57573d5f803e3d5ffd5b505050505050565b505050565b505050565b5f80fd5b5f819050919050565b612f7f81612f6d565b8114612f89575f80fd5b50565b5f81359050612f9a81612f76565b92915050565b5f8060408385031215612fb657612fb5612f69565b5b5f612fc385828601612f8c565b9250506020612fd485828601612f8c565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61302082612fde565b61302a8185612fe8565b935061303a818560208601612ff8565b61304381613006565b840191505092915050565b5f6020820190508181035f8301526130668184613016565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6130b06130ab6130a68461306e565b61308d565b61306e565b9050919050565b5f6130c182613096565b9050919050565b5f6130d2826130b7565b9050919050565b6130e2816130c8565b82525050565b5f6020820190506130fb5f8301846130d9565b92915050565b5f61310b8261306e565b9050919050565b61311b81613101565b8114613125575f80fd5b50565b5f8135905061313681613112565b92915050565b5f806040838503121561315257613151612f69565b5b5f61315f85828601613128565b925050602061317085828601612f8c565b9150509250929050565b5f8115159050919050565b61318e8161317a565b82525050565b5f6020820190506131a75f830184613185565b92915050565b6131b681612f6d565b82525050565b5f6020820190506131cf5f8301846131ad565b92915050565b5f805f606084860312156131ec576131eb612f69565b5b5f6131f986828701613128565b935050602061320a86828701613128565b925050604061321b86828701612f8c565b9150509250925092565b61322e81613101565b82525050565b5f6020820190506132475f830184613225565b92915050565b5f60ff82169050919050565b6132628161324d565b82525050565b5f60208201905061327b5f830184613259565b92915050565b5f6020828403121561329657613295612f69565b5b5f6132a384828501613128565b91505092915050565b6132b58161317a565b81146132bf575f80fd5b50565b5f813590506132d0816132ac565b92915050565b5f80604083850312156132ec576132eb612f69565b5b5f6132f985828601613128565b925050602061330a858286016132c2565b9150509250929050565b5f806040838503121561332a57613329612f69565b5b5f61333785828601613128565b925050602061334885828601613128565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613386602083612fe8565b915061339182613352565b602082019050919050565b5f6020820190508181035f8301526133b38161337a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133f182612f6d565b91506133fc83612f6d565b9250828201905080821115613414576134136133ba565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061345e57607f821691505b6020821081036134715761347061341a565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6134d1602883612fe8565b91506134dc82613477565b604082019050919050565b5f6020820190508181035f8301526134fe816134c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61355f602583612fe8565b915061356a82613505565b604082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6465785061697273000000000000000000000000000000000000000000000000602082015250565b5f6135ed602883612fe8565b91506135f882613593565b604082019050919050565b5f6020820190508181035f83015261361a816135e1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61367b602683612fe8565b915061368682613621565b604082019050919050565b5f6020820190508181035f8301526136a88161366f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613709602483612fe8565b9150613714826136af565b604082019050919050565b5f6020820190508181035f830152613736816136fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613797602283612fe8565b91506137a28261373d565b604082019050919050565b5f6020820190508181035f8301526137c48161378b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613825602583612fe8565b9150613830826137cb565b604082019050919050565b5f6020820190508181035f83015261385281613819565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b3602383612fe8565b91506138be82613859565b604082019050919050565b5f6020820190508181035f8301526138e0816138a7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206973207a65726f00005f82015250565b5f61391b601e83612fe8565b9150613926826138e7565b602082019050919050565b5f6020820190508181035f8301526139488161390f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613983601683612fe8565b915061398e8261394f565b602082019050919050565b5f6020820190508181035f8301526139b081613977565b9050919050565b7f416d6f756e74206578636565647320746865206d617854786e416d6f756e742e5f82015250565b5f6139eb602083612fe8565b91506139f6826139b7565b602082019050919050565b5f6020820190508181035f830152613a18816139df565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613a53601383612fe8565b9150613a5e82613a1f565b602082019050919050565b5f6020820190508181035f830152613a8081613a47565b9050919050565b5f613a9182612f6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ac357613ac26133ba565b5b600182019050919050565b5f613ad882612f6d565b9150613ae383612f6d565b9250828202613af181612f6d565b91508282048414831517613b0857613b076133ba565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b4682612f6d565b9150613b5183612f6d565b925082613b6157613b60613b0f565b5b828204905092915050565b5f613b7682612f6d565b9150613b8183612f6d565b9250828203905081811115613b9957613b986133ba565b5b92915050565b5f81905092915050565b50565b5f613bb75f83613b9f565b9150613bc282613ba9565b5f82019050919050565b5f613bd682613bac565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c3a602683612fe8565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613cd681613112565b92915050565b5f60208284031215613cf157613cf0612f69565b5b5f613cfe84828501613cc8565b91505092915050565b5f819050919050565b5f613d2a613d25613d2084613d07565b61308d565b612f6d565b9050919050565b613d3a81613d10565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d7281613101565b82525050565b5f613d838383613d69565b60208301905092915050565b5f602082019050919050565b5f613da582613d40565b613daf8185613d4a565b9350613dba83613d5a565b805f5b83811015613dea578151613dd18882613d78565b9750613ddc83613d8f565b925050600181019050613dbd565b5085935050505092915050565b5f60a082019050613e0a5f8301886131ad565b613e176020830187613d31565b8181036040830152613e298186613d9b565b9050613e386060830185613225565b613e4560808301846131ad565b969550505050505056fea26469706673582212209ff5798b952ddda55980203ecba3c60e712bfe04479ce505411389d80b0d0c4f64736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061028b575f3560e01c80638a8c523c11610159578063c0246668116100c0578063dd62ed3e11610079578063dd62ed3e146109bc578063e0bf7fd1146109f8578063e2f4560514610a34578063e55648f414610a5e578063f242ab4114610a86578063f2fde38b14610ab057610292565b8063c0246668146108b4578063cf46f24c146108dc578063d0a3981414610906578063d1d7d7ef14610930578063d2fcc0011461096c578063d3aea37b1461099457610292565b8063a9059cbb11610112578063a9059cbb14610798578063aa4bde28146107d4578063aacebbe3146107fe578063acdf269d14610826578063b9e937001461084e578063c002f9391461087857610292565b80638a8c523c1461069e5780638da5cb5b146106b457806395d89b41146106de578063a457c2d714610708578063a4c82a0014610744578063a4d0047d1461076e57610292565b80634a62bb65116101fd57806378d52722116101b657806378d52722146105905780637ae3ff47146105ba5780637b9d454d146105e45780637e761377146106205780637e84953f1461064a57806388d113321461067457610292565b80634a62bb651461049857806366ca9b83146104c25780636e9087db146104ea57806370a0823114610514578063715018a614610550578063751039fc1461056657610292565b806323b872dd1161024f57806323b872dd1461037857806327c8f835146103b45780632c3e486c146103de578063313ce5671461040857806336a1efe414610432578063395093511461045c57610292565b806302dbd8f81461029657806306fdde03146102be5780630758d924146102e8578063095ea7b31461031257806318160ddd1461034e57610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102bc60048036038101906102b79190612fa0565b610ad8565b005b3480156102c9575f80fd5b506102d2610b8b565b6040516102df919061304e565b60405180910390f35b3480156102f3575f80fd5b506102fc610c1b565b60405161030991906130e8565b60405180910390f35b34801561031d575f80fd5b506103386004803603810190610333919061313c565b610c3f565b6040516103459190613194565b60405180910390f35b348015610359575f80fd5b50610362610c5c565b60405161036f91906131bc565b60405180910390f35b348015610383575f80fd5b5061039e600480360381019061039991906131d5565b610c65565b6040516103ab9190613194565b60405180910390f35b3480156103bf575f80fd5b506103c8610d57565b6040516103d59190613234565b60405180910390f35b3480156103e9575f80fd5b506103f2610d5d565b6040516103ff91906131bc565b60405180910390f35b348015610413575f80fd5b5061041c610d63565b6040516104299190613268565b60405180910390f35b34801561043d575f80fd5b50610446610d78565b60405161045391906131bc565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d919061313c565b610d7e565b60405161048f9190613194565b60405180910390f35b3480156104a3575f80fd5b506104ac610e25565b6040516104b99190613194565b60405180910390f35b3480156104cd575f80fd5b506104e860048036038101906104e39190612fa0565b610e37565b005b3480156104f5575f80fd5b506104fe610eea565b60405161050b9190613194565b60405180910390f35b34801561051f575f80fd5b5061053a60048036038101906105359190613281565b610efd565b60405161054791906131bc565b60405180910390f35b34801561055b575f80fd5b50610564610f42565b005b348015610571575f80fd5b5061057a610fc9565b6040516105879190613194565b60405180910390f35b34801561059b575f80fd5b506105a4611066565b6040516105b191906131bc565b60405180910390f35b3480156105c5575f80fd5b506105ce61106c565b6040516105db91906131bc565b60405180910390f35b3480156105ef575f80fd5b5061060a60048036038101906106059190613281565b611072565b6040516106179190613194565b60405180910390f35b34801561062b575f80fd5b5061063461108f565b60405161064191906131bc565b60405180910390f35b348015610655575f80fd5b5061065e611095565b60405161066b91906131bc565b60405180910390f35b34801561067f575f80fd5b5061068861109b565b60405161069591906131bc565b60405180910390f35b3480156106a9575f80fd5b506106b26110a1565b005b3480156106bf575f80fd5b506106c8611141565b6040516106d59190613234565b60405180910390f35b3480156106e9575f80fd5b506106f261116a565b6040516106ff919061304e565b60405180910390f35b348015610713575f80fd5b5061072e6004803603810190610729919061313c565b6111fa565b60405161073b9190613194565b60405180910390f35b34801561074f575f80fd5b506107586112e0565b60405161076591906131bc565b60405180910390f35b348015610779575f80fd5b506107826112e6565b60405161078f91906131bc565b60405180910390f35b3480156107a3575f80fd5b506107be60048036038101906107b9919061313c565b6112ec565b6040516107cb9190613194565b60405180910390f35b3480156107df575f80fd5b506107e8611309565b6040516107f591906131bc565b60405180910390f35b348015610809575f80fd5b50610824600480360381019061081f9190613281565b61130f565b005b348015610831575f80fd5b5061084c60048036038101906108479190612fa0565b611449565b005b348015610859575f80fd5b506108626114f1565b60405161086f91906131bc565b60405180910390f35b348015610883575f80fd5b5061089e60048036038101906108999190613281565b6114f7565b6040516108ab9190613194565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d591906132d6565b611514565b005b3480156108e7575f80fd5b506108f0611636565b6040516108fd91906131bc565b60405180910390f35b348015610911575f80fd5b5061091a61163c565b60405161092791906131bc565b60405180910390f35b34801561093b575f80fd5b5061095660048036038101906109519190613281565b611642565b6040516109639190613194565b60405180910390f35b348015610977575f80fd5b50610992600480360381019061098d91906132d6565b61165f565b005b34801561099f575f80fd5b506109ba60048036038101906109b591906132d6565b611781565b005b3480156109c7575f80fd5b506109e260048036038101906109dd9190613314565b6118a3565b6040516109ef91906131bc565b60405180910390f35b348015610a03575f80fd5b50610a1e6004803603810190610a199190613281565b611925565b604051610a2b9190613194565b60405180910390f35b348015610a3f575f80fd5b50610a48611942565b604051610a5591906131bc565b60405180910390f35b348015610a69575f80fd5b50610a846004803603810190610a7f91906132d6565b611948565b005b348015610a91575f80fd5b50610a9a611af1565b604051610aa79190613234565b60405180910390f35b348015610abb575f80fd5b50610ad66004803603810190610ad19190613281565b611b16565b005b610ae0611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610afe611141565b73ffffffffffffffffffffffffffffffffffffffff1614610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b9061339c565b60405180910390fd5b81600b8190555080600c81905550600c54600b54610b7291906133e7565b600d819055506023600d541115610b87575f80fd5b5050565b606060038054610b9a90613447565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc690613447565b8015610c115780601f10610be857610100808354040283529160200191610c11565b820191905f5260205f20905b815481529060010190602001808311610bf457829003601f168201915b5050505050905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f610c52610c4b611c0c565b8484611c13565b6001905092915050565b5f600254905090565b5f610c71848484611dd6565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cb8611c0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e906134e7565b60405180910390fd5b610d4b85610d43611c0c565b858403611c13565b60019150509392505050565b61dead81565b60125481565b5f60055f9054906101000a900460ff16905090565b60115481565b5f610e1b610d8a611c0c565b848460015f610d97611c0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e1691906133e7565b611c13565b6001905092915050565b60175f9054906101000a900460ff1681565b610e3f611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610e5d611141565b73ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061339c565b60405180910390fd5b8160088190555080600981905550600954600854610ed191906133e7565b600a819055506023600a541115610ee6575f80fd5b5050565b601760019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f4a611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610f68611141565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb59061339c565b60405180910390fd5b610fc75f6127da565b565b5f610fd2611c0c565b73ffffffffffffffffffffffffffffffffffffffff16610ff0611141565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d9061339c565b60405180910390fd5b5f60175f6101000a81548160ff0219169083151502179055506001905090565b60165481565b60095481565b6019602052805f5260405f205f915054906101000a900460ff1681565b600c5481565b600b5481565b60085481565b6110a9611c0c565b73ffffffffffffffffffffffffffffffffffffffff166110c7611141565b73ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111149061339c565b60405180910390fd5b6001601760016101000a81548160ff02191690831515021790555043601481905550565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461117990613447565b80601f01602080910402602001604051908101604052809291908181526020018280546111a590613447565b80156111f05780601f106111c7576101008083540402835291602001916111f0565b820191905f5260205f20905b8154815290600101906020018083116111d357829003601f168201915b5050505050905090565b5f8060015f611207611c0c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890613575565b60405180910390fd5b6112d56112cc611c0c565b85858403611c13565b600191505092915050565b60135481565b60155481565b5f6112ff6112f8611c0c565b8484611dd6565b6001905092915050565b600f5481565b611317611c0c565b73ffffffffffffffffffffffffffffffffffffffff16611335611141565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113829061339c565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6760405160405180910390a350565b611451611c0c565b73ffffffffffffffffffffffffffffffffffffffff1661146f611141565b73ffffffffffffffffffffffffffffffffffffffff16146114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc9061339c565b60405180910390fd5b600182101580156114d7575060018110155b6114df575f80fd5b81601081905550806011819055505050565b600a5481565b601c602052805f5260405f205f915054906101000a900460ff1681565b61151c611c0c565b73ffffffffffffffffffffffffffffffffffffffff1661153a611141565b73ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115879061339c565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161162a9190613194565b60405180910390a25050565b600e5481565b600d5481565b601a602052805f5260405f205f915054906101000a900460ff1681565b611667611c0c565b73ffffffffffffffffffffffffffffffffffffffff16611685611141565b73ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d29061339c565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b2826040516117759190613194565b60405180910390a25050565b611789611c0c565b73ffffffffffffffffffffffffffffffffffffffff166117a7611141565b73ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f49061339c565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f0e3805a5f2c1f0a980cd2b0d9f4fadc01ed6b86a11e0e76d567c9afd4d51a84f826040516118979190613194565b60405180910390a25050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6018602052805f5260405f205f915054906101000a900460ff1681565b60105481565b611950611c0c565b73ffffffffffffffffffffffffffffffffffffffff1661196e611141565b73ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb9061339c565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a90613603565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f568be47e27f53734673ed7d53af6e687fd70fdfff51f9f47304301d6f918900d60405160405180910390a35050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b1e611c0c565b73ffffffffffffffffffffffffffffffffffffffff16611b3c611141565b73ffffffffffffffffffffffffffffffffffffffff1614611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b899061339c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf790613691565b60405180910390fd5b611c09816127da565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c789061371f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce6906137ad565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dc991906131bc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3b9061383b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea9906138c9565b60405180910390fd5b5f8111611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613931565b60405180910390fd5b60175f9054906101000a900460ff161561221d57611f10611141565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7e5750611f4e611141565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f975750601760029054906101000a900460ff16155b1561221c57601760019054906101000a900460ff1661208b5760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061204b575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208190613999565b60405180910390fd5b5b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612129575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561217457600e54811115612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216a90613a01565b60405180910390fd5b5b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661221b57600f546121ce83610efd565b826121d991906133e7565b111561221a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221190613a69565b60405180910390fd5b5b5b5b5f4390505f61222b30610efd565b90505f60105482101590508080156122505750601760029054906101000a900460ff16155b801561226e57506002601b5f8581526020019081526020015f205411155b80156122c15750601c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612314575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612367575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156123ce576001601760026101000a81548160ff02191690831515021790555061238f61289f565b601b5f8481526020019081526020015f205f81546123ac90613a87565b919050819055505f601760026101000a81548160ff0219169083151502179055505b601760029054906101000a900460ff161580156124315750601c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015612484575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561249257612491612967565b5b5f601760029054906101000a900460ff1615905060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612541575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561254a575f90505b5f805f83156127c357601c5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156125aa57505f600d54115b156126e5576064600d54896125bf9190613ace565b6125c99190613b3c565b9250600d54600c54846125dc9190613ace565b6125e69190613b3c565b905080836125f49190613b6c565b91505f61262160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610efd565b905060155f81548092919061263590613a87565b91905055505f82036126c75761522a811180156126555750600260155410155b8061267057506129158111801561266f5750600460155410155b5b8061268b575061148a8111801561268a5750600860155410155b5b806126a65750610a45811180156126a55750601060155410155b5b156126c6575f601581905550600a9150600a846126c391906133e7565b93505b5b8860165f8282546126d891906133e7565b925050819055505061278a565b5f600a5411801561273c5750601c5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612789576064600a54896127519190613ace565b61275b9190613b3c565b9250600a546009548461276e9190613ace565b6127789190613b3c565b905080836127869190613b6c565b91505b5b5f82111561279e5761279d8a3084612ab7565b5b5f8111156127b4576127b38a61dead83612ab7565b5b82886127c09190613b6c565b97505b6127ce8a8a8a612ab7565b50505050505050505050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6128a930610efd565b90505f8082036128ba575050612965565b6011548211156128ca5760115491505b5f8290506128d781612d2c565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161291c90613bcc565b5f6040518083038185875af1925050503d805f8114612956576040519150601f19603f3d011682016040523d82523d5f602084013e61295b565b606091505b5050809250505050505b565b5f61299260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610efd565b9050610a45811115612ab35761291560165410156129d3576012546013546129ba91906133e7565b4210156129c75750612ab5565b426013819055506129db565b5f6016819055505b612a0a60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead600a612ab7565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612a70575f80fd5b505af1158015612a82573d5f803e3d5ffd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a15b505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1c9061383b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8a906138c9565b60405180910390fd5b612b9e838383612f5f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1890613c50565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612caf91906133e7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d1391906131bc565b60405180910390a3612d26848484612f64565b50505050565b5f600267ffffffffffffffff811115612d4857612d47613c6e565b5b604051908082528060200260200182016040528015612d765781602001602082028036833780820191505090505b50905030815f81518110612d8d57612d8c613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e549190613cdc565b81600181518110612e6857612e67613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ecd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611c13565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612f2e959493929190613df7565b5f604051808303815f87803b158015612f45575f80fd5b505af1158015612f57573d5f803e3d5ffd5b505050505050565b505050565b505050565b5f80fd5b5f819050919050565b612f7f81612f6d565b8114612f89575f80fd5b50565b5f81359050612f9a81612f76565b92915050565b5f8060408385031215612fb657612fb5612f69565b5b5f612fc385828601612f8c565b9250506020612fd485828601612f8c565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61302082612fde565b61302a8185612fe8565b935061303a818560208601612ff8565b61304381613006565b840191505092915050565b5f6020820190508181035f8301526130668184613016565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6130b06130ab6130a68461306e565b61308d565b61306e565b9050919050565b5f6130c182613096565b9050919050565b5f6130d2826130b7565b9050919050565b6130e2816130c8565b82525050565b5f6020820190506130fb5f8301846130d9565b92915050565b5f61310b8261306e565b9050919050565b61311b81613101565b8114613125575f80fd5b50565b5f8135905061313681613112565b92915050565b5f806040838503121561315257613151612f69565b5b5f61315f85828601613128565b925050602061317085828601612f8c565b9150509250929050565b5f8115159050919050565b61318e8161317a565b82525050565b5f6020820190506131a75f830184613185565b92915050565b6131b681612f6d565b82525050565b5f6020820190506131cf5f8301846131ad565b92915050565b5f805f606084860312156131ec576131eb612f69565b5b5f6131f986828701613128565b935050602061320a86828701613128565b925050604061321b86828701612f8c565b9150509250925092565b61322e81613101565b82525050565b5f6020820190506132475f830184613225565b92915050565b5f60ff82169050919050565b6132628161324d565b82525050565b5f60208201905061327b5f830184613259565b92915050565b5f6020828403121561329657613295612f69565b5b5f6132a384828501613128565b91505092915050565b6132b58161317a565b81146132bf575f80fd5b50565b5f813590506132d0816132ac565b92915050565b5f80604083850312156132ec576132eb612f69565b5b5f6132f985828601613128565b925050602061330a858286016132c2565b9150509250929050565b5f806040838503121561332a57613329612f69565b5b5f61333785828601613128565b925050602061334885828601613128565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613386602083612fe8565b915061339182613352565b602082019050919050565b5f6020820190508181035f8301526133b38161337a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6133f182612f6d565b91506133fc83612f6d565b9250828201905080821115613414576134136133ba565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061345e57607f821691505b6020821081036134715761347061341a565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6134d1602883612fe8565b91506134dc82613477565b604082019050919050565b5f6020820190508181035f8301526134fe816134c5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61355f602583612fe8565b915061356a82613505565b604082019050919050565b5f6020820190508181035f83015261358c81613553565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6465785061697273000000000000000000000000000000000000000000000000602082015250565b5f6135ed602883612fe8565b91506135f882613593565b604082019050919050565b5f6020820190508181035f83015261361a816135e1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61367b602683612fe8565b915061368682613621565b604082019050919050565b5f6020820190508181035f8301526136a88161366f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613709602483612fe8565b9150613714826136af565b604082019050919050565b5f6020820190508181035f830152613736816136fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613797602283612fe8565b91506137a28261373d565b604082019050919050565b5f6020820190508181035f8301526137c48161378b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613825602583612fe8565b9150613830826137cb565b604082019050919050565b5f6020820190508181035f83015261385281613819565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b3602383612fe8565b91506138be82613859565b604082019050919050565b5f6020820190508181035f8301526138e0816138a7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206973207a65726f00005f82015250565b5f61391b601e83612fe8565b9150613926826138e7565b602082019050919050565b5f6020820190508181035f8301526139488161390f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613983601683612fe8565b915061398e8261394f565b602082019050919050565b5f6020820190508181035f8301526139b081613977565b9050919050565b7f416d6f756e74206578636565647320746865206d617854786e416d6f756e742e5f82015250565b5f6139eb602083612fe8565b91506139f6826139b7565b602082019050919050565b5f6020820190508181035f830152613a18816139df565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613a53601383612fe8565b9150613a5e82613a1f565b602082019050919050565b5f6020820190508181035f830152613a8081613a47565b9050919050565b5f613a9182612f6d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ac357613ac26133ba565b5b600182019050919050565b5f613ad882612f6d565b9150613ae383612f6d565b9250828202613af181612f6d565b91508282048414831517613b0857613b076133ba565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b4682612f6d565b9150613b5183612f6d565b925082613b6157613b60613b0f565b5b828204905092915050565b5f613b7682612f6d565b9150613b8183612f6d565b9250828203905081811115613b9957613b986133ba565b5b92915050565b5f81905092915050565b50565b5f613bb75f83613b9f565b9150613bc282613ba9565b5f82019050919050565b5f613bd682613bac565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c3a602683612fe8565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613cd681613112565b92915050565b5f60208284031215613cf157613cf0612f69565b5b5f613cfe84828501613cc8565b91505092915050565b5f819050919050565b5f613d2a613d25613d2084613d07565b61308d565b612f6d565b9050919050565b613d3a81613d10565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613d7281613101565b82525050565b5f613d838383613d69565b60208301905092915050565b5f602082019050919050565b5f613da582613d40565b613daf8185613d4a565b9350613dba83613d5a565b805f5b83811015613dea578151613dd18882613d78565b9750613ddc83613d8f565b925050600181019050613dbd565b5085935050505092915050565b5f60a082019050613e0a5f8301886131ad565b613e176020830187613d31565b8181036040830152613e298186613d9b565b9050613e386060830185613225565b613e4560808301846131ad565b969550505050505056fea26469706673582212209ff5798b952ddda55980203ecba3c60e712bfe04479ce505411389d80b0d0c4f64736f6c634300081a0033

Deployed Bytecode Sourcemap

9063:10350:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13447:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4120:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9106:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5107:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4448:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5309:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9225:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9691:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4340:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9650:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5846:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9881:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13173:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9921:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4564:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3080:103;;;;;;;;;;;;;:::i;:::-;;12011:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9840:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9326:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10039:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9443:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9403:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9287:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11888:115;;;;;;;;;;;;;:::i;:::-;;2857:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4228:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6144:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9738:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9807:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4715:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9562:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12713:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12918:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9362:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10216:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12140:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9522:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9480;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10099:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12514:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12324:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4923:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9981:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9605:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13728:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9158:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3191:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13447:273;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13578:8:::1;13562:13;:24;;;;13611:8;13597:11;:22;;;;13662:11;;13646:13;;:27;;;;:::i;:::-;13630:13;:43;;;;13709:2;13692:13;;:19;;13684:28;;;::::0;::::1;;13447:273:::0;;:::o;4120:100::-;4174:13;4207:5;4200:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4120:100;:::o;9106:45::-;;;:::o;5107:194::-;5215:4;5232:39;5241:12;:10;:12::i;:::-;5255:7;5264:6;5232:8;:39::i;:::-;5289:4;5282:11;;5107:194;;;;:::o;4448:108::-;4509:7;4536:12;;4529:19;;4448:108;:::o;5309:529::-;5449:4;5466:36;5476:6;5484:9;5495:6;5466:9;:36::i;:::-;5515:24;5542:11;:19;5554:6;5542:19;;;;;;;;;;;;;;;:33;5562:12;:10;:12::i;:::-;5542:33;;;;;;;;;;;;;;;;5515:60;;5628:6;5608:16;:26;;5586:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;5738:57;5747:6;5755:12;:10;:12::i;:::-;5788:6;5769:16;:25;5738:8;:57::i;:::-;5826:4;5819:11;;;5309:529;;;;;:::o;9225:53::-;9271:6;9225:53;:::o;9691:40::-;;;;:::o;4340:100::-;4398:5;4423:9;;;;;;;;;;;4416:16;;4340:100;:::o;9650:34::-;;;;:::o;5846:290::-;5959:4;5976:130;5999:12;:10;:12::i;:::-;6026:7;6085:10;6048:11;:25;6060:12;:10;:12::i;:::-;6048:25;;;;;;;;;;;;;;;:34;6074:7;6048:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5976:8;:130::i;:::-;6124:4;6117:11;;5846:290;;;;:::o;9881:33::-;;;;;;;;;;;;;:::o;13173:266::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13302:8:::1;13287:12;:23;;;;13334:8;13321:10;:21;;;;13383:10;;13368:12;;:25;;;;:::i;:::-;13353:12;:40;;;;13428:2;13412:12;;:18;;13404:27;;;::::0;::::1;;13173:266:::0;;:::o;9921:21::-;;;;;;;;;;;;;:::o;4564:143::-;4654:7;4681:9;:18;4691:7;4681:18;;;;;;;;;;;;;;;;4674:25;;4564:143;;;:::o;3080:103::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3145:30:::1;3172:1;3145:18;:30::i;:::-;3080:103::o:0;12011:121::-;12063:4;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12097:5:::1;12080:14;;:22;;;;;;;;;;;;;;;;;;12120:4;12113:11;;12011:121:::0;:::o;9840:32::-;;;;:::o;9326:29::-;;;;:::o;10039:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;9443:30::-;;;;:::o;9403:33::-;;;;:::o;9287:32::-;;;;:::o;11888:115::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11955:4:::1;11943:9;;:16;;;;;;;;;;;;;;;;;;11983:12;11970:10;:25;;;;11888:115::o:0;2857:87::-;2903:7;2930:6;;;;;;;;;;;2923:13;;2857:87;:::o;4228:104::-;4284:13;4317:7;4310:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4228:104;:::o;6144:475::-;6262:4;6279:24;6306:11;:25;6318:12;:10;:12::i;:::-;6306:25;;;;;;;;;;;;;;;:34;6332:7;6306:34;;;;;;;;;;;;;;;;6279:61;;6393:15;6373:16;:35;;6351:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;6509:67;6518:12;:10;:12::i;:::-;6532:7;6560:15;6541:16;:34;6509:8;:67::i;:::-;6607:4;6600:11;;;6144:475;;;;:::o;9738:29::-;;;;:::o;9807:26::-;;;;:::o;4715:200::-;4826:4;4843:42;4853:12;:10;:12::i;:::-;4867:9;4878:6;4843:9;:42::i;:::-;4903:4;4896:11;;4715:200;;;;:::o;9562:36::-;;;;:::o;12713:197::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12827:9:::1;12809:15;;:27;;;;;;;;;;;;;;;;;;12886:15;;;;;;;;;;;12852:50;;12875:9;12852:50;;;;;;;;;;;;12713:197:::0;:::o;12918:247::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13063:1:::1;13049:10;:15;;:31;;;;;13079:1;13068:7;:12;;13049:31;13041:40;;;::::0;::::1;;13113:10;13092:18;:31;;;;13150:7;13134:13;:23;;;;12918:247:::0;;:::o;9362:32::-;;;;:::o;10216:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;12140:176::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12254:6:::1;12223:19;:28;12243:7;12223:28;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;12292:7;12276:32;;;12301:6;12276:32;;;;;;:::i;:::-;;;;;;;;12140:176:::0;;:::o;9522:33::-;;;;:::o;9480:::-;;;;:::o;10099:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;12514:191::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12638:6:::1;12602:24;:33;12627:7;12602:33;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12681:7;12660:37;;;12690:6;12660:37;;;;;;:::i;:::-;;;;;;;;12514:191:::0;;:::o;12324:182::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12442:6:::1;12409:21;:30;12431:7;12409:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12482:7;12464:34;;;12491:6;12464:34;;;;;;:::i;:::-;;;;;;;;12324:182:::0;;:::o;4923:176::-;5037:7;5064:11;:18;5076:5;5064:18;;;;;;;;;;;;;;;:27;5083:7;5064:27;;;;;;;;;;;;;;;;5057:34;;4923:176;;;;:::o;9981:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;9605:38::-;;;;:::o;13728:288::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13857:7:::1;;;;;;;;;;;13849:15;;:4;:15;;::::0;13827:105:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13960:5;13943:8;:14;13952:4;13943:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;14002:5;13981:27;;13996:4;13981:27;;;;;;;;;;;;13728:288:::0;;:::o;9158:22::-;;;;;;;;;;;;;:::o;3191:238::-;3003:12;:10;:12::i;:::-;2992:23;;:7;:5;:7::i;:::-;:23;;;2984:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3314:1:::1;3294:22;;:8;:22;;::::0;3272:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3393:28;3412:8;3393:18;:28::i;:::-;3191:238:::0;:::o;2378:98::-;2431:7;2458:10;2451:17;;2378:98;:::o;8411:380::-;8564:1;8547:19;;:5;:19;;;8539:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8645:1;8626:21;;:7;:21;;;8618:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8729:6;8699:11;:18;8711:5;8699:18;;;;;;;;;;;;;;;:27;8718:7;8699:27;;;;;;;;;;;;;;;:36;;;;8767:7;8751:32;;8760:5;8751:32;;;8776:6;8751:32;;;;;;:::i;:::-;;;;;;;;8411:380;;;:::o;14024:3769::-;14172:1;14156:18;;:4;:18;;;14148:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14249:1;14235:16;;:2;:16;;;14227:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14319:1;14310:6;:10;14302:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14371:14;;;;;;;;;;;14367:1013;;;14436:7;:5;:7::i;:::-;14428:15;;:4;:15;;;;:49;;;;;14470:7;:5;:7::i;:::-;14464:13;;:2;:13;;;;14428:49;:81;;;;;14499:10;;;;;;;;;;;14498:11;14428:81;14406:960;;;14549:9;;;;;;;;;;;14544:219;;14617:19;:25;14637:4;14617:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14646:19;:23;14666:2;14646:23;;;;;;;;;;;;;;;;;;;;;;;;;14617:52;14583:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;14544:219;14810:21;:27;14832:4;14810:27;;;;;;;;;;;;;;;;;;;;;;;;;14809:28;:79;;;;;14863:21;:25;14885:2;14863:25;;;;;;;;;;;;;;;;;;;;;;;;;14862:26;14809:79;14783:308;;;14975:12;;14965:6;:22;;14931:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;14783:308;15132:24;:28;15157:2;15132:28;;;;;;;;;;;;;;;;;;;;;;;;;15127:224;;15245:15;;15228:13;15238:2;15228:9;:13::i;:::-;15219:6;:22;;;;:::i;:::-;:41;;15185:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;15127:224;14406:960;14367:1013;15393:19;15415:12;15393:34;;15438:28;15469:24;15487:4;15469:9;:24::i;:::-;15438:55;;15504:12;15543:18;;15519:20;:42;;15504:57;;15592:7;:35;;;;;15617:10;;;;;;;;;;;15616:11;15592:35;:83;;;;;15673:1;15645:11;:24;15657:11;15645:24;;;;;;;;;;;;:29;;15592:83;:115;;;;;15693:8;:14;15702:4;15693:14;;;;;;;;;;;;;;;;;;;;;;;;;15692:15;15592:115;:158;;;;;15725:19;:25;15745:4;15725:25;;;;;;;;;;;;;;;;;;;;;;;;;15724:26;15592:158;:199;;;;;15768:19;:23;15788:2;15768:23;;;;;;;;;;;;;;;;;;;;;;;;;15767:24;15592:199;15574:378;;;15831:4;15818:10;;:17;;;;;;;;;;;;;;;;;;15852:10;:8;:10::i;:::-;15881:11;:24;15893:11;15881:24;;;;;;;;;;;;15879:26;;;;;:::i;:::-;;;;;;;;15935:5;15922:10;;:18;;;;;;;;;;;;;;;;;;15574:378;15983:10;;;;;;;;;;;15982:11;:40;;;;;16010:8;:12;16019:2;16010:12;;;;;;;;;;;;;;;;;;;;;;;;;15982:40;:83;;;;;16040:19;:25;16060:4;16040:25;;;;;;;;;;;;;;;;;;;;;;;;;16039:26;15982:83;15964:152;;;16092:12;:10;:12::i;:::-;15964:152;16128:12;16144:10;;;;;;;;;;;16143:11;16128:26;;16171:19;:25;16191:4;16171:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16200:19;:23;16220:2;16200:23;;;;;;;;;;;;;;;;;;;;;;;;;16171:52;16167:100;;;16250:5;16240:15;;16167:100;16279:12;16306:14;16335;16368:7;16364:1376;;;16396:8;:12;16405:2;16396:12;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;;16428:1;16412:13;;:17;16396:33;16392:1086;;;16484:3;16467:13;;16458:6;:22;;;;:::i;:::-;16457:30;;;;:::i;:::-;16450:37;;16538:13;;16523:11;;16516:4;:18;;;;:::i;:::-;16515:36;;;;:::i;:::-;16506:45;;16586:6;16579:4;:13;;;;:::i;:::-;16570:22;;16611:17;16631:18;16641:7;;;;;;;;;;;16631:9;:18::i;:::-;16611:38;;16668:11;;:13;;;;;;;;;:::i;:::-;;;;;;16714:1;16704:6;:11;16700:496;;16783:5;16771:9;:17;:37;;;;;16807:1;16792:11;;:16;;16771:37;16770:107;;;;16851:5;16839:9;:17;:37;;;;;16875:1;16860:11;;:16;;16839:37;16770:107;:174;;;;16919:4;16907:9;:16;:36;;;;;16942:1;16927:11;;:16;;16907:36;16770:174;:242;;;;16986:4;16974:9;:16;:37;;;;;17009:2;16994:11;;:17;;16974:37;16770:242;16740:437;;;17077:1;17063:11;:15;;;;17114:2;17105:11;;17151:2;17143:10;;;;;:::i;:::-;;;16740:437;16700:496;17237:6;17216:17;;:27;;;;;;;:::i;:::-;;;;;;;;16431:828;16392:1086;;;17283:1;17268:12;;:16;:34;;;;;17288:8;:14;17297:4;17288:14;;;;;;;;;;;;;;;;;;;;;;;;;17268:34;17264:214;;;17356:3;17340:12;;17331:6;:21;;;;:::i;:::-;17330:29;;;;:::i;:::-;17323:36;;17409:12;;17395:10;;17388:4;:17;;;;:::i;:::-;17387:34;;;;:::i;:::-;17378:43;;17456:6;17449:4;:13;;;;:::i;:::-;17440:22;;17264:214;16392:1086;17507:1;17498:6;:10;17494:95;;;17529:44;17545:4;17559;17566:6;17529:15;:44::i;:::-;17494:95;17618:1;17609:6;:10;17605:93;;;17640:42;17656:4;9271:6;17675;17640:15;:42::i;:::-;17605:93;17724:4;17714:14;;;;;:::i;:::-;;;16364:1376;17752:33;17768:4;17774:2;17778:6;17752:15;:33::i;:::-;14137:3656;;;;;;;14024:3769;;;:::o;3437:191::-;3511:16;3530:6;;;;;;;;;;;3511:25;;3556:8;3547:6;;:17;;;;;;;;;;;;;;;;;;3611:8;3580:40;;3601:8;3580:40;;;;;;;;;;;;3500:128;3437:191;:::o;17801:518::-;17840:23;17866:24;17884:4;17866:9;:24::i;:::-;17840:50;;17901:12;17949:1;17930:15;:20;17926:59;;17967:7;;;;17926:59;18019:13;;18001:15;:31;17997:95;;;18067:13;;18049:31;;17997:95;18104:26;18133:15;18104:44;;18161:36;18178:18;18161:16;:36::i;:::-;18232:15;;;;;;;;;;;18224:29;;18275:21;18224:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18210:101;;;;;17829:490;;;17801:518;:::o;18792:618::-;18834:28;18865:18;18875:7;;;;;;;;;;;18865:9;:18::i;:::-;18834:49;;18923:4;18900:20;:27;18896:507;;;18968:5;18948:17;;:25;18944:313;;;19033:15;;19016:14;;:32;;;;:::i;:::-;18998:15;:50;18994:186;;;19073:7;;;18994:186;19145:15;19128:14;:32;;;;18944:313;;;19240:1;19220:17;:21;;;;18944:313;19273:41;19289:7;;;;;;;;;;;9271:6;19311:2;19273:15;:41::i;:::-;19344:7;;;;;;;;;;;19329:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19379:12;;;;;;;;;;18896:507;18823:587;18792:618;:::o;6627:770::-;6785:1;6767:20;;:6;:20;;;6759:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6869:1;6848:23;;:9;:23;;;6840:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6924:47;6945:6;6953:9;6964:6;6924:20;:47::i;:::-;6984:21;7008:9;:17;7018:6;7008:17;;;;;;;;;;;;;;;;6984:41;;7075:6;7058:13;:23;;7036:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;7219:6;7203:13;:22;7183:9;:17;7193:6;7183:17;;;;;;;;;;;;;;;:42;;;;7271:6;7247:9;:20;7257:9;7247:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7312:9;7295:35;;7304:6;7295:35;;;7323:6;7295:35;;;;;;:::i;:::-;;;;;;;;7343:46;7363:6;7371:9;7382:6;7343:19;:46::i;:::-;6748:649;6627:770;;;:::o;18327:457::-;18393:21;18431:1;18417:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18393:40;;18462:4;18444;18449:1;18444:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18488:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18478:4;18483:1;18478:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;18517:56;18534:4;18549:9;18561:11;18517:8;:56::i;:::-;18586:9;:60;;;18661:11;18687:1;18703:4;18730;18750:15;18586:190;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18382:402;18327:457;:::o;8799:125::-;;;;:::o;8932:124::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:139::-;1539:6;1534:3;1529;1523:23;1580:1;1571:6;1566:3;1562:16;1555:27;1450:139;;;:::o;1595:102::-;1636:6;1687:2;1683:7;1678:2;1671:5;1667:14;1663:28;1653:38;;1595:102;;;:::o;1703:377::-;1791:3;1819:39;1852:5;1819:39;:::i;:::-;1874:71;1938:6;1933:3;1874:71;:::i;:::-;1867:78;;1954:65;2012:6;2007:3;2000:4;1993:5;1989:16;1954:65;:::i;:::-;2044:29;2066:6;2044:29;:::i;:::-;2039:3;2035:39;2028:46;;1795:285;1703:377;;;;:::o;2086:313::-;2199:4;2237:2;2226:9;2222:18;2214:26;;2286:9;2280:4;2276:20;2272:1;2261:9;2257:17;2250:47;2314:78;2387:4;2378:6;2314:78;:::i;:::-;2306:86;;2086:313;;;;:::o;2405:126::-;2442:7;2482:42;2475:5;2471:54;2460:65;;2405:126;;;:::o;2537:60::-;2565:3;2586:5;2579:12;;2537:60;;;:::o;2603:142::-;2653:9;2686:53;2704:34;2713:24;2731:5;2713:24;:::i;:::-;2704:34;:::i;:::-;2686:53;:::i;:::-;2673:66;;2603:142;;;:::o;2751:126::-;2801:9;2834:37;2865:5;2834:37;:::i;:::-;2821:50;;2751:126;;;:::o;2883:152::-;2959:9;2992:37;3023:5;2992:37;:::i;:::-;2979:50;;2883:152;;;:::o;3041:183::-;3154:63;3211:5;3154:63;:::i;:::-;3149:3;3142:76;3041:183;;:::o;3230:274::-;3349:4;3387:2;3376:9;3372:18;3364:26;;3400:97;3494:1;3483:9;3479:17;3470:6;3400:97;:::i;:::-;3230:274;;;;:::o;3510:96::-;3547:7;3576:24;3594:5;3576:24;:::i;:::-;3565:35;;3510:96;;;:::o;3612:122::-;3685:24;3703:5;3685:24;:::i;:::-;3678:5;3675:35;3665:63;;3724:1;3721;3714:12;3665:63;3612:122;:::o;3740:139::-;3786:5;3824:6;3811:20;3802:29;;3840:33;3867:5;3840:33;:::i;:::-;3740:139;;;;:::o;3885:474::-;3953:6;3961;4010:2;3998:9;3989:7;3985:23;3981:32;3978:119;;;4016:79;;:::i;:::-;3978:119;4136:1;4161:53;4206:7;4197:6;4186:9;4182:22;4161:53;:::i;:::-;4151:63;;4107:117;4263:2;4289:53;4334:7;4325:6;4314:9;4310:22;4289:53;:::i;:::-;4279:63;;4234:118;3885:474;;;;;:::o;4365:90::-;4399:7;4442:5;4435:13;4428:21;4417:32;;4365:90;;;:::o;4461:109::-;4542:21;4557:5;4542:21;:::i;:::-;4537:3;4530:34;4461:109;;:::o;4576:210::-;4663:4;4701:2;4690:9;4686:18;4678:26;;4714:65;4776:1;4765:9;4761:17;4752:6;4714:65;:::i;:::-;4576:210;;;;:::o;4792:118::-;4879:24;4897:5;4879:24;:::i;:::-;4874:3;4867:37;4792:118;;:::o;4916:222::-;5009:4;5047:2;5036:9;5032:18;5024:26;;5060:71;5128:1;5117:9;5113:17;5104:6;5060:71;:::i;:::-;4916:222;;;;:::o;5144:619::-;5221:6;5229;5237;5286:2;5274:9;5265:7;5261:23;5257:32;5254:119;;;5292:79;;:::i;:::-;5254:119;5412:1;5437:53;5482:7;5473:6;5462:9;5458:22;5437:53;:::i;:::-;5427:63;;5383:117;5539:2;5565:53;5610:7;5601:6;5590:9;5586:22;5565:53;:::i;:::-;5555:63;;5510:118;5667:2;5693:53;5738:7;5729:6;5718:9;5714:22;5693:53;:::i;:::-;5683:63;;5638:118;5144:619;;;;;:::o;5769:118::-;5856:24;5874:5;5856:24;:::i;:::-;5851:3;5844:37;5769:118;;:::o;5893:222::-;5986:4;6024:2;6013:9;6009:18;6001:26;;6037:71;6105:1;6094:9;6090:17;6081:6;6037:71;:::i;:::-;5893:222;;;;:::o;6121:86::-;6156:7;6196:4;6189:5;6185:16;6174:27;;6121:86;;;:::o;6213:112::-;6296:22;6312:5;6296:22;:::i;:::-;6291:3;6284:35;6213:112;;:::o;6331:214::-;6420:4;6458:2;6447:9;6443:18;6435:26;;6471:67;6535:1;6524:9;6520:17;6511:6;6471:67;:::i;:::-;6331:214;;;;:::o;6551:329::-;6610:6;6659:2;6647:9;6638:7;6634:23;6630:32;6627:119;;;6665:79;;:::i;:::-;6627:119;6785:1;6810:53;6855:7;6846:6;6835:9;6831:22;6810:53;:::i;:::-;6800:63;;6756:117;6551:329;;;;:::o;6886:116::-;6956:21;6971:5;6956:21;:::i;:::-;6949:5;6946:32;6936:60;;6992:1;6989;6982:12;6936:60;6886:116;:::o;7008:133::-;7051:5;7089:6;7076:20;7067:29;;7105:30;7129:5;7105:30;:::i;:::-;7008:133;;;;:::o;7147:468::-;7212:6;7220;7269:2;7257:9;7248:7;7244:23;7240:32;7237:119;;;7275:79;;:::i;:::-;7237:119;7395:1;7420:53;7465:7;7456:6;7445:9;7441:22;7420:53;:::i;:::-;7410:63;;7366:117;7522:2;7548:50;7590:7;7581:6;7570:9;7566:22;7548:50;:::i;:::-;7538:60;;7493:115;7147:468;;;;;:::o;7621:474::-;7689:6;7697;7746:2;7734:9;7725:7;7721:23;7717:32;7714:119;;;7752:79;;:::i;:::-;7714:119;7872:1;7897:53;7942:7;7933:6;7922:9;7918:22;7897:53;:::i;:::-;7887:63;;7843:117;7999:2;8025:53;8070:7;8061:6;8050:9;8046:22;8025:53;:::i;:::-;8015:63;;7970:118;7621:474;;;;;:::o;8101:182::-;8241:34;8237:1;8229:6;8225:14;8218:58;8101:182;:::o;8289:366::-;8431:3;8452:67;8516:2;8511:3;8452:67;:::i;:::-;8445:74;;8528:93;8617:3;8528:93;:::i;:::-;8646:2;8641:3;8637:12;8630:19;;8289:366;;;:::o;8661:419::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8914:9;8908:4;8904:20;8900:1;8889:9;8885:17;8878:47;8942:131;9068:4;8942:131;:::i;:::-;8934:139;;8661:419;;;:::o;9086:180::-;9134:77;9131:1;9124:88;9231:4;9228:1;9221:15;9255:4;9252:1;9245:15;9272:191;9312:3;9331:20;9349:1;9331:20;:::i;:::-;9326:25;;9365:20;9383:1;9365:20;:::i;:::-;9360:25;;9408:1;9405;9401:9;9394:16;;9429:3;9426:1;9423:10;9420:36;;;9436:18;;:::i;:::-;9420:36;9272:191;;;;:::o;9469:180::-;9517:77;9514:1;9507:88;9614:4;9611:1;9604:15;9638:4;9635:1;9628:15;9655:320;9699:6;9736:1;9730:4;9726:12;9716:22;;9783:1;9777:4;9773:12;9804:18;9794:81;;9860:4;9852:6;9848:17;9838:27;;9794:81;9922:2;9914:6;9911:14;9891:18;9888:38;9885:84;;9941:18;;:::i;:::-;9885:84;9706:269;9655:320;;;:::o;9981:227::-;10121:34;10117:1;10109:6;10105:14;10098:58;10190:10;10185:2;10177:6;10173:15;10166:35;9981:227;:::o;10214:366::-;10356:3;10377:67;10441:2;10436:3;10377:67;:::i;:::-;10370:74;;10453:93;10542:3;10453:93;:::i;:::-;10571:2;10566:3;10562:12;10555:19;;10214:366;;;:::o;10586:419::-;10752:4;10790:2;10779:9;10775:18;10767:26;;10839:9;10833:4;10829:20;10825:1;10814:9;10810:17;10803:47;10867:131;10993:4;10867:131;:::i;:::-;10859:139;;10586:419;;;:::o;11011:224::-;11151:34;11147:1;11139:6;11135:14;11128:58;11220:7;11215:2;11207:6;11203:15;11196:32;11011:224;:::o;11241:366::-;11383:3;11404:67;11468:2;11463:3;11404:67;:::i;:::-;11397:74;;11480:93;11569:3;11480:93;:::i;:::-;11598:2;11593:3;11589:12;11582:19;;11241:366;;;:::o;11613:419::-;11779:4;11817:2;11806:9;11802:18;11794:26;;11866:9;11860:4;11856:20;11852:1;11841:9;11837:17;11830:47;11894:131;12020:4;11894:131;:::i;:::-;11886:139;;11613:419;;;:::o;12038:227::-;12178:34;12174:1;12166:6;12162:14;12155:58;12247:10;12242:2;12234:6;12230:15;12223:35;12038:227;:::o;12271:366::-;12413:3;12434:67;12498:2;12493:3;12434:67;:::i;:::-;12427:74;;12510:93;12599:3;12510:93;:::i;:::-;12628:2;12623:3;12619:12;12612:19;;12271:366;;;:::o;12643:419::-;12809:4;12847:2;12836:9;12832:18;12824:26;;12896:9;12890:4;12886:20;12882:1;12871:9;12867:17;12860:47;12924:131;13050:4;12924:131;:::i;:::-;12916:139;;12643:419;;;:::o;13068:225::-;13208:34;13204:1;13196:6;13192:14;13185:58;13277:8;13272:2;13264:6;13260:15;13253:33;13068:225;:::o;13299:366::-;13441:3;13462:67;13526:2;13521:3;13462:67;:::i;:::-;13455:74;;13538:93;13627:3;13538:93;:::i;:::-;13656:2;13651:3;13647:12;13640:19;;13299:366;;;:::o;13671:419::-;13837:4;13875:2;13864:9;13860:18;13852:26;;13924:9;13918:4;13914:20;13910:1;13899:9;13895:17;13888:47;13952:131;14078:4;13952:131;:::i;:::-;13944:139;;13671:419;;;:::o;14096:223::-;14236:34;14232:1;14224:6;14220:14;14213:58;14305:6;14300:2;14292:6;14288:15;14281:31;14096:223;:::o;14325:366::-;14467:3;14488:67;14552:2;14547:3;14488:67;:::i;:::-;14481:74;;14564:93;14653:3;14564:93;:::i;:::-;14682:2;14677:3;14673:12;14666:19;;14325:366;;;:::o;14697:419::-;14863:4;14901:2;14890:9;14886:18;14878:26;;14950:9;14944:4;14940:20;14936:1;14925:9;14921:17;14914:47;14978:131;15104:4;14978:131;:::i;:::-;14970:139;;14697:419;;;:::o;15122:221::-;15262:34;15258:1;15250:6;15246:14;15239:58;15331:4;15326:2;15318:6;15314:15;15307:29;15122:221;:::o;15349:366::-;15491:3;15512:67;15576:2;15571:3;15512:67;:::i;:::-;15505:74;;15588:93;15677:3;15588:93;:::i;:::-;15706:2;15701:3;15697:12;15690:19;;15349:366;;;:::o;15721:419::-;15887:4;15925:2;15914:9;15910:18;15902:26;;15974:9;15968:4;15964:20;15960:1;15949:9;15945:17;15938:47;16002:131;16128:4;16002:131;:::i;:::-;15994:139;;15721:419;;;:::o;16146:224::-;16286:34;16282:1;16274:6;16270:14;16263:58;16355:7;16350:2;16342:6;16338:15;16331:32;16146:224;:::o;16376:366::-;16518:3;16539:67;16603:2;16598:3;16539:67;:::i;:::-;16532:74;;16615:93;16704:3;16615:93;:::i;:::-;16733:2;16728:3;16724:12;16717:19;;16376:366;;;:::o;16748:419::-;16914:4;16952:2;16941:9;16937:18;16929:26;;17001:9;16995:4;16991:20;16987:1;16976:9;16972:17;16965:47;17029:131;17155:4;17029:131;:::i;:::-;17021:139;;16748:419;;;:::o;17173:222::-;17313:34;17309:1;17301:6;17297:14;17290:58;17382:5;17377:2;17369:6;17365:15;17358:30;17173:222;:::o;17401:366::-;17543:3;17564:67;17628:2;17623:3;17564:67;:::i;:::-;17557:74;;17640:93;17729:3;17640:93;:::i;:::-;17758:2;17753:3;17749:12;17742:19;;17401:366;;;:::o;17773:419::-;17939:4;17977:2;17966:9;17962:18;17954:26;;18026:9;18020:4;18016:20;18012:1;18001:9;17997:17;17990:47;18054:131;18180:4;18054:131;:::i;:::-;18046:139;;17773:419;;;:::o;18198:180::-;18338:32;18334:1;18326:6;18322:14;18315:56;18198:180;:::o;18384:366::-;18526:3;18547:67;18611:2;18606:3;18547:67;:::i;:::-;18540:74;;18623:93;18712:3;18623:93;:::i;:::-;18741:2;18736:3;18732:12;18725:19;;18384:366;;;:::o;18756:419::-;18922:4;18960:2;18949:9;18945:18;18937:26;;19009:9;19003:4;18999:20;18995:1;18984:9;18980:17;18973:47;19037:131;19163:4;19037:131;:::i;:::-;19029:139;;18756:419;;;:::o;19181:172::-;19321:24;19317:1;19309:6;19305:14;19298:48;19181:172;:::o;19359:366::-;19501:3;19522:67;19586:2;19581:3;19522:67;:::i;:::-;19515:74;;19598:93;19687:3;19598:93;:::i;:::-;19716:2;19711:3;19707:12;19700:19;;19359:366;;;:::o;19731:419::-;19897:4;19935:2;19924:9;19920:18;19912:26;;19984:9;19978:4;19974:20;19970:1;19959:9;19955:17;19948:47;20012:131;20138:4;20012:131;:::i;:::-;20004:139;;19731:419;;;:::o;20156:182::-;20296:34;20292:1;20284:6;20280:14;20273:58;20156:182;:::o;20344:366::-;20486:3;20507:67;20571:2;20566:3;20507:67;:::i;:::-;20500:74;;20583:93;20672:3;20583:93;:::i;:::-;20701:2;20696:3;20692:12;20685:19;;20344:366;;;:::o;20716:419::-;20882:4;20920:2;20909:9;20905:18;20897:26;;20969:9;20963:4;20959:20;20955:1;20944:9;20940:17;20933:47;20997:131;21123:4;20997:131;:::i;:::-;20989:139;;20716:419;;;:::o;21141:169::-;21281:21;21277:1;21269:6;21265:14;21258:45;21141:169;:::o;21316:366::-;21458:3;21479:67;21543:2;21538:3;21479:67;:::i;:::-;21472:74;;21555:93;21644:3;21555:93;:::i;:::-;21673:2;21668:3;21664:12;21657:19;;21316:366;;;:::o;21688:419::-;21854:4;21892:2;21881:9;21877:18;21869:26;;21941:9;21935:4;21931:20;21927:1;21916:9;21912:17;21905:47;21969:131;22095:4;21969:131;:::i;:::-;21961:139;;21688:419;;;:::o;22113:233::-;22152:3;22175:24;22193:5;22175:24;:::i;:::-;22166:33;;22221:66;22214:5;22211:77;22208:103;;22291:18;;:::i;:::-;22208:103;22338:1;22331:5;22327:13;22320:20;;22113:233;;;:::o;22352:410::-;22392:7;22415:20;22433:1;22415:20;:::i;:::-;22410:25;;22449:20;22467:1;22449:20;:::i;:::-;22444:25;;22504:1;22501;22497:9;22526:30;22544:11;22526:30;:::i;:::-;22515:41;;22705:1;22696:7;22692:15;22689:1;22686:22;22666:1;22659:9;22639:83;22616:139;;22735:18;;:::i;:::-;22616:139;22400:362;22352:410;;;;:::o;22768:180::-;22816:77;22813:1;22806:88;22913:4;22910:1;22903:15;22937:4;22934:1;22927:15;22954:185;22994:1;23011:20;23029:1;23011:20;:::i;:::-;23006:25;;23045:20;23063:1;23045:20;:::i;:::-;23040:25;;23084:1;23074:35;;23089:18;;:::i;:::-;23074:35;23131:1;23128;23124:9;23119:14;;22954:185;;;;:::o;23145:194::-;23185:4;23205:20;23223:1;23205:20;:::i;:::-;23200:25;;23239:20;23257:1;23239:20;:::i;:::-;23234:25;;23283:1;23280;23276:9;23268:17;;23307:1;23301:4;23298:11;23295:37;;;23312:18;;:::i;:::-;23295:37;23145:194;;;;:::o;23345:147::-;23446:11;23483:3;23468:18;;23345:147;;;;:::o;23498:114::-;;:::o;23618:398::-;23777:3;23798:83;23879:1;23874:3;23798:83;:::i;:::-;23791:90;;23890:93;23979:3;23890:93;:::i;:::-;24008:1;24003:3;23999:11;23992:18;;23618:398;;;:::o;24022:379::-;24206:3;24228:147;24371:3;24228:147;:::i;:::-;24221:154;;24392:3;24385:10;;24022:379;;;:::o;24407:225::-;24547:34;24543:1;24535:6;24531:14;24524:58;24616:8;24611:2;24603:6;24599:15;24592:33;24407:225;:::o;24638:366::-;24780:3;24801:67;24865:2;24860:3;24801:67;:::i;:::-;24794:74;;24877:93;24966:3;24877:93;:::i;:::-;24995:2;24990:3;24986:12;24979:19;;24638:366;;;:::o;25010:419::-;25176:4;25214:2;25203:9;25199:18;25191:26;;25263:9;25257:4;25253:20;25249:1;25238:9;25234:17;25227:47;25291:131;25417:4;25291:131;:::i;:::-;25283:139;;25010:419;;;:::o;25435:180::-;25483:77;25480:1;25473:88;25580:4;25577:1;25570:15;25604:4;25601:1;25594:15;25621:180;25669:77;25666:1;25659:88;25766:4;25763:1;25756:15;25790:4;25787:1;25780:15;25807:143;25864:5;25895:6;25889:13;25880:22;;25911:33;25938:5;25911:33;:::i;:::-;25807:143;;;;:::o;25956:351::-;26026:6;26075:2;26063:9;26054:7;26050:23;26046:32;26043:119;;;26081:79;;:::i;:::-;26043:119;26201:1;26226:64;26282:7;26273:6;26262:9;26258:22;26226:64;:::i;:::-;26216:74;;26172:128;25956:351;;;;:::o;26313:85::-;26358:7;26387:5;26376:16;;26313:85;;;:::o;26404:158::-;26462:9;26495:61;26513:42;26522:32;26548:5;26522:32;:::i;:::-;26513:42;:::i;:::-;26495:61;:::i;:::-;26482:74;;26404:158;;;:::o;26568:147::-;26663:45;26702:5;26663:45;:::i;:::-;26658:3;26651:58;26568:147;;:::o;26721:114::-;26788:6;26822:5;26816:12;26806:22;;26721:114;;;:::o;26841:184::-;26940:11;26974:6;26969:3;26962:19;27014:4;27009:3;27005:14;26990:29;;26841:184;;;;:::o;27031:132::-;27098:4;27121:3;27113:11;;27151:4;27146:3;27142:14;27134:22;;27031:132;;;:::o;27169:108::-;27246:24;27264:5;27246:24;:::i;:::-;27241:3;27234:37;27169:108;;:::o;27283:179::-;27352:10;27373:46;27415:3;27407:6;27373:46;:::i;:::-;27451:4;27446:3;27442:14;27428:28;;27283:179;;;;:::o;27468:113::-;27538:4;27570;27565:3;27561:14;27553:22;;27468:113;;;:::o;27617:732::-;27736:3;27765:54;27813:5;27765:54;:::i;:::-;27835:86;27914:6;27909:3;27835:86;:::i;:::-;27828:93;;27945:56;27995:5;27945:56;:::i;:::-;28024:7;28055:1;28040:284;28065:6;28062:1;28059:13;28040:284;;;28141:6;28135:13;28168:63;28227:3;28212:13;28168:63;:::i;:::-;28161:70;;28254:60;28307:6;28254:60;:::i;:::-;28244:70;;28100:224;28087:1;28084;28080:9;28075:14;;28040:284;;;28044:14;28340:3;28333:10;;27741:608;;;27617:732;;;;:::o;28355:831::-;28618:4;28656:3;28645:9;28641:19;28633:27;;28670:71;28738:1;28727:9;28723:17;28714:6;28670:71;:::i;:::-;28751:80;28827:2;28816:9;28812:18;28803:6;28751:80;:::i;:::-;28878:9;28872:4;28868:20;28863:2;28852:9;28848:18;28841:48;28906:108;29009:4;29000:6;28906:108;:::i;:::-;28898:116;;29024:72;29092:2;29081:9;29077:18;29068:6;29024:72;:::i;:::-;29106:73;29174:3;29163:9;29159:19;29150:6;29106:73;:::i;:::-;28355:831;;;;;;;;:::o

Swarm Source

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