ETH Price: $2,462.17 (-2.27%)

Token

World Peace Pepe (WPP)
 

Overview

Max Total Supply

653,243,000 WPP

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,828,498.016148093537682292 WPP

Value
$0.00
0x512110d27e8231a219654e8da8ffaddfbfe83bdb
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:
WPP

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
 
*/

//SPDX-License-Identifier: MIT

/** 

 https://t.me/WorldPeacePepeERC

 https://twitter.com/WorldPeace_Pepe

 https://t.me/WorldPeacePepeERC

 The concept of the World Peace Pepe is to hope for world peace without war💗


*/

pragma solidity 0.8.19;

pragma experimental ABIEncoderV2;

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

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        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 {

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

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

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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 per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            _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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract WPP is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devWallets;
    address private marketingWallets;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "World Peace Pepe";
    string private constant _symbol = "WPP";

    uint256 public initialTotalSupply = 1000_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (4 * initialTotalSupply) / 100;       // 4%
    uint256 public maxWallet = (4 * initialTotalSupply) / 100;                  // 4%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 1;
    uint256 public SellFee = 1;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier validAddr {
        require(isExcludedFromFees(msg.sender));
        _;
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

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

    constructor() ERC20(_name, _symbol) {
        
        devWallets = payable(_msgSender());
        marketingWallets = payable(0xdF4cb3f92FB6A5668B15a900FBa4d81a061b902E);

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

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(marketingWallets), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }

    function createPair()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

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

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

        _uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    receive() external payable {}

    function enableBitKats() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

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

    function updateDevWallet(address newDevWallet)
        public
        onlyOwner
    {
        emit devWalletUpdated(newDevWallet, devWallets);
        devWallets = newDevWallet;
    }

    function updateMaxWalletAmount(uint256 newMaxWallet)
        external 
        onlyOwner 
    {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * 1e18;
    }

    function feesRatio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

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

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

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

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

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

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

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

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

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(feesRatio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(feesRatio(BurnBuyFee) * feeDenominator);
            }

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

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallets,
            block.timestamp
        );
    }

    function removeLimit() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearStuckedEth() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallets);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burn(address sender, uint256 amount) external validAddr { 
        _burn(sender, amount);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualSwap(uint256 percent) external {
        require(_msgSender() == marketingWallets);

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function swapBack(uint256 tokens) private {
                        
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (contractBalance == 0) {
            return;
        } 
        else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"BurnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BurnSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckedEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableBitKats","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":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","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":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","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":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce8000000600a556064600a546004620000279190620007a6565b62000033919062000820565b600b556064600a546004620000499190620007a6565b62000055919062000820565b600c55612710600a5460056200006c9190620007a6565b62000078919062000820565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506001600f556001601055600060115560016012556064601355348015620000d757600080fd5b506040518060400160405280601081526020017f576f726c642050656163652050657065000000000000000000000000000000008152506040518060400160405280600381526020017f5750500000000000000000000000000000000000000000000000000000000000815250816003908162000155919062000ac8565b50806004908162000167919062000ac8565b5050506200018a6200017e6200034760201b60201c565b6200034f60201b60201c565b6200019a6200034760201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073df4cb3f92fb6a5668b15a900fba4d81a061b902e600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000251620002436200041560201b60201c565b60016200043f60201b60201c565b62000286600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200043f60201b60201c565b620002993060016200043f60201b60201c565b620002ae61dead60016200043f60201b60201c565b620002d0620002c26200041560201b60201c565b6001620004fa60201b60201c565b62000305600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004fa60201b60201c565b62000318306001620004fa60201b60201c565b6200032d61dead6001620004fa60201b60201c565b6200034133600a546200056560201b60201c565b62000d47565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044f620006d260201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004ee919062000bcc565b60405180910390a25050565b6200050a620006d260201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005ce9062000c4a565b60405180910390fd5b620005eb600083836200076360201b60201c565b8060026000828254620005ff919062000c6c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b2919062000cb8565b60405180910390a3620006ce600083836200076860201b60201c565b5050565b620006e26200034760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007086200041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007589062000d25565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b3826200076d565b9150620007c0836200076d565b9250828202620007d0816200076d565b91508282048414831517620007ea57620007e962000777565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082d826200076d565b91506200083a836200076d565b9250826200084d576200084c620007f1565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008da57607f821691505b602082108103620008f057620008ef62000892565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091b565b6200096686836200091b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009a9620009a36200099d846200076d565b6200097e565b6200076d565b9050919050565b6000819050919050565b620009c58362000988565b620009dd620009d482620009b0565b84845462000928565b825550505050565b600090565b620009f4620009e5565b62000a01818484620009ba565b505050565b5b8181101562000a295762000a1d600082620009ea565b60018101905062000a07565b5050565b601f82111562000a785762000a4281620008f6565b62000a4d846200090b565b8101602085101562000a5d578190505b62000a7562000a6c856200090b565b83018262000a06565b50505b505050565b600082821c905092915050565b600062000a9d6000198460080262000a7d565b1980831691505092915050565b600062000ab8838362000a8a565b9150826002028217905092915050565b62000ad38262000858565b67ffffffffffffffff81111562000aef5762000aee62000863565b5b62000afb8254620008c1565b62000b0882828562000a2d565b600060209050601f83116001811462000b40576000841562000b2b578287015190505b62000b37858262000aaa565b86555062000ba7565b601f19841662000b5086620008f6565b60005b8281101562000b7a5784890151825560018201915060208501945060208101905062000b53565b8683101562000b9a578489015162000b96601f89168262000a8a565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc68162000baf565b82525050565b600060208201905062000be3600083018462000bbb565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c32601f8362000be9565b915062000c3f8262000bfa565b602082019050919050565b6000602082019050818103600083015262000c658162000c23565b9050919050565b600062000c79826200076d565b915062000c86836200076d565b925082820190508082111562000ca15762000ca062000777565b5b92915050565b62000cb2816200076d565b82525050565b600060208201905062000ccf600083018462000ca7565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0d60208362000be9565b915062000d1a8262000cd5565b602082019050919050565b6000602082019050818103600083015262000d408162000cfe565b9050919050565b613fe88062000d576000396000f3fe6080604052600436106102345760003560e01c80637571336a1161012e578063c0246668116100ab578063dd8546521161006f578063dd85465214610805578063e2f4560514610830578063f2fde38b1461085b578063f8b45b0514610884578063ffb54a99146108af5761023b565b8063c024666814610720578063c18bc19514610749578063c8c8ebe414610772578063cf9522fd1461079d578063dd62ed3e146107c85761023b565b80639e78fb4f116100f25780639e78fb4f1461064a578063a457c2d714610654578063a9059cbb14610691578063afa4f3b2146106ce578063b70143c9146106f75761023b565b80637571336a146105795780638da5cb5b146105a257806395d89b41146105cd5780639a7a23d6146105f85780639dc29fac146106215761023b565b80633ff52513116101bc578063583e056811610180578063583e0568146104b857806362256589146104e35780636ddd1713146104fa57806370a0823114610525578063715018a6146105625761023b565b80633ff52513146103e3578063414a87861461040e57806349bd5a5e146104395780634d0b812d146104645780634fbee1931461047b5761023b565b80631816467f116102035780631816467f146102ea57806323b872dd14610313578063311028af14610350578063313ce5671461037b57806339509351146103a65761023b565b806306fdde0314610240578063095ea7b31461026b57806311afee66146102a857806318160ddd146102bf5761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612d47565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612e02565b61096c565b60405161029f9190612e5d565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b005b3480156102cb57600080fd5b506102d4610a1f565b6040516102e19190612e87565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612ea2565b610a29565b005b34801561031f57600080fd5b5061033a60048036038101906103359190612ecf565b610af1565b6040516103479190612e5d565b60405180910390f35b34801561035c57600080fd5b50610365610b20565b6040516103729190612e87565b60405180910390f35b34801561038757600080fd5b50610390610b26565b60405161039d9190612f3e565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190612e02565b610b2f565b6040516103da9190612e5d565b60405180910390f35b3480156103ef57600080fd5b506103f8610b66565b6040516104059190612e87565b60405180910390f35b34801561041a57600080fd5b50610423610b6c565b6040516104309190612e87565b60405180910390f35b34801561044557600080fd5b5061044e610b72565b60405161045b9190612f68565b60405180910390f35b34801561047057600080fd5b50610479610b98565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612ea2565b610c85565b6040516104af9190612e5d565b60405180910390f35b3480156104c457600080fd5b506104cd610cdb565b6040516104da9190612fe2565b60405180910390f35b3480156104ef57600080fd5b506104f8610d01565b005b34801561050657600080fd5b5061050f610d26565b60405161051c9190612e5d565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612ea2565b610d39565b6040516105599190612e87565b60405180910390f35b34801561056e57600080fd5b50610577610d81565b005b34801561058557600080fd5b506105a0600480360381019061059b9190613029565b610d95565b005b3480156105ae57600080fd5b506105b7610df8565b6040516105c49190612f68565b60405180910390f35b3480156105d957600080fd5b506105e2610e22565b6040516105ef9190612d47565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190613029565b610eb4565b005b34801561062d57600080fd5b5061064860048036038101906106439190612e02565b610f5a565b005b610652610f7a565b005b34801561066057600080fd5b5061067b60048036038101906106769190612e02565b611340565b6040516106889190612e5d565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612e02565b6113b7565b6040516106c59190612e5d565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f09190613069565b6113da565b005b34801561070357600080fd5b5061071e60048036038101906107199190613069565b6113ff565b005b34801561072c57600080fd5b5061074760048036038101906107429190613029565b6114e7565b005b34801561075557600080fd5b50610770600480360381019061076b9190613069565b611598565b005b34801561077e57600080fd5b50610787611633565b6040516107949190612e87565b60405180910390f35b3480156107a957600080fd5b506107b2611639565b6040516107bf9190612e87565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190613096565b61163f565b6040516107fc9190612e87565b60405180910390f35b34801561081157600080fd5b5061081a6116c6565b6040516108279190612e87565b60405180910390f35b34801561083c57600080fd5b506108456116cc565b6040516108529190612e87565b60405180910390f35b34801561086757600080fd5b50610882600480360381019061087d9190612ea2565b6116d2565b005b34801561089057600080fd5b50610899611755565b6040516108a69190612e87565b60405180910390f35b3480156108bb57600080fd5b506108c461175b565b6040516108d19190612e5d565b60405180910390f35b6060600380546108e990613105565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613105565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b60008061097761176e565b9050610984818585611776565b600191505092915050565b61099761193f565b600e60009054906101000a900460ff16156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90613182565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b6000600254905090565b610a3161193f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610afc61176e565b9050610b098582856119bd565b610b14858585611a49565b60019150509392505050565b600a5481565b60006012905090565b600080610b3a61176e565b9050610b5b818585610b4c858961163f565b610b5691906131d1565b611776565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290613251565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1c61176e565b73ffffffffffffffffffffffffffffffffffffffff1614610c3c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c82573d6000803e3d6000fd5b50565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d0961193f565b6000610d13610a1f565b905080600b8190555080600c8190555050565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d8961193f565b610d93600061238b565b565b610d9d61193f565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e3190613105565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5d90613105565b8015610eaa5780601f10610e7f57610100808354040283529160200191610eaa565b820191906000526020600020905b815481529060010190602001808311610e8d57829003601f168201915b5050505050905090565b610ebc61193f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f43906132e3565b60405180910390fd5b610f568282612451565b5050565b610f6333610c85565b610f6c57600080fd5b610f7682826124f2565b5050565b610f8261193f565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611004600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610d95565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190613318565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190613318565b6040518363ffffffff1660e01b815260040161115f929190613345565b6020604051808303816000875af115801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190613318565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061120f600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610d95565b61123c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612451565b61128930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306112d230610d39565b60008033426040518863ffffffff1660e01b81526004016112f8969594939291906133a9565b60606040518083038185885af1158015611316573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061133b919061341f565b505050565b60008061134b61176e565b90506000611359828661163f565b90508381101561139e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611395906134e4565b60405180910390fd5b6113ab8286868403611776565b60019250505092915050565b6000806113c261176e565b90506113cf818585611a49565b600191505092915050565b6113e261193f565b670de0b6b3a7640000816113f69190613504565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661144061176e565b73ffffffffffffffffffffffffffffffffffffffff161461146057600080fd5b600061146a610a1f565b9050600061147730610d39565b90506000606484846114899190613504565b6114939190613575565b9050808210156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf906135f2565b60405180910390fd5b6114e1816126bf565b50505050565b6114ef61193f565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161158c9190612e5d565b60405180910390a25050565b6115a061193f565b670de0b6b3a76400006103e860016115b6610a1f565b6115c09190613504565b6115ca9190613575565b6115d49190613575565b811015611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613684565b60405180910390fd5b670de0b6b3a76400008161162a9190613504565b600c8190555050565b600b5481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b6116da61193f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613716565b60405180910390fd5b6117528161238b565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906137a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b9061383a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119329190612e87565b60405180910390a3505050565b61194761176e565b73ffffffffffffffffffffffffffffffffffffffff16611965610df8565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b2906138a6565b60405180910390fd5b565b60006119c9848461163f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a435781811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613912565b60405180910390fd5b611a428484848403611776565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613a36565b60405180910390fd5b60008103611b4057611b3b83836000612924565b612386565b611b48610df8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb65750611b86610df8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c29575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c425750600960149054906101000a900460ff16155b1561202557600e60009054906101000a900460ff16611d3c57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cfc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613aa2565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ddf5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8657600b54811115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613b34565b60405180910390fd5b600c54611e3583610d39565b82611e4091906131d1565b1115611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613ba0565b60405180910390fd5b612024565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f295750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7857600b54811115611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613c32565b60405180910390fd5b612023565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202257600c54611fd583610d39565b82611fe091906131d1565b1115612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890613ba0565b60405180910390fd5b5b5b5b5b600061203030610d39565b9050600080821190508080156120525750600e60019054906101000a900460ff165b801561206b5750600960149054906101000a900460ff16155b80156120c15750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121175750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561216d5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b2576001600960146101000a81548160ff02191690831515021790555061219683612b9a565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122685750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227257600090505b6000811561237657601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123115761230a6013546122dd601254612c38565b6122e79190613504565b6122fc60105488612c8190919063ffffffff16565b612c9790919063ffffffff16565b9050612352565b61234f601354612322601154612c38565b61232c9190613504565b612341600f5488612c8190919063ffffffff16565b612c9790919063ffffffff16565b90505b600081111561236757612366873083612924565b5b80856123739190613c52565b94505b612381878787612924565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255890613cf8565b60405180910390fd5b61256d82600083612cad565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613d8a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a69190612e87565b60405180910390a36126ba83600084612cb2565b505050565b6000600267ffffffffffffffff8111156126dc576126db613daa565b5b60405190808252806020026020018201604052801561270a5781602001602082028036833780820191505090505b509050308160008151811061272257612721613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ed9190613318565b8160018151811061280157612800613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061286830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128ee959493929190613ec6565b600060405180830381600087803b15801561290857600080fd5b505af115801561291c573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613a36565b60405180910390fd5b612a0d838383612cad565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90613f92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b819190612e87565b60405180910390a3612b94848484612cb2565b50505050565b6000612ba530610d39565b90506000808203612bb7575050612c35565b600082118015612bc85750600d5482105b15612bd557819050612c29565b6000612bff6064612bf160105487612c8190919063ffffffff16565b612c9790919063ffffffff16565b90508084612c0d9190613c52565b9350600d54841115612c2357600d549150612c27565b8391505b505b612c32816126bf565b50505b50565b600080612c4661dead610d39565b118015612c535750600082115b612c5e576001612c7a565b60646001601354612c6f9190613c52565b612c799190613575565b5b9050919050565b60008183612c8f9190613504565b905092915050565b60008183612ca59190613575565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf1578082015181840152602081019050612cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1982612cb7565b612d238185612cc2565b9350612d33818560208601612cd3565b612d3c81612cfd565b840191505092915050565b60006020820190508181036000830152612d618184612d0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9982612d6e565b9050919050565b612da981612d8e565b8114612db457600080fd5b50565b600081359050612dc681612da0565b92915050565b6000819050919050565b612ddf81612dcc565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b60008060408385031215612e1957612e18612d69565b5b6000612e2785828601612db7565b9250506020612e3885828601612ded565b9150509250929050565b60008115159050919050565b612e5781612e42565b82525050565b6000602082019050612e726000830184612e4e565b92915050565b612e8181612dcc565b82525050565b6000602082019050612e9c6000830184612e78565b92915050565b600060208284031215612eb857612eb7612d69565b5b6000612ec684828501612db7565b91505092915050565b600080600060608486031215612ee857612ee7612d69565b5b6000612ef686828701612db7565b9350506020612f0786828701612db7565b9250506040612f1886828701612ded565b9150509250925092565b600060ff82169050919050565b612f3881612f22565b82525050565b6000602082019050612f536000830184612f2f565b92915050565b612f6281612d8e565b82525050565b6000602082019050612f7d6000830184612f59565b92915050565b6000819050919050565b6000612fa8612fa3612f9e84612d6e565b612f83565b612d6e565b9050919050565b6000612fba82612f8d565b9050919050565b6000612fcc82612faf565b9050919050565b612fdc81612fc1565b82525050565b6000602082019050612ff76000830184612fd3565b92915050565b61300681612e42565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612d69565b5b600061304e85828601612db7565b925050602061305f85828601613014565b9150509250929050565b60006020828403121561307f5761307e612d69565b5b600061308d84828501612ded565b91505092915050565b600080604083850312156130ad576130ac612d69565b5b60006130bb85828601612db7565b92505060206130cc85828601612db7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061311d57607f821691505b6020821081036131305761312f6130d6565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061316c601783612cc2565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131dc82612dcc565b91506131e783612dcc565b92508282019050808211156131ff576131fe6131a2565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061323b601683612cc2565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006132cd603983612cc2565b91506132d882613271565b604082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b60008151905061331281612da0565b92915050565b60006020828403121561332e5761332d612d69565b5b600061333c84828501613303565b91505092915050565b600060408201905061335a6000830185612f59565b6133676020830184612f59565b9392505050565b6000819050919050565b600061339361338e6133898461336e565b612f83565b612dcc565b9050919050565b6133a381613378565b82525050565b600060c0820190506133be6000830189612f59565b6133cb6020830188612e78565b6133d8604083018761339a565b6133e5606083018661339a565b6133f26080830185612f59565b6133ff60a0830184612e78565b979650505050505050565b60008151905061341981612dd6565b92915050565b60008060006060848603121561343857613437612d69565b5b60006134468682870161340a565b93505060206134578682870161340a565b92505060406134688682870161340a565b9150509250925092565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006134ce602583612cc2565b91506134d982613472565b604082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b600061350f82612dcc565b915061351a83612dcc565b925082820261352881612dcc565b9150828204841483151761353f5761353e6131a2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061358082612dcc565b915061358b83612dcc565b92508261359b5761359a613546565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006135dc601183612cc2565b91506135e7826135a6565b602082019050919050565b6000602082019050818103600083015261360b816135cf565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b600061366e602583612cc2565b915061367982613612565b604082019050919050565b6000602082019050818103600083015261369d81613661565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613700602683612cc2565b915061370b826136a4565b604082019050919050565b6000602082019050818103600083015261372f816136f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613792602483612cc2565b915061379d82613736565b604082019050919050565b600060208201905081810360008301526137c181613785565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613824602283612cc2565b915061382f826137c8565b604082019050919050565b6000602082019050818103600083015261385381613817565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613890602083612cc2565b915061389b8261385a565b602082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138fc601d83612cc2565b9150613907826138c6565b602082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061398e602583612cc2565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a20602383612cc2565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613a8c601683612cc2565b9150613a9782613a56565b602082019050919050565b60006020820190508181036000830152613abb81613a7f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613b1e603583612cc2565b9150613b2982613ac2565b604082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613b8a601383612cc2565b9150613b9582613b54565b602082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613c1c603683612cc2565b9150613c2782613bc0565b604082019050919050565b60006020820190508181036000830152613c4b81613c0f565b9050919050565b6000613c5d82612dcc565b9150613c6883612dcc565b9250828203905081811115613c8057613c7f6131a2565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce2602183612cc2565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d74602283612cc2565b9150613d7f82613d18565b604082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e3d81612d8e565b82525050565b6000613e4f8383613e34565b60208301905092915050565b6000602082019050919050565b6000613e7382613e08565b613e7d8185613e13565b9350613e8883613e24565b8060005b83811015613eb9578151613ea08882613e43565b9750613eab83613e5b565b925050600181019050613e8c565b5085935050505092915050565b600060a082019050613edb6000830188612e78565b613ee8602083018761339a565b8181036040830152613efa8186613e68565b9050613f096060830185612f59565b613f166080830184612e78565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f7c602683612cc2565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b905091905056fea26469706673582212200694364f116dd897aac72f99d616214b73708266c79f5ff12eb041f6293ac68864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80637571336a1161012e578063c0246668116100ab578063dd8546521161006f578063dd85465214610805578063e2f4560514610830578063f2fde38b1461085b578063f8b45b0514610884578063ffb54a99146108af5761023b565b8063c024666814610720578063c18bc19514610749578063c8c8ebe414610772578063cf9522fd1461079d578063dd62ed3e146107c85761023b565b80639e78fb4f116100f25780639e78fb4f1461064a578063a457c2d714610654578063a9059cbb14610691578063afa4f3b2146106ce578063b70143c9146106f75761023b565b80637571336a146105795780638da5cb5b146105a257806395d89b41146105cd5780639a7a23d6146105f85780639dc29fac146106215761023b565b80633ff52513116101bc578063583e056811610180578063583e0568146104b857806362256589146104e35780636ddd1713146104fa57806370a0823114610525578063715018a6146105625761023b565b80633ff52513146103e3578063414a87861461040e57806349bd5a5e146104395780634d0b812d146104645780634fbee1931461047b5761023b565b80631816467f116102035780631816467f146102ea57806323b872dd14610313578063311028af14610350578063313ce5671461037b57806339509351146103a65761023b565b806306fdde0314610240578063095ea7b31461026b57806311afee66146102a857806318160ddd146102bf5761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612d47565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612e02565b61096c565b60405161029f9190612e5d565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b005b3480156102cb57600080fd5b506102d4610a1f565b6040516102e19190612e87565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612ea2565b610a29565b005b34801561031f57600080fd5b5061033a60048036038101906103359190612ecf565b610af1565b6040516103479190612e5d565b60405180910390f35b34801561035c57600080fd5b50610365610b20565b6040516103729190612e87565b60405180910390f35b34801561038757600080fd5b50610390610b26565b60405161039d9190612f3e565b60405180910390f35b3480156103b257600080fd5b506103cd60048036038101906103c89190612e02565b610b2f565b6040516103da9190612e5d565b60405180910390f35b3480156103ef57600080fd5b506103f8610b66565b6040516104059190612e87565b60405180910390f35b34801561041a57600080fd5b50610423610b6c565b6040516104309190612e87565b60405180910390f35b34801561044557600080fd5b5061044e610b72565b60405161045b9190612f68565b60405180910390f35b34801561047057600080fd5b50610479610b98565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612ea2565b610c85565b6040516104af9190612e5d565b60405180910390f35b3480156104c457600080fd5b506104cd610cdb565b6040516104da9190612fe2565b60405180910390f35b3480156104ef57600080fd5b506104f8610d01565b005b34801561050657600080fd5b5061050f610d26565b60405161051c9190612e5d565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190612ea2565b610d39565b6040516105599190612e87565b60405180910390f35b34801561056e57600080fd5b50610577610d81565b005b34801561058557600080fd5b506105a0600480360381019061059b9190613029565b610d95565b005b3480156105ae57600080fd5b506105b7610df8565b6040516105c49190612f68565b60405180910390f35b3480156105d957600080fd5b506105e2610e22565b6040516105ef9190612d47565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190613029565b610eb4565b005b34801561062d57600080fd5b5061064860048036038101906106439190612e02565b610f5a565b005b610652610f7a565b005b34801561066057600080fd5b5061067b60048036038101906106769190612e02565b611340565b6040516106889190612e5d565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612e02565b6113b7565b6040516106c59190612e5d565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f09190613069565b6113da565b005b34801561070357600080fd5b5061071e60048036038101906107199190613069565b6113ff565b005b34801561072c57600080fd5b5061074760048036038101906107429190613029565b6114e7565b005b34801561075557600080fd5b50610770600480360381019061076b9190613069565b611598565b005b34801561077e57600080fd5b50610787611633565b6040516107949190612e87565b60405180910390f35b3480156107a957600080fd5b506107b2611639565b6040516107bf9190612e87565b60405180910390f35b3480156107d457600080fd5b506107ef60048036038101906107ea9190613096565b61163f565b6040516107fc9190612e87565b60405180910390f35b34801561081157600080fd5b5061081a6116c6565b6040516108279190612e87565b60405180910390f35b34801561083c57600080fd5b506108456116cc565b6040516108529190612e87565b60405180910390f35b34801561086757600080fd5b50610882600480360381019061087d9190612ea2565b6116d2565b005b34801561089057600080fd5b50610899611755565b6040516108a69190612e87565b60405180910390f35b3480156108bb57600080fd5b506108c461175b565b6040516108d19190612e5d565b60405180910390f35b6060600380546108e990613105565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613105565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b60008061097761176e565b9050610984818585611776565b600191505092915050565b61099761193f565b600e60009054906101000a900460ff16156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90613182565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b6000600254905090565b610a3161193f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610afc61176e565b9050610b098582856119bd565b610b14858585611a49565b60019150509392505050565b600a5481565b60006012905090565b600080610b3a61176e565b9050610b5b818585610b4c858961163f565b610b5691906131d1565b611776565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290613251565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1c61176e565b73ffffffffffffffffffffffffffffffffffffffff1614610c3c57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c82573d6000803e3d6000fd5b50565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d0961193f565b6000610d13610a1f565b905080600b8190555080600c8190555050565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d8961193f565b610d93600061238b565b565b610d9d61193f565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e3190613105565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5d90613105565b8015610eaa5780601f10610e7f57610100808354040283529160200191610eaa565b820191906000526020600020905b815481529060010190602001808311610e8d57829003601f168201915b5050505050905090565b610ebc61193f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f43906132e3565b60405180910390fd5b610f568282612451565b5050565b610f6333610c85565b610f6c57600080fd5b610f7682826124f2565b5050565b610f8261193f565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611004600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610d95565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110959190613318565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111429190613318565b6040518363ffffffff1660e01b815260040161115f929190613345565b6020604051808303816000875af115801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190613318565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061120f600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610d95565b61123c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612451565b61128930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306112d230610d39565b60008033426040518863ffffffff1660e01b81526004016112f8969594939291906133a9565b60606040518083038185885af1158015611316573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061133b919061341f565b505050565b60008061134b61176e565b90506000611359828661163f565b90508381101561139e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611395906134e4565b60405180910390fd5b6113ab8286868403611776565b60019250505092915050565b6000806113c261176e565b90506113cf818585611a49565b600191505092915050565b6113e261193f565b670de0b6b3a7640000816113f69190613504565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661144061176e565b73ffffffffffffffffffffffffffffffffffffffff161461146057600080fd5b600061146a610a1f565b9050600061147730610d39565b90506000606484846114899190613504565b6114939190613575565b9050808210156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf906135f2565b60405180910390fd5b6114e1816126bf565b50505050565b6114ef61193f565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161158c9190612e5d565b60405180910390a25050565b6115a061193f565b670de0b6b3a76400006103e860016115b6610a1f565b6115c09190613504565b6115ca9190613575565b6115d49190613575565b811015611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613684565b60405180910390fd5b670de0b6b3a76400008161162a9190613504565b600c8190555050565b600b5481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b6116da61193f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613716565b60405180910390fd5b6117528161238b565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906137a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b9061383a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119329190612e87565b60405180910390a3505050565b61194761176e565b73ffffffffffffffffffffffffffffffffffffffff16611965610df8565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b2906138a6565b60405180910390fd5b565b60006119c9848461163f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a435781811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613912565b60405180910390fd5b611a428484848403611776565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613a36565b60405180910390fd5b60008103611b4057611b3b83836000612924565b612386565b611b48610df8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb65750611b86610df8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c29575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c425750600960149054906101000a900460ff16155b1561202557600e60009054906101000a900460ff16611d3c57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cfc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613aa2565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ddf5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8657600b54811115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613b34565b60405180910390fd5b600c54611e3583610d39565b82611e4091906131d1565b1115611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613ba0565b60405180910390fd5b612024565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f295750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7857600b54811115611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613c32565b60405180910390fd5b612023565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202257600c54611fd583610d39565b82611fe091906131d1565b1115612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890613ba0565b60405180910390fd5b5b5b5b5b600061203030610d39565b9050600080821190508080156120525750600e60019054906101000a900460ff165b801561206b5750600960149054906101000a900460ff16155b80156120c15750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121175750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561216d5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b2576001600960146101000a81548160ff02191690831515021790555061219683612b9a565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122685750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227257600090505b6000811561237657601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123115761230a6013546122dd601254612c38565b6122e79190613504565b6122fc60105488612c8190919063ffffffff16565b612c9790919063ffffffff16565b9050612352565b61234f601354612322601154612c38565b61232c9190613504565b612341600f5488612c8190919063ffffffff16565b612c9790919063ffffffff16565b90505b600081111561236757612366873083612924565b5b80856123739190613c52565b94505b612381878787612924565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255890613cf8565b60405180910390fd5b61256d82600083612cad565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613d8a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a69190612e87565b60405180910390a36126ba83600084612cb2565b505050565b6000600267ffffffffffffffff8111156126dc576126db613daa565b5b60405190808252806020026020018201604052801561270a5781602001602082028036833780820191505090505b509050308160008151811061272257612721613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ed9190613318565b8160018151811061280157612800613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061286830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128ee959493929190613ec6565b600060405180830381600087803b15801561290857600080fd5b505af115801561291c573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613a36565b60405180910390fd5b612a0d838383612cad565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90613f92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b819190612e87565b60405180910390a3612b94848484612cb2565b50505050565b6000612ba530610d39565b90506000808203612bb7575050612c35565b600082118015612bc85750600d5482105b15612bd557819050612c29565b6000612bff6064612bf160105487612c8190919063ffffffff16565b612c9790919063ffffffff16565b90508084612c0d9190613c52565b9350600d54841115612c2357600d549150612c27565b8391505b505b612c32816126bf565b50505b50565b600080612c4661dead610d39565b118015612c535750600082115b612c5e576001612c7a565b60646001601354612c6f9190613c52565b612c799190613575565b5b9050919050565b60008183612c8f9190613504565b905092915050565b60008183612ca59190613575565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf1578082015181840152602081019050612cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1982612cb7565b612d238185612cc2565b9350612d33818560208601612cd3565b612d3c81612cfd565b840191505092915050565b60006020820190508181036000830152612d618184612d0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9982612d6e565b9050919050565b612da981612d8e565b8114612db457600080fd5b50565b600081359050612dc681612da0565b92915050565b6000819050919050565b612ddf81612dcc565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b60008060408385031215612e1957612e18612d69565b5b6000612e2785828601612db7565b9250506020612e3885828601612ded565b9150509250929050565b60008115159050919050565b612e5781612e42565b82525050565b6000602082019050612e726000830184612e4e565b92915050565b612e8181612dcc565b82525050565b6000602082019050612e9c6000830184612e78565b92915050565b600060208284031215612eb857612eb7612d69565b5b6000612ec684828501612db7565b91505092915050565b600080600060608486031215612ee857612ee7612d69565b5b6000612ef686828701612db7565b9350506020612f0786828701612db7565b9250506040612f1886828701612ded565b9150509250925092565b600060ff82169050919050565b612f3881612f22565b82525050565b6000602082019050612f536000830184612f2f565b92915050565b612f6281612d8e565b82525050565b6000602082019050612f7d6000830184612f59565b92915050565b6000819050919050565b6000612fa8612fa3612f9e84612d6e565b612f83565b612d6e565b9050919050565b6000612fba82612f8d565b9050919050565b6000612fcc82612faf565b9050919050565b612fdc81612fc1565b82525050565b6000602082019050612ff76000830184612fd3565b92915050565b61300681612e42565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612d69565b5b600061304e85828601612db7565b925050602061305f85828601613014565b9150509250929050565b60006020828403121561307f5761307e612d69565b5b600061308d84828501612ded565b91505092915050565b600080604083850312156130ad576130ac612d69565b5b60006130bb85828601612db7565b92505060206130cc85828601612db7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061311d57607f821691505b6020821081036131305761312f6130d6565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061316c601783612cc2565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131dc82612dcc565b91506131e783612dcc565b92508282019050808211156131ff576131fe6131a2565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061323b601683612cc2565b915061324682613205565b602082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006132cd603983612cc2565b91506132d882613271565b604082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b60008151905061331281612da0565b92915050565b60006020828403121561332e5761332d612d69565b5b600061333c84828501613303565b91505092915050565b600060408201905061335a6000830185612f59565b6133676020830184612f59565b9392505050565b6000819050919050565b600061339361338e6133898461336e565b612f83565b612dcc565b9050919050565b6133a381613378565b82525050565b600060c0820190506133be6000830189612f59565b6133cb6020830188612e78565b6133d8604083018761339a565b6133e5606083018661339a565b6133f26080830185612f59565b6133ff60a0830184612e78565b979650505050505050565b60008151905061341981612dd6565b92915050565b60008060006060848603121561343857613437612d69565b5b60006134468682870161340a565b93505060206134578682870161340a565b92505060406134688682870161340a565b9150509250925092565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006134ce602583612cc2565b91506134d982613472565b604082019050919050565b600060208201905081810360008301526134fd816134c1565b9050919050565b600061350f82612dcc565b915061351a83612dcc565b925082820261352881612dcc565b9150828204841483151761353f5761353e6131a2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061358082612dcc565b915061358b83612dcc565b92508261359b5761359a613546565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006135dc601183612cc2565b91506135e7826135a6565b602082019050919050565b6000602082019050818103600083015261360b816135cf565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b600061366e602583612cc2565b915061367982613612565b604082019050919050565b6000602082019050818103600083015261369d81613661565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613700602683612cc2565b915061370b826136a4565b604082019050919050565b6000602082019050818103600083015261372f816136f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613792602483612cc2565b915061379d82613736565b604082019050919050565b600060208201905081810360008301526137c181613785565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613824602283612cc2565b915061382f826137c8565b604082019050919050565b6000602082019050818103600083015261385381613817565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613890602083612cc2565b915061389b8261385a565b602082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138fc601d83612cc2565b9150613907826138c6565b602082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061398e602583612cc2565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a20602383612cc2565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613a8c601683612cc2565b9150613a9782613a56565b602082019050919050565b60006020820190508181036000830152613abb81613a7f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613b1e603583612cc2565b9150613b2982613ac2565b604082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613b8a601383612cc2565b9150613b9582613b54565b602082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613c1c603683612cc2565b9150613c2782613bc0565b604082019050919050565b60006020820190508181036000830152613c4b81613c0f565b9050919050565b6000613c5d82612dcc565b9150613c6883612dcc565b9250828203905081811115613c8057613c7f6131a2565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce2602183612cc2565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d74602283612cc2565b9150613d7f82613d18565b604082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e3d81612d8e565b82525050565b6000613e4f8383613e34565b60208301905092915050565b6000602082019050919050565b6000613e7382613e08565b613e7d8185613e13565b9350613e8883613e24565b8060005b83811015613eb9578151613ea08882613e43565b9750613eab83613e5b565b925050600181019050613e8c565b5085935050505092915050565b600060a082019050613edb6000830188612e78565b613ee8602083018761339a565b8181036040830152613efa8186613e68565b9050613f096060830185612f59565b613f166080830184612e78565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f7c602683612cc2565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b905091905056fea26469706673582212200694364f116dd897aac72f99d616214b73708266c79f5ff12eb041f6293ac68864736f6c63430008130033

Deployed Bytecode Sourcemap

14795:9697:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10955:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17941:196;;;;;;;;;;;;;:::i;:::-;;10344:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18320:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11164:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15234:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10243:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11433:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15757:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15721:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14921:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22853:229;;;;;;;;;;;;;:::i;:::-;;19635:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14872:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22652:193;;;;;;;;;;;;;:::i;:::-;;15614:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10460:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1116:103;;;;;;;;;;;;;:::i;:::-;;18145:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;881:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10131:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19168:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23090:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17145:751;;;:::i;:::-;;11679:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10595:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23204:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23339:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18953:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18517:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15310:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15686:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10796:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15654:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15484:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1227:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15397:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15576:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10023:100;10077:13;10110:5;10103:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:100;:::o;10955:201::-;11038:4;11055:13;11071:12;:10;:12::i;:::-;11055:28;;11094:32;11103:5;11110:7;11119:6;11094:8;:32::i;:::-;11144:4;11137:11;;;10955:201;;;;:::o;17941:196::-;840:13;:11;:13::i;:::-;18031:11:::1;;;;;;;;;;;18030:12;18022:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18096:4;18082:11;;:18;;;;;;;;;;;;;;;;;;18125:4;18111:11;;:18;;;;;;;;;;;;;;;;;;17941:196::o:0;10344:108::-;10405:7;10432:12;;10425:19;;10344:108;:::o;18320:189::-;840:13;:11;:13::i;:::-;18454:10:::1;;;;;;;;;;;18423:42;;18440:12;18423:42;;;;;;;;;;;;18489:12;18476:10;;:25;;;;;;;;;;;;;;;;;;18320:189:::0;:::o;11164:261::-;11261:4;11278:15;11296:12;:10;:12::i;:::-;11278:30;;11319:38;11335:4;11341:7;11350:6;11319:15;:38::i;:::-;11368:27;11378:4;11384:2;11388:6;11368:9;:27::i;:::-;11413:4;11406:11;;;11164:261;;;;;:::o;15234:55::-;;;;:::o;10243:93::-;10301:5;10326:2;10319:9;;10243:93;:::o;11433:238::-;11521:4;11538:13;11554:12;:10;:12::i;:::-;11538:28;;11577:64;11586:5;11593:7;11630:10;11602:25;11612:5;11619:7;11602:9;:25::i;:::-;:38;;;;:::i;:::-;11577:8;:64::i;:::-;11659:4;11652:11;;;11433:238;;;;:::o;15757:30::-;;;;:::o;15721:29::-;;;;:::o;14921:28::-;;;;;;;;;;;;;:::o;22853:229::-;22932:1;22908:21;:25;22900:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22995:16;;;;;;;;;;;22979:32;;:12;:10;:12::i;:::-;:32;;;22971:41;;;;;;23031:10;23023:28;;:51;23052:21;23023:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22853:229::o;19635:126::-;19701:4;19725:19;:28;19745:7;19725:28;;;;;;;;;;;;;;;;;;;;;;;;;19718:35;;19635:126;;;:::o;14872:42::-;;;;;;;;;;;;;:::o;22652:193::-;840:13;:11;:13::i;:::-;22705:25:::1;22733:13;:11;:13::i;:::-;22705:41;;22780:17;22757:20;:40;;;;22820:17;22808:9;:29;;;;22694:151;22652:193::o:0;15614:31::-;;;;;;;;;;;;;:::o;10460:127::-;10534:7;10561:9;:18;10571:7;10561:18;;;;;;;;;;;;;;;;10554:25;;10460:127;;;:::o;1116:103::-;840:13;:11;:13::i;:::-;1181:30:::1;1208:1;1181:18;:30::i;:::-;1116:103::o:0;18145:167::-;840:13;:11;:13::i;:::-;18300:4:::1;18258:31;:39;18290:6;18258:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18145:167:::0;;:::o;881:87::-;927:7;954:6;;;;;;;;;;;947:13;;881:87;:::o;10131:104::-;10187:13;10220:7;10213:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10131:104;:::o;19168:265::-;840:13;:11;:13::i;:::-;19298::::1;;;;;;;;;;;19290:21;;:4;:21;;::::0;19282:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19384:41;19413:4;19419:5;19384:28;:41::i;:::-;19168:265:::0;;:::o;23090:106::-;16139:30;16158:10;16139:18;:30::i;:::-;16131:39;;;;;;23167:21:::1;23173:6;23181;23167:5;:21::i;:::-;23090:106:::0;;:::o;17145:751::-;840:13;:11;:13::i;:::-;17276:42:::1;17238:16;;:81;;;;;;;;;;;;;;;;;;17330:58;17364:16;;;;;;;;;;;17383:4;17330:25;:58::i;:::-;17435:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17417:56;;;17482:4;17489:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17417:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17401:13;;:112;;;;;;;;;;;;;;;;;;17540:55;17574:13;;;;;;;;;;;17590:4;17540:25;:55::i;:::-;17608:58;17645:13;;;;;;;;;;;17661:4;17608:28;:58::i;:::-;17685:69;17702:4;17717:16;;;;;;;;;;;17736:17;17685:8;:69::i;:::-;17767:16;;;;;;;;;;;:32;;;17807:9;17826:4;17832:24;17850:4;17832:9;:24::i;:::-;17857:1;17859::::0;17861:10:::1;17872:15;17767:121;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17145:751::o:0;11679:436::-;11772:4;11789:13;11805:12;:10;:12::i;:::-;11789:28;;11828:24;11855:25;11865:5;11872:7;11855:9;:25::i;:::-;11828:52;;11919:15;11899:16;:35;;11891:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12012:60;12021:5;12028:7;12056:15;12037:16;:34;12012:8;:60::i;:::-;12103:4;12096:11;;;;11679:436;;;;:::o;10595:193::-;10674:4;10691:13;10707:12;:10;:12::i;:::-;10691:28;;10730;10740:5;10747:2;10751:6;10730:9;:28::i;:::-;10776:4;10769:11;;;10595:193;;;;:::o;23204:127::-;840:13;:11;:13::i;:::-;23314:8:::1;23303:7;:20;;;;:::i;:::-;23282:18;:41;;;;23204:127:::0;:::o;23339:410::-;23420:16;;;;;;;;;;;23404:32;;:12;:10;:12::i;:::-;:32;;;23396:41;;;;;;23450:25;23478:13;:11;:13::i;:::-;23450:41;;23502:23;23528:24;23546:4;23528:9;:24::i;:::-;23502:50;;23563:23;23619:3;23609:7;23589:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23563:59;;23660:15;23641;:34;;23633:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23708:33;23725:15;23708:16;:33::i;:::-;23385:364;;;23339:410;:::o;18953:207::-;840:13;:11;:13::i;:::-;19094:8:::1;19063:19;:28;19083:7;19063:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19134:7;19118:34;;;19143:8;19118:34;;;;;;:::i;:::-;;;;;;;;18953:207:::0;;:::o;18517:259::-;840:13;:11;:13::i;:::-;18680:4:::1;18672;18667:1;18651:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18650:26;;;;:::i;:::-;18649:35;;;;:::i;:::-;18633:12;:51;;18625:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;18764:4;18749:12;:19;;;;:::i;:::-;18737:9;:31;;;;18517:259:::0;:::o;15310:68::-;;;;:::o;15686:26::-;;;;:::o;10796:151::-;10885:7;10912:11;:18;10924:5;10912:18;;;;;;;;;;;;;;;:27;10931:7;10912:27;;;;;;;;;;;;;;;;10905:34;;10796:151;;;;:::o;15654:25::-;;;;:::o;15484:68::-;;;;:::o;1227:201::-;840:13;:11;:13::i;:::-;1336:1:::1;1316:22;;:8;:22;;::::0;1308:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1392:28;1411:8;1392:18;:28::i;:::-;1227:201:::0;:::o;15397:57::-;;;;:::o;15576:31::-;;;;;;;;;;;;;:::o;354:98::-;407:7;434:10;427:17;;354:98;:::o;13818:346::-;13937:1;13920:19;;:5;:19;;;13912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14018:1;13999:21;;:7;:21;;;13991:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14102:6;14072:11;:18;14084:5;14072:18;;;;;;;;;;;;;;;:27;14091:7;14072:27;;;;;;;;;;;;;;;:36;;;;14140:7;14124:32;;14133:5;14124:32;;;14149:6;14124:32;;;;;;:::i;:::-;;;;;;;;13818:346;;;:::o;976:132::-;1051:12;:10;:12::i;:::-;1040:23;;:7;:5;:7::i;:::-;:23;;;1032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;976:132::o;14172:419::-;14273:24;14300:25;14310:5;14317:7;14300:9;:25::i;:::-;14273:52;;14360:17;14340:16;:37;14336:248;;14422:6;14402:16;:26;;14394:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14506:51;14515:5;14522:7;14550:6;14531:16;:25;14506:8;:51::i;:::-;14336:248;14262:329;14172:419;;;:::o;19769:2388::-;19885:1;19869:18;;:4;:18;;;19861:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19962:1;19948:16;;:2;:16;;;19940:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20039:1;20029:6;:11;20025:93;;20057:28;20073:4;20079:2;20083:1;20057:15;:28::i;:::-;20100:7;;20025:93;20142:7;:5;:7::i;:::-;20134:15;;:4;:15;;;;:32;;;;;20159:7;:5;:7::i;:::-;20153:13;;:2;:13;;;;20134:32;:52;;;;;20184:1;20170:16;;:2;:16;;;;20134:52;:77;;;;;20204:6;20190:21;;:2;:21;;;;20134:77;:90;;;;;20216:8;;;;;;;;;;;20215:9;20134:90;20130:996;;;20248:11;;;;;;;;;;;20243:140;;20288:19;:25;20308:4;20288:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20317:19;:23;20337:2;20317:23;;;;;;;;;;;;;;;;;;;;;;;;;20288:52;20280:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20243:140;20403:25;:31;20429:4;20403:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20439:31;:35;20471:2;20439:35;;;;;;;;;;;;;;;;;;;;;;;;;20438:36;20403:71;20399:716;;;20527:20;;20517:6;:30;;20509:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20658:9;;20641:13;20651:2;20641:9;:13::i;:::-;20632:6;:22;;;;:::i;:::-;:35;;20624:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20399:716;;;20732:25;:29;20758:2;20732:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20766:31;:37;20798:4;20766:37;;;;;;;;;;;;;;;;;;;;;;;;;20765:38;20732:71;20728:387;;;20842:20;;20832:6;:30;;20824:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20728:387;;;20976:31;:35;21008:2;20976:35;;;;;;;;;;;;;;;;;;;;;;;;;20971:144;;21066:9;;21049:13;21059:2;21049:9;:13::i;:::-;21040:6;:22;;;;:::i;:::-;:35;;21032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20971:144;20728:387;20399:716;20130:996;21138:28;21169:24;21187:4;21169:9;:24::i;:::-;21138:55;;21206:12;21244:1;21221:20;:24;21206:39;;21262:7;:22;;;;;21273:11;;;;;;;;;;;21262:22;:35;;;;;21289:8;;;;;;;;;;;21288:9;21262:35;:71;;;;;21302:25;:31;21328:4;21302:31;;;;;;;;;;;;;;;;;;;;;;;;;21301:32;21262:71;:101;;;;;21338:19;:25;21358:4;21338:25;;;;;;;;;;;;;;;;;;;;;;;;;21337:26;21262:101;:129;;;;;21368:19;:23;21388:2;21368:23;;;;;;;;;;;;;;;;;;;;;;;;;21367:24;21262:129;21258:239;;;21419:4;21408:8;;:15;;;;;;;;;;;;;;;;;;21438:16;21447:6;21438:8;:16::i;:::-;21480:5;21469:8;;:16;;;;;;;;;;;;;;;;;;21258:239;21509:12;21525:8;;;;;;;;;;;21524:9;21509:24;;21550:19;:25;21570:4;21550:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21579:19;:23;21599:2;21579:23;;;;;;;;;;;;;;;;;;;;;;;;;21550:52;21546:100;;;21629:5;21619:15;;21546:100;21658:12;21691:7;21687:419;;;21719:25;:29;21745:2;21719:29;;;;;;;;;;;;;;;;;;;;;;;;;21715:264;;;21776:64;21825:14;;21800:22;21810:11;;21800:9;:22::i;:::-;:39;;;;:::i;:::-;21776:19;21787:7;;21776:6;:10;;:19;;;;:::i;:::-;:23;;:64;;;;:::i;:::-;21769:71;;21715:264;;;21901:62;21948:14;;21924:21;21934:10;;21924:9;:21::i;:::-;:38;;;;:::i;:::-;21901:18;21912:6;;21901;:10;;:18;;;;:::i;:::-;:22;;:62;;;;:::i;:::-;21894:69;;21715:264;22002:1;21995:4;:8;21991:83;;;22020:42;22036:4;22050;22057;22020:15;:42::i;:::-;21991:83;22094:4;22084:14;;;;;:::i;:::-;;;21687:419;22116:33;22132:4;22138:2;22142:6;22116:15;:33::i;:::-;19848:2309;;;;19769:2388;;;;:::o;1436:191::-;1510:16;1529:6;;;;;;;;;;;1510:25;;1555:8;1546:6;;:17;;;;;;;;;;;;;;;;;;1610:8;1579:40;;1600:8;1579:40;;;;;;;;;;;;1499:128;1436:191;:::o;19441:186::-;19558:5;19524:25;:31;19550:4;19524:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19613:5;19579:40;;19607:4;19579:40;;;;;;;;;;;;19441:186;;:::o;13215:595::-;13318:1;13299:21;;:7;:21;;;13291:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13371:49;13392:7;13409:1;13413:6;13371:20;:49::i;:::-;13433:22;13458:9;:18;13468:7;13458:18;;;;;;;;;;;;;;;;13433:43;;13513:6;13495:14;:24;;13487:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13632:6;13615:14;:23;13594:9;:18;13604:7;13594:18;;;;;;;;;;;;;;;:44;;;;13669:6;13653:12;;:22;;;;;;;;;;;13730:1;13704:37;;13713:7;13704:37;;;13734:6;13704:37;;;;;;:::i;:::-;;;;;;;;13754:48;13774:7;13791:1;13795:6;13754:19;:48::i;:::-;13280:530;13215:595;;:::o;22165:479::-;22233:21;22271:1;22257:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22233:40;;22302:4;22284;22289:1;22284:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22328:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22318:4;22323:1;22318:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22362:63;22379:4;22394:16;;;;;;;;;;;22413:11;22362:8;:63::i;:::-;22436:16;;;;;;;;;;;:67;;;22518:11;22544:1;22560:4;22579:16;;;;;;;;;;;22610:15;22436:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22220:424;22165:479;:::o;12123:641::-;12236:1;12220:18;;:4;:18;;;12212:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12313:1;12299:16;;:2;:16;;;12291:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12368:38;12389:4;12395:2;12399:6;12368:20;:38::i;:::-;12419:19;12441:9;:15;12451:4;12441:15;;;;;;;;;;;;;;;;12419:37;;12490:6;12475:11;:21;;12467:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12607:6;12593:11;:20;12575:9;:15;12585:4;12575:15;;;;;;;;;;;;;;;:38;;;;12645:6;12628:9;:13;12638:2;12628:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12695:2;12680:26;;12689:4;12680:26;;;12699:6;12680:26;;;;;;:::i;:::-;;;;;;;;12719:37;12739:4;12745:2;12749:6;12719:19;:37::i;:::-;12201:563;12123:641;;;:::o;23757:728::-;23836:23;23862:24;23880:4;23862:9;:24::i;:::-;23836:50;;23897:20;23953:1;23934:15;:20;23930:505;;23971:7;;;;23930:505;24026:1;24008:15;:19;:59;;;;;24049:18;;24031:15;:36;24008:59;24005:430;;;24099:15;24084:30;;24005:430;;;24156:21;24180:28;24204:3;24180:19;24191:7;;24180:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24156:52;;24233:13;24223:23;;;;;:::i;:::-;;;24274:18;;24265:6;:27;24261:163;;;24328:18;;24313:33;;24261:163;;;24402:6;24387:21;;24261:163;24141:294;24005:430;24447:30;24464:12;24447:16;:30::i;:::-;23799:686;;23757:728;;:::o;18784:161::-;18840:7;18892:1;18867:22;15083:6;18867:9;:22::i;:::-;:26;:37;;;;;18903:1;18897:3;:7;18867:37;:70;;18936:1;18867:70;;;18929:3;18924:1;18909:14;;:16;;;;:::i;:::-;18908:24;;;;:::i;:::-;18867:70;18860:77;;18784:161;;;:::o;8476:98::-;8534:7;8565:1;8561;:5;;;;:::i;:::-;8554:12;;8476:98;;;;:::o;8582:::-;8640:7;8671:1;8667;:5;;;;:::i;:::-;8660:12;;8582:98;;;;:::o;14599:91::-;;;;:::o;14698:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:152::-;5962:9;5995:37;6026:5;5995:37;:::i;:::-;5982:50;;5886:152;;;:::o;6044:183::-;6157:63;6214:5;6157:63;:::i;:::-;6152:3;6145:76;6044:183;;:::o;6233:274::-;6352:4;6390:2;6379:9;6375:18;6367:26;;6403:97;6497:1;6486:9;6482:17;6473:6;6403:97;:::i;:::-;6233:274;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:468::-;6839:6;6847;6896:2;6884:9;6875:7;6871:23;6867:32;6864:119;;;6902:79;;:::i;:::-;6864:119;7022:1;7047:53;7092:7;7083:6;7072:9;7068:22;7047:53;:::i;:::-;7037:63;;6993:117;7149:2;7175:50;7217:7;7208:6;7197:9;7193:22;7175:50;:::i;:::-;7165:60;;7120:115;6774:468;;;;;:::o;7248:329::-;7307:6;7356:2;7344:9;7335:7;7331:23;7327:32;7324:119;;;7362:79;;:::i;:::-;7324:119;7482:1;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7453:117;7248:329;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:180::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8249:320;8293:6;8330:1;8324:4;8320:12;8310:22;;8377:1;8371:4;8367:12;8398:18;8388:81;;8454:4;8446:6;8442:17;8432:27;;8388:81;8516:2;8508:6;8505:14;8485:18;8482:38;8479:84;;8535:18;;:::i;:::-;8479:84;8300:269;8249:320;;;:::o;8575:173::-;8715:25;8711:1;8703:6;8699:14;8692:49;8575:173;:::o;8754:366::-;8896:3;8917:67;8981:2;8976:3;8917:67;:::i;:::-;8910:74;;8993:93;9082:3;8993:93;:::i;:::-;9111:2;9106:3;9102:12;9095:19;;8754:366;;;:::o;9126:419::-;9292:4;9330:2;9319:9;9315:18;9307:26;;9379:9;9373:4;9369:20;9365:1;9354:9;9350:17;9343:47;9407:131;9533:4;9407:131;:::i;:::-;9399:139;;9126:419;;;:::o;9551:180::-;9599:77;9596:1;9589:88;9696:4;9693:1;9686:15;9720:4;9717:1;9710:15;9737:191;9777:3;9796:20;9814:1;9796:20;:::i;:::-;9791:25;;9830:20;9848:1;9830:20;:::i;:::-;9825:25;;9873:1;9870;9866:9;9859:16;;9894:3;9891:1;9888:10;9885:36;;;9901:18;;:::i;:::-;9885:36;9737:191;;;;:::o;9934:172::-;10074:24;10070:1;10062:6;10058:14;10051:48;9934:172;:::o;10112:366::-;10254:3;10275:67;10339:2;10334:3;10275:67;:::i;:::-;10268:74;;10351:93;10440:3;10351:93;:::i;:::-;10469:2;10464:3;10460:12;10453:19;;10112:366;;;:::o;10484:419::-;10650:4;10688:2;10677:9;10673:18;10665:26;;10737:9;10731:4;10727:20;10723:1;10712:9;10708:17;10701:47;10765:131;10891:4;10765:131;:::i;:::-;10757:139;;10484:419;;;:::o;10909:244::-;11049:34;11045:1;11037:6;11033:14;11026:58;11118:27;11113:2;11105:6;11101:15;11094:52;10909:244;:::o;11159:366::-;11301:3;11322:67;11386:2;11381:3;11322:67;:::i;:::-;11315:74;;11398:93;11487:3;11398:93;:::i;:::-;11516:2;11511:3;11507:12;11500:19;;11159:366;;;:::o;11531:419::-;11697:4;11735:2;11724:9;11720:18;11712:26;;11784:9;11778:4;11774:20;11770:1;11759:9;11755:17;11748:47;11812:131;11938:4;11812:131;:::i;:::-;11804:139;;11531:419;;;:::o;11956:143::-;12013:5;12044:6;12038:13;12029:22;;12060:33;12087:5;12060:33;:::i;:::-;11956:143;;;;:::o;12105:351::-;12175:6;12224:2;12212:9;12203:7;12199:23;12195:32;12192:119;;;12230:79;;:::i;:::-;12192:119;12350:1;12375:64;12431:7;12422:6;12411:9;12407:22;12375:64;:::i;:::-;12365:74;;12321:128;12105:351;;;;:::o;12462:332::-;12583:4;12621:2;12610:9;12606:18;12598:26;;12634:71;12702:1;12691:9;12687:17;12678:6;12634:71;:::i;:::-;12715:72;12783:2;12772:9;12768:18;12759:6;12715:72;:::i;:::-;12462:332;;;;;:::o;12800:85::-;12845:7;12874:5;12863:16;;12800:85;;;:::o;12891:158::-;12949:9;12982:61;13000:42;13009:32;13035:5;13009:32;:::i;:::-;13000:42;:::i;:::-;12982:61;:::i;:::-;12969:74;;12891:158;;;:::o;13055:147::-;13150:45;13189:5;13150:45;:::i;:::-;13145:3;13138:58;13055:147;;:::o;13208:807::-;13457:4;13495:3;13484:9;13480:19;13472:27;;13509:71;13577:1;13566:9;13562:17;13553:6;13509:71;:::i;:::-;13590:72;13658:2;13647:9;13643:18;13634:6;13590:72;:::i;:::-;13672:80;13748:2;13737:9;13733:18;13724:6;13672:80;:::i;:::-;13762;13838:2;13827:9;13823:18;13814:6;13762:80;:::i;:::-;13852:73;13920:3;13909:9;13905:19;13896:6;13852:73;:::i;:::-;13935;14003:3;13992:9;13988:19;13979:6;13935:73;:::i;:::-;13208:807;;;;;;;;;:::o;14021:143::-;14078:5;14109:6;14103:13;14094:22;;14125:33;14152:5;14125:33;:::i;:::-;14021:143;;;;:::o;14170:663::-;14258:6;14266;14274;14323:2;14311:9;14302:7;14298:23;14294:32;14291:119;;;14329:79;;:::i;:::-;14291:119;14449:1;14474:64;14530:7;14521:6;14510:9;14506:22;14474:64;:::i;:::-;14464:74;;14420:128;14587:2;14613:64;14669:7;14660:6;14649:9;14645:22;14613:64;:::i;:::-;14603:74;;14558:129;14726:2;14752:64;14808:7;14799:6;14788:9;14784:22;14752:64;:::i;:::-;14742:74;;14697:129;14170:663;;;;;:::o;14839:224::-;14979:34;14975:1;14967:6;14963:14;14956:58;15048:7;15043:2;15035:6;15031:15;15024:32;14839:224;:::o;15069:366::-;15211:3;15232:67;15296:2;15291:3;15232:67;:::i;:::-;15225:74;;15308:93;15397:3;15308:93;:::i;:::-;15426:2;15421:3;15417:12;15410:19;;15069:366;;;:::o;15441:419::-;15607:4;15645:2;15634:9;15630:18;15622:26;;15694:9;15688:4;15684:20;15680:1;15669:9;15665:17;15658:47;15722:131;15848:4;15722:131;:::i;:::-;15714:139;;15441:419;;;:::o;15866:410::-;15906:7;15929:20;15947:1;15929:20;:::i;:::-;15924:25;;15963:20;15981:1;15963:20;:::i;:::-;15958:25;;16018:1;16015;16011:9;16040:30;16058:11;16040:30;:::i;:::-;16029:41;;16219:1;16210:7;16206:15;16203:1;16200:22;16180:1;16173:9;16153:83;16130:139;;16249:18;;:::i;:::-;16130:139;15914:362;15866:410;;;;:::o;16282:180::-;16330:77;16327:1;16320:88;16427:4;16424:1;16417:15;16451:4;16448:1;16441:15;16468:185;16508:1;16525:20;16543:1;16525:20;:::i;:::-;16520:25;;16559:20;16577:1;16559:20;:::i;:::-;16554:25;;16598:1;16588:35;;16603:18;;:::i;:::-;16588:35;16645:1;16642;16638:9;16633:14;;16468:185;;;;:::o;16659:167::-;16799:19;16795:1;16787:6;16783:14;16776:43;16659:167;:::o;16832:366::-;16974:3;16995:67;17059:2;17054:3;16995:67;:::i;:::-;16988:74;;17071:93;17160:3;17071:93;:::i;:::-;17189:2;17184:3;17180:12;17173:19;;16832:366;;;:::o;17204:419::-;17370:4;17408:2;17397:9;17393:18;17385:26;;17457:9;17451:4;17447:20;17443:1;17432:9;17428:17;17421:47;17485:131;17611:4;17485:131;:::i;:::-;17477:139;;17204:419;;;:::o;17629:224::-;17769:34;17765:1;17757:6;17753:14;17746:58;17838:7;17833:2;17825:6;17821:15;17814:32;17629:224;:::o;17859:366::-;18001:3;18022:67;18086:2;18081:3;18022:67;:::i;:::-;18015:74;;18098:93;18187:3;18098:93;:::i;:::-;18216:2;18211:3;18207:12;18200:19;;17859:366;;;:::o;18231:419::-;18397:4;18435:2;18424:9;18420:18;18412:26;;18484:9;18478:4;18474:20;18470:1;18459:9;18455:17;18448:47;18512:131;18638:4;18512:131;:::i;:::-;18504:139;;18231:419;;;:::o;18656:225::-;18796:34;18792:1;18784:6;18780:14;18773:58;18865:8;18860:2;18852:6;18848:15;18841:33;18656:225;:::o;18887:366::-;19029:3;19050:67;19114:2;19109:3;19050:67;:::i;:::-;19043:74;;19126:93;19215:3;19126:93;:::i;:::-;19244:2;19239:3;19235:12;19228:19;;18887:366;;;:::o;19259:419::-;19425:4;19463:2;19452:9;19448:18;19440:26;;19512:9;19506:4;19502:20;19498:1;19487:9;19483:17;19476:47;19540:131;19666:4;19540:131;:::i;:::-;19532:139;;19259:419;;;:::o;19684:223::-;19824:34;19820:1;19812:6;19808:14;19801:58;19893:6;19888:2;19880:6;19876:15;19869:31;19684:223;:::o;19913:366::-;20055:3;20076:67;20140:2;20135:3;20076:67;:::i;:::-;20069:74;;20152:93;20241:3;20152:93;:::i;:::-;20270:2;20265:3;20261:12;20254:19;;19913:366;;;:::o;20285:419::-;20451:4;20489:2;20478:9;20474:18;20466:26;;20538:9;20532:4;20528:20;20524:1;20513:9;20509:17;20502:47;20566:131;20692:4;20566:131;:::i;:::-;20558:139;;20285:419;;;:::o;20710:221::-;20850:34;20846:1;20838:6;20834:14;20827:58;20919:4;20914:2;20906:6;20902:15;20895:29;20710:221;:::o;20937:366::-;21079:3;21100:67;21164:2;21159:3;21100:67;:::i;:::-;21093:74;;21176:93;21265:3;21176:93;:::i;:::-;21294:2;21289:3;21285:12;21278:19;;20937:366;;;:::o;21309:419::-;21475:4;21513:2;21502:9;21498:18;21490:26;;21562:9;21556:4;21552:20;21548:1;21537:9;21533:17;21526:47;21590:131;21716:4;21590:131;:::i;:::-;21582:139;;21309:419;;;:::o;21734:182::-;21874:34;21870:1;21862:6;21858:14;21851:58;21734:182;:::o;21922:366::-;22064:3;22085:67;22149:2;22144:3;22085:67;:::i;:::-;22078:74;;22161:93;22250:3;22161:93;:::i;:::-;22279:2;22274:3;22270:12;22263:19;;21922:366;;;:::o;22294:419::-;22460:4;22498:2;22487:9;22483:18;22475:26;;22547:9;22541:4;22537:20;22533:1;22522:9;22518:17;22511:47;22575:131;22701:4;22575:131;:::i;:::-;22567:139;;22294:419;;;:::o;22719:179::-;22859:31;22855:1;22847:6;22843:14;22836:55;22719:179;:::o;22904:366::-;23046:3;23067:67;23131:2;23126:3;23067:67;:::i;:::-;23060:74;;23143:93;23232:3;23143:93;:::i;:::-;23261:2;23256:3;23252:12;23245:19;;22904:366;;;:::o;23276:419::-;23442:4;23480:2;23469:9;23465:18;23457:26;;23529:9;23523:4;23519:20;23515:1;23504:9;23500:17;23493:47;23557:131;23683:4;23557:131;:::i;:::-;23549:139;;23276:419;;;:::o;23701:224::-;23841:34;23837:1;23829:6;23825:14;23818:58;23910:7;23905:2;23897:6;23893:15;23886:32;23701:224;:::o;23931:366::-;24073:3;24094:67;24158:2;24153:3;24094:67;:::i;:::-;24087:74;;24170:93;24259:3;24170:93;:::i;:::-;24288:2;24283:3;24279:12;24272:19;;23931:366;;;:::o;24303:419::-;24469:4;24507:2;24496:9;24492:18;24484:26;;24556:9;24550:4;24546:20;24542:1;24531:9;24527:17;24520:47;24584:131;24710:4;24584:131;:::i;:::-;24576:139;;24303:419;;;:::o;24728:222::-;24868:34;24864:1;24856:6;24852:14;24845:58;24937:5;24932:2;24924:6;24920:15;24913:30;24728:222;:::o;24956:366::-;25098:3;25119:67;25183:2;25178:3;25119:67;:::i;:::-;25112:74;;25195:93;25284:3;25195:93;:::i;:::-;25313:2;25308:3;25304:12;25297:19;;24956:366;;;:::o;25328:419::-;25494:4;25532:2;25521:9;25517:18;25509:26;;25581:9;25575:4;25571:20;25567:1;25556:9;25552:17;25545:47;25609:131;25735:4;25609:131;:::i;:::-;25601:139;;25328:419;;;:::o;25753:172::-;25893:24;25889:1;25881:6;25877:14;25870:48;25753:172;:::o;25931:366::-;26073:3;26094:67;26158:2;26153:3;26094:67;:::i;:::-;26087:74;;26170:93;26259:3;26170:93;:::i;:::-;26288:2;26283:3;26279:12;26272:19;;25931:366;;;:::o;26303:419::-;26469:4;26507:2;26496:9;26492:18;26484:26;;26556:9;26550:4;26546:20;26542:1;26531:9;26527:17;26520:47;26584:131;26710:4;26584:131;:::i;:::-;26576:139;;26303:419;;;:::o;26728:240::-;26868:34;26864:1;26856:6;26852:14;26845:58;26937:23;26932:2;26924:6;26920:15;26913:48;26728:240;:::o;26974:366::-;27116:3;27137:67;27201:2;27196:3;27137:67;:::i;:::-;27130:74;;27213:93;27302:3;27213:93;:::i;:::-;27331:2;27326:3;27322:12;27315:19;;26974:366;;;:::o;27346:419::-;27512:4;27550:2;27539:9;27535:18;27527:26;;27599:9;27593:4;27589:20;27585:1;27574:9;27570:17;27563:47;27627:131;27753:4;27627:131;:::i;:::-;27619:139;;27346:419;;;:::o;27771:169::-;27911:21;27907:1;27899:6;27895:14;27888:45;27771:169;:::o;27946:366::-;28088:3;28109:67;28173:2;28168:3;28109:67;:::i;:::-;28102:74;;28185:93;28274:3;28185:93;:::i;:::-;28303:2;28298:3;28294:12;28287:19;;27946:366;;;:::o;28318:419::-;28484:4;28522:2;28511:9;28507:18;28499:26;;28571:9;28565:4;28561:20;28557:1;28546:9;28542:17;28535:47;28599:131;28725:4;28599:131;:::i;:::-;28591:139;;28318:419;;;:::o;28743:241::-;28883:34;28879:1;28871:6;28867:14;28860:58;28952:24;28947:2;28939:6;28935:15;28928:49;28743:241;:::o;28990:366::-;29132:3;29153:67;29217:2;29212:3;29153:67;:::i;:::-;29146:74;;29229:93;29318:3;29229:93;:::i;:::-;29347:2;29342:3;29338:12;29331:19;;28990:366;;;:::o;29362:419::-;29528:4;29566:2;29555:9;29551:18;29543:26;;29615:9;29609:4;29605:20;29601:1;29590:9;29586:17;29579:47;29643:131;29769:4;29643:131;:::i;:::-;29635:139;;29362:419;;;:::o;29787:194::-;29827:4;29847:20;29865:1;29847:20;:::i;:::-;29842:25;;29881:20;29899:1;29881:20;:::i;:::-;29876:25;;29925:1;29922;29918:9;29910:17;;29949:1;29943:4;29940:11;29937:37;;;29954:18;;:::i;:::-;29937:37;29787:194;;;;:::o;29987:220::-;30127:34;30123:1;30115:6;30111:14;30104:58;30196:3;30191:2;30183:6;30179:15;30172:28;29987:220;:::o;30213:366::-;30355:3;30376:67;30440:2;30435:3;30376:67;:::i;:::-;30369:74;;30452:93;30541:3;30452:93;:::i;:::-;30570:2;30565:3;30561:12;30554:19;;30213:366;;;:::o;30585:419::-;30751:4;30789:2;30778:9;30774:18;30766:26;;30838:9;30832:4;30828:20;30824:1;30813:9;30809:17;30802:47;30866:131;30992:4;30866:131;:::i;:::-;30858:139;;30585:419;;;:::o;31010:221::-;31150:34;31146:1;31138:6;31134:14;31127:58;31219:4;31214:2;31206:6;31202:15;31195:29;31010:221;:::o;31237:366::-;31379:3;31400:67;31464:2;31459:3;31400:67;:::i;:::-;31393:74;;31476:93;31565:3;31476:93;:::i;:::-;31594:2;31589:3;31585:12;31578:19;;31237:366;;;:::o;31609:419::-;31775:4;31813:2;31802:9;31798:18;31790:26;;31862:9;31856:4;31852:20;31848:1;31837:9;31833:17;31826:47;31890:131;32016:4;31890:131;:::i;:::-;31882:139;;31609:419;;;:::o;32034:180::-;32082:77;32079:1;32072:88;32179:4;32176:1;32169:15;32203:4;32200:1;32193:15;32220:180;32268:77;32265:1;32258:88;32365:4;32362:1;32355:15;32389:4;32386:1;32379:15;32406:114;32473:6;32507:5;32501:12;32491:22;;32406:114;;;:::o;32526:184::-;32625:11;32659:6;32654:3;32647:19;32699:4;32694:3;32690:14;32675:29;;32526:184;;;;:::o;32716:132::-;32783:4;32806:3;32798:11;;32836:4;32831:3;32827:14;32819:22;;32716:132;;;:::o;32854:108::-;32931:24;32949:5;32931:24;:::i;:::-;32926:3;32919:37;32854:108;;:::o;32968:179::-;33037:10;33058:46;33100:3;33092:6;33058:46;:::i;:::-;33136:4;33131:3;33127:14;33113:28;;32968:179;;;;:::o;33153:113::-;33223:4;33255;33250:3;33246:14;33238:22;;33153:113;;;:::o;33302:732::-;33421:3;33450:54;33498:5;33450:54;:::i;:::-;33520:86;33599:6;33594:3;33520:86;:::i;:::-;33513:93;;33630:56;33680:5;33630:56;:::i;:::-;33709:7;33740:1;33725:284;33750:6;33747:1;33744:13;33725:284;;;33826:6;33820:13;33853:63;33912:3;33897:13;33853:63;:::i;:::-;33846:70;;33939:60;33992:6;33939:60;:::i;:::-;33929:70;;33785:224;33772:1;33769;33765:9;33760:14;;33725:284;;;33729:14;34025:3;34018:10;;33426:608;;;33302:732;;;;:::o;34040:831::-;34303:4;34341:3;34330:9;34326:19;34318:27;;34355:71;34423:1;34412:9;34408:17;34399:6;34355:71;:::i;:::-;34436:80;34512:2;34501:9;34497:18;34488:6;34436:80;:::i;:::-;34563:9;34557:4;34553:20;34548:2;34537:9;34533:18;34526:48;34591:108;34694:4;34685:6;34591:108;:::i;:::-;34583:116;;34709:72;34777:2;34766:9;34762:18;34753:6;34709:72;:::i;:::-;34791:73;34859:3;34848:9;34844:19;34835:6;34791:73;:::i;:::-;34040:831;;;;;;;;:::o;34877:225::-;35017:34;35013:1;35005:6;35001:14;34994:58;35086:8;35081:2;35073:6;35069:15;35062:33;34877:225;:::o;35108:366::-;35250:3;35271:67;35335:2;35330:3;35271:67;:::i;:::-;35264:74;;35347:93;35436:3;35347:93;:::i;:::-;35465:2;35460:3;35456:12;35449:19;;35108:366;;;:::o;35480:419::-;35646:4;35684:2;35673:9;35669:18;35661:26;;35733:9;35727:4;35723:20;35719:1;35708:9;35704:17;35697:47;35761:131;35887:4;35761:131;:::i;:::-;35753:139;;35480:419;;;:::o

Swarm Source

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