ETH Price: $3,979.56 (+3.00%)

Token

ERC-20: Dork (DORK)
 

Overview

Max Total Supply

1,000,000 DORK

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,587.674069041034358929 DORK

Value
$0.00
0x14256200fb78dea866e807ab60057d42eaa980fd
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:
DORK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-27
*/

/**
          

WE ARE DORKS
Telegram: https://t.me/dorkerc
Website: https://dorketh.com/
Twitter: https://x.com/eth_dork
**/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

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

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _owner = address(_msgSender());
        emit OwnershipTransferred(address(0), _owner);
    }

    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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

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

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

contract DORK is Ownable, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromWalletHoldingLimit;
    mapping(address => bool) private _isExcludedFromTxLimit;
    mapping(address => bool) private _isAutomaticMarketMaker;

    uint256 public constant _totalSupply = 1 * 10**6 * 10**_decimals;
    uint256 public constant _decimals = 18;
    string private constant _name = "Dork";
    string private constant _symbol = "DORK";

    address public immutable DeadWalletAddress =
        0x000000000000000000000000000000000000dEaD;
    address payable public MarketingWalletAddress =
        payable(0x846A874209bEf0cb32620583c729AD7d1Cea2c0b);

    uint256 public _BuyingMarketingFee = 1;
    uint256 public _SellingMarketingFee = 1;

    uint256 internal feeDenominator = 100;
    uint256 public launchedAt;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool internal inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    uint256 public numTokensSellToGetInEth = (_totalSupply * 150) / 10**4;
    uint256 public _maxWalletHoldingLimit = (_totalSupply * 1) / 10**2;
    uint256 public _maxTxLimit = (_totalSupply * 1) / 10**2;

    event MaxWalletHoldingAmountUpdated(uint256 updatedMaxWalletHoldingAmount);
    event MaxTxAmountUpdated(uint256 updatedMaxTxAmount);
    event AutomaticMarketMakerPairUpdated(address account, bool status);
    event BuyingTaxFeeUpdated(uint256 TaxFees);
    event SellingTaxFeeUpdated(uint256 TaxFees);
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ETHReceived,
        uint256 tokensIntoLiqudity
    );

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

    constructor() {
        _balances[owner()] = _totalSupply;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        //exclude owner and this contract from fee and Wallet holding Limits
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromTxLimit[owner()] = true;
        _isExcludedFromTxLimit[address(this)] = true;
        _isExcludedFromWalletHoldingLimit[owner()] = true;
        _isExcludedFromWalletHoldingLimit[uniswapV2Pair] = true;
        _isExcludedFromWalletHoldingLimit[address(this)] = true;
        _isAutomaticMarketMaker[uniswapV2Pair] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

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

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    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,
            "IERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        return true;
    }

    function ExcludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function IncludeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function IsExcludedFromTax(address account) external view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function isExcludedFromWalletLimit(address WalletAddress)
        external
        view
        returns (bool)
    {
        return _isExcludedFromWalletHoldingLimit[WalletAddress];
    }

    function excludeFromMaxWalletHoldingLimit(address account)
        external
        onlyOwner
    {
        _isExcludedFromWalletHoldingLimit[account] = true;
    }

    function includeInMaxWalletHoldingLimit(address account)
        external
        onlyOwner
    {
        require(
            account != uniswapV2Pair,
            "You can't play with Liquidity pair address"
        );
        _isExcludedFromWalletHoldingLimit[account] = false;
    }

    function excludeFromTxLimit(address account) external onlyOwner {
        _isExcludedFromTxLimit[account] = true;
    }

    function includeInTxLimit(address account) external onlyOwner {
        _isExcludedFromTxLimit[account] = false;
    }

    function UpdateWallet(address payable newMarketingWallet)
        external
        onlyOwner
    {
        require(newMarketingWallet != address(0), "You can't set zero address");
        MarketingWalletAddress = newMarketingWallet;
    }

    function UpdateBuyingTaxFees(uint256 newMarketingFee) external onlyOwner {
        require(newMarketingFee <= 5, "You can't set fee less than 5%");
        _BuyingMarketingFee = newMarketingFee;
        emit BuyingTaxFeeUpdated(_BuyingMarketingFee);
    }

    function UpdateSellingTaxFees(uint256 newMarketingFee) external onlyOwner {
        require(newMarketingFee <= 5, "You can't set fee less than 5%");
        _SellingMarketingFee = newMarketingFee;
        emit SellingTaxFeeUpdated(_SellingMarketingFee);
    }

    function UpdateNoOfTokensSellToGetReward(uint256 thresholdValue)
        external
        onlyOwner
    {
        numTokensSellToGetInEth = thresholdValue * 10**_decimals;
        emit MinTokensBeforeSwapUpdated(numTokensSellToGetInEth);
    }

    function removeWalletHoldingAndTxLimits() external onlyOwner {
        _maxWalletHoldingLimit = (_totalSupply * 100) / 10**2;
        _maxTxLimit = (_totalSupply * 100) / 10**2;
    }

    function activateBotSniper() external onlyOwner {
        require(launchedAt == 0, "Project Already Launched!");
        launchedAt = block.timestamp + 1800;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, 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,
            "IERC20: transfer amount exceeds allowance"
        );
        return true;
    }

    // To receive ETH from Uniswap when swapping
    receive() external payable {}

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "IERC20: transfer from the zero address");
        require(
            recipient != address(0),
            "IERC20: transfer to the zero address"
        );
        require(_balances[sender] >= amount, "You don't have enough balance");
        checkLimits(sender, recipient, amount);

        uint256 totalTax = 0;

        if (
            _isAutomaticMarketMaker[recipient] ||
            _isAutomaticMarketMaker[sender]
        ) {
            if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) {
                totalTax = 0;
            } else {
                if (_isAutomaticMarketMaker[recipient]) {
                    if (launchedAt > 0 && block.timestamp < launchedAt) {
                        totalTax = (amount * (30)) / (feeDenominator);
                    } else {
                        totalTax =
                            (amount * (_SellingMarketingFee)) /
                            (feeDenominator);
                    }
                } else {
                    if (launchedAt > 0 && block.timestamp < launchedAt) {
                        totalTax = (amount * (60)) / (feeDenominator);
                    } else {
                        totalTax =
                            (amount * (_BuyingMarketingFee)) /
                            (feeDenominator);
                    }
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >=
            numTokensSellToGetInEth;
        if (
            !inSwapAndLiquify &&
            recipient == uniswapV2Pair &&
            swapAndLiquifyEnabled &&
            balanceOf(uniswapV2Pair) > numTokensSellToGetInEth
        ) {
            if (overMinTokenBalance) {
                contractTokenBalance = numTokensSellToGetInEth;
                swapTokens(contractTokenBalance);
            }
        }

        uint256 amountReceived = amount - (totalTax);
        _balances[address(this)] += totalTax;
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] += amountReceived;

        if (totalTax > 0) {
            emit Transfer(sender, address(this), totalTax);
        }
        emit Transfer(sender, recipient, amountReceived);
    }

    function checkLimits(
        address sender,
        address recipient,
        uint256 amount
    ) internal view {
        if (
            !_isExcludedFromWalletHoldingLimit[recipient] && sender != owner()
        ) {
            require(
                balanceOf(recipient) + amount <= _maxWalletHoldingLimit,
                "Wallet Holding limit exceeded"
            );
        }
        if (
            !_isExcludedFromTxLimit[recipient] &&
            !_isExcludedFromTxLimit[sender]
        ) {
            require(amount <= _maxTxLimit, "Max Transaction limit Exceeded");
        }
    }

    function swapTokens(uint256 _contractTokenBalance) private lockTheSwap {
        swapTokensForETH(_contractTokenBalance);
        uint256 MarketingBalance = address(this).balance;
        if (MarketingBalance > 0) {
            MarketingWalletAddress.transfer(address(this).balance);
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> wETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AutomaticMarketMakerPairUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"TaxFees","type":"uint256"}],"name":"BuyingTaxFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updatedMaxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updatedMaxWalletHoldingAmount","type":"uint256"}],"name":"MaxWalletHoldingAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"uint256","name":"TaxFees","type":"uint256"}],"name":"SellingTaxFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ETHReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DeadWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IsExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"UpdateBuyingTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdValue","type":"uint256"}],"name":"UpdateNoOfTokensSellToGetReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"UpdateSellingTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"UpdateWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_BuyingMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellingMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletHoldingLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activateBotSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"WalletAddress","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToGetInEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeWalletHoldingAndTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405261dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525073846a874209bef0cb32620583c729ad7d1cea2c0b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085560016009556064600a556001600d60156101000a81548160ff02191690831515021790555061271060966012600a620000cd919062000a4b565b620f4240620000dd919062000a9c565b620000e9919062000a9c565b620000f5919062000b16565b600e55606460016012600a6200010c919062000a4b565b620f42406200011c919062000a9c565b62000128919062000a9c565b62000134919062000b16565b600f55606460016012600a6200014b919062000a4b565b620f42406200015b919062000a9c565b62000167919062000a9c565b62000173919062000b16565b6010553480156200018357600080fd5b50620001946200088d60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36012600a6200025e919062000a4b565b620f42406200026e919062000a9c565b60016000620002826200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034b919062000bb8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d9919062000bb8565b6040518363ffffffff1660e01b8152600401620003f892919062000bfb565b6020604051808303816000875af115801562000418573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043e919062000bb8565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004d56200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000620005946200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620006536200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008006200089560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200085f919062000a4b565b620f42406200086f919062000a9c565b6040516200087e919062000c39565b60405180910390a35062000c56565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094c57808604811115620009245762000923620008be565b5b6001851615620009345780820291505b80810290506200094485620008ed565b945062000904565b94509492505050565b60008262000967576001905062000a3a565b8162000977576000905062000a3a565b81600181146200099057600281146200099b57620009d1565b600191505062000a3a565b60ff841115620009b057620009af620008be565b5b8360020a915084821115620009ca57620009c9620008be565b5b5062000a3a565b5060208310610133831016604e8410600b841016171562000a0b5782820a90508381111562000a055762000a04620008be565b5b62000a3a565b62000a1a8484846001620008fa565b9250905081840481111562000a345762000a33620008be565b5b81810290505b9392505050565b6000819050919050565b600062000a588262000a41565b915062000a658362000a41565b925062000a947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000955565b905092915050565b600062000aa98262000a41565b915062000ab68362000a41565b925082820262000ac68162000a41565b9150828204841483151762000ae05762000adf620008be565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b238262000a41565b915062000b308362000a41565b92508262000b435762000b4262000ae7565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b808262000b53565b9050919050565b62000b928162000b73565b811462000b9e57600080fd5b50565b60008151905062000bb28162000b87565b92915050565b60006020828403121562000bd15762000bd062000b4e565b5b600062000be18482850162000ba1565b91505092915050565b62000bf58162000b73565b82525050565b600060408201905062000c12600083018562000bea565b62000c21602083018462000bea565b9392505050565b62000c338162000a41565b82525050565b600060208201905062000c50600083018462000c28565b92915050565b608051613d3062000c726000396000610a1a0152613d306000f3fe6080604052600436106102555760003560e01c806370a0823111610139578063abdadf62116100b6578063c49b9a801161007a578063c49b9a80146108b1578063d81e1cb0146108da578063dbe04f0e14610903578063dd62ed3e1461092c578063f2fde38b14610969578063f8f3c5a9146109925761025c565b8063abdadf62146107ca578063ad064758146107f5578063b40f946914610820578063b7a9a0af1461085d578063bf56b371146108865761025c565b806395d89b41116100fd57806395d89b41146106d1578063a2cefe6d146106fc578063a457c2d714610727578063a6d306e314610764578063a9059cbb1461078d5761025c565b806370a0823114610612578063715018a61461064f57806381c8d7ca146106665780638da5cb5b1461067d5780639429b9fe146106a85761025c565b806332424aa3116101d257806349bd5a5e1161019657806349bd5a5e146105185780634a74bb02146105435780634f6a6b6e1461056e57806358c3e0501461059757806369a3794a146105c057806370035ba5146105e95761025c565b806332424aa314610431578063395093511461045c57806339e6cd66146104995780633eaaf86b146104c45780634108fd4f146104ef5761025c565b806318160ddd1161021957806318160ddd1461034a57806323b872dd146103755780632672fb94146103b2578063295dcd11146103ef578063313ce567146104065761025c565b806306fdde0314610261578063095ea7b31461028c5780630a6a7548146102c9578063124035a8146102f45780631694505e1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109bd565b6040516102839190612cf2565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612dad565b6109fa565b6040516102c09190612e08565b60405180910390f35b3480156102d557600080fd5b506102de610a18565b6040516102eb9190612e32565b60405180910390f35b34801561030057600080fd5b50610309610a3c565b6040516103169190612e5c565b60405180910390f35b34801561032b57600080fd5b50610334610a42565b6040516103419190612ed6565b60405180910390f35b34801561035657600080fd5b5061035f610a68565b60405161036c9190612e5c565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190612ef1565b610a8b565b6040516103a99190612e08565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612f44565b610b6f565b6040516103e69190612e08565b60405180910390f35b3480156103fb57600080fd5b50610404610bc5565b005b34801561041257600080fd5b5061041b610cb5565b6040516104289190612e5c565b60405180910390f35b34801561043d57600080fd5b50610446610cbe565b6040516104539190612e5c565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190612dad565b610cc3565b6040516104909190612e08565b60405180910390f35b3480156104a557600080fd5b506104ae610d6f565b6040516104bb9190612f92565b60405180910390f35b3480156104d057600080fd5b506104d9610d95565b6040516104e69190612e5c565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190612fad565b610db4565b005b34801561052457600080fd5b5061052d610eb7565b60405161053a9190612e32565b60405180910390f35b34801561054f57600080fd5b50610558610edd565b6040516105659190612e08565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190612f44565b610ef0565b005b3480156105a357600080fd5b506105be60048036038101906105b99190612f44565b610fc7565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613006565b61109e565b005b3480156105f557600080fd5b50610610600480360381019061060b9190612f44565b6111cd565b005b34801561061e57600080fd5b5061063960048036038101906106349190612f44565b6112a4565b6040516106469190612e5c565b60405180910390f35b34801561065b57600080fd5b506106646112ed565b005b34801561067257600080fd5b5061067b611427565b005b34801561068957600080fd5b506106926114fe565b60405161069f9190612e32565b60405180910390f35b3480156106b457600080fd5b506106cf60048036038101906106ca9190612fad565b611527565b005b3480156106dd57600080fd5b506106e66115fe565b6040516106f39190612cf2565b60405180910390f35b34801561070857600080fd5b5061071161163b565b60405161071e9190612e5c565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612dad565b611641565b60405161075b9190612e08565b60405180910390f35b34801561077057600080fd5b5061078b60048036038101906107869190612f44565b611735565b005b34801561079957600080fd5b506107b460048036038101906107af9190612dad565b61180c565b6040516107c19190612e08565b60405180910390f35b3480156107d657600080fd5b506107df61182a565b6040516107ec9190612e5c565b60405180910390f35b34801561080157600080fd5b5061080a611830565b6040516108179190612e5c565b60405180910390f35b34801561082c57600080fd5b5061084760048036038101906108429190612f44565b611836565b6040516108549190612e08565b60405180910390f35b34801561086957600080fd5b50610884600480360381019061087f9190612f44565b61188c565b005b34801561089257600080fd5b5061089b6119f3565b6040516108a89190612e5c565b60405180910390f35b3480156108bd57600080fd5b506108d860048036038101906108d3919061305f565b6119f9565b005b3480156108e657600080fd5b5061090160048036038101906108fc9190612fad565b611ac9565b005b34801561090f57600080fd5b5061092a60048036038101906109259190612f44565b611bcc565b005b34801561093857600080fd5b50610953600480360381019061094e919061308c565b611ca3565b6040516109609190612e5c565b60405180910390f35b34801561097557600080fd5b50610990600480360381019061098b9190612f44565b611d2a565b005b34801561099e57600080fd5b506109a7611ed2565b6040516109b49190612e5c565b60405180910390f35b60606040518060400160405280600481526020017f446f726b00000000000000000000000000000000000000000000000000000000815250905090565b6000610a0e610a07611ed8565b8484611ee0565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600f5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a610a78919061322e565b620f4240610a869190613279565b905090565b6000610a988484846120a9565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ae3611ed8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a9061332d565b60405180910390fd5b60019150509392505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610bcd611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610beb6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890613399565b60405180910390fd5b6064806012600a610c52919061322e565b620f4240610c609190613279565b610c6a9190613279565b610c7491906133e8565b600f819055506064806012600a610c8b919061322e565b620f4240610c999190613279565b610ca39190613279565b610cad91906133e8565b601081905550565b60006012905090565b601281565b6000610d65610cd0611ed8565b848460026000610cde611ed8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d609190613419565b611ee0565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012600a610da3919061322e565b620f4240610db19190613279565b81565b610dbc611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610dda6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790613399565b60405180910390fd5b6005811115610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90613499565b60405180910390fd5b806009819055507f4babbcf4831921e3525c5cad678d0379401b05da366a608803a6a79910969066600954604051610eac9190612e5c565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60159054906101000a900460ff1681565b610ef8611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610f166114fe565b73ffffffffffffffffffffffffffffffffffffffff1614610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6390613399565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fcf611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610fed6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90613399565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110a6611ed8565b73ffffffffffffffffffffffffffffffffffffffff166110c46114fe565b73ffffffffffffffffffffffffffffffffffffffff161461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190613399565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613505565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111d5611ed8565b73ffffffffffffffffffffffffffffffffffffffff166111f36114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613399565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f5611ed8565b73ffffffffffffffffffffffffffffffffffffffff166113136114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090613399565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61142f611ed8565b73ffffffffffffffffffffffffffffffffffffffff1661144d6114fe565b73ffffffffffffffffffffffffffffffffffffffff16146114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90613399565b60405180910390fd5b6000600b54146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df90613571565b60405180910390fd5b610708426114f69190613419565b600b81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61152f611ed8565b73ffffffffffffffffffffffffffffffffffffffff1661154d6114fe565b73ffffffffffffffffffffffffffffffffffffffff16146115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613399565b60405180910390fd5b6012600a6115b1919061322e565b816115bc9190613279565b600e819055507f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c00600e546040516115f39190612e5c565b60405180910390a150565b60606040518060400160405280600481526020017f444f524b00000000000000000000000000000000000000000000000000000000815250905090565b60085481565b60008060026000611650611ed8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613603565b60405180910390fd5b61172a611718611ed8565b8585846117259190613623565b611ee0565b600191505092915050565b61173d611ed8565b73ffffffffffffffffffffffffffffffffffffffff1661175b6114fe565b73ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890613399565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611820611819611ed8565b84846120a9565b6001905092915050565b60095481565b600e5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611894611ed8565b73ffffffffffffffffffffffffffffffffffffffff166118b26114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90613399565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f906136c9565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b611a01611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611a1f6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613399565b60405180910390fd5b80600d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611abe9190612e08565b60405180910390a150565b611ad1611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611aef6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613399565b60405180910390fd5b6005811115611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613499565b60405180910390fd5b806008819055507f0e67b9e2db5ac83e278ae529ba7f8d72a1f5e732cb9fa988e8289587a08c1ed4600854604051611bc19190612e5c565b60405180910390a150565b611bd4611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611bf26114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613399565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d32611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611d506114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613399565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c9061375b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f46906137ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb59061387f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209c9190612e5c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613911565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217e906139a3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220090613a0f565b60405180910390fd5b612214838383612785565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122b75750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561247357600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061235d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561236b5760009050612472565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612419576000600b541180156123d05750600b5442105b156123f657600a54601e836123e59190613279565b6123ef91906133e8565b9050612414565b600a54600954836124079190613279565b61241191906133e8565b90505b612471565b6000600b5411801561242c5750600b5442105b1561245257600a54603c836124419190613279565b61244b91906133e8565b9050612470565b600a54600854836124639190613279565b61246d91906133e8565b90505b5b5b5b600061247e306112a4565b90506000600e548210159050600d60149054906101000a900460ff161580156124f45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561250c5750600d60159054906101000a900460ff165b80156125435750600e54612541600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112a4565b115b1561255e57801561255d57600e54915061255c82612964565b5b5b6000838561256c9190613623565b905083600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125bd9190613419565b9250508190555084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260f9190613623565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126a19190613419565b925050819055506000841115612717573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161270e9190612e5c565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127749190612e5c565b60405180910390a350505050505050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281257506127e26114fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561287057600f5481612824846112a4565b61282e9190613419565b111561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613a7b565b60405180910390fd5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129145750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561295f5760105481111561295e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295590613ae7565b60405180910390fd5b5b505050565b6001600d60146101000a81548160ff02191690831515021790555061298881612a1f565b60004790506000811115612a0057600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156129fe573d6000803e3d6000fd5b505b506000600d60146101000a81548160ff02191690831515021790555050565b6000600267ffffffffffffffff811115612a3c57612a3b613b07565b5b604051908082528060200260200182016040528015612a6a5781602001602082028036833780820191505090505b5090503081600081518110612a8257612a81613b36565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4d9190613b7a565b81600181518110612b6157612b60613b36565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bc830600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ee0565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c2c959493929190613ca0565b600060405180830381600087803b158015612c4657600080fd5b505af1158015612c5a573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c9c578082015181840152602081019050612c81565b60008484015250505050565b6000601f19601f8301169050919050565b6000612cc482612c62565b612cce8185612c6d565b9350612cde818560208601612c7e565b612ce781612ca8565b840191505092915050565b60006020820190508181036000830152612d0c8184612cb9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d4482612d19565b9050919050565b612d5481612d39565b8114612d5f57600080fd5b50565b600081359050612d7181612d4b565b92915050565b6000819050919050565b612d8a81612d77565b8114612d9557600080fd5b50565b600081359050612da781612d81565b92915050565b60008060408385031215612dc457612dc3612d14565b5b6000612dd285828601612d62565b9250506020612de385828601612d98565b9150509250929050565b60008115159050919050565b612e0281612ded565b82525050565b6000602082019050612e1d6000830184612df9565b92915050565b612e2c81612d39565b82525050565b6000602082019050612e476000830184612e23565b92915050565b612e5681612d77565b82525050565b6000602082019050612e716000830184612e4d565b92915050565b6000819050919050565b6000612e9c612e97612e9284612d19565b612e77565b612d19565b9050919050565b6000612eae82612e81565b9050919050565b6000612ec082612ea3565b9050919050565b612ed081612eb5565b82525050565b6000602082019050612eeb6000830184612ec7565b92915050565b600080600060608486031215612f0a57612f09612d14565b5b6000612f1886828701612d62565b9350506020612f2986828701612d62565b9250506040612f3a86828701612d98565b9150509250925092565b600060208284031215612f5a57612f59612d14565b5b6000612f6884828501612d62565b91505092915050565b6000612f7c82612d19565b9050919050565b612f8c81612f71565b82525050565b6000602082019050612fa76000830184612f83565b92915050565b600060208284031215612fc357612fc2612d14565b5b6000612fd184828501612d98565b91505092915050565b612fe381612f71565b8114612fee57600080fd5b50565b60008135905061300081612fda565b92915050565b60006020828403121561301c5761301b612d14565b5b600061302a84828501612ff1565b91505092915050565b61303c81612ded565b811461304757600080fd5b50565b60008135905061305981613033565b92915050565b60006020828403121561307557613074612d14565b5b60006130838482850161304a565b91505092915050565b600080604083850312156130a3576130a2612d14565b5b60006130b185828601612d62565b92505060206130c285828601612d62565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156131525780860481111561312e5761312d6130cc565b5b600185161561313d5780820291505b808102905061314b856130fb565b9450613112565b94509492505050565b60008261316b5760019050613227565b816131795760009050613227565b816001811461318f5760028114613199576131c8565b6001915050613227565b60ff8411156131ab576131aa6130cc565b5b8360020a9150848211156131c2576131c16130cc565b5b50613227565b5060208310610133831016604e8410600b84101617156131fd5782820a9050838111156131f8576131f76130cc565b5b613227565b61320a8484846001613108565b92509050818404811115613221576132206130cc565b5b81810290505b9392505050565b600061323982612d77565b915061324483612d77565b92506132717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461315b565b905092915050565b600061328482612d77565b915061328f83612d77565b925082820261329d81612d77565b915082820484148315176132b4576132b36130cc565b5b5092915050565b7f4945524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b6000613317602983612c6d565b9150613322826132bb565b604082019050919050565b600060208201905081810360008301526133468161330a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613383602083612c6d565b915061338e8261334d565b602082019050919050565b600060208201905081810360008301526133b281613376565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133f382612d77565b91506133fe83612d77565b92508261340e5761340d6133b9565b5b828204905092915050565b600061342482612d77565b915061342f83612d77565b9250828201905080821115613447576134466130cc565b5b92915050565b7f596f752063616e27742073657420666565206c657373207468616e2035250000600082015250565b6000613483601e83612c6d565b915061348e8261344d565b602082019050919050565b600060208201905081810360008301526134b281613476565b9050919050565b7f596f752063616e277420736574207a65726f2061646472657373000000000000600082015250565b60006134ef601a83612c6d565b91506134fa826134b9565b602082019050919050565b6000602082019050818103600083015261351e816134e2565b9050919050565b7f50726f6a65637420416c7265616479204c61756e636865642100000000000000600082015250565b600061355b601983612c6d565b915061356682613525565b602082019050919050565b6000602082019050818103600083015261358a8161354e565b9050919050565b7f4945524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b60006135ed602683612c6d565b91506135f882613591565b604082019050919050565b6000602082019050818103600083015261361c816135e0565b9050919050565b600061362e82612d77565b915061363983612d77565b9250828203905081811115613651576136506130cc565b5b92915050565b7f596f752063616e277420706c61792077697468204c697175696469747920706160008201527f6972206164647265737300000000000000000000000000000000000000000000602082015250565b60006136b3602a83612c6d565b91506136be82613657565b604082019050919050565b600060208201905081810360008301526136e2816136a6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613745602683612c6d565b9150613750826136e9565b604082019050919050565b6000602082019050818103600083015261377481613738565b9050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137d7602583612c6d565b91506137e28261377b565b604082019050919050565b60006020820190508181036000830152613806816137ca565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613869602383612c6d565b91506138748261380d565b604082019050919050565b600060208201905081810360008301526138988161385c565b9050919050565b7f4945524332303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138fb602683612c6d565b91506139068261389f565b604082019050919050565b6000602082019050818103600083015261392a816138ee565b9050919050565b7f4945524332303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061398d602483612c6d565b915061399882613931565b604082019050919050565b600060208201905081810360008301526139bc81613980565b9050919050565b7f596f7520646f6e2774206861766520656e6f7567682062616c616e6365000000600082015250565b60006139f9601d83612c6d565b9150613a04826139c3565b602082019050919050565b60006020820190508181036000830152613a28816139ec565b9050919050565b7f57616c6c657420486f6c64696e67206c696d6974206578636565646564000000600082015250565b6000613a65601d83612c6d565b9150613a7082613a2f565b602082019050919050565b60006020820190508181036000830152613a9481613a58565b9050919050565b7f4d6178205472616e73616374696f6e206c696d69742045786365656465640000600082015250565b6000613ad1601e83612c6d565b9150613adc82613a9b565b602082019050919050565b60006020820190508181036000830152613b0081613ac4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b7481612d4b565b92915050565b600060208284031215613b9057613b8f612d14565b5b6000613b9e84828501613b65565b91505092915050565b6000819050919050565b6000613bcc613bc7613bc284613ba7565b612e77565b612d77565b9050919050565b613bdc81613bb1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c1781612d39565b82525050565b6000613c298383613c0e565b60208301905092915050565b6000602082019050919050565b6000613c4d82613be2565b613c578185613bed565b9350613c6283613bfe565b8060005b83811015613c93578151613c7a8882613c1d565b9750613c8583613c35565b925050600181019050613c66565b5085935050505092915050565b600060a082019050613cb56000830188612e4d565b613cc26020830187613bd3565b8181036040830152613cd48186613c42565b9050613ce36060830185612e23565b613cf06080830184612e4d565b969550505050505056fea26469706673582212209b9083a7e82fcd7fc5fe3bd965aef85821e108072fd97cce9c478b4ec9d6d71964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102555760003560e01c806370a0823111610139578063abdadf62116100b6578063c49b9a801161007a578063c49b9a80146108b1578063d81e1cb0146108da578063dbe04f0e14610903578063dd62ed3e1461092c578063f2fde38b14610969578063f8f3c5a9146109925761025c565b8063abdadf62146107ca578063ad064758146107f5578063b40f946914610820578063b7a9a0af1461085d578063bf56b371146108865761025c565b806395d89b41116100fd57806395d89b41146106d1578063a2cefe6d146106fc578063a457c2d714610727578063a6d306e314610764578063a9059cbb1461078d5761025c565b806370a0823114610612578063715018a61461064f57806381c8d7ca146106665780638da5cb5b1461067d5780639429b9fe146106a85761025c565b806332424aa3116101d257806349bd5a5e1161019657806349bd5a5e146105185780634a74bb02146105435780634f6a6b6e1461056e57806358c3e0501461059757806369a3794a146105c057806370035ba5146105e95761025c565b806332424aa314610431578063395093511461045c57806339e6cd66146104995780633eaaf86b146104c45780634108fd4f146104ef5761025c565b806318160ddd1161021957806318160ddd1461034a57806323b872dd146103755780632672fb94146103b2578063295dcd11146103ef578063313ce567146104065761025c565b806306fdde0314610261578063095ea7b31461028c5780630a6a7548146102c9578063124035a8146102f45780631694505e1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109bd565b6040516102839190612cf2565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612dad565b6109fa565b6040516102c09190612e08565b60405180910390f35b3480156102d557600080fd5b506102de610a18565b6040516102eb9190612e32565b60405180910390f35b34801561030057600080fd5b50610309610a3c565b6040516103169190612e5c565b60405180910390f35b34801561032b57600080fd5b50610334610a42565b6040516103419190612ed6565b60405180910390f35b34801561035657600080fd5b5061035f610a68565b60405161036c9190612e5c565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190612ef1565b610a8b565b6040516103a99190612e08565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612f44565b610b6f565b6040516103e69190612e08565b60405180910390f35b3480156103fb57600080fd5b50610404610bc5565b005b34801561041257600080fd5b5061041b610cb5565b6040516104289190612e5c565b60405180910390f35b34801561043d57600080fd5b50610446610cbe565b6040516104539190612e5c565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190612dad565b610cc3565b6040516104909190612e08565b60405180910390f35b3480156104a557600080fd5b506104ae610d6f565b6040516104bb9190612f92565b60405180910390f35b3480156104d057600080fd5b506104d9610d95565b6040516104e69190612e5c565b60405180910390f35b3480156104fb57600080fd5b5061051660048036038101906105119190612fad565b610db4565b005b34801561052457600080fd5b5061052d610eb7565b60405161053a9190612e32565b60405180910390f35b34801561054f57600080fd5b50610558610edd565b6040516105659190612e08565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190612f44565b610ef0565b005b3480156105a357600080fd5b506105be60048036038101906105b99190612f44565b610fc7565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190613006565b61109e565b005b3480156105f557600080fd5b50610610600480360381019061060b9190612f44565b6111cd565b005b34801561061e57600080fd5b5061063960048036038101906106349190612f44565b6112a4565b6040516106469190612e5c565b60405180910390f35b34801561065b57600080fd5b506106646112ed565b005b34801561067257600080fd5b5061067b611427565b005b34801561068957600080fd5b506106926114fe565b60405161069f9190612e32565b60405180910390f35b3480156106b457600080fd5b506106cf60048036038101906106ca9190612fad565b611527565b005b3480156106dd57600080fd5b506106e66115fe565b6040516106f39190612cf2565b60405180910390f35b34801561070857600080fd5b5061071161163b565b60405161071e9190612e5c565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612dad565b611641565b60405161075b9190612e08565b60405180910390f35b34801561077057600080fd5b5061078b60048036038101906107869190612f44565b611735565b005b34801561079957600080fd5b506107b460048036038101906107af9190612dad565b61180c565b6040516107c19190612e08565b60405180910390f35b3480156107d657600080fd5b506107df61182a565b6040516107ec9190612e5c565b60405180910390f35b34801561080157600080fd5b5061080a611830565b6040516108179190612e5c565b60405180910390f35b34801561082c57600080fd5b5061084760048036038101906108429190612f44565b611836565b6040516108549190612e08565b60405180910390f35b34801561086957600080fd5b50610884600480360381019061087f9190612f44565b61188c565b005b34801561089257600080fd5b5061089b6119f3565b6040516108a89190612e5c565b60405180910390f35b3480156108bd57600080fd5b506108d860048036038101906108d3919061305f565b6119f9565b005b3480156108e657600080fd5b5061090160048036038101906108fc9190612fad565b611ac9565b005b34801561090f57600080fd5b5061092a60048036038101906109259190612f44565b611bcc565b005b34801561093857600080fd5b50610953600480360381019061094e919061308c565b611ca3565b6040516109609190612e5c565b60405180910390f35b34801561097557600080fd5b50610990600480360381019061098b9190612f44565b611d2a565b005b34801561099e57600080fd5b506109a7611ed2565b6040516109b49190612e5c565b60405180910390f35b60606040518060400160405280600481526020017f446f726b00000000000000000000000000000000000000000000000000000000815250905090565b6000610a0e610a07611ed8565b8484611ee0565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b600f5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a610a78919061322e565b620f4240610a869190613279565b905090565b6000610a988484846120a9565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ae3611ed8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5a9061332d565b60405180910390fd5b60019150509392505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610bcd611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610beb6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890613399565b60405180910390fd5b6064806012600a610c52919061322e565b620f4240610c609190613279565b610c6a9190613279565b610c7491906133e8565b600f819055506064806012600a610c8b919061322e565b620f4240610c999190613279565b610ca39190613279565b610cad91906133e8565b601081905550565b60006012905090565b601281565b6000610d65610cd0611ed8565b848460026000610cde611ed8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d609190613419565b611ee0565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6012600a610da3919061322e565b620f4240610db19190613279565b81565b610dbc611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610dda6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790613399565b60405180910390fd5b6005811115610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90613499565b60405180910390fd5b806009819055507f4babbcf4831921e3525c5cad678d0379401b05da366a608803a6a79910969066600954604051610eac9190612e5c565b60405180910390a150565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60159054906101000a900460ff1681565b610ef8611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610f166114fe565b73ffffffffffffffffffffffffffffffffffffffff1614610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6390613399565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fcf611ed8565b73ffffffffffffffffffffffffffffffffffffffff16610fed6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90613399565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110a6611ed8565b73ffffffffffffffffffffffffffffffffffffffff166110c46114fe565b73ffffffffffffffffffffffffffffffffffffffff161461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190613399565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613505565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111d5611ed8565b73ffffffffffffffffffffffffffffffffffffffff166111f36114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090613399565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112f5611ed8565b73ffffffffffffffffffffffffffffffffffffffff166113136114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090613399565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61142f611ed8565b73ffffffffffffffffffffffffffffffffffffffff1661144d6114fe565b73ffffffffffffffffffffffffffffffffffffffff16146114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a90613399565b60405180910390fd5b6000600b54146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df90613571565b60405180910390fd5b610708426114f69190613419565b600b81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61152f611ed8565b73ffffffffffffffffffffffffffffffffffffffff1661154d6114fe565b73ffffffffffffffffffffffffffffffffffffffff16146115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613399565b60405180910390fd5b6012600a6115b1919061322e565b816115bc9190613279565b600e819055507f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c00600e546040516115f39190612e5c565b60405180910390a150565b60606040518060400160405280600481526020017f444f524b00000000000000000000000000000000000000000000000000000000815250905090565b60085481565b60008060026000611650611ed8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613603565b60405180910390fd5b61172a611718611ed8565b8585846117259190613623565b611ee0565b600191505092915050565b61173d611ed8565b73ffffffffffffffffffffffffffffffffffffffff1661175b6114fe565b73ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890613399565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611820611819611ed8565b84846120a9565b6001905092915050565b60095481565b600e5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611894611ed8565b73ffffffffffffffffffffffffffffffffffffffff166118b26114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90613399565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f906136c9565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b611a01611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611a1f6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613399565b60405180910390fd5b80600d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611abe9190612e08565b60405180910390a150565b611ad1611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611aef6114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613399565b60405180910390fd5b6005811115611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090613499565b60405180910390fd5b806008819055507f0e67b9e2db5ac83e278ae529ba7f8d72a1f5e732cb9fa988e8289587a08c1ed4600854604051611bc19190612e5c565b60405180910390a150565b611bd4611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611bf26114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613399565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d32611ed8565b73ffffffffffffffffffffffffffffffffffffffff16611d506114fe565b73ffffffffffffffffffffffffffffffffffffffff1614611da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9d90613399565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c9061375b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f46906137ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb59061387f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161209c9190612e5c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613911565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217e906139a3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220090613a0f565b60405180910390fd5b612214838383612785565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122b75750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561247357600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061235d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561236b5760009050612472565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612419576000600b541180156123d05750600b5442105b156123f657600a54601e836123e59190613279565b6123ef91906133e8565b9050612414565b600a54600954836124079190613279565b61241191906133e8565b90505b612471565b6000600b5411801561242c5750600b5442105b1561245257600a54603c836124419190613279565b61244b91906133e8565b9050612470565b600a54600854836124639190613279565b61246d91906133e8565b90505b5b5b5b600061247e306112a4565b90506000600e548210159050600d60149054906101000a900460ff161580156124f45750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561250c5750600d60159054906101000a900460ff165b80156125435750600e54612541600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112a4565b115b1561255e57801561255d57600e54915061255c82612964565b5b5b6000838561256c9190613623565b905083600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125bd9190613419565b9250508190555084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260f9190613623565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126a19190613419565b925050819055506000841115612717573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161270e9190612e5c565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127749190612e5c565b60405180910390a350505050505050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561281257506127e26114fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561287057600f5481612824846112a4565b61282e9190613419565b111561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613a7b565b60405180910390fd5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129145750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561295f5760105481111561295e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295590613ae7565b60405180910390fd5b5b505050565b6001600d60146101000a81548160ff02191690831515021790555061298881612a1f565b60004790506000811115612a0057600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156129fe573d6000803e3d6000fd5b505b506000600d60146101000a81548160ff02191690831515021790555050565b6000600267ffffffffffffffff811115612a3c57612a3b613b07565b5b604051908082528060200260200182016040528015612a6a5781602001602082028036833780820191505090505b5090503081600081518110612a8257612a81613b36565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4d9190613b7a565b81600181518110612b6157612b60613b36565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bc830600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ee0565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c2c959493929190613ca0565b600060405180830381600087803b158015612c4657600080fd5b505af1158015612c5a573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c9c578082015181840152602081019050612c81565b60008484015250505050565b6000601f19601f8301169050919050565b6000612cc482612c62565b612cce8185612c6d565b9350612cde818560208601612c7e565b612ce781612ca8565b840191505092915050565b60006020820190508181036000830152612d0c8184612cb9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d4482612d19565b9050919050565b612d5481612d39565b8114612d5f57600080fd5b50565b600081359050612d7181612d4b565b92915050565b6000819050919050565b612d8a81612d77565b8114612d9557600080fd5b50565b600081359050612da781612d81565b92915050565b60008060408385031215612dc457612dc3612d14565b5b6000612dd285828601612d62565b9250506020612de385828601612d98565b9150509250929050565b60008115159050919050565b612e0281612ded565b82525050565b6000602082019050612e1d6000830184612df9565b92915050565b612e2c81612d39565b82525050565b6000602082019050612e476000830184612e23565b92915050565b612e5681612d77565b82525050565b6000602082019050612e716000830184612e4d565b92915050565b6000819050919050565b6000612e9c612e97612e9284612d19565b612e77565b612d19565b9050919050565b6000612eae82612e81565b9050919050565b6000612ec082612ea3565b9050919050565b612ed081612eb5565b82525050565b6000602082019050612eeb6000830184612ec7565b92915050565b600080600060608486031215612f0a57612f09612d14565b5b6000612f1886828701612d62565b9350506020612f2986828701612d62565b9250506040612f3a86828701612d98565b9150509250925092565b600060208284031215612f5a57612f59612d14565b5b6000612f6884828501612d62565b91505092915050565b6000612f7c82612d19565b9050919050565b612f8c81612f71565b82525050565b6000602082019050612fa76000830184612f83565b92915050565b600060208284031215612fc357612fc2612d14565b5b6000612fd184828501612d98565b91505092915050565b612fe381612f71565b8114612fee57600080fd5b50565b60008135905061300081612fda565b92915050565b60006020828403121561301c5761301b612d14565b5b600061302a84828501612ff1565b91505092915050565b61303c81612ded565b811461304757600080fd5b50565b60008135905061305981613033565b92915050565b60006020828403121561307557613074612d14565b5b60006130838482850161304a565b91505092915050565b600080604083850312156130a3576130a2612d14565b5b60006130b185828601612d62565b92505060206130c285828601612d62565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156131525780860481111561312e5761312d6130cc565b5b600185161561313d5780820291505b808102905061314b856130fb565b9450613112565b94509492505050565b60008261316b5760019050613227565b816131795760009050613227565b816001811461318f5760028114613199576131c8565b6001915050613227565b60ff8411156131ab576131aa6130cc565b5b8360020a9150848211156131c2576131c16130cc565b5b50613227565b5060208310610133831016604e8410600b84101617156131fd5782820a9050838111156131f8576131f76130cc565b5b613227565b61320a8484846001613108565b92509050818404811115613221576132206130cc565b5b81810290505b9392505050565b600061323982612d77565b915061324483612d77565b92506132717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461315b565b905092915050565b600061328482612d77565b915061328f83612d77565b925082820261329d81612d77565b915082820484148315176132b4576132b36130cc565b5b5092915050565b7f4945524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b6000613317602983612c6d565b9150613322826132bb565b604082019050919050565b600060208201905081810360008301526133468161330a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613383602083612c6d565b915061338e8261334d565b602082019050919050565b600060208201905081810360008301526133b281613376565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133f382612d77565b91506133fe83612d77565b92508261340e5761340d6133b9565b5b828204905092915050565b600061342482612d77565b915061342f83612d77565b9250828201905080821115613447576134466130cc565b5b92915050565b7f596f752063616e27742073657420666565206c657373207468616e2035250000600082015250565b6000613483601e83612c6d565b915061348e8261344d565b602082019050919050565b600060208201905081810360008301526134b281613476565b9050919050565b7f596f752063616e277420736574207a65726f2061646472657373000000000000600082015250565b60006134ef601a83612c6d565b91506134fa826134b9565b602082019050919050565b6000602082019050818103600083015261351e816134e2565b9050919050565b7f50726f6a65637420416c7265616479204c61756e636865642100000000000000600082015250565b600061355b601983612c6d565b915061356682613525565b602082019050919050565b6000602082019050818103600083015261358a8161354e565b9050919050565b7f4945524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b60006135ed602683612c6d565b91506135f882613591565b604082019050919050565b6000602082019050818103600083015261361c816135e0565b9050919050565b600061362e82612d77565b915061363983612d77565b9250828203905081811115613651576136506130cc565b5b92915050565b7f596f752063616e277420706c61792077697468204c697175696469747920706160008201527f6972206164647265737300000000000000000000000000000000000000000000602082015250565b60006136b3602a83612c6d565b91506136be82613657565b604082019050919050565b600060208201905081810360008301526136e2816136a6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613745602683612c6d565b9150613750826136e9565b604082019050919050565b6000602082019050818103600083015261377481613738565b9050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137d7602583612c6d565b91506137e28261377b565b604082019050919050565b60006020820190508181036000830152613806816137ca565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613869602383612c6d565b91506138748261380d565b604082019050919050565b600060208201905081810360008301526138988161385c565b9050919050565b7f4945524332303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138fb602683612c6d565b91506139068261389f565b604082019050919050565b6000602082019050818103600083015261392a816138ee565b9050919050565b7f4945524332303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061398d602483612c6d565b915061399882613931565b604082019050919050565b600060208201905081810360008301526139bc81613980565b9050919050565b7f596f7520646f6e2774206861766520656e6f7567682062616c616e6365000000600082015250565b60006139f9601d83612c6d565b9150613a04826139c3565b602082019050919050565b60006020820190508181036000830152613a28816139ec565b9050919050565b7f57616c6c657420486f6c64696e67206c696d6974206578636565646564000000600082015250565b6000613a65601d83612c6d565b9150613a7082613a2f565b602082019050919050565b60006020820190508181036000830152613a9481613a58565b9050919050565b7f4d6178205472616e73616374696f6e206c696d69742045786365656465640000600082015250565b6000613ad1601e83612c6d565b9150613adc82613a9b565b602082019050919050565b60006020820190508181036000830152613b0081613ac4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b7481612d4b565b92915050565b600060208284031215613b9057613b8f612d14565b5b6000613b9e84828501613b65565b91505092915050565b6000819050919050565b6000613bcc613bc7613bc284613ba7565b612e77565b612d77565b9050919050565b613bdc81613bb1565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c1781612d39565b82525050565b6000613c298383613c0e565b60208301905092915050565b6000602082019050919050565b6000613c4d82613be2565b613c578185613bed565b9350613c6283613bfe565b8060005b83811015613c93578151613c7a8882613c1d565b9750613c8583613c35565b925050600181019050613c66565b5085935050505092915050565b600060a082019050613cb56000830188612e4d565b613cc26020830187613bd3565b8181036040830152613cd48186613c42565b9050613ce36060830185612e23565b613cf06080830184612e4d565b969550505050505056fea26469706673582212209b9083a7e82fcd7fc5fe3bd965aef85821e108072fd97cce9c478b4ec9d6d71964736f6c63430008130033

Deployed Bytecode Sourcemap

11441:12976:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14627:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15149:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12075:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12713:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12466:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14912:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19855:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16963:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19082:186;;;;;;;;;;;;;:::i;:::-;;14817:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11936:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15964:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12178:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11865:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18554:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12514:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12588:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16843:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16722:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18035:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17298:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15022:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1800:148;;;;;;;;;;;;;:::i;:::-;;19276:166;;;;;;;;;;;;;:::i;:::-;;1577:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18825:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14720:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12295:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16269:445;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17907:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19631:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12340:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12637:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17097:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17475:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12432:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19450:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18287:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17778:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15755:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1956:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12786:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14627:85;14666:13;14699:5;;;;;;;;;;;;;;;;;14692:12;;14627:85;:::o;15149:210::-;15268:4;15290:39;15299:12;:10;:12::i;:::-;15313:7;15322:6;15290:8;:39::i;:::-;15347:4;15340:11;;15149:210;;;;:::o;12075:96::-;;;:::o;12713:66::-;;;;:::o;12466:41::-;;;;;;;;;;;;;:::o;14912:102::-;14967:7;11972:2;11916;:13;;;;:::i;:::-;11904:9;:25;;;;:::i;:::-;14987:19;;14912:102;:::o;19855:422::-;19995:4;20012:36;20022:6;20030:9;20041:6;20012:9;:36::i;:::-;20059:24;20086:11;:19;20098:6;20086:19;;;;;;;;;;;;;;;:33;20106:12;:10;:12::i;:::-;20086:33;;;;;;;;;;;;;;;;20059:60;;20172:6;20152:16;:26;;20130:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;20265:4;20258:11;;;19855:422;;;;;:::o;16963:126::-;17030:4;17054:18;:27;17073:7;17054:27;;;;;;;;;;;;;;;;;;;;;;;;;17047:34;;16963:126;;;:::o;19082:186::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19202:5:::1;19195:3:::0;11972:2:::1;11916;:13;;;;:::i;:::-;11904:9;:25;;;;:::i;:::-;19180:18;;;;:::i;:::-;19179:28;;;;:::i;:::-;19154:22;:53;;;;19255:5;19248:3:::0;11972:2:::1;11916;:13;;;;:::i;:::-;11904:9;:25;;;;:::i;:::-;19233:18;;;;:::i;:::-;19232:28;;;;:::i;:::-;19218:11;:42;;;;19082:186::o:0;14817:87::-;14860:7;11972:2;14880:16;;14817:87;:::o;11936:38::-;11972:2;11936:38;:::o;15964:297::-;16079:4;16101:130;16124:12;:10;:12::i;:::-;16151:7;16210:10;16173:11;:25;16185:12;:10;:12::i;:::-;16173:25;;;;;;;;;;;;;;;:34;16199:7;16173:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;16101:8;:130::i;:::-;16249:4;16242:11;;15964:297;;;;:::o;12178:108::-;;;;;;;;;;;;;:::o;11865:64::-;11972:2;11916;:13;;;;:::i;:::-;11904:9;:25;;;;:::i;:::-;11865:64;:::o;18554:263::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18666:1:::1;18647:15;:20;;18639:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;18736:15;18713:20;:38;;;;18767:42;18788:20;;18767:42;;;;;;:::i;:::-;;;;;;;;18554:263:::0;:::o;12514:28::-;;;;;;;;;;;;;:::o;12588:40::-;;;;;;;;;;;;;:::o;16843:112::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16942:5:::1;16912:18;:27;16931:7;16912:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16843:112:::0;:::o;16722:113::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16823:4:::1;16793:18;:27;16812:7;16793:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16722:113:::0;:::o;18035:244::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18184:1:::1;18154:32;;:18;:32;;::::0;18146:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18253:18;18228:22;;:43;;;;;;;;;;;;;;;;;;18035:244:::0;:::o;17298:169::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17455:4:::1;17410:33;:42;17444:7;17410:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;17298:169:::0;:::o;15022:119::-;15088:7;15115:9;:18;15125:7;15115:18;;;;;;;;;;;;;;;;15108:25;;15022:119;;;:::o;1800:148::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1907:1:::1;1870:40;;1891:6;::::0;::::1;;;;;;;;1870:40;;;;;;;;;;;;1938:1;1921:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1800:148::o:0;19276:166::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19357:1:::1;19343:10;;:15;19335:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;19430:4;19412:15;:22;;;;:::i;:::-;19399:10;:35;;;;19276:166::o:0;1577:87::-;1623:7;1650:6;;;;;;;;;;;1643:13;;1577:87;:::o;18825:249::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11972:2:::1;18986;:13;;;;:::i;:::-;18969:14;:30;;;;:::i;:::-;18943:23;:56;;;;19015:51;19042:23;;19015:51;;;;;;:::i;:::-;;;;;;;;18825:249:::0;:::o;14720:89::-;14761:13;14794:7;;;;;;;;;;;;;;;;;14787:14;;14720:89;:::o;12295:38::-;;;;:::o;16269:445::-;16389:4;16411:24;16438:11;:25;16450:12;:10;:12::i;:::-;16438:25;;;;;;;;;;;;;;;:34;16464:7;16438:34;;;;;;;;;;;;;;;;16411:61;;16525:15;16505:16;:35;;16483:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;16617:67;16626:12;:10;:12::i;:::-;16640:7;16668:15;16649:16;:34;;;;:::i;:::-;16617:8;:67::i;:::-;16702:4;16695:11;;;16269:445;;;;:::o;17907:120::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18014:5:::1;17980:22;:31;18003:7;17980:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17907:120:::0;:::o;19631:216::-;19753:4;19775:42;19785:12;:10;:12::i;:::-;19799:9;19810:6;19775:9;:42::i;:::-;19835:4;19828:11;;19631:216;;;;:::o;12340:39::-;;;;:::o;12637:69::-;;;;:::o;17097:193::-;17205:4;17234:33;:48;17268:13;17234:48;;;;;;;;;;;;;;;;;;;;;;;;;17227:55;;17097:193;;;:::o;17475:295::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17618:13:::1;;;;;;;;;;;17607:24;;:7;:24;;::::0;17585:116:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17757:5;17712:33;:42;17746:7;17712:42;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;17475:295:::0;:::o;12432:25::-;;;;:::o;19450:173::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19553:8:::1;19529:21;;:32;;;;;;;;;;;;;;;;;;19577:38;19606:8;19577:38;;;;;;:::i;:::-;;;;;;;;19450:173:::0;:::o;18287:259::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18398:1:::1;18379:15;:20;;18371:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;18467:15;18445:19;:37;;;;18498:40;18518:19;;18498:40;;;;;;:::i;:::-;;;;;;;;18287:259:::0;:::o;17778:121::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17887:4:::1;17853:22;:31;17876:7;17853:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;17778:121:::0;:::o;15755:201::-;15889:7;15921:11;:18;15933:5;15921:18;;;;;;;;;;;;;;;:27;15940:7;15921:27;;;;;;;;;;;;;;;;15914:34;;15755:201;;;;:::o;1956:281::-;1723:12;:10;:12::i;:::-;1712:23;;:7;:5;:7::i;:::-;:23;;;1704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2079:1:::1;2059:22;;:8;:22;;::::0;2037:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2192:8;2163:38;;2184:6;::::0;::::1;;;;;;;;2163:38;;;;;;;;;;;;2221:8;2212:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1956:281:::0;:::o;12786:55::-;;;;:::o;1031:98::-;1084:7;1111:10;1104:17;;1031:98;:::o;15367:380::-;15520:1;15503:19;;:5;:19;;;15495:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15602:1;15583:21;;:7;:21;;;15575:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15685:6;15655:11;:18;15667:5;15655:18;;;;;;;;;;;;;;;:27;15674:7;15655:27;;;;;;;;;;;;;;;:36;;;;15723:7;15707:32;;15716:5;15707:32;;;15732:6;15707:32;;;;;;:::i;:::-;;;;;;;;15367:380;;;:::o;20372:2504::-;20530:1;20512:20;;:6;:20;;;20504:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20629:1;20608:23;;:9;:23;;;20586:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;20735:6;20714:9;:17;20724:6;20714:17;;;;;;;;;;;;;;;;:27;;20706:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20786:38;20798:6;20806:9;20817:6;20786:11;:38::i;:::-;20837:16;20888:23;:34;20912:9;20888:34;;;;;;;;;;;;;;;;;;;;;;;;;:82;;;;20939:23;:31;20963:6;20939:31;;;;;;;;;;;;;;;;;;;;;;;;;20888:82;20870:1071;;;21001:18;:26;21020:6;21001:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;21031:18;:29;21050:9;21031:29;;;;;;;;;;;;;;;;;;;;;;;;;21001:59;20997:933;;;21092:1;21081:12;;20997:933;;;21138:23;:34;21162:9;21138:34;;;;;;;;;;;;;;;;;;;;;;;;;21134:781;;;21214:1;21201:10;;:14;:46;;;;;21237:10;;21219:15;:28;21201:46;21197:326;;;21306:14;;21298:2;21288:6;:13;;;;:::i;:::-;21287:34;;;;:::i;:::-;21276:45;;21197:326;;;21484:14;;21429:20;;21419:6;:31;;;;:::i;:::-;21418:81;;;;:::i;:::-;21378:121;;21197:326;21134:781;;;21588:1;21575:10;;:14;:46;;;;;21611:10;;21593:15;:28;21575:46;21571:325;;;21680:14;;21672:2;21662:6;:13;;;;:::i;:::-;21661:34;;;;:::i;:::-;21650:45;;21571:325;;;21857:14;;21803:19;;21793:6;:30;;;;:::i;:::-;21792:80;;;;:::i;:::-;21752:120;;21571:325;21134:781;20997:933;20870:1071;21953:28;21984:24;22002:4;21984:9;:24::i;:::-;21953:55;;22021:24;22085:23;;22048:20;:60;;22021:87;;22138:16;;;;;;;;;;;22137:17;:60;;;;;22184:13;;;;;;;;;;;22171:26;;:9;:26;;;22137:60;:98;;;;;22214:21;;;;;;;;;;;22137:98;:165;;;;;22279:23;;22252:24;22262:13;;;;;;;;;;;22252:9;:24::i;:::-;:50;22137:165;22119:378;;;22333:19;22329:157;;;22396:23;;22373:46;;22438:32;22449:20;22438:10;:32::i;:::-;22329:157;22119:378;22509:22;22544:8;22534:6;:19;;;;:::i;:::-;22509:44;;22592:8;22564:9;:24;22582:4;22564:24;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;22651:6;22631:9;:17;22641:6;22631:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;22611:9;:17;22621:6;22611:17;;;;;;;;;;;;;;;:46;;;;22692:14;22668:9;:20;22678:9;22668:20;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;22734:1;22723:8;:12;22719:91;;;22782:4;22757:41;;22766:6;22757:41;;;22789:8;22757:41;;;;;;:::i;:::-;;;;;;;;22719:91;22842:9;22825:43;;22834:6;22825:43;;;22853:14;22825:43;;;;;;:::i;:::-;;;;;;;;20493:2383;;;;20372:2504;;;:::o;22884:620::-;23034:33;:44;23068:9;23034:44;;;;;;;;;;;;;;;;;;;;;;;;;23033:45;:66;;;;;23092:7;:5;:7::i;:::-;23082:17;;:6;:17;;;;23033:66;23015:269;;;23185:22;;23175:6;23152:20;23162:9;23152;:20::i;:::-;:29;;;;:::i;:::-;:55;;23126:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;23015:269;23313:22;:33;23336:9;23313:33;;;;;;;;;;;;;;;;;;;;;;;;;23312:34;:82;;;;;23364:22;:30;23387:6;23364:30;;;;;;;;;;;;;;;;;;;;;;;;;23363:31;23312:82;23294:203;;;23439:11;;23429:6;:21;;23421:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23294:203;22884:620;;;:::o;23512:305::-;13474:4;13455:16;;:23;;;;;;;;;;;;;;;;;;23594:39:::1;23611:21;23594:16;:39::i;:::-;23644:24;23671:21;23644:48;;23726:1;23707:16;:20;23703:107;;;23744:22;;;;;;;;;;;:31;;:54;23776:21;23744:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;23703:107;23583:234;13520:5:::0;13501:16;;:24;;;;;;;;;;;;;;;;;;23512:305;:::o;23825:589::-;23951:21;23989:1;23975:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23951:40;;24020:4;24002;24007:1;24002:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24046:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24036:4;24041:1;24036:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24081:62;24098:4;24113:15;;;;;;;;;;;24131:11;24081:8;:62::i;:::-;24182:15;;;;;;;;;;;:66;;;24263:11;24289:1;24333:4;24360;24380:15;24182:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23880:534;23825:589;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:60::-;4178:3;4199:5;4192:12;;4150:60;;;:::o;4216:142::-;4266:9;4299:53;4317:34;4326:24;4344:5;4326:24;:::i;:::-;4317:34;:::i;:::-;4299:53;:::i;:::-;4286:66;;4216:142;;;:::o;4364:126::-;4414:9;4447:37;4478:5;4447:37;:::i;:::-;4434:50;;4364:126;;;:::o;4496:152::-;4572:9;4605:37;4636:5;4605:37;:::i;:::-;4592:50;;4496:152;;;:::o;4654:183::-;4767:63;4824:5;4767:63;:::i;:::-;4762:3;4755:76;4654:183;;:::o;4843:274::-;4962:4;5000:2;4989:9;4985:18;4977:26;;5013:97;5107:1;5096:9;5092:17;5083:6;5013:97;:::i;:::-;4843:274;;;;:::o;5123:619::-;5200:6;5208;5216;5265:2;5253:9;5244:7;5240:23;5236:32;5233:119;;;5271:79;;:::i;:::-;5233:119;5391:1;5416:53;5461:7;5452:6;5441:9;5437:22;5416:53;:::i;:::-;5406:63;;5362:117;5518:2;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5489:118;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5123:619;;;;;:::o;5748:329::-;5807:6;5856:2;5844:9;5835:7;5831:23;5827:32;5824:119;;;5862:79;;:::i;:::-;5824:119;5982:1;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5953:117;5748:329;;;;:::o;6083:104::-;6128:7;6157:24;6175:5;6157:24;:::i;:::-;6146:35;;6083:104;;;:::o;6193:142::-;6296:32;6322:5;6296:32;:::i;:::-;6291:3;6284:45;6193:142;;:::o;6341:254::-;6450:4;6488:2;6477:9;6473:18;6465:26;;6501:87;6585:1;6574:9;6570:17;6561:6;6501:87;:::i;:::-;6341:254;;;;:::o;6601:329::-;6660:6;6709:2;6697:9;6688:7;6684:23;6680:32;6677:119;;;6715:79;;:::i;:::-;6677:119;6835:1;6860:53;6905:7;6896:6;6885:9;6881:22;6860:53;:::i;:::-;6850:63;;6806:117;6601:329;;;;:::o;6936:138::-;7017:32;7043:5;7017:32;:::i;:::-;7010:5;7007:43;6997:71;;7064:1;7061;7054:12;6997:71;6936:138;:::o;7080:155::-;7134:5;7172:6;7159:20;7150:29;;7188:41;7223:5;7188:41;:::i;:::-;7080:155;;;;:::o;7241:345::-;7308:6;7357:2;7345:9;7336:7;7332:23;7328:32;7325:119;;;7363:79;;:::i;:::-;7325:119;7483:1;7508:61;7561:7;7552:6;7541:9;7537:22;7508:61;:::i;:::-;7498:71;;7454:125;7241:345;;;;:::o;7592:116::-;7662:21;7677:5;7662:21;:::i;:::-;7655:5;7652:32;7642:60;;7698:1;7695;7688:12;7642:60;7592:116;:::o;7714:133::-;7757:5;7795:6;7782:20;7773:29;;7811:30;7835:5;7811:30;:::i;:::-;7714:133;;;;:::o;7853:323::-;7909:6;7958:2;7946:9;7937:7;7933:23;7929:32;7926:119;;;7964:79;;:::i;:::-;7926:119;8084:1;8109:50;8151:7;8142:6;8131:9;8127:22;8109:50;:::i;:::-;8099:60;;8055:114;7853:323;;;;:::o;8182:474::-;8250:6;8258;8307:2;8295:9;8286:7;8282:23;8278:32;8275:119;;;8313:79;;:::i;:::-;8275:119;8433:1;8458:53;8503:7;8494:6;8483:9;8479:22;8458:53;:::i;:::-;8448:63;;8404:117;8560:2;8586:53;8631:7;8622:6;8611:9;8607:22;8586:53;:::i;:::-;8576:63;;8531:118;8182:474;;;;;:::o;8662:180::-;8710:77;8707:1;8700:88;8807:4;8804:1;8797:15;8831:4;8828:1;8821:15;8848:102;8890:8;8937:5;8934:1;8930:13;8909:34;;8848:102;;;:::o;8956:848::-;9017:5;9024:4;9048:6;9039:15;;9072:5;9063:14;;9086:712;9107:1;9097:8;9094:15;9086:712;;;9202:4;9197:3;9193:14;9187:4;9184:24;9181:50;;;9211:18;;:::i;:::-;9181:50;9261:1;9251:8;9247:16;9244:451;;;9676:4;9669:5;9665:16;9656:25;;9244:451;9726:4;9720;9716:15;9708:23;;9756:32;9779:8;9756:32;:::i;:::-;9744:44;;9086:712;;;8956:848;;;;;;;:::o;9810:1073::-;9864:5;10055:8;10045:40;;10076:1;10067:10;;10078:5;;10045:40;10104:4;10094:36;;10121:1;10112:10;;10123:5;;10094:36;10190:4;10238:1;10233:27;;;;10274:1;10269:191;;;;10183:277;;10233:27;10251:1;10242:10;;10253:5;;;10269:191;10314:3;10304:8;10301:17;10298:43;;;10321:18;;:::i;:::-;10298:43;10370:8;10367:1;10363:16;10354:25;;10405:3;10398:5;10395:14;10392:40;;;10412:18;;:::i;:::-;10392:40;10445:5;;;10183:277;;10569:2;10559:8;10556:16;10550:3;10544:4;10541:13;10537:36;10519:2;10509:8;10506:16;10501:2;10495:4;10492:12;10488:35;10472:111;10469:246;;;10625:8;10619:4;10615:19;10606:28;;10660:3;10653:5;10650:14;10647:40;;;10667:18;;:::i;:::-;10647:40;10700:5;;10469:246;10740:42;10778:3;10768:8;10762:4;10759:1;10740:42;:::i;:::-;10725:57;;;;10814:4;10809:3;10805:14;10798:5;10795:25;10792:51;;;10823:18;;:::i;:::-;10792:51;10872:4;10865:5;10861:16;10852:25;;9810:1073;;;;;;:::o;10889:285::-;10949:5;10973:23;10991:4;10973:23;:::i;:::-;10965:31;;11017:27;11035:8;11017:27;:::i;:::-;11005:39;;11063:104;11100:66;11090:8;11084:4;11063:104;:::i;:::-;11054:113;;10889:285;;;;:::o;11180:410::-;11220:7;11243:20;11261:1;11243:20;:::i;:::-;11238:25;;11277:20;11295:1;11277:20;:::i;:::-;11272:25;;11332:1;11329;11325:9;11354:30;11372:11;11354:30;:::i;:::-;11343:41;;11533:1;11524:7;11520:15;11517:1;11514:22;11494:1;11487:9;11467:83;11444:139;;11563:18;;:::i;:::-;11444:139;11228:362;11180:410;;;;:::o;11596:228::-;11736:34;11732:1;11724:6;11720:14;11713:58;11805:11;11800:2;11792:6;11788:15;11781:36;11596:228;:::o;11830:366::-;11972:3;11993:67;12057:2;12052:3;11993:67;:::i;:::-;11986:74;;12069:93;12158:3;12069:93;:::i;:::-;12187:2;12182:3;12178:12;12171:19;;11830:366;;;:::o;12202:419::-;12368:4;12406:2;12395:9;12391:18;12383:26;;12455:9;12449:4;12445:20;12441:1;12430:9;12426:17;12419:47;12483:131;12609:4;12483:131;:::i;:::-;12475:139;;12202:419;;;:::o;12627:182::-;12767:34;12763:1;12755:6;12751:14;12744:58;12627:182;:::o;12815:366::-;12957:3;12978:67;13042:2;13037:3;12978:67;:::i;:::-;12971:74;;13054:93;13143:3;13054:93;:::i;:::-;13172:2;13167:3;13163:12;13156:19;;12815:366;;;:::o;13187:419::-;13353:4;13391:2;13380:9;13376:18;13368:26;;13440:9;13434:4;13430:20;13426:1;13415:9;13411:17;13404:47;13468:131;13594:4;13468:131;:::i;:::-;13460:139;;13187:419;;;:::o;13612:180::-;13660:77;13657:1;13650:88;13757:4;13754:1;13747:15;13781:4;13778:1;13771:15;13798:185;13838:1;13855:20;13873:1;13855:20;:::i;:::-;13850:25;;13889:20;13907:1;13889:20;:::i;:::-;13884:25;;13928:1;13918:35;;13933:18;;:::i;:::-;13918:35;13975:1;13972;13968:9;13963:14;;13798:185;;;;:::o;13989:191::-;14029:3;14048:20;14066:1;14048:20;:::i;:::-;14043:25;;14082:20;14100:1;14082:20;:::i;:::-;14077:25;;14125:1;14122;14118:9;14111:16;;14146:3;14143:1;14140:10;14137:36;;;14153:18;;:::i;:::-;14137:36;13989:191;;;;:::o;14186:180::-;14326:32;14322:1;14314:6;14310:14;14303:56;14186:180;:::o;14372:366::-;14514:3;14535:67;14599:2;14594:3;14535:67;:::i;:::-;14528:74;;14611:93;14700:3;14611:93;:::i;:::-;14729:2;14724:3;14720:12;14713:19;;14372:366;;;:::o;14744:419::-;14910:4;14948:2;14937:9;14933:18;14925:26;;14997:9;14991:4;14987:20;14983:1;14972:9;14968:17;14961:47;15025:131;15151:4;15025:131;:::i;:::-;15017:139;;14744:419;;;:::o;15169:176::-;15309:28;15305:1;15297:6;15293:14;15286:52;15169:176;:::o;15351:366::-;15493:3;15514:67;15578:2;15573:3;15514:67;:::i;:::-;15507:74;;15590:93;15679:3;15590:93;:::i;:::-;15708:2;15703:3;15699:12;15692:19;;15351:366;;;:::o;15723:419::-;15889:4;15927:2;15916:9;15912:18;15904:26;;15976:9;15970:4;15966:20;15962:1;15951:9;15947:17;15940:47;16004:131;16130:4;16004:131;:::i;:::-;15996:139;;15723:419;;;:::o;16148:175::-;16288:27;16284:1;16276:6;16272:14;16265:51;16148:175;:::o;16329:366::-;16471:3;16492:67;16556:2;16551:3;16492:67;:::i;:::-;16485:74;;16568:93;16657:3;16568:93;:::i;:::-;16686:2;16681:3;16677:12;16670:19;;16329:366;;;:::o;16701:419::-;16867:4;16905:2;16894:9;16890:18;16882:26;;16954:9;16948:4;16944:20;16940:1;16929:9;16925:17;16918:47;16982:131;17108:4;16982:131;:::i;:::-;16974:139;;16701:419;;;:::o;17126:225::-;17266:34;17262:1;17254:6;17250:14;17243:58;17335:8;17330:2;17322:6;17318:15;17311:33;17126:225;:::o;17357:366::-;17499:3;17520:67;17584:2;17579:3;17520:67;:::i;:::-;17513:74;;17596:93;17685:3;17596:93;:::i;:::-;17714:2;17709:3;17705:12;17698:19;;17357:366;;;:::o;17729:419::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17982:9;17976:4;17972:20;17968:1;17957:9;17953:17;17946:47;18010:131;18136:4;18010:131;:::i;:::-;18002:139;;17729:419;;;:::o;18154:194::-;18194:4;18214:20;18232:1;18214:20;:::i;:::-;18209:25;;18248:20;18266:1;18248:20;:::i;:::-;18243:25;;18292:1;18289;18285:9;18277:17;;18316:1;18310:4;18307:11;18304:37;;;18321:18;;:::i;:::-;18304:37;18154:194;;;;:::o;18354:229::-;18494:34;18490:1;18482:6;18478:14;18471:58;18563:12;18558:2;18550:6;18546:15;18539:37;18354:229;:::o;18589:366::-;18731:3;18752:67;18816:2;18811:3;18752:67;:::i;:::-;18745:74;;18828:93;18917:3;18828:93;:::i;:::-;18946:2;18941:3;18937:12;18930:19;;18589:366;;;:::o;18961:419::-;19127:4;19165:2;19154:9;19150:18;19142:26;;19214:9;19208:4;19204:20;19200:1;19189:9;19185:17;19178:47;19242:131;19368:4;19242:131;:::i;:::-;19234:139;;18961:419;;;:::o;19386:225::-;19526:34;19522:1;19514:6;19510:14;19503:58;19595:8;19590:2;19582:6;19578:15;19571:33;19386:225;:::o;19617:366::-;19759:3;19780:67;19844:2;19839:3;19780:67;:::i;:::-;19773:74;;19856:93;19945:3;19856:93;:::i;:::-;19974:2;19969:3;19965:12;19958:19;;19617:366;;;:::o;19989:419::-;20155:4;20193:2;20182:9;20178:18;20170:26;;20242:9;20236:4;20232:20;20228:1;20217:9;20213:17;20206:47;20270:131;20396:4;20270:131;:::i;:::-;20262:139;;19989:419;;;:::o;20414:224::-;20554:34;20550:1;20542:6;20538:14;20531:58;20623:7;20618:2;20610:6;20606:15;20599:32;20414:224;:::o;20644:366::-;20786:3;20807:67;20871:2;20866:3;20807:67;:::i;:::-;20800:74;;20883:93;20972:3;20883:93;:::i;:::-;21001:2;20996:3;20992:12;20985:19;;20644:366;;;:::o;21016:419::-;21182:4;21220:2;21209:9;21205:18;21197:26;;21269:9;21263:4;21259:20;21255:1;21244:9;21240:17;21233:47;21297:131;21423:4;21297:131;:::i;:::-;21289:139;;21016:419;;;:::o;21441:222::-;21581:34;21577:1;21569:6;21565:14;21558:58;21650:5;21645:2;21637:6;21633:15;21626:30;21441:222;:::o;21669:366::-;21811:3;21832:67;21896:2;21891:3;21832:67;:::i;:::-;21825:74;;21908:93;21997:3;21908:93;:::i;:::-;22026:2;22021:3;22017:12;22010:19;;21669:366;;;:::o;22041:419::-;22207:4;22245:2;22234:9;22230:18;22222:26;;22294:9;22288:4;22284:20;22280:1;22269:9;22265:17;22258:47;22322:131;22448:4;22322:131;:::i;:::-;22314:139;;22041:419;;;:::o;22466:225::-;22606:34;22602:1;22594:6;22590:14;22583:58;22675:8;22670:2;22662:6;22658:15;22651:33;22466:225;:::o;22697:366::-;22839:3;22860:67;22924:2;22919:3;22860:67;:::i;:::-;22853:74;;22936:93;23025:3;22936:93;:::i;:::-;23054:2;23049:3;23045:12;23038:19;;22697:366;;;:::o;23069:419::-;23235:4;23273:2;23262:9;23258:18;23250:26;;23322:9;23316:4;23312:20;23308:1;23297:9;23293:17;23286:47;23350:131;23476:4;23350:131;:::i;:::-;23342:139;;23069:419;;;:::o;23494:223::-;23634:34;23630:1;23622:6;23618:14;23611:58;23703:6;23698:2;23690:6;23686:15;23679:31;23494:223;:::o;23723:366::-;23865:3;23886:67;23950:2;23945:3;23886:67;:::i;:::-;23879:74;;23962:93;24051:3;23962:93;:::i;:::-;24080:2;24075:3;24071:12;24064:19;;23723:366;;;:::o;24095:419::-;24261:4;24299:2;24288:9;24284:18;24276:26;;24348:9;24342:4;24338:20;24334:1;24323:9;24319:17;24312:47;24376:131;24502:4;24376:131;:::i;:::-;24368:139;;24095:419;;;:::o;24520:179::-;24660:31;24656:1;24648:6;24644:14;24637:55;24520:179;:::o;24705:366::-;24847:3;24868:67;24932:2;24927:3;24868:67;:::i;:::-;24861:74;;24944:93;25033:3;24944:93;:::i;:::-;25062:2;25057:3;25053:12;25046:19;;24705:366;;;:::o;25077:419::-;25243:4;25281:2;25270:9;25266:18;25258:26;;25330:9;25324:4;25320:20;25316:1;25305:9;25301:17;25294:47;25358:131;25484:4;25358:131;:::i;:::-;25350:139;;25077:419;;;:::o;25502:179::-;25642:31;25638:1;25630:6;25626:14;25619:55;25502:179;:::o;25687:366::-;25829:3;25850:67;25914:2;25909:3;25850:67;:::i;:::-;25843:74;;25926:93;26015:3;25926:93;:::i;:::-;26044:2;26039:3;26035:12;26028:19;;25687:366;;;:::o;26059:419::-;26225:4;26263:2;26252:9;26248:18;26240:26;;26312:9;26306:4;26302:20;26298:1;26287:9;26283:17;26276:47;26340:131;26466:4;26340:131;:::i;:::-;26332:139;;26059:419;;;:::o;26484:180::-;26624:32;26620:1;26612:6;26608:14;26601:56;26484:180;:::o;26670:366::-;26812:3;26833:67;26897:2;26892:3;26833:67;:::i;:::-;26826:74;;26909:93;26998:3;26909:93;:::i;:::-;27027:2;27022:3;27018:12;27011:19;;26670:366;;;:::o;27042:419::-;27208:4;27246:2;27235:9;27231:18;27223:26;;27295:9;27289:4;27285:20;27281:1;27270:9;27266:17;27259:47;27323:131;27449:4;27323:131;:::i;:::-;27315:139;;27042:419;;;:::o;27467:180::-;27515:77;27512:1;27505:88;27612:4;27609:1;27602:15;27636:4;27633:1;27626:15;27653:180;27701:77;27698:1;27691:88;27798:4;27795:1;27788:15;27822:4;27819:1;27812:15;27839:143;27896:5;27927:6;27921:13;27912:22;;27943:33;27970:5;27943:33;:::i;:::-;27839:143;;;;:::o;27988:351::-;28058:6;28107:2;28095:9;28086:7;28082:23;28078:32;28075:119;;;28113:79;;:::i;:::-;28075:119;28233:1;28258:64;28314:7;28305:6;28294:9;28290:22;28258:64;:::i;:::-;28248:74;;28204:128;27988:351;;;;:::o;28345:85::-;28390:7;28419:5;28408:16;;28345:85;;;:::o;28436:158::-;28494:9;28527:61;28545:42;28554:32;28580:5;28554:32;:::i;:::-;28545:42;:::i;:::-;28527:61;:::i;:::-;28514:74;;28436:158;;;:::o;28600:147::-;28695:45;28734:5;28695:45;:::i;:::-;28690:3;28683:58;28600:147;;:::o;28753:114::-;28820:6;28854:5;28848:12;28838:22;;28753:114;;;:::o;28873:184::-;28972:11;29006:6;29001:3;28994:19;29046:4;29041:3;29037:14;29022:29;;28873:184;;;;:::o;29063:132::-;29130:4;29153:3;29145:11;;29183:4;29178:3;29174:14;29166:22;;29063:132;;;:::o;29201:108::-;29278:24;29296:5;29278:24;:::i;:::-;29273:3;29266:37;29201:108;;:::o;29315:179::-;29384:10;29405:46;29447:3;29439:6;29405:46;:::i;:::-;29483:4;29478:3;29474:14;29460:28;;29315:179;;;;:::o;29500:113::-;29570:4;29602;29597:3;29593:14;29585:22;;29500:113;;;:::o;29649:732::-;29768:3;29797:54;29845:5;29797:54;:::i;:::-;29867:86;29946:6;29941:3;29867:86;:::i;:::-;29860:93;;29977:56;30027:5;29977:56;:::i;:::-;30056:7;30087:1;30072:284;30097:6;30094:1;30091:13;30072:284;;;30173:6;30167:13;30200:63;30259:3;30244:13;30200:63;:::i;:::-;30193:70;;30286:60;30339:6;30286:60;:::i;:::-;30276:70;;30132:224;30119:1;30116;30112:9;30107:14;;30072:284;;;30076:14;30372:3;30365:10;;29773:608;;;29649:732;;;;:::o;30387:831::-;30650:4;30688:3;30677:9;30673:19;30665:27;;30702:71;30770:1;30759:9;30755:17;30746:6;30702:71;:::i;:::-;30783:80;30859:2;30848:9;30844:18;30835:6;30783:80;:::i;:::-;30910:9;30904:4;30900:20;30895:2;30884:9;30880:18;30873:48;30938:108;31041:4;31032:6;30938:108;:::i;:::-;30930:116;;31056:72;31124:2;31113:9;31109:18;31100:6;31056:72;:::i;:::-;31138:73;31206:3;31195:9;31191:19;31182:6;31138:73;:::i;:::-;30387:831;;;;;;;;:::o

Swarm Source

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