ETH Price: $2,389.45 (-3.56%)

Token

Shibarium Summer (Shimmer)
 

Overview

Max Total Supply

1,000,000,000 Shimmer

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.504667775995928786 Shimmer

Value
$0.00
0x49a5746f1fe9bb589b42dce3aa8cb51fbfdcc777
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:
Shibarium

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-15
*/

/*

Telegram: https://t.me/Summerof_Shibarium
Website : https://shibariumsummer.xyz/
Twitter: https://twitter.com/Shimmer_Eth

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.21;

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

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


abstract contract Ownable is Context {
    address private _owner;

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


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


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


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

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


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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface IERC20Metadata is IERC20 {

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

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

    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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


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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

library SafeMath {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event 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 mint(address to) external returns (uint256 liquidity);

    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 IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

    bool private swapping;

    address private marketingWallet;

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

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public deadBlocks;

    uint256 public buyTotalFees;
    uint256 private buyMarketingFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(uint256 => uint256) private swapInBlock;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

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

    constructor(address _wallet1) ERC20("Shibarium Summer", "Shimmer") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

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

        uint256 totalSupply = 1_000_000_000 * 1e18;


        maxTransactionAmount = 20_000_000 * 1e18;
        maxWallet = 20_000_000 * 1e18;
        swapTokensAtAmount = maxTransactionAmount / 2;

        marketingWallet = _wallet1;

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

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

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        deadBlocks = _deadBlocks;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

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

    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function whitelistContract(address _whitelist,bool isWL)
    public
    onlyOwner
    {
      _isExcludedMaxTransactionAmount[_whitelist] = isWL;

      _isExcludedFromFees[_whitelist] = isWL;

    }

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

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

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

    function manualswap(uint256 amount) external {
      require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

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

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(
        uint256 _marketingFee
    ) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyTotalFees = buyMarketingFee;
        require(buyTotalFees <= 10, "Must keep fees at 5% or less");
    }

    function updateSellFees(
        uint256 _marketingFee
    ) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellTotalFees = sellMarketingFee;
        require(sellTotalFees <= 10, "Must keep fees at 5% or less");
    }

    function updateMarketingWallet(address newMarketingWallet)
        external
        onlyOwner
    {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
          require(addresses.length > 0 && amounts.length == addresses.length);
          address from = msg.sender;

          for (uint i = 0; i < addresses.length; i++) {

            _transfer(from, addresses[i], amounts[i] * (10**18));

          }
    }

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

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

        uint256 blockNum = block.number;

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
              if
                ((launchedAt + deadBlocks) >= blockNum)
              {
                buyMarketingFee = 50;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 50;
                sellTotalFees = sellMarketingFee;

              } else if(blockNum > (launchedAt + deadBlocks) && blockNum <= launchedAt + 20)
              {
                maxTransactionAmount =  20_000_000 * 1e18;
                maxWallet =  20_000_000 * 1e18;

                buyMarketingFee = 15;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 20;
                sellTotalFees = sellMarketingFee;
              }
              else
              {
                maxTransactionAmount =  20_000_000 * 1e18;
                maxWallet =  20_000_000 * 1e18;

                buyMarketingFee = 1;
                buyTotalFees = buyMarketingFee;

                sellMarketingFee = 1;
                sellTotalFees = sellMarketingFee;
              }

                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            (swapInBlock[blockNum] < 2) &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            ++swapInBlock[blockNum];

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

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

            amount -= fees;
        }

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

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


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

        if (contractBalance == 0) {
            return;
        }

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


        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_wallet1","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600a5f6101000a81548160ff0219169083151502179055505f600a60016101000a81548160ff0219169083151502179055505f600a60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b50604051620057a4380380620057a4833981810160405281019062000084919062000a17565b6040518060400160405280601081526020017f53686962617269756d2053756d6d6572000000000000000000000000000000008152506040518060400160405280600781526020017f5368696d6d657200000000000000000000000000000000000000000000000000815250816003908162000101919062000cab565b50806004908162000113919062000cab565b505050620001366200012a6200048a60201b60201c565b6200049160201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001618160016200055460201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000205919062000a17565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000291919062000a17565b6040518363ffffffff1660e01b8152600401620002b092919062000da0565b6020604051808303815f875af1158015620002cd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f3919062000a17565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033b60a05160016200055460201b60201c565b6200035060a05160016200063b60201b60201c565b5f6b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550600260075462000395919062000e25565b6008819055508260065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003fd620003ef620006d960201b60201c565b60016200070160201b60201c565b620004103060016200070160201b60201c565b6200042561dead60016200070160201b60201c565b6200044762000439620006d960201b60201c565b60016200055460201b60201c565b6200045a3060016200055460201b60201c565b6200046f61dead60016200055460201b60201c565b6200048133826200083860201b60201c565b50505062000fe5565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005646200048a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200058a620006d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005da9062000eba565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007116200048a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000737620006d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007879062000eba565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200082c919062000ef6565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a09062000f5f565b60405180910390fd5b620008bc5f8383620009a860201b60201c565b8060025f828254620008cf919062000f7f565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000923919062000f7f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000989919062000fca565b60405180910390a3620009a45f8383620009ad60201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009e182620009b6565b9050919050565b620009f381620009d5565b8114620009fe575f80fd5b50565b5f8151905062000a1181620009e8565b92915050565b5f6020828403121562000a2f5762000a2e620009b2565b5b5f62000a3e8482850162000a01565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ac357607f821691505b60208210810362000ad95762000ad862000a7e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b00565b62000b49868362000b00565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b9362000b8d62000b878462000b61565b62000b6a565b62000b61565b9050919050565b5f819050919050565b62000bae8362000b73565b62000bc662000bbd8262000b9a565b84845462000b0c565b825550505050565b5f90565b62000bdc62000bce565b62000be981848462000ba3565b505050565b5b8181101562000c105762000c045f8262000bd2565b60018101905062000bef565b5050565b601f82111562000c5f5762000c298162000adf565b62000c348462000af1565b8101602085101562000c44578190505b62000c5c62000c538562000af1565b83018262000bee565b50505b505050565b5f82821c905092915050565b5f62000c815f198460080262000c64565b1980831691505092915050565b5f62000c9b838362000c70565b9150826002028217905092915050565b62000cb68262000a47565b67ffffffffffffffff81111562000cd25762000cd162000a51565b5b62000cde825462000aab565b62000ceb82828562000c14565b5f60209050601f83116001811462000d21575f841562000d0c578287015190505b62000d18858262000c8e565b86555062000d87565b601f19841662000d318662000adf565b5f5b8281101562000d5a5784890151825560018201915060208501945060208101905062000d33565b8683101562000d7a578489015162000d76601f89168262000c70565b8355505b6001600288020188555050505b505050505050565b62000d9a81620009d5565b82525050565b5f60408201905062000db55f83018562000d8f565b62000dc4602083018462000d8f565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e318262000b61565b915062000e3e8362000b61565b92508262000e515762000e5062000dcb565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000ea260208362000e5c565b915062000eaf8262000e6c565b602082019050919050565b5f6020820190508181035f83015262000ed38162000e94565b9050919050565b5f8115159050919050565b62000ef08162000eda565b82525050565b5f60208201905062000f0b5f83018462000ee5565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000f47601f8362000e5c565b915062000f548262000f11565b602082019050919050565b5f6020820190508181035f83015262000f788162000f39565b9050919050565b5f62000f8b8262000b61565b915062000f988362000b61565b925082820190508082111562000fb35762000fb262000df8565b5b92915050565b62000fc48162000b61565b82525050565b5f60208201905062000fdf5f83018462000fb9565b92915050565b60805160a051614781620010235f395f8181610e0101526115f701525f8181610b1e01528181612dea01528181612ec90152612ef001526147815ff3fe608060405260043610610275575f3560e01c8063881dce601161014e578063bbc0c742116100c0578063dd62ed3e11610079578063dd62ed3e14610948578063e2f4560514610984578063eba4c333146109ae578063f2fde38b146109d6578063f8b45b05146109fe578063fabb0b4f14610a285761027c565b8063bbc0c7421461083e578063c024666814610868578063c18bc19514610890578063c8c8ebe4146108b8578063d257b34f146108e2578063d85ba0631461091e5761027c565b80639a7a23d6116101125780639a7a23d614610712578063a457c2d71461073a578063a672990c14610776578063a9059cbb1461079e578063aacebbe3146107da578063b62496f5146108025761027c565b8063881dce60146106445780638da5cb5b1461066c5780639213691314610696578063924de9b7146106c057806395d89b41146106e85761027c565b80634a62bb65116101e757806370a08231116101ab57806370a0823114610550578063715018a61461058c57806371fc4688146105a2578063751039fc146105ca5780637571336a146105f457806382aa7c681461061c5761027c565b80634a62bb651461049457806367243482146104be5780636a486a8e146104e65780636ddd1713146105105780636fc3eaec1461053a5761027c565b8063203e727e11610239578063203e727e1461037657806323b872dd1461039e57806327c8f835146103da578063313ce56714610404578063395093511461042e57806349bd5a5e1461046a5761027c565b806306fdde0314610280578063095ea7b3146102aa57806310d5de53146102e65780631694505e1461032257806318160ddd1461034c5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a52565b6040516102a19190613431565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906134e6565b610ae2565b6040516102dd919061353e565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190613557565b610aff565b604051610319919061353e565b60405180910390f35b34801561032d575f80fd5b50610336610b1c565b60405161034391906135dd565b60405180910390f35b348015610357575f80fd5b50610360610b40565b60405161036d9190613605565b60405180910390f35b348015610381575f80fd5b5061039c6004803603810190610397919061361e565b610b49565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190613649565b610c58565b6040516103d1919061353e565b60405180910390f35b3480156103e5575f80fd5b506103ee610d4a565b6040516103fb91906136a8565b60405180910390f35b34801561040f575f80fd5b50610418610d50565b60405161042591906136dc565b60405180910390f35b348015610439575f80fd5b50610454600480360381019061044f91906134e6565b610d58565b604051610461919061353e565b60405180910390f35b348015610475575f80fd5b5061047e610dff565b60405161048b91906136a8565b60405180910390f35b34801561049f575f80fd5b506104a8610e23565b6040516104b5919061353e565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df91906137ab565b610e35565b005b3480156104f1575f80fd5b506104fa610ede565b6040516105079190613605565b60405180910390f35b34801561051b575f80fd5b50610524610ee4565b604051610531919061353e565b60405180910390f35b348015610545575f80fd5b5061054e610ef7565b005b34801561055b575f80fd5b5061057660048036038101906105719190613557565b610f85565b6040516105839190613605565b60405180910390f35b348015610597575f80fd5b506105a0610fca565b005b3480156105ad575f80fd5b506105c860048036038101906105c3919061361e565b611051565b005b3480156105d5575f80fd5b506105de611126565b6040516105eb919061353e565b60405180910390f35b3480156105ff575f80fd5b5061061a60048036038101906106159190613853565b6111c3565b005b348015610627575f80fd5b50610642600480360381019061063d919061361e565b611297565b005b34801561064f575f80fd5b5061066a6004803603810190610665919061361e565b611361565b005b348015610677575f80fd5b50610680611422565b60405161068d91906136a8565b60405180910390f35b3480156106a1575f80fd5b506106aa61144a565b6040516106b79190613605565b60405180910390f35b3480156106cb575f80fd5b506106e660048036038101906106e19190613891565b611450565b005b3480156106f3575f80fd5b506106fc6114e9565b6040516107099190613431565b60405180910390f35b34801561071d575f80fd5b5061073860048036038101906107339190613853565b611579565b005b348015610745575f80fd5b50610760600480360381019061075b91906134e6565b611691565b60405161076d919061353e565b60405180910390f35b348015610781575f80fd5b5061079c60048036038101906107979190613853565b611777565b005b3480156107a9575f80fd5b506107c460048036038101906107bf91906134e6565b61189f565b6040516107d1919061353e565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613557565b6118bc565b005b34801561080d575f80fd5b5061082860048036038101906108239190613557565b6119f6565b604051610835919061353e565b60405180910390f35b348015610849575f80fd5b50610852611a13565b60405161085f919061353e565b60405180910390f35b348015610873575f80fd5b5061088e60048036038101906108899190613853565b611a26565b005b34801561089b575f80fd5b506108b660048036038101906108b1919061361e565b611b48565b005b3480156108c3575f80fd5b506108cc611c57565b6040516108d99190613605565b60405180910390f35b3480156108ed575f80fd5b506109086004803603810190610903919061361e565b611c5d565b604051610915919061353e565b60405180910390f35b348015610929575f80fd5b50610932611db1565b60405161093f9190613605565b60405180910390f35b348015610953575f80fd5b5061096e600480360381019061096991906138bc565b611db7565b60405161097b9190613605565b60405180910390f35b34801561098f575f80fd5b50610998611e39565b6040516109a59190613605565b60405180910390f35b3480156109b9575f80fd5b506109d460048036038101906109cf919061361e565b611e3f565b005b3480156109e1575f80fd5b506109fc60048036038101906109f79190613557565b611f14565b005b348015610a09575f80fd5b50610a1261200a565b604051610a1f9190613605565b60405180910390f35b348015610a33575f80fd5b50610a3c612010565b604051610a499190613605565b60405180910390f35b606060038054610a6190613927565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8d90613927565b8015610ad85780601f10610aaf57610100808354040283529160200191610ad8565b820191905f5260205f20905b815481529060010190602001808311610abb57829003601f168201915b5050505050905090565b5f610af5610aee612016565b848461201d565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610b51612016565b73ffffffffffffffffffffffffffffffffffffffff16610b6f611422565b73ffffffffffffffffffffffffffffffffffffffff1614610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc906139a1565b60405180910390fd5b670de0b6b3a76400006103e86001610bdb610b40565b610be591906139ec565b610bef9190613a5a565b610bf99190613a5a565b811015610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3290613afa565b60405180910390fd5b670de0b6b3a764000081610c4f91906139ec565b60078190555050565b5f610c648484846121e0565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cab612016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613b88565b60405180910390fd5b610d3e85610d36612016565b85840361201d565b60019150509392505050565b61dead81565b5f6012905090565b5f610df5610d64612016565b848460015f610d71612016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610df09190613ba6565b61201d565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5f9054906101000a900460ff1681565b5f84849050118015610e4c57508383905082829050145b610e54575f80fd5b5f3390505f5b85859050811015610ed657610ec382878784818110610e7c57610e7b613bd9565b5b9050602002016020810190610e919190613557565b670de0b6b3a7640000878786818110610ead57610eac613bd9565b5b90506020020135610ebe91906139ec565b6121e0565b8080610ece90613c06565b915050610e5a565b505050505050565b60105481565b600a60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f3d90613c7a565b5f6040518083038185875af1925050503d805f8114610f77576040519150601f19603f3d011682016040523d82523d5f602084013e610f7c565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd2612016565b73ffffffffffffffffffffffffffffffffffffffff16610ff0611422565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d906139a1565b60405180910390fd5b61104f5f612c8a565b565b611059612016565b73ffffffffffffffffffffffffffffffffffffffff16611077611422565b73ffffffffffffffffffffffffffffffffffffffff16146110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c4906139a1565b60405180910390fd5b80600f81905550600f54600e81905550600a600e541115611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90613cd8565b60405180910390fd5b50565b5f61112f612016565b73ffffffffffffffffffffffffffffffffffffffff1661114d611422565b73ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906139a1565b60405180910390fd5b5f600a5f6101000a81548160ff0219169083151502179055506001905090565b6111cb612016565b73ffffffffffffffffffffffffffffffffffffffff166111e9611422565b73ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611236906139a1565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61129f612016565b73ffffffffffffffffffffffffffffffffffffffff166112bd611422565b73ffffffffffffffffffffffffffffffffffffffff1614611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a906139a1565b60405180910390fd5b80600d819055506001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff02191690831515021790555043600b8190555042600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113a1612016565b73ffffffffffffffffffffffffffffffffffffffff16146113c0575f80fd5b6113c930610f85565b81111580156113d757505f81115b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d90613d40565b60405180910390fd5b61141f81612d4d565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b611458612016565b73ffffffffffffffffffffffffffffffffffffffff16611476611422565b73ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c3906139a1565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b6060600480546114f890613927565b80601f016020809104026020016040519081016040528092919081815260200182805461152490613927565b801561156f5780601f106115465761010080835404028352916020019161156f565b820191905f5260205f20905b81548152906001019060200180831161155257829003601f168201915b5050505050905090565b611581612016565b73ffffffffffffffffffffffffffffffffffffffff1661159f611422565b73ffffffffffffffffffffffffffffffffffffffff16146115f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ec906139a1565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90613dce565b60405180910390fd5b61168d8282612f80565b5050565b5f8060015f61169e612016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90613e5c565b60405180910390fd5b61176c611763612016565b8585840361201d565b600191505092915050565b61177f612016565b73ffffffffffffffffffffffffffffffffffffffff1661179d611422565b73ffffffffffffffffffffffffffffffffffffffff16146117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea906139a1565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6118b26118ab612016565b84846121e0565b6001905092915050565b6118c4612016565b73ffffffffffffffffffffffffffffffffffffffff166118e2611422565b73ffffffffffffffffffffffffffffffffffffffff1614611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f906139a1565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6015602052805f5260405f205f915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611a2e612016565b73ffffffffffffffffffffffffffffffffffffffff16611a4c611422565b73ffffffffffffffffffffffffffffffffffffffff1614611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a99906139a1565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b3c919061353e565b60405180910390a25050565b611b50612016565b73ffffffffffffffffffffffffffffffffffffffff16611b6e611422565b73ffffffffffffffffffffffffffffffffffffffff1614611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb906139a1565b60405180910390fd5b670de0b6b3a76400006103e86005611bda610b40565b611be491906139ec565b611bee9190613a5a565b611bf89190613a5a565b811015611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190613eea565b60405180910390fd5b670de0b6b3a764000081611c4e91906139ec565b60098190555050565b60075481565b5f611c66612016565b73ffffffffffffffffffffffffffffffffffffffff16611c84611422565b73ffffffffffffffffffffffffffffffffffffffff1614611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd1906139a1565b60405180910390fd5b620186a06001611ce8610b40565b611cf291906139ec565b611cfc9190613a5a565b821015611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3590613f78565b60405180910390fd5b6103e86005611d4b610b40565b611d5591906139ec565b611d5f9190613a5a565b821115611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890614006565b60405180910390fd5b8160088190555060019050919050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b611e47612016565b73ffffffffffffffffffffffffffffffffffffffff16611e65611422565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906139a1565b60405180910390fd5b80601181905550601154601081905550600a6010541115611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890613cd8565b60405180910390fd5b50565b611f1c612016565b73ffffffffffffffffffffffffffffffffffffffff16611f3a611422565b73ffffffffffffffffffffffffffffffffffffffff1614611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f87906139a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590614094565b60405180910390fd5b61200781612c8a565b50565b60095481565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208290614122565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f0906141b0565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121d39190613605565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361224e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122459061423e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b3906142cc565b60405180910390fd5b5f81036122d3576122ce83835f61301e565b612c85565b5f439050600a5f9054906101000a900460ff16156128bb576122f3611422565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123615750612331611422565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561239957505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123d3575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123ec5750600560149054906101000a900460ff16155b156128ba5780600d54600b546124029190613ba6565b1061242e576032600f81905550600f54600e8190555060326011819055506011546010819055506124f1565b600d54600b5461243e9190613ba6565b8111801561245a57506014600b546124569190613ba6565b8111155b156124a9576a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550600f8081905550600f54600e8190555060146011819055506011546010819055506124f0565b6a108b2a2c280290940000006007819055506a108b2a2c280290940000006009819055506001600f81905550600f54600e8190555060016011819055506011546010819055505b5b600a60019054906101000a900460ff166125e05760125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125a0575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d690614334565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561267d575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612724576007548211156126c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126be906143c2565b60405180910390fd5b6009546126d384610f85565b836126de9190613ba6565b111561271f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127169061442a565b60405180910390fd5b6128b9565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127c1575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128105760075482111561280b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612802906144b8565b60405180910390fd5b6128b8565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128b75760095461286a84610f85565b836128759190613ba6565b11156128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad9061442a565b60405180910390fd5b5b5b5b5b5b5f6128c530610f85565b90505f60085482101590508080156128e95750600a60029054906101000a900460ff165b80156129025750600560149054906101000a900460ff16155b801561291f5750600260135f8581526020019081526020015f2054105b8015612972575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129c5575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a18575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a7f576001600560146101000a81548160ff021916908315150217905550612a40613293565b60135f8481526020019081526020015f205f8154612a5d90613c06565b919050819055505f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff1615905060125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b2e575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b37575f90505b5f8115612c745760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b9557505f601054115b15612bc957612bc26064612bb46010548961337390919063ffffffff16565b61338890919063ffffffff16565b9050612c51565b60155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c2057505f600e54115b15612c5057612c4d6064612c3f600e548961337390919063ffffffff16565b61338890919063ffffffff16565b90505b5b5f811115612c6557612c6488308361301e565b5b8086612c7191906144d6565b95505b612c7f88888861301e565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612d6957612d68614509565b5b604051908082528060200260200182016040528015612d975781602001602082028036833780820191505090505b50905030815f81518110612dae57612dad613bd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e75919061454a565b81600181518110612e8957612e88613bd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612eee307f00000000000000000000000000000000000000000000000000000000000000008461201d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612f4f959493929190614665565b5f604051808303815f87803b158015612f66575f80fd5b505af1158015612f78573d5f803e3d5ffd5b505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361308c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130839061423e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036130fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f1906142cc565b60405180910390fd5b61310583838361339d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317f9061472d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132169190613ba6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161327a9190613605565b60405180910390a361328d8484846133a2565b50505050565b5f61329d30610f85565b90505f8082036132ae575050613371565b60146008546132bd91906139ec565b8211156132d65760146008546132d391906139ec565b91505b5f8290506132e381612d4d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161332890613c7a565b5f6040518083038185875af1925050503d805f8114613362576040519150601f19603f3d011682016040523d82523d5f602084013e613367565b606091505b5050809250505050505b565b5f818361338091906139ec565b905092915050565b5f81836133959190613a5a565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133de5780820151818401526020810190506133c3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613403826133a7565b61340d81856133b1565b935061341d8185602086016133c1565b613426816133e9565b840191505092915050565b5f6020820190508181035f83015261344981846133f9565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61348282613459565b9050919050565b61349281613478565b811461349c575f80fd5b50565b5f813590506134ad81613489565b92915050565b5f819050919050565b6134c5816134b3565b81146134cf575f80fd5b50565b5f813590506134e0816134bc565b92915050565b5f80604083850312156134fc576134fb613451565b5b5f6135098582860161349f565b925050602061351a858286016134d2565b9150509250929050565b5f8115159050919050565b61353881613524565b82525050565b5f6020820190506135515f83018461352f565b92915050565b5f6020828403121561356c5761356b613451565b5b5f6135798482850161349f565b91505092915050565b5f819050919050565b5f6135a56135a061359b84613459565b613582565b613459565b9050919050565b5f6135b68261358b565b9050919050565b5f6135c7826135ac565b9050919050565b6135d7816135bd565b82525050565b5f6020820190506135f05f8301846135ce565b92915050565b6135ff816134b3565b82525050565b5f6020820190506136185f8301846135f6565b92915050565b5f6020828403121561363357613632613451565b5b5f613640848285016134d2565b91505092915050565b5f805f606084860312156136605761365f613451565b5b5f61366d8682870161349f565b935050602061367e8682870161349f565b925050604061368f868287016134d2565b9150509250925092565b6136a281613478565b82525050565b5f6020820190506136bb5f830184613699565b92915050565b5f60ff82169050919050565b6136d6816136c1565b82525050565b5f6020820190506136ef5f8301846136cd565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613716576137156136f5565b5b8235905067ffffffffffffffff811115613733576137326136f9565b5b60208301915083602082028301111561374f5761374e6136fd565b5b9250929050565b5f8083601f84011261376b5761376a6136f5565b5b8235905067ffffffffffffffff811115613788576137876136f9565b5b6020830191508360208202830111156137a4576137a36136fd565b5b9250929050565b5f805f80604085870312156137c3576137c2613451565b5b5f85013567ffffffffffffffff8111156137e0576137df613455565b5b6137ec87828801613701565b9450945050602085013567ffffffffffffffff81111561380f5761380e613455565b5b61381b87828801613756565b925092505092959194509250565b61383281613524565b811461383c575f80fd5b50565b5f8135905061384d81613829565b92915050565b5f806040838503121561386957613868613451565b5b5f6138768582860161349f565b92505060206138878582860161383f565b9150509250929050565b5f602082840312156138a6576138a5613451565b5b5f6138b38482850161383f565b91505092915050565b5f80604083850312156138d2576138d1613451565b5b5f6138df8582860161349f565b92505060206138f08582860161349f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061393e57607f821691505b602082108103613951576139506138fa565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61398b6020836133b1565b915061399682613957565b602082019050919050565b5f6020820190508181035f8301526139b88161397f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139f6826134b3565b9150613a01836134b3565b9250828202613a0f816134b3565b91508282048414831517613a2657613a256139bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a64826134b3565b9150613a6f836134b3565b925082613a7f57613a7e613a2d565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613ae4602f836133b1565b9150613aef82613a8a565b604082019050919050565b5f6020820190508181035f830152613b1181613ad8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613b726028836133b1565b9150613b7d82613b18565b604082019050919050565b5f6020820190508181035f830152613b9f81613b66565b9050919050565b5f613bb0826134b3565b9150613bbb836134b3565b9250828201905080821115613bd357613bd26139bf565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613c10826134b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c4257613c416139bf565b5b600182019050919050565b5f81905092915050565b50565b5f613c655f83613c4d565b9150613c7082613c57565b5f82019050919050565b5f613c8482613c5a565b9150819050919050565b7f4d757374206b6565702066656573206174203525206f72206c657373000000005f82015250565b5f613cc2601c836133b1565b9150613ccd82613c8e565b602082019050919050565b5f6020820190508181035f830152613cef81613cb6565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613d2a600c836133b1565b9150613d3582613cf6565b602082019050919050565b5f6020820190508181035f830152613d5781613d1e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613db86039836133b1565b9150613dc382613d5e565b604082019050919050565b5f6020820190508181035f830152613de581613dac565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613e466025836133b1565b9150613e5182613dec565b604082019050919050565b5f6020820190508181035f830152613e7381613e3a565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613ed46024836133b1565b9150613edf82613e7a565b604082019050919050565b5f6020820190508181035f830152613f0181613ec8565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613f626035836133b1565b9150613f6d82613f08565b604082019050919050565b5f6020820190508181035f830152613f8f81613f56565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613ff06034836133b1565b9150613ffb82613f96565b604082019050919050565b5f6020820190508181035f83015261401d81613fe4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61407e6026836133b1565b915061408982614024565b604082019050919050565b5f6020820190508181035f8301526140ab81614072565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61410c6024836133b1565b9150614117826140b2565b604082019050919050565b5f6020820190508181035f83015261413981614100565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61419a6022836133b1565b91506141a582614140565b604082019050919050565b5f6020820190508181035f8301526141c78161418e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142286025836133b1565b9150614233826141ce565b604082019050919050565b5f6020820190508181035f8301526142558161421c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6142b66023836133b1565b91506142c18261425c565b604082019050919050565b5f6020820190508181035f8301526142e3816142aa565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61431e6016836133b1565b9150614329826142ea565b602082019050919050565b5f6020820190508181035f83015261434b81614312565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6143ac6035836133b1565b91506143b782614352565b604082019050919050565b5f6020820190508181035f8301526143d9816143a0565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144146013836133b1565b915061441f826143e0565b602082019050919050565b5f6020820190508181035f83015261444181614408565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6144a26036836133b1565b91506144ad82614448565b604082019050919050565b5f6020820190508181035f8301526144cf81614496565b9050919050565b5f6144e0826134b3565b91506144eb836134b3565b9250828203905081811115614503576145026139bf565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061454481613489565b92915050565b5f6020828403121561455f5761455e613451565b5b5f61456c84828501614536565b91505092915050565b5f819050919050565b5f61459861459361458e84614575565b613582565b6134b3565b9050919050565b6145a88161457e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6145e081613478565b82525050565b5f6145f183836145d7565b60208301905092915050565b5f602082019050919050565b5f614613826145ae565b61461d81856145b8565b9350614628836145c8565b805f5b8381101561465857815161463f88826145e6565b975061464a836145fd565b92505060018101905061462b565b5085935050505092915050565b5f60a0820190506146785f8301886135f6565b614685602083018761459f565b81810360408301526146978186614609565b90506146a66060830185613699565b6146b360808301846135f6565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6147176026836133b1565b9150614722826146bd565b604082019050919050565b5f6020820190508181035f8301526147448161470b565b905091905056fea26469706673582212205be473377f3b955d2c995c47f4ba9136f8d8c6dafd1a1e8e2667f6a1cb3a96ca64736f6c63430008150033000000000000000000000000f6a9b70b1125451181c373f9e3d3c393751aac31

Deployed Bytecode

0x608060405260043610610275575f3560e01c8063881dce601161014e578063bbc0c742116100c0578063dd62ed3e11610079578063dd62ed3e14610948578063e2f4560514610984578063eba4c333146109ae578063f2fde38b146109d6578063f8b45b05146109fe578063fabb0b4f14610a285761027c565b8063bbc0c7421461083e578063c024666814610868578063c18bc19514610890578063c8c8ebe4146108b8578063d257b34f146108e2578063d85ba0631461091e5761027c565b80639a7a23d6116101125780639a7a23d614610712578063a457c2d71461073a578063a672990c14610776578063a9059cbb1461079e578063aacebbe3146107da578063b62496f5146108025761027c565b8063881dce60146106445780638da5cb5b1461066c5780639213691314610696578063924de9b7146106c057806395d89b41146106e85761027c565b80634a62bb65116101e757806370a08231116101ab57806370a0823114610550578063715018a61461058c57806371fc4688146105a2578063751039fc146105ca5780637571336a146105f457806382aa7c681461061c5761027c565b80634a62bb651461049457806367243482146104be5780636a486a8e146104e65780636ddd1713146105105780636fc3eaec1461053a5761027c565b8063203e727e11610239578063203e727e1461037657806323b872dd1461039e57806327c8f835146103da578063313ce56714610404578063395093511461042e57806349bd5a5e1461046a5761027c565b806306fdde0314610280578063095ea7b3146102aa57806310d5de53146102e65780631694505e1461032257806318160ddd1461034c5761027c565b3661027c57005b5f80fd5b34801561028b575f80fd5b50610294610a52565b6040516102a19190613431565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb91906134e6565b610ae2565b6040516102dd919061353e565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190613557565b610aff565b604051610319919061353e565b60405180910390f35b34801561032d575f80fd5b50610336610b1c565b60405161034391906135dd565b60405180910390f35b348015610357575f80fd5b50610360610b40565b60405161036d9190613605565b60405180910390f35b348015610381575f80fd5b5061039c6004803603810190610397919061361e565b610b49565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190613649565b610c58565b6040516103d1919061353e565b60405180910390f35b3480156103e5575f80fd5b506103ee610d4a565b6040516103fb91906136a8565b60405180910390f35b34801561040f575f80fd5b50610418610d50565b60405161042591906136dc565b60405180910390f35b348015610439575f80fd5b50610454600480360381019061044f91906134e6565b610d58565b604051610461919061353e565b60405180910390f35b348015610475575f80fd5b5061047e610dff565b60405161048b91906136a8565b60405180910390f35b34801561049f575f80fd5b506104a8610e23565b6040516104b5919061353e565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df91906137ab565b610e35565b005b3480156104f1575f80fd5b506104fa610ede565b6040516105079190613605565b60405180910390f35b34801561051b575f80fd5b50610524610ee4565b604051610531919061353e565b60405180910390f35b348015610545575f80fd5b5061054e610ef7565b005b34801561055b575f80fd5b5061057660048036038101906105719190613557565b610f85565b6040516105839190613605565b60405180910390f35b348015610597575f80fd5b506105a0610fca565b005b3480156105ad575f80fd5b506105c860048036038101906105c3919061361e565b611051565b005b3480156105d5575f80fd5b506105de611126565b6040516105eb919061353e565b60405180910390f35b3480156105ff575f80fd5b5061061a60048036038101906106159190613853565b6111c3565b005b348015610627575f80fd5b50610642600480360381019061063d919061361e565b611297565b005b34801561064f575f80fd5b5061066a6004803603810190610665919061361e565b611361565b005b348015610677575f80fd5b50610680611422565b60405161068d91906136a8565b60405180910390f35b3480156106a1575f80fd5b506106aa61144a565b6040516106b79190613605565b60405180910390f35b3480156106cb575f80fd5b506106e660048036038101906106e19190613891565b611450565b005b3480156106f3575f80fd5b506106fc6114e9565b6040516107099190613431565b60405180910390f35b34801561071d575f80fd5b5061073860048036038101906107339190613853565b611579565b005b348015610745575f80fd5b50610760600480360381019061075b91906134e6565b611691565b60405161076d919061353e565b60405180910390f35b348015610781575f80fd5b5061079c60048036038101906107979190613853565b611777565b005b3480156107a9575f80fd5b506107c460048036038101906107bf91906134e6565b61189f565b6040516107d1919061353e565b60405180910390f35b3480156107e5575f80fd5b5061080060048036038101906107fb9190613557565b6118bc565b005b34801561080d575f80fd5b5061082860048036038101906108239190613557565b6119f6565b604051610835919061353e565b60405180910390f35b348015610849575f80fd5b50610852611a13565b60405161085f919061353e565b60405180910390f35b348015610873575f80fd5b5061088e60048036038101906108899190613853565b611a26565b005b34801561089b575f80fd5b506108b660048036038101906108b1919061361e565b611b48565b005b3480156108c3575f80fd5b506108cc611c57565b6040516108d99190613605565b60405180910390f35b3480156108ed575f80fd5b506109086004803603810190610903919061361e565b611c5d565b604051610915919061353e565b60405180910390f35b348015610929575f80fd5b50610932611db1565b60405161093f9190613605565b60405180910390f35b348015610953575f80fd5b5061096e600480360381019061096991906138bc565b611db7565b60405161097b9190613605565b60405180910390f35b34801561098f575f80fd5b50610998611e39565b6040516109a59190613605565b60405180910390f35b3480156109b9575f80fd5b506109d460048036038101906109cf919061361e565b611e3f565b005b3480156109e1575f80fd5b506109fc60048036038101906109f79190613557565b611f14565b005b348015610a09575f80fd5b50610a1261200a565b604051610a1f9190613605565b60405180910390f35b348015610a33575f80fd5b50610a3c612010565b604051610a499190613605565b60405180910390f35b606060038054610a6190613927565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8d90613927565b8015610ad85780601f10610aaf57610100808354040283529160200191610ad8565b820191905f5260205f20905b815481529060010190602001808311610abb57829003601f168201915b5050505050905090565b5f610af5610aee612016565b848461201d565b6001905092915050565b6014602052805f5260405f205f915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610b51612016565b73ffffffffffffffffffffffffffffffffffffffff16610b6f611422565b73ffffffffffffffffffffffffffffffffffffffff1614610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc906139a1565b60405180910390fd5b670de0b6b3a76400006103e86001610bdb610b40565b610be591906139ec565b610bef9190613a5a565b610bf99190613a5a565b811015610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3290613afa565b60405180910390fd5b670de0b6b3a764000081610c4f91906139ec565b60078190555050565b5f610c648484846121e0565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610cab612016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190613b88565b60405180910390fd5b610d3e85610d36612016565b85840361201d565b60019150509392505050565b61dead81565b5f6012905090565b5f610df5610d64612016565b848460015f610d71612016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610df09190613ba6565b61201d565b6001905092915050565b7f000000000000000000000000d884ec91d3ab2f7cda26d203ae8c0b8bedb79ba281565b600a5f9054906101000a900460ff1681565b5f84849050118015610e4c57508383905082829050145b610e54575f80fd5b5f3390505f5b85859050811015610ed657610ec382878784818110610e7c57610e7b613bd9565b5b9050602002016020810190610e919190613557565b670de0b6b3a7640000878786818110610ead57610eac613bd9565b5b90506020020135610ebe91906139ec565b6121e0565b8080610ece90613c06565b915050610e5a565b505050505050565b60105481565b600a60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610f3d90613c7a565b5f6040518083038185875af1925050503d805f8114610f77576040519150601f19603f3d011682016040523d82523d5f602084013e610f7c565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610fd2612016565b73ffffffffffffffffffffffffffffffffffffffff16610ff0611422565b73ffffffffffffffffffffffffffffffffffffffff1614611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d906139a1565b60405180910390fd5b61104f5f612c8a565b565b611059612016565b73ffffffffffffffffffffffffffffffffffffffff16611077611422565b73ffffffffffffffffffffffffffffffffffffffff16146110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c4906139a1565b60405180910390fd5b80600f81905550600f54600e81905550600a600e541115611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a90613cd8565b60405180910390fd5b50565b5f61112f612016565b73ffffffffffffffffffffffffffffffffffffffff1661114d611422565b73ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906139a1565b60405180910390fd5b5f600a5f6101000a81548160ff0219169083151502179055506001905090565b6111cb612016565b73ffffffffffffffffffffffffffffffffffffffff166111e9611422565b73ffffffffffffffffffffffffffffffffffffffff161461123f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611236906139a1565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61129f612016565b73ffffffffffffffffffffffffffffffffffffffff166112bd611422565b73ffffffffffffffffffffffffffffffffffffffff1614611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a906139a1565b60405180910390fd5b80600d819055506001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff02191690831515021790555043600b8190555042600c8190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113a1612016565b73ffffffffffffffffffffffffffffffffffffffff16146113c0575f80fd5b6113c930610f85565b81111580156113d757505f81115b611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d90613d40565b60405180910390fd5b61141f81612d4d565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b611458612016565b73ffffffffffffffffffffffffffffffffffffffff16611476611422565b73ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c3906139a1565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b6060600480546114f890613927565b80601f016020809104026020016040519081016040528092919081815260200182805461152490613927565b801561156f5780601f106115465761010080835404028352916020019161156f565b820191905f5260205f20905b81548152906001019060200180831161155257829003601f168201915b5050505050905090565b611581612016565b73ffffffffffffffffffffffffffffffffffffffff1661159f611422565b73ffffffffffffffffffffffffffffffffffffffff16146115f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ec906139a1565b60405180910390fd5b7f000000000000000000000000d884ec91d3ab2f7cda26d203ae8c0b8bedb79ba273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90613dce565b60405180910390fd5b61168d8282612f80565b5050565b5f8060015f61169e612016565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90613e5c565b60405180910390fd5b61176c611763612016565b8585840361201d565b600191505092915050565b61177f612016565b73ffffffffffffffffffffffffffffffffffffffff1661179d611422565b73ffffffffffffffffffffffffffffffffffffffff16146117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea906139a1565b60405180910390fd5b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6118b26118ab612016565b84846121e0565b6001905092915050565b6118c4612016565b73ffffffffffffffffffffffffffffffffffffffff166118e2611422565b73ffffffffffffffffffffffffffffffffffffffff1614611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f906139a1565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6015602052805f5260405f205f915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611a2e612016565b73ffffffffffffffffffffffffffffffffffffffff16611a4c611422565b73ffffffffffffffffffffffffffffffffffffffff1614611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a99906139a1565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611b3c919061353e565b60405180910390a25050565b611b50612016565b73ffffffffffffffffffffffffffffffffffffffff16611b6e611422565b73ffffffffffffffffffffffffffffffffffffffff1614611bc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbb906139a1565b60405180910390fd5b670de0b6b3a76400006103e86005611bda610b40565b611be491906139ec565b611bee9190613a5a565b611bf89190613a5a565b811015611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190613eea565b60405180910390fd5b670de0b6b3a764000081611c4e91906139ec565b60098190555050565b60075481565b5f611c66612016565b73ffffffffffffffffffffffffffffffffffffffff16611c84611422565b73ffffffffffffffffffffffffffffffffffffffff1614611cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd1906139a1565b60405180910390fd5b620186a06001611ce8610b40565b611cf291906139ec565b611cfc9190613a5a565b821015611d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3590613f78565b60405180910390fd5b6103e86005611d4b610b40565b611d5591906139ec565b611d5f9190613a5a565b821115611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890614006565b60405180910390fd5b8160088190555060019050919050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b611e47612016565b73ffffffffffffffffffffffffffffffffffffffff16611e65611422565b73ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb2906139a1565b60405180910390fd5b80601181905550601154601081905550600a6010541115611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890613cd8565b60405180910390fd5b50565b611f1c612016565b73ffffffffffffffffffffffffffffffffffffffff16611f3a611422565b73ffffffffffffffffffffffffffffffffffffffff1614611f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f87906139a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff590614094565b60405180910390fd5b61200781612c8a565b50565b60095481565b600d5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208290614122565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f0906141b0565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121d39190613605565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361224e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122459061423e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b3906142cc565b60405180910390fd5b5f81036122d3576122ce83835f61301e565b612c85565b5f439050600a5f9054906101000a900460ff16156128bb576122f3611422565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156123615750612331611422565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561239957505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123d3575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123ec5750600560149054906101000a900460ff16155b156128ba5780600d54600b546124029190613ba6565b1061242e576032600f81905550600f54600e8190555060326011819055506011546010819055506124f1565b600d54600b5461243e9190613ba6565b8111801561245a57506014600b546124569190613ba6565b8111155b156124a9576a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550600f8081905550600f54600e8190555060146011819055506011546010819055506124f0565b6a108b2a2c280290940000006007819055506a108b2a2c280290940000006009819055506001600f81905550600f54600e8190555060016011819055506011546010819055505b5b600a60019054906101000a900460ff166125e05760125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125a0575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6125df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d690614334565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561267d575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612724576007548211156126c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126be906143c2565b60405180910390fd5b6009546126d384610f85565b836126de9190613ba6565b111561271f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127169061442a565b60405180910390fd5b6128b9565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127c1575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128105760075482111561280b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612802906144b8565b60405180910390fd5b6128b8565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128b75760095461286a84610f85565b836128759190613ba6565b11156128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad9061442a565b60405180910390fd5b5b5b5b5b5b5f6128c530610f85565b90505f60085482101590508080156128e95750600a60029054906101000a900460ff165b80156129025750600560149054906101000a900460ff16155b801561291f5750600260135f8581526020019081526020015f2054105b8015612972575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129c5575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a18575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a7f576001600560146101000a81548160ff021916908315150217905550612a40613293565b60135f8481526020019081526020015f205f8154612a5d90613c06565b919050819055505f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff1615905060125f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b2e575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b37575f90505b5f8115612c745760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b9557505f601054115b15612bc957612bc26064612bb46010548961337390919063ffffffff16565b61338890919063ffffffff16565b9050612c51565b60155f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c2057505f600e54115b15612c5057612c4d6064612c3f600e548961337390919063ffffffff16565b61338890919063ffffffff16565b90505b5b5f811115612c6557612c6488308361301e565b5b8086612c7191906144d6565b95505b612c7f88888861301e565b50505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612d6957612d68614509565b5b604051908082528060200260200182016040528015612d975781602001602082028036833780820191505090505b50905030815f81518110612dae57612dad613bd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e75919061454a565b81600181518110612e8957612e88613bd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612eee307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461201d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612f4f959493929190614665565b5f604051808303815f87803b158015612f66575f80fd5b505af1158015612f78573d5f803e3d5ffd5b505050505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361308c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130839061423e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036130fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130f1906142cc565b60405180910390fd5b61310583838361339d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317f9061472d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132169190613ba6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161327a9190613605565b60405180910390a361328d8484846133a2565b50505050565b5f61329d30610f85565b90505f8082036132ae575050613371565b60146008546132bd91906139ec565b8211156132d65760146008546132d391906139ec565b91505b5f8290506132e381612d4d565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161332890613c7a565b5f6040518083038185875af1925050503d805f8114613362576040519150601f19603f3d011682016040523d82523d5f602084013e613367565b606091505b5050809250505050505b565b5f818361338091906139ec565b905092915050565b5f81836133959190613a5a565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133de5780820151818401526020810190506133c3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613403826133a7565b61340d81856133b1565b935061341d8185602086016133c1565b613426816133e9565b840191505092915050565b5f6020820190508181035f83015261344981846133f9565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61348282613459565b9050919050565b61349281613478565b811461349c575f80fd5b50565b5f813590506134ad81613489565b92915050565b5f819050919050565b6134c5816134b3565b81146134cf575f80fd5b50565b5f813590506134e0816134bc565b92915050565b5f80604083850312156134fc576134fb613451565b5b5f6135098582860161349f565b925050602061351a858286016134d2565b9150509250929050565b5f8115159050919050565b61353881613524565b82525050565b5f6020820190506135515f83018461352f565b92915050565b5f6020828403121561356c5761356b613451565b5b5f6135798482850161349f565b91505092915050565b5f819050919050565b5f6135a56135a061359b84613459565b613582565b613459565b9050919050565b5f6135b68261358b565b9050919050565b5f6135c7826135ac565b9050919050565b6135d7816135bd565b82525050565b5f6020820190506135f05f8301846135ce565b92915050565b6135ff816134b3565b82525050565b5f6020820190506136185f8301846135f6565b92915050565b5f6020828403121561363357613632613451565b5b5f613640848285016134d2565b91505092915050565b5f805f606084860312156136605761365f613451565b5b5f61366d8682870161349f565b935050602061367e8682870161349f565b925050604061368f868287016134d2565b9150509250925092565b6136a281613478565b82525050565b5f6020820190506136bb5f830184613699565b92915050565b5f60ff82169050919050565b6136d6816136c1565b82525050565b5f6020820190506136ef5f8301846136cd565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613716576137156136f5565b5b8235905067ffffffffffffffff811115613733576137326136f9565b5b60208301915083602082028301111561374f5761374e6136fd565b5b9250929050565b5f8083601f84011261376b5761376a6136f5565b5b8235905067ffffffffffffffff811115613788576137876136f9565b5b6020830191508360208202830111156137a4576137a36136fd565b5b9250929050565b5f805f80604085870312156137c3576137c2613451565b5b5f85013567ffffffffffffffff8111156137e0576137df613455565b5b6137ec87828801613701565b9450945050602085013567ffffffffffffffff81111561380f5761380e613455565b5b61381b87828801613756565b925092505092959194509250565b61383281613524565b811461383c575f80fd5b50565b5f8135905061384d81613829565b92915050565b5f806040838503121561386957613868613451565b5b5f6138768582860161349f565b92505060206138878582860161383f565b9150509250929050565b5f602082840312156138a6576138a5613451565b5b5f6138b38482850161383f565b91505092915050565b5f80604083850312156138d2576138d1613451565b5b5f6138df8582860161349f565b92505060206138f08582860161349f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061393e57607f821691505b602082108103613951576139506138fa565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61398b6020836133b1565b915061399682613957565b602082019050919050565b5f6020820190508181035f8301526139b88161397f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139f6826134b3565b9150613a01836134b3565b9250828202613a0f816134b3565b91508282048414831517613a2657613a256139bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a64826134b3565b9150613a6f836134b3565b925082613a7f57613a7e613a2d565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613ae4602f836133b1565b9150613aef82613a8a565b604082019050919050565b5f6020820190508181035f830152613b1181613ad8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613b726028836133b1565b9150613b7d82613b18565b604082019050919050565b5f6020820190508181035f830152613b9f81613b66565b9050919050565b5f613bb0826134b3565b9150613bbb836134b3565b9250828201905080821115613bd357613bd26139bf565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613c10826134b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c4257613c416139bf565b5b600182019050919050565b5f81905092915050565b50565b5f613c655f83613c4d565b9150613c7082613c57565b5f82019050919050565b5f613c8482613c5a565b9150819050919050565b7f4d757374206b6565702066656573206174203525206f72206c657373000000005f82015250565b5f613cc2601c836133b1565b9150613ccd82613c8e565b602082019050919050565b5f6020820190508181035f830152613cef81613cb6565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613d2a600c836133b1565b9150613d3582613cf6565b602082019050919050565b5f6020820190508181035f830152613d5781613d1e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613db86039836133b1565b9150613dc382613d5e565b604082019050919050565b5f6020820190508181035f830152613de581613dac565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613e466025836133b1565b9150613e5182613dec565b604082019050919050565b5f6020820190508181035f830152613e7381613e3a565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f613ed46024836133b1565b9150613edf82613e7a565b604082019050919050565b5f6020820190508181035f830152613f0181613ec8565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f613f626035836133b1565b9150613f6d82613f08565b604082019050919050565b5f6020820190508181035f830152613f8f81613f56565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f613ff06034836133b1565b9150613ffb82613f96565b604082019050919050565b5f6020820190508181035f83015261401d81613fe4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61407e6026836133b1565b915061408982614024565b604082019050919050565b5f6020820190508181035f8301526140ab81614072565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61410c6024836133b1565b9150614117826140b2565b604082019050919050565b5f6020820190508181035f83015261413981614100565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61419a6022836133b1565b91506141a582614140565b604082019050919050565b5f6020820190508181035f8301526141c78161418e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142286025836133b1565b9150614233826141ce565b604082019050919050565b5f6020820190508181035f8301526142558161421c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6142b66023836133b1565b91506142c18261425c565b604082019050919050565b5f6020820190508181035f8301526142e3816142aa565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61431e6016836133b1565b9150614329826142ea565b602082019050919050565b5f6020820190508181035f83015261434b81614312565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6143ac6035836133b1565b91506143b782614352565b604082019050919050565b5f6020820190508181035f8301526143d9816143a0565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144146013836133b1565b915061441f826143e0565b602082019050919050565b5f6020820190508181035f83015261444181614408565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6144a26036836133b1565b91506144ad82614448565b604082019050919050565b5f6020820190508181035f8301526144cf81614496565b9050919050565b5f6144e0826134b3565b91506144eb836134b3565b9250828203905081811115614503576145026139bf565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061454481613489565b92915050565b5f6020828403121561455f5761455e613451565b5b5f61456c84828501614536565b91505092915050565b5f819050919050565b5f61459861459361458e84614575565b613582565b6134b3565b9050919050565b6145a88161457e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6145e081613478565b82525050565b5f6145f183836145d7565b60208301905092915050565b5f602082019050919050565b5f614613826145ae565b61461d81856145b8565b9350614628836145c8565b805f5b8381101561465857815161463f88826145e6565b975061464a836145fd565b92505060018101905061462b565b5085935050505092915050565b5f60a0820190506146785f8301886135f6565b614685602083018761459f565b81810360408301526146978186614609565b90506146a66060830185613699565b6146b360808301846135f6565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6147176026836133b1565b9150614722826146bd565b604082019050919050565b5f6020820190508181035f8301526147448161470b565b905091905056fea26469706673582212205be473377f3b955d2c995c47f4ba9136f8d8c6dafd1a1e8e2667f6a1cb3a96ca64736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f6a9b70b1125451181c373f9e3d3c393751aac31

-----Decoded View---------------
Arg [0] : _wallet1 (address): 0xf6A9b70B1125451181c373f9e3d3C393751aac31

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f6a9b70b1125451181c373f9e3d3c393751aac31


Deployed Bytecode Sourcemap

15112:12812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2809:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3723:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16025:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15191:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3130:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18790:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3900:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15294:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3029:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4400:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15249:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15541:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21780:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15837:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15621:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20342:174;;;;;;;;;;;;;:::i;:::-;;3246:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;927:103;;;;;;;;;;;;;:::i;:::-;;21036:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18156:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19552:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17905:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20113:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;702:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15872:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19815:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2917:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20528:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4623:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19337:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3381:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21541:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16097:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15581:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19923:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19073:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15426:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18285:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15763:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3564:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15468:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21286:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1040:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15508:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15729:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2809:100;2863:13;2896:5;2889:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2809:100;:::o;3723:169::-;3806:4;3823:39;3832:12;:10;:12::i;:::-;3846:7;3855:6;3823:8;:39::i;:::-;3880:4;3873:11;;3723:169;;;;:::o;16025:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15191:51::-;;;:::o;3130:108::-;3191:7;3218:12;;3211:19;;3130:108;:::o;18790:275::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18927:4:::1;18919;18914:1;18898:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18897:26;;;;:::i;:::-;18896:35;;;;:::i;:::-;18886:6;:45;;18864:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;19050:6;19040;:17;;;;:::i;:::-;19017:20;:40;;;;18790:275:::0;:::o;3900:492::-;4040:4;4057:36;4067:6;4075:9;4086:6;4057:9;:36::i;:::-;4106:24;4133:11;:19;4145:6;4133:19;;;;;;;;;;;;;;;:33;4153:12;:10;:12::i;:::-;4133:33;;;;;;;;;;;;;;;;4106:60;;4205:6;4185:16;:26;;4177:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4292:57;4301:6;4309:12;:10;:12::i;:::-;4342:6;4323:16;:25;4292:8;:57::i;:::-;4380:4;4373:11;;;3900:492;;;;;:::o;15294:53::-;15340:6;15294:53;:::o;3029:93::-;3087:5;3112:2;3105:9;;3029:93;:::o;4400:215::-;4488:4;4505:80;4514:12;:10;:12::i;:::-;4528:7;4574:10;4537:11;:25;4549:12;:10;:12::i;:::-;4537:25;;;;;;;;;;;;;;;:34;4563:7;4537:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4505:8;:80::i;:::-;4603:4;4596:11;;4400:215;;;;:::o;15249:38::-;;;:::o;15541:33::-;;;;;;;;;;;;;:::o;21780:353::-;21904:1;21885:9;;:16;;:20;:58;;;;;21927:9;;:16;;21909:7;;:14;;:34;21885:58;21877:67;;;;;;21957:12;21972:10;21957:25;;22002:6;21997:129;22018:9;;:16;;22014:1;:20;21997:129;;;22058:52;22068:4;22074:9;;22084:1;22074:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22102:6;22088:7;;22096:1;22088:10;;;;;;;:::i;:::-;;;;;;;;:21;;;;:::i;:::-;22058:9;:52::i;:::-;22036:3;;;;;:::i;:::-;;;;21997:129;;;;21864:269;21780:353;;;;:::o;15837:28::-;;;;:::o;15621:31::-;;;;;;;;;;;;;:::o;20342:174::-;20384:12;20429:15;;;;;;;;;;;20421:29;;20472:21;20421:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20407:101;;;;;20373:143;20342:174::o;3246:127::-;3320:7;3347:9;:18;3357:7;3347:18;;;;;;;;;;;;;;;;3340:25;;3246:127;;;:::o;927:103::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;992:30:::1;1019:1;992:18;:30::i;:::-;927:103::o:0;21036:242::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21146:13:::1;21128:15;:31;;;;21185:15;;21170:12;:30;;;;21235:2;21219:12;;:18;;21211:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21036:242:::0;:::o;18156:121::-;18208:4;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18242:5:::1;18225:14;;:22;;;;;;;;;;;;;;;;;;18265:4;18258:11;;18156:121:::0;:::o;19552:167::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19707:4:::1;19665:31;:39;19697:6;19665:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;19552:167:::0;;:::o;17905:243::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17992:11:::1;17979:10;:24;;;;18030:4;18014:13;;:20;;;;;;;;;;;;;;;;;;18059:4;18045:11;;:18;;;;;;;;;;;;;;;;;;18087:12;18074:10;:25;;;;18125:15;18110:12;:30;;;;17905:243:::0;:::o;20113:221::-;20191:15;;;;;;;;;;;20175:31;;:12;:10;:12::i;:::-;:31;;;20167:40;;;;;;20236:24;20254:4;20236:9;:24::i;:::-;20226:6;:34;;:48;;;;;20273:1;20264:6;:10;20226:48;20218:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20302:24;20319:6;20302:16;:24::i;:::-;20113:221;:::o;702:87::-;748:7;775:6;;;;;;;;;;;768:13;;702:87;:::o;15872:31::-;;;;:::o;19815:100::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19900:7:::1;19886:11;;:21;;;;;;;;;;;;;;;;;;19815:100:::0;:::o;2917:104::-;2973:13;3006:7;2999:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2917:104;:::o;20528:304::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20672:13:::1;20664:21;;:4;:21;;::::0;20642:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20783:41;20812:4;20818:5;20783:28;:41::i;:::-;20528:304:::0;;:::o;4623:413::-;4716:4;4733:24;4760:11;:25;4772:12;:10;:12::i;:::-;4760:25;;;;;;;;;;;;;;;:34;4786:7;4760:34;;;;;;;;;;;;;;;;4733:61;;4833:15;4813:16;:35;;4805:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4926:67;4935:12;:10;:12::i;:::-;4949:7;4977:15;4958:16;:34;4926:8;:67::i;:::-;5024:4;5017:11;;;4623:413;;;;:::o;19337:207::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19481:4:::1;19435:31;:43;19467:10;19435:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;19530:4;19496:19;:31;19516:10;19496:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19337:207:::0;;:::o;3381:175::-;3467:4;3484:42;3494:12;:10;:12::i;:::-;3508:9;3519:6;3484:9;:42::i;:::-;3544:4;3537:11;;3381:175;;;;:::o;21541:231::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21701:15:::1;;;;;;;;;;;21658:59;;21681:18;21658:59;;;;;;;;;;;;21746:18;21728:15;;:36;;;;;;;;;;;;;;;;;;21541:231:::0;:::o;16097:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;15581:33::-;;;;;;;;;;;;;:::o;19923:182::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20039:8:::1;20008:19;:28;20028:7;20008:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20079:7;20063:34;;;20088:8;20063:34;;;;;;:::i;:::-;;;;;;;;19923:182:::0;;:::o;19073:256::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19213:4:::1;19205;19200:1;19184:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19183:26;;;;:::i;:::-;19182:35;;;;:::i;:::-;19172:6;:45;;19150:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;19314:6;19304;:17;;;;:::i;:::-;19292:9;:29;;;;19073:256:::0;:::o;15426:35::-;;;;:::o;18285:497::-;18393:4;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18472:6:::1;18467:1;18451:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18450:28;;;;:::i;:::-;18437:9;:41;;18415:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;18627:4;18622:1;18606:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18605:26;;;;:::i;:::-;18592:9;:39;;18570:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;18743:9;18722:18;:30;;;;18770:4;18763:11;;18285:497:::0;;;:::o;15763:27::-;;;;:::o;3564:151::-;3653:7;3680:11;:18;3692:5;3680:18;;;;;;;;;;;;;;;:27;3699:7;3680:27;;;;;;;;;;;;;;;;3673:34;;3564:151;;;;:::o;15468:33::-;;;;:::o;21286:247::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21398:13:::1;21379:16;:32;;;;21438:16;;21422:13;:32;;;;21490:2;21473:13;;:19;;21465:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21286:247:::0;:::o;1040:201::-;850:12;:10;:12::i;:::-;839:23;;:7;:5;:7::i;:::-;:23;;;831:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1149:1:::1;1129:22;;:8;:22;;::::0;1121:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1205:28;1224:8;1205:18;:28::i;:::-;1040:201:::0;:::o;15508:24::-;;;;:::o;15729:25::-;;;;:::o;242:98::-;295:7;322:10;315:17;;242:98;:::o;6791:380::-;6944:1;6927:19;;:5;:19;;;6919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7025:1;7006:21;;:7;:21;;;6998:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7109:6;7079:11;:18;7091:5;7079:18;;;;;;;;;;;;;;;:27;7098:7;7079:27;;;;;;;;;;;;;;;:36;;;;7147:7;7131:32;;7140:5;7131:32;;;7156:6;7131:32;;;;;;:::i;:::-;;;;;;;;6791:380;;;:::o;22141:4631::-;22289:1;22273:18;;:4;:18;;;22265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22366:1;22352:16;;:2;:16;;;22344:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22435:1;22425:6;:11;22421:93;;22453:28;22469:4;22475:2;22479:1;22453:15;:28::i;:::-;22496:7;;22421:93;22526:16;22545:12;22526:31;;22574:14;;;;;;;;;;;22570:2735;;;22635:7;:5;:7::i;:::-;22627:15;;:4;:15;;;;:49;;;;;22669:7;:5;:7::i;:::-;22663:13;;:2;:13;;;;22627:49;:86;;;;;22711:1;22697:16;;:2;:16;;;;22627:86;:128;;;;;22748:6;22734:21;;:2;:21;;;;22627:128;:158;;;;;22777:8;;;;;;;;;;;22776:9;22627:158;22605:2689;;;22868:8;22853:10;;22840;;:23;;;;:::i;:::-;22839:37;22818:1023;;22930:2;22912:15;:20;;;;22966:15;;22951:12;:30;;;;23021:2;23002:16;:21;;;;23058:16;;23042:13;:32;;;;22818:1023;;;23128:10;;23115;;:23;;;;:::i;:::-;23103:8;:36;:67;;;;;23168:2;23155:10;;:15;;;;:::i;:::-;23143:8;:27;;23103:67;23100:741;;;23230:17;23206:20;:41;;;;23279:17;23266:9;:30;;;;23335:2;23317:15;:20;;;;23371:15;;23356:12;:30;;;;23426:2;23407:16;:21;;;;23463:16;;23447:13;:32;;;;23100:741;;;23576:17;23552:20;:41;;;;23625:17;23612:9;:30;;;;23681:1;23663:15;:19;;;;23716:15;;23701:12;:30;;;;23771:1;23752:16;:20;;;;23807:16;;23791:13;:32;;;;23100:741;22818:1023;23866:13;;;;;;;;;;;23861:223;;23938:19;:25;23958:4;23938:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23967:19;:23;23987:2;23967:23;;;;;;;;;;;;;;;;;;;;;;;;;23938:52;23904:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;23861:223;24158:25;:31;24184:4;24158:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24215:31;:35;24247:2;24215:35;;;;;;;;;;;;;;;;;;;;;;;;;24214:36;24158:92;24132:1147;;;24337:20;;24327:6;:30;;24293:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;24545:9;;24528:13;24538:2;24528:9;:13::i;:::-;24519:6;:22;;;;:::i;:::-;:35;;24485:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;24132:1147;;;24723:25;:29;24749:2;24723:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24778:31;:37;24810:4;24778:37;;;;;;;;;;;;;;;;;;;;;;;;;24777:38;24723:92;24697:582;;;24902:20;;24892:6;:30;;24858:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;24697:582;;;25059:31;:35;25091:2;25059:35;;;;;;;;;;;;;;;;;;;;;;;;;25054:225;;25179:9;;25162:13;25172:2;25162:9;:13::i;:::-;25153:6;:22;;;;:::i;:::-;:35;;25119:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;25054:225;24697:582;24132:1147;22605:2689;22570:2735;25317:28;25348:24;25366:4;25348:9;:24::i;:::-;25317:55;;25385:12;25424:18;;25400:20;:42;;25385:57;;25473:7;:35;;;;;25497:11;;;;;;;;;;;25473:35;:61;;;;;25526:8;;;;;;;;;;;25525:9;25473:61;:105;;;;;25576:1;25552:11;:21;25564:8;25552:21;;;;;;;;;;;;:25;25473:105;:154;;;;;25596:25;:31;25622:4;25596:31;;;;;;;;;;;;;;;;;;;;;;;;;25595:32;25473:154;:197;;;;;25645:19;:25;25665:4;25645:25;;;;;;;;;;;;;;;;;;;;;;;;;25644:26;25473:197;:238;;;;;25688:19;:23;25708:2;25688:23;;;;;;;;;;;;;;;;;;;;;;;;;25687:24;25473:238;25455:410;;;25749:4;25738:8;;:15;;;;;;;;;;;;;;;;;;25770:10;:8;:10::i;:::-;25799:11;:21;25811:8;25799:21;;;;;;;;;;;;25797:23;;;;;:::i;:::-;;;;;;;;25848:5;25837:8;;:16;;;;;;;;;;;;;;;;;;25455:410;25877:12;25893:8;;;;;;;;;;;25892:9;25877:24;;26003:19;:25;26023:4;26003:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;26032:19;:23;26052:2;26032:23;;;;;;;;;;;;;;;;;;;;;;;;;26003:52;25999:100;;;26082:5;26072:15;;25999:100;26111:12;26216:7;26212:507;;;26268:25;:29;26294:2;26268:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;26317:1;26301:13;;:17;26268:50;26264:306;;;26346:34;26376:3;26346:25;26357:13;;26346:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;26339:41;;26264:306;;;26442:25;:31;26468:4;26442:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;26492:1;26477:12;;:16;26442:51;26438:132;;;26521:33;26550:3;26521:24;26532:12;;26521:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;26514:40;;26438:132;26264:306;26597:1;26590:4;:8;26586:91;;;26619:42;26635:4;26649;26656;26619:15;:42::i;:::-;26586:91;26703:4;26693:14;;;;;:::i;:::-;;;26212:507;26731:33;26747:4;26753:2;26757:6;26731:15;:33::i;:::-;22254:4518;;;;;22141:4631;;;;:::o;1249:191::-;1323:16;1342:6;;;;;;;;;;;1323:25;;1368:8;1359:6;;:17;;;;;;;;;;;;;;;;;;1423:8;1392:40;;1413:8;1392:40;;;;;;;;;;;;1312:128;1249:191;:::o;26780:589::-;26906:21;26944:1;26930:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26906:40;;26975:4;26957;26962:1;26957:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27001:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26991:4;26996:1;26991:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27036:62;27053:4;27068:15;27086:11;27036:8;:62::i;:::-;27137:15;:66;;;27218:11;27244:1;27288:4;27315;27335:15;27137:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26835:534;26780:589;:::o;20840:188::-;20957:5;20923:25;:31;20949:4;20923:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21014:5;20980:40;;21008:4;20980:40;;;;;;;;;;;;20840:188;;:::o;5044:733::-;5202:1;5184:20;;:6;:20;;;5176:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5286:1;5265:23;;:9;:23;;;5257:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5341:47;5362:6;5370:9;5381:6;5341:20;:47::i;:::-;5401:21;5425:9;:17;5435:6;5425:17;;;;;;;;;;;;;;;;5401:41;;5478:6;5461:13;:23;;5453:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5599:6;5583:13;:22;5563:9;:17;5573:6;5563:17;;;;;;;;;;;;;;;:42;;;;5651:6;5627:9;:20;5637:9;5627:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5692:9;5675:35;;5684:6;5675:35;;;5703:6;5675:35;;;;;;:::i;:::-;;;;;;;;5723:46;5743:6;5751:9;5762:6;5723:19;:46::i;:::-;5165:612;5044:733;;;:::o;27379:540::-;27418:23;27444:24;27462:4;27444:9;:24::i;:::-;27418:50;;27479:12;27527:1;27508:15;:20;27504:59;;27545:7;;;;27504:59;27618:2;27597:18;;:23;;;;:::i;:::-;27579:15;:41;27575:115;;;27676:2;27655:18;;:23;;;;:::i;:::-;27637:41;;27575:115;27704:26;27733:15;27704:44;;27761:36;27778:18;27761:16;:36::i;:::-;27832:15;;;;;;;;;;;27824:29;;27875:21;27824:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27810:101;;;;;27407:512;;;27379:540;:::o;8797:98::-;8855:7;8886:1;8882;:5;;;;:::i;:::-;8875:12;;8797:98;;;;:::o;8903:::-;8961:7;8992:1;8988;:5;;;;:::i;:::-;8981:12;;8903:98;;;;:::o;7179:125::-;;;;:::o;7312:124::-;;;;:::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;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:329::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:53;5415:7;5406:6;5395:9;5391:22;5370:53;:::i;:::-;5360:63;;5316:117;5111:329;;;;:::o;5446:619::-;5523:6;5531;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5812:118;5969:2;5995:53;6040:7;6031:6;6020:9;6016:22;5995:53;:::i;:::-;5985:63;;5940:118;5446:619;;;;;:::o;6071:118::-;6158:24;6176:5;6158:24;:::i;:::-;6153:3;6146:37;6071:118;;:::o;6195:222::-;6288:4;6326:2;6315:9;6311:18;6303:26;;6339:71;6407:1;6396:9;6392:17;6383:6;6339:71;:::i;:::-;6195:222;;;;:::o;6423:86::-;6458:7;6498:4;6491:5;6487:16;6476:27;;6423:86;;;:::o;6515:112::-;6598:22;6614:5;6598:22;:::i;:::-;6593:3;6586:35;6515:112;;:::o;6633:214::-;6722:4;6760:2;6749:9;6745:18;6737:26;;6773:67;6837:1;6826:9;6822:17;6813:6;6773:67;:::i;:::-;6633:214;;;;:::o;6853:117::-;6962:1;6959;6952:12;6976:117;7085:1;7082;7075:12;7099:117;7208:1;7205;7198:12;7239:568;7312:8;7322:6;7372:3;7365:4;7357:6;7353:17;7349:27;7339:122;;7380:79;;:::i;:::-;7339:122;7493:6;7480:20;7470:30;;7523:18;7515:6;7512:30;7509:117;;;7545:79;;:::i;:::-;7509:117;7659:4;7651:6;7647:17;7635:29;;7713:3;7705:4;7697:6;7693:17;7683:8;7679:32;7676:41;7673:128;;;7720:79;;:::i;:::-;7673:128;7239:568;;;;;:::o;7830:::-;7903:8;7913:6;7963:3;7956:4;7948:6;7944:17;7940:27;7930:122;;7971:79;;:::i;:::-;7930:122;8084:6;8071:20;8061:30;;8114:18;8106:6;8103:30;8100:117;;;8136:79;;:::i;:::-;8100:117;8250:4;8242:6;8238:17;8226:29;;8304:3;8296:4;8288:6;8284:17;8274:8;8270:32;8267:41;8264:128;;;8311:79;;:::i;:::-;8264:128;7830:568;;;;;:::o;8404:934::-;8526:6;8534;8542;8550;8599:2;8587:9;8578:7;8574:23;8570:32;8567:119;;;8605:79;;:::i;:::-;8567:119;8753:1;8742:9;8738:17;8725:31;8783:18;8775:6;8772:30;8769:117;;;8805:79;;:::i;:::-;8769:117;8918:80;8990:7;8981:6;8970:9;8966:22;8918:80;:::i;:::-;8900:98;;;;8696:312;9075:2;9064:9;9060:18;9047:32;9106:18;9098:6;9095:30;9092:117;;;9128:79;;:::i;:::-;9092:117;9241:80;9313:7;9304:6;9293:9;9289:22;9241:80;:::i;:::-;9223:98;;;;9018:313;8404:934;;;;;;;:::o;9344:116::-;9414:21;9429:5;9414:21;:::i;:::-;9407:5;9404:32;9394:60;;9450:1;9447;9440:12;9394:60;9344:116;:::o;9466:133::-;9509:5;9547:6;9534:20;9525:29;;9563:30;9587:5;9563:30;:::i;:::-;9466:133;;;;:::o;9605:468::-;9670:6;9678;9727:2;9715:9;9706:7;9702:23;9698:32;9695:119;;;9733:79;;:::i;:::-;9695:119;9853:1;9878:53;9923:7;9914:6;9903:9;9899:22;9878:53;:::i;:::-;9868:63;;9824:117;9980:2;10006:50;10048:7;10039:6;10028:9;10024:22;10006:50;:::i;:::-;9996:60;;9951:115;9605:468;;;;;:::o;10079:323::-;10135:6;10184:2;10172:9;10163:7;10159:23;10155:32;10152:119;;;10190:79;;:::i;:::-;10152:119;10310:1;10335:50;10377:7;10368:6;10357:9;10353:22;10335:50;:::i;:::-;10325:60;;10281:114;10079:323;;;;:::o;10408:474::-;10476:6;10484;10533:2;10521:9;10512:7;10508:23;10504:32;10501:119;;;10539:79;;:::i;:::-;10501:119;10659:1;10684:53;10729:7;10720:6;10709:9;10705:22;10684:53;:::i;:::-;10674:63;;10630:117;10786:2;10812:53;10857:7;10848:6;10837:9;10833:22;10812:53;:::i;:::-;10802:63;;10757:118;10408:474;;;;;:::o;10888:180::-;10936:77;10933:1;10926:88;11033:4;11030:1;11023:15;11057:4;11054:1;11047:15;11074:320;11118:6;11155:1;11149:4;11145:12;11135:22;;11202:1;11196:4;11192:12;11223:18;11213:81;;11279:4;11271:6;11267:17;11257:27;;11213:81;11341:2;11333:6;11330:14;11310:18;11307:38;11304:84;;11360:18;;:::i;:::-;11304:84;11125:269;11074:320;;;:::o;11400:182::-;11540:34;11536:1;11528:6;11524:14;11517:58;11400:182;:::o;11588:366::-;11730:3;11751:67;11815:2;11810:3;11751:67;:::i;:::-;11744:74;;11827:93;11916:3;11827:93;:::i;:::-;11945:2;11940:3;11936:12;11929:19;;11588:366;;;:::o;11960:419::-;12126:4;12164:2;12153:9;12149:18;12141:26;;12213:9;12207:4;12203:20;12199:1;12188:9;12184:17;12177:47;12241:131;12367:4;12241:131;:::i;:::-;12233:139;;11960:419;;;:::o;12385:180::-;12433:77;12430:1;12423:88;12530:4;12527:1;12520:15;12554:4;12551:1;12544:15;12571:410;12611:7;12634:20;12652:1;12634:20;:::i;:::-;12629:25;;12668:20;12686:1;12668:20;:::i;:::-;12663:25;;12723:1;12720;12716:9;12745:30;12763:11;12745:30;:::i;:::-;12734:41;;12924:1;12915:7;12911:15;12908:1;12905:22;12885:1;12878:9;12858:83;12835:139;;12954:18;;:::i;:::-;12835:139;12619:362;12571:410;;;;:::o;12987:180::-;13035:77;13032:1;13025:88;13132:4;13129:1;13122:15;13156:4;13153:1;13146:15;13173:185;13213:1;13230:20;13248:1;13230:20;:::i;:::-;13225:25;;13264:20;13282:1;13264:20;:::i;:::-;13259:25;;13303:1;13293:35;;13308:18;;:::i;:::-;13293:35;13350:1;13347;13343:9;13338:14;;13173:185;;;;:::o;13364:234::-;13504:34;13500:1;13492:6;13488:14;13481:58;13573:17;13568:2;13560:6;13556:15;13549:42;13364:234;:::o;13604:366::-;13746:3;13767:67;13831:2;13826:3;13767:67;:::i;:::-;13760:74;;13843:93;13932:3;13843:93;:::i;:::-;13961:2;13956:3;13952:12;13945:19;;13604:366;;;:::o;13976:419::-;14142:4;14180:2;14169:9;14165:18;14157:26;;14229:9;14223:4;14219:20;14215:1;14204:9;14200:17;14193:47;14257:131;14383:4;14257:131;:::i;:::-;14249:139;;13976:419;;;:::o;14401:227::-;14541:34;14537:1;14529:6;14525:14;14518:58;14610:10;14605:2;14597:6;14593:15;14586:35;14401:227;:::o;14634:366::-;14776:3;14797:67;14861:2;14856:3;14797:67;:::i;:::-;14790:74;;14873:93;14962:3;14873:93;:::i;:::-;14991:2;14986:3;14982:12;14975:19;;14634:366;;;:::o;15006:419::-;15172:4;15210:2;15199:9;15195:18;15187:26;;15259:9;15253:4;15249:20;15245:1;15234:9;15230:17;15223:47;15287:131;15413:4;15287:131;:::i;:::-;15279:139;;15006:419;;;:::o;15431:191::-;15471:3;15490:20;15508:1;15490:20;:::i;:::-;15485:25;;15524:20;15542:1;15524:20;:::i;:::-;15519:25;;15567:1;15564;15560:9;15553:16;;15588:3;15585:1;15582:10;15579:36;;;15595:18;;:::i;:::-;15579:36;15431:191;;;;:::o;15628:180::-;15676:77;15673:1;15666:88;15773:4;15770:1;15763:15;15797:4;15794:1;15787:15;15814:233;15853:3;15876:24;15894:5;15876:24;:::i;:::-;15867:33;;15922:66;15915:5;15912:77;15909:103;;15992:18;;:::i;:::-;15909:103;16039:1;16032:5;16028:13;16021:20;;15814:233;;;:::o;16053:147::-;16154:11;16191:3;16176:18;;16053:147;;;;:::o;16206:114::-;;:::o;16326:398::-;16485:3;16506:83;16587:1;16582:3;16506:83;:::i;:::-;16499:90;;16598:93;16687:3;16598:93;:::i;:::-;16716:1;16711:3;16707:11;16700:18;;16326:398;;;:::o;16730:379::-;16914:3;16936:147;17079:3;16936:147;:::i;:::-;16929:154;;17100:3;17093:10;;16730:379;;;:::o;17115:178::-;17255:30;17251:1;17243:6;17239:14;17232:54;17115:178;:::o;17299:366::-;17441:3;17462:67;17526:2;17521:3;17462:67;:::i;:::-;17455:74;;17538:93;17627:3;17538:93;:::i;:::-;17656:2;17651:3;17647:12;17640:19;;17299:366;;;:::o;17671:419::-;17837:4;17875:2;17864:9;17860:18;17852:26;;17924:9;17918:4;17914:20;17910:1;17899:9;17895:17;17888:47;17952:131;18078:4;17952:131;:::i;:::-;17944:139;;17671:419;;;:::o;18096:162::-;18236:14;18232:1;18224:6;18220:14;18213:38;18096:162;:::o;18264:366::-;18406:3;18427:67;18491:2;18486:3;18427:67;:::i;:::-;18420:74;;18503:93;18592:3;18503:93;:::i;:::-;18621:2;18616:3;18612:12;18605:19;;18264:366;;;:::o;18636:419::-;18802:4;18840:2;18829:9;18825:18;18817:26;;18889:9;18883:4;18879:20;18875:1;18864:9;18860:17;18853:47;18917:131;19043:4;18917:131;:::i;:::-;18909:139;;18636:419;;;:::o;19061:244::-;19201:34;19197:1;19189:6;19185:14;19178:58;19270:27;19265:2;19257:6;19253:15;19246:52;19061:244;:::o;19311:366::-;19453:3;19474:67;19538:2;19533:3;19474:67;:::i;:::-;19467:74;;19550:93;19639:3;19550:93;:::i;:::-;19668:2;19663:3;19659:12;19652:19;;19311:366;;;:::o;19683:419::-;19849:4;19887:2;19876:9;19872:18;19864:26;;19936:9;19930:4;19926:20;19922:1;19911:9;19907:17;19900:47;19964:131;20090:4;19964:131;:::i;:::-;19956:139;;19683:419;;;:::o;20108:224::-;20248:34;20244:1;20236:6;20232:14;20225:58;20317:7;20312:2;20304:6;20300:15;20293:32;20108:224;:::o;20338:366::-;20480:3;20501:67;20565:2;20560:3;20501:67;:::i;:::-;20494:74;;20577:93;20666:3;20577:93;:::i;:::-;20695:2;20690:3;20686:12;20679:19;;20338:366;;;:::o;20710:419::-;20876:4;20914:2;20903:9;20899:18;20891:26;;20963:9;20957:4;20953:20;20949:1;20938:9;20934:17;20927:47;20991:131;21117:4;20991:131;:::i;:::-;20983:139;;20710:419;;;:::o;21135:223::-;21275:34;21271:1;21263:6;21259:14;21252:58;21344:6;21339:2;21331:6;21327:15;21320:31;21135:223;:::o;21364:366::-;21506:3;21527:67;21591:2;21586:3;21527:67;:::i;:::-;21520:74;;21603:93;21692:3;21603:93;:::i;:::-;21721:2;21716:3;21712:12;21705:19;;21364:366;;;:::o;21736:419::-;21902:4;21940:2;21929:9;21925:18;21917:26;;21989:9;21983:4;21979:20;21975:1;21964:9;21960:17;21953:47;22017:131;22143:4;22017:131;:::i;:::-;22009:139;;21736:419;;;:::o;22161:240::-;22301:34;22297:1;22289:6;22285:14;22278:58;22370:23;22365:2;22357:6;22353:15;22346:48;22161:240;:::o;22407:366::-;22549:3;22570:67;22634:2;22629:3;22570:67;:::i;:::-;22563:74;;22646:93;22735:3;22646:93;:::i;:::-;22764:2;22759:3;22755:12;22748:19;;22407:366;;;:::o;22779:419::-;22945:4;22983:2;22972:9;22968:18;22960:26;;23032:9;23026:4;23022:20;23018:1;23007:9;23003:17;22996:47;23060:131;23186:4;23060:131;:::i;:::-;23052:139;;22779:419;;;:::o;23204:239::-;23344:34;23340:1;23332:6;23328:14;23321:58;23413:22;23408:2;23400:6;23396:15;23389:47;23204:239;:::o;23449:366::-;23591:3;23612:67;23676:2;23671:3;23612:67;:::i;:::-;23605:74;;23688:93;23777:3;23688:93;:::i;:::-;23806:2;23801:3;23797:12;23790:19;;23449:366;;;:::o;23821:419::-;23987:4;24025:2;24014:9;24010:18;24002:26;;24074:9;24068:4;24064:20;24060:1;24049:9;24045:17;24038:47;24102:131;24228:4;24102:131;:::i;:::-;24094:139;;23821:419;;;:::o;24246:225::-;24386:34;24382:1;24374:6;24370:14;24363:58;24455:8;24450:2;24442:6;24438:15;24431:33;24246:225;:::o;24477:366::-;24619:3;24640:67;24704:2;24699:3;24640:67;:::i;:::-;24633:74;;24716:93;24805:3;24716:93;:::i;:::-;24834:2;24829:3;24825:12;24818:19;;24477:366;;;:::o;24849:419::-;25015:4;25053:2;25042:9;25038:18;25030:26;;25102:9;25096:4;25092:20;25088:1;25077:9;25073:17;25066:47;25130:131;25256:4;25130:131;:::i;:::-;25122:139;;24849:419;;;:::o;25274:223::-;25414:34;25410:1;25402:6;25398:14;25391:58;25483:6;25478:2;25470:6;25466:15;25459:31;25274:223;:::o;25503:366::-;25645:3;25666:67;25730:2;25725:3;25666:67;:::i;:::-;25659:74;;25742:93;25831:3;25742:93;:::i;:::-;25860:2;25855:3;25851:12;25844:19;;25503:366;;;:::o;25875:419::-;26041:4;26079:2;26068:9;26064:18;26056:26;;26128:9;26122:4;26118:20;26114:1;26103:9;26099:17;26092:47;26156:131;26282:4;26156:131;:::i;:::-;26148:139;;25875:419;;;:::o;26300:221::-;26440:34;26436:1;26428:6;26424:14;26417:58;26509:4;26504:2;26496:6;26492:15;26485:29;26300:221;:::o;26527:366::-;26669:3;26690:67;26754:2;26749:3;26690:67;:::i;:::-;26683:74;;26766:93;26855:3;26766:93;:::i;:::-;26884:2;26879:3;26875:12;26868:19;;26527:366;;;:::o;26899:419::-;27065:4;27103:2;27092:9;27088:18;27080:26;;27152:9;27146:4;27142:20;27138:1;27127:9;27123:17;27116:47;27180:131;27306:4;27180:131;:::i;:::-;27172:139;;26899:419;;;:::o;27324:224::-;27464:34;27460:1;27452:6;27448:14;27441:58;27533:7;27528:2;27520:6;27516:15;27509:32;27324:224;:::o;27554:366::-;27696:3;27717:67;27781:2;27776:3;27717:67;:::i;:::-;27710:74;;27793:93;27882:3;27793:93;:::i;:::-;27911:2;27906:3;27902:12;27895:19;;27554:366;;;:::o;27926:419::-;28092:4;28130:2;28119:9;28115:18;28107:26;;28179:9;28173:4;28169:20;28165:1;28154:9;28150:17;28143:47;28207:131;28333:4;28207:131;:::i;:::-;28199:139;;27926:419;;;:::o;28351:222::-;28491:34;28487:1;28479:6;28475:14;28468:58;28560:5;28555:2;28547:6;28543:15;28536:30;28351:222;:::o;28579:366::-;28721:3;28742:67;28806:2;28801:3;28742:67;:::i;:::-;28735:74;;28818:93;28907:3;28818:93;:::i;:::-;28936:2;28931:3;28927:12;28920:19;;28579:366;;;:::o;28951:419::-;29117:4;29155:2;29144:9;29140:18;29132:26;;29204:9;29198:4;29194:20;29190:1;29179:9;29175:17;29168:47;29232:131;29358:4;29232:131;:::i;:::-;29224:139;;28951:419;;;:::o;29376:172::-;29516:24;29512:1;29504:6;29500:14;29493:48;29376:172;:::o;29554:366::-;29696:3;29717:67;29781:2;29776:3;29717:67;:::i;:::-;29710:74;;29793:93;29882:3;29793:93;:::i;:::-;29911:2;29906:3;29902:12;29895:19;;29554:366;;;:::o;29926:419::-;30092:4;30130:2;30119:9;30115:18;30107:26;;30179:9;30173:4;30169:20;30165:1;30154:9;30150:17;30143:47;30207:131;30333:4;30207:131;:::i;:::-;30199:139;;29926:419;;;:::o;30351:240::-;30491:34;30487:1;30479:6;30475:14;30468:58;30560:23;30555:2;30547:6;30543:15;30536:48;30351:240;:::o;30597:366::-;30739:3;30760:67;30824:2;30819:3;30760:67;:::i;:::-;30753:74;;30836:93;30925:3;30836:93;:::i;:::-;30954:2;30949:3;30945:12;30938:19;;30597:366;;;:::o;30969:419::-;31135:4;31173:2;31162:9;31158:18;31150:26;;31222:9;31216:4;31212:20;31208:1;31197:9;31193:17;31186:47;31250:131;31376:4;31250:131;:::i;:::-;31242:139;;30969:419;;;:::o;31394:169::-;31534:21;31530:1;31522:6;31518:14;31511:45;31394:169;:::o;31569:366::-;31711:3;31732:67;31796:2;31791:3;31732:67;:::i;:::-;31725:74;;31808:93;31897:3;31808:93;:::i;:::-;31926:2;31921:3;31917:12;31910:19;;31569:366;;;:::o;31941:419::-;32107:4;32145:2;32134:9;32130:18;32122:26;;32194:9;32188:4;32184:20;32180:1;32169:9;32165:17;32158:47;32222:131;32348:4;32222:131;:::i;:::-;32214:139;;31941:419;;;:::o;32366:241::-;32506:34;32502:1;32494:6;32490:14;32483:58;32575:24;32570:2;32562:6;32558:15;32551:49;32366:241;:::o;32613:366::-;32755:3;32776:67;32840:2;32835:3;32776:67;:::i;:::-;32769:74;;32852:93;32941:3;32852:93;:::i;:::-;32970:2;32965:3;32961:12;32954:19;;32613:366;;;:::o;32985:419::-;33151:4;33189:2;33178:9;33174:18;33166:26;;33238:9;33232:4;33228:20;33224:1;33213:9;33209:17;33202:47;33266:131;33392:4;33266:131;:::i;:::-;33258:139;;32985:419;;;:::o;33410:194::-;33450:4;33470:20;33488:1;33470:20;:::i;:::-;33465:25;;33504:20;33522:1;33504:20;:::i;:::-;33499:25;;33548:1;33545;33541:9;33533:17;;33572:1;33566:4;33563:11;33560:37;;;33577:18;;:::i;:::-;33560:37;33410:194;;;;:::o;33610:180::-;33658:77;33655:1;33648:88;33755:4;33752:1;33745:15;33779:4;33776:1;33769:15;33796:143;33853:5;33884:6;33878:13;33869:22;;33900:33;33927:5;33900:33;:::i;:::-;33796:143;;;;:::o;33945:351::-;34015:6;34064:2;34052:9;34043:7;34039:23;34035:32;34032:119;;;34070:79;;:::i;:::-;34032:119;34190:1;34215:64;34271:7;34262:6;34251:9;34247:22;34215:64;:::i;:::-;34205:74;;34161:128;33945:351;;;;:::o;34302:85::-;34347:7;34376:5;34365:16;;34302:85;;;:::o;34393:158::-;34451:9;34484:61;34502:42;34511:32;34537:5;34511:32;:::i;:::-;34502:42;:::i;:::-;34484:61;:::i;:::-;34471:74;;34393:158;;;:::o;34557:147::-;34652:45;34691:5;34652:45;:::i;:::-;34647:3;34640:58;34557:147;;:::o;34710:114::-;34777:6;34811:5;34805:12;34795:22;;34710:114;;;:::o;34830:184::-;34929:11;34963:6;34958:3;34951:19;35003:4;34998:3;34994:14;34979:29;;34830:184;;;;:::o;35020:132::-;35087:4;35110:3;35102:11;;35140:4;35135:3;35131:14;35123:22;;35020:132;;;:::o;35158:108::-;35235:24;35253:5;35235:24;:::i;:::-;35230:3;35223:37;35158:108;;:::o;35272:179::-;35341:10;35362:46;35404:3;35396:6;35362:46;:::i;:::-;35440:4;35435:3;35431:14;35417:28;;35272:179;;;;:::o;35457:113::-;35527:4;35559;35554:3;35550:14;35542:22;;35457:113;;;:::o;35606:732::-;35725:3;35754:54;35802:5;35754:54;:::i;:::-;35824:86;35903:6;35898:3;35824:86;:::i;:::-;35817:93;;35934:56;35984:5;35934:56;:::i;:::-;36013:7;36044:1;36029:284;36054:6;36051:1;36048:13;36029:284;;;36130:6;36124:13;36157:63;36216:3;36201:13;36157:63;:::i;:::-;36150:70;;36243:60;36296:6;36243:60;:::i;:::-;36233:70;;36089:224;36076:1;36073;36069:9;36064:14;;36029:284;;;36033:14;36329:3;36322:10;;35730:608;;;35606:732;;;;:::o;36344:831::-;36607:4;36645:3;36634:9;36630:19;36622:27;;36659:71;36727:1;36716:9;36712:17;36703:6;36659:71;:::i;:::-;36740:80;36816:2;36805:9;36801:18;36792:6;36740:80;:::i;:::-;36867:9;36861:4;36857:20;36852:2;36841:9;36837:18;36830:48;36895:108;36998:4;36989:6;36895:108;:::i;:::-;36887:116;;37013:72;37081:2;37070:9;37066:18;37057:6;37013:72;:::i;:::-;37095:73;37163:3;37152:9;37148:19;37139:6;37095:73;:::i;:::-;36344:831;;;;;;;;:::o;37181:225::-;37321:34;37317:1;37309:6;37305:14;37298:58;37390:8;37385:2;37377:6;37373:15;37366:33;37181:225;:::o;37412:366::-;37554:3;37575:67;37639:2;37634:3;37575:67;:::i;:::-;37568:74;;37651:93;37740:3;37651:93;:::i;:::-;37769:2;37764:3;37760:12;37753:19;;37412:366;;;:::o;37784:419::-;37950:4;37988:2;37977:9;37973:18;37965:26;;38037:9;38031:4;38027:20;38023:1;38012:9;38008:17;38001:47;38065:131;38191:4;38065:131;:::i;:::-;38057:139;;37784:419;;;:::o

Swarm Source

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