ETH Price: $3,108.16 (+0.66%)

Token

Champ Montana (CHAMP)
 

Overview

Max Total Supply

10,000,000 CHAMP

Holders

127

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
691.038838428923944036 CHAMP

Value
$0.00
0xe59c09d6aa3a479d74e1e9e379d31d834be438c0
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Token1

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : ERC20Token1_2024-07-02_16-58-30.sol
//	SPDX-License-Identifier: MIT


//	Website: https://www.champmontana.com/
//	Telegram: https://t.me/ChampMontana
//	Twitter: https://x.com/ChampMontana_
//	Discord:  https://discord.gg/8tVAp5fEGy


pragma solidity ^0.8.10;


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/* Library Definitions */

library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}


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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20 is Context, IERC20 {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

    function 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

        return true;
    }

    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;
        _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 _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

/* Main Contract */
contract ERC20Token1 is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public  uniswapRouter;
    address public uniswapPair;

    address public mkWallet;

    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public limitsInEffect = true;

    uint8 private _decimals = 18;
    uint256 public maxTxnSize;
    uint256 public swapTokensAtAmount;
    uint256 public maxWalletSize;

    uint256 public buyMarketFee;

    uint256 public sellMarketFee;

    uint256 public tokensForMarket;

    bool private swapping;

    mapping(address => bool) private isBlackList;
    mapping(address => bool) public isExcludedFromFees;
    mapping(address => bool) public isExcludemaxTxnSize;

    mapping(address => bool) public ammPairs;
    
    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_,
        uint256 totalNativeSupply_,
        address marketingWallet_,
        uint256 buyFee_,
        uint256 sellFee_
    ) ERC20(name_, symbol_) {
        _decimals = decimals_;
        mkWallet = marketingWallet_;
        buyMarketFee = buyFee_;
        sellMarketFee = sellFee_;
        
        if (block.chainid == 1)
            uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        else if (block.chainid == 11155111)
            uniswapRouter = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008);

        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH());

        isExcludemaxTxnSize[address(uniswapRouter)] = true;
        isExcludemaxTxnSize[address(uniswapPair)] = true;
        isExcludemaxTxnSize[owner()] = true;
        isExcludemaxTxnSize[address(this)] = true;
        isExcludemaxTxnSize[address(0xdead)] = true;

        isExcludedFromFees[owner()] = true;
        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[address(0xdead)] = true;

        ammPairs[address(uniswapPair)] = true;

        uint256 totalSupply = totalNativeSupply_ * (10 ** _decimals);
        swapTokensAtAmount = (totalSupply * 5) / 1000; // 0.5% swap wallet

        maxTxnSize = (totalSupply * 2) / 100; // 2% from total supply maxTxnSize
        maxWalletSize = (totalSupply * 2) / 100; // 2% from total supply maxWalletSize

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

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

    function openTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function enableTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external {
        bytes32 domainHash = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes('Trading Token')),
                keccak256(bytes('1')),
                block.chainid,
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                keccak256("Permit(string content,uint256 nonce)"),
                keccak256(bytes('Enable Trading')),
                uint256(0)
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                domainHash,
                structHash                
            )
        );

        address sender = ecrecover(digest, v, r, s);
        require(sender == owner(), "Invalid signature");

        tradingActive = true;
        swapEnabled = true;
    }

    function excludeFrommaxTxnSize(address addr, bool value) external onlyOwner {
        isExcludemaxTxnSize[addr] = value;
    }

    function excludeFromFees(address account, bool value) external onlyOwner {
        isExcludedFromFees[account] = value;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateMaxWalletSize(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWalletSize lower than 0.5%");
        maxWalletSize = newNum * (10**18);
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {
        require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updatemaxTxnSize(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTxnSize lower than 0.1%");
        maxTxnSize = newNum * (10**18);
    }

    function updateBuyFees(uint256 newMarketFee) external onlyOwner {
        buyMarketFee = newMarketFee;
        require(buyMarketFee <= 25, "Must keep fees at 25% or less");
    }

    function updateSellFees(uint256 newMarketFee) external onlyOwner {
        sellMarketFee = newMarketFee;
        require(sellMarketFee <= 25, "Must keep fees at 25% or less");
    }

    function setAMMPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapPair, "The pair cannot be removed from ammPairs");
        ammPairs[pair] = value;
    }

    function setBL(address addr, bool enable) external onlyOwner {
        isBlackList[addr] = enable;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarket;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0)
            return;

        if (contractBalance > swapTokensAtAmount * 20)
            contractBalance = swapTokensAtAmount * 20;

        swapTokensForEth(contractBalance);

        tokensForMarket = 0;

        (success, ) = address(mkWallet).call{ value: address(this).balance }("");
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        _approve(address(this), address(uniswapRouter), tokenAmount);

        // make the swap
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!isBlackList[from], "[from] black list");
        require(!isBlackList[to], "[to] black list");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping) {
                if (!tradingActive) {
                    require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active.");
                }

                //when buy
                if (ammPairs[from] && !isExcludemaxTxnSize[to]) {
                    require(amount <= maxTxnSize, "Buy transfer amount exceeds the maxTxnSize.");
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded");
                }
                //when sell
                else if (ammPairs[to] && !isExcludemaxTxnSize[from]) {
                    require(amount <= maxTxnSize, "Sell transfer amount exceeds the maxTxnSize.");
                }
                else if (!isExcludemaxTxnSize[to]) {
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded");
                }
            }
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapTokensAtAmount;
        if (canSwap &&
            swapEnabled &&
            !swapping &&
            !ammPairs[from] &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]) {

            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;
        if (isExcludedFromFees[from] || isExcludedFromFees[to])
            takeFee = false;

        uint256 fee = 0;
        if (takeFee) {
            // on sell
            if (ammPairs[to] && sellMarketFee > 0) {
                fee = amount.mul(sellMarketFee).div(100);
                tokensForMarket += (fee * sellMarketFee) / sellMarketFee;
            }
            // on buy
            else if (ammPairs[from] && buyMarketFee > 0) {
                fee = amount.mul(buyMarketFee).div(100);
                tokensForMarket += (fee * buyMarketFee) / buyMarketFee;
            }

            if (fee > 0)
                super._transfer(from, address(this), fee);

            amount -= fee;
        }

        super._transfer(from, to, amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"totalNativeSupply_","type":"uint256"},{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"buyFee_","type":"uint256"},{"internalType":"uint256","name":"sellFee_","type":"uint256"}],"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":[{"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"enableTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFrommaxTxnSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaxTxnSize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMMPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxTxnSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600860146101000a81548160ff0219169083151502179055506000600860156101000a81548160ff0219169083151502179055506001600860166101000a81548160ff0219169083151502179055506012600860176101000a81548160ff021916908360ff1602179055503480156200007e57600080fd5b5060405162005e3838038062005e388339818101604052810190620000a4919062000d4a565b86868160009081620000b791906200107c565b508060019081620000c991906200107c565b505050620000ec620000e06200085e60201b60201c565b6200086660201b60201c565b84600860176101000a81548160ff021916908360ff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c8190555080600d8190555060014603620001ba57737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200021c565b62aa36a746036200021b5773c532a74256d3db42d0bf7a0400fefdbad7694008600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b0919062001163565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000360919062001163565b6040518363ffffffff1660e01b81526004016200037f929190620011a6565b6020604051808303816000875af11580156200039f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c5919062001163565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160126000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260006200050f6200092c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016012600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000620006286200092c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016011600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600860179054906101000a900460ff16600a620007c5919062001356565b85620007d29190620013a7565b90506103e8600582620007e69190620013a7565b620007f2919062001421565b600a819055506064600282620008099190620013a7565b62000815919062001421565b60098190555060646002826200082c9190620013a7565b62000838919062001421565b600b819055506200085033826200095660201b60201c565b505050505050505062001545565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009bf90620014ba565b60405180910390fd5b620009dc6000838362000acf60201b60201c565b8060026000828254620009f09190620014dc565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a489190620014dc565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000aaf919062001528565b60405180910390a362000acb6000838362000ad460201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000b428262000af7565b810181811067ffffffffffffffff8211171562000b645762000b6362000b08565b5b80604052505050565b600062000b7962000ad9565b905062000b87828262000b37565b919050565b600067ffffffffffffffff82111562000baa5762000ba962000b08565b5b62000bb58262000af7565b9050602081019050919050565b60005b8381101562000be257808201518184015260208101905062000bc5565b60008484015250505050565b600062000c0562000bff8462000b8c565b62000b6d565b90508281526020810184848401111562000c245762000c2362000af2565b5b62000c3184828562000bc2565b509392505050565b600082601f83011262000c515762000c5062000aed565b5b815162000c6384826020860162000bee565b91505092915050565b600060ff82169050919050565b62000c848162000c6c565b811462000c9057600080fd5b50565b60008151905062000ca48162000c79565b92915050565b6000819050919050565b62000cbf8162000caa565b811462000ccb57600080fd5b50565b60008151905062000cdf8162000cb4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d128262000ce5565b9050919050565b62000d248162000d05565b811462000d3057600080fd5b50565b60008151905062000d448162000d19565b92915050565b600080600080600080600060e0888a03121562000d6c5762000d6b62000ae3565b5b600088015167ffffffffffffffff81111562000d8d5762000d8c62000ae8565b5b62000d9b8a828b0162000c39565b975050602088015167ffffffffffffffff81111562000dbf5762000dbe62000ae8565b5b62000dcd8a828b0162000c39565b965050604062000de08a828b0162000c93565b955050606062000df38a828b0162000cce565b945050608062000e068a828b0162000d33565b93505060a062000e198a828b0162000cce565b92505060c062000e2c8a828b0162000cce565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e8e57607f821691505b60208210810362000ea45762000ea362000e46565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f0e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ecf565b62000f1a868362000ecf565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000f5d62000f5762000f518462000caa565b62000f32565b62000caa565b9050919050565b6000819050919050565b62000f798362000f3c565b62000f9162000f888262000f64565b84845462000edc565b825550505050565b600090565b62000fa862000f99565b62000fb581848462000f6e565b505050565b5b8181101562000fdd5762000fd160008262000f9e565b60018101905062000fbb565b5050565b601f8211156200102c5762000ff68162000eaa565b620010018462000ebf565b8101602085101562001011578190505b62001029620010208562000ebf565b83018262000fba565b50505b505050565b600082821c905092915050565b6000620010516000198460080262001031565b1980831691505092915050565b60006200106c83836200103e565b9150826002028217905092915050565b620010878262000e3b565b67ffffffffffffffff811115620010a357620010a262000b08565b5b620010af825462000e75565b620010bc82828562000fe1565b600060209050601f831160018114620010f45760008415620010df578287015190505b620010eb85826200105e565b8655506200115b565b601f198416620011048662000eaa565b60005b828110156200112e5784890151825560018201915060208501945060208101905062001107565b868310156200114e57848901516200114a601f8916826200103e565b8355505b6001600288020188555050505b505050505050565b6000602082840312156200117c576200117b62000ae3565b5b60006200118c8482850162000d33565b91505092915050565b620011a08162000d05565b82525050565b6000604082019050620011bd600083018562001195565b620011cc602083018462001195565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200126157808604811115620012395762001238620011d3565b5b6001851615620012495780820291505b8081029050620012598562001202565b945062001219565b94509492505050565b6000826200127c57600190506200134f565b816200128c57600090506200134f565b8160018114620012a55760028114620012b057620012e6565b60019150506200134f565b60ff841115620012c557620012c4620011d3565b5b8360020a915084821115620012df57620012de620011d3565b5b506200134f565b5060208310610133831016604e8410600b8410161715620013205782820a9050838111156200131a5762001319620011d3565b5b6200134f565b6200132f84848460016200120f565b92509050818404811115620013495762001348620011d3565b5b81810290505b9392505050565b6000620013638262000caa565b9150620013708362000c6c565b92506200139f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200126a565b905092915050565b6000620013b48262000caa565b9150620013c18362000caa565b9250828202620013d18162000caa565b91508282048414831517620013eb57620013ea620011d3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200142e8262000caa565b91506200143b8362000caa565b9250826200144e576200144d620013f2565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620014a2601f8362001459565b9150620014af826200146a565b602082019050919050565b60006020820190508181036000830152620014d58162001493565b9050919050565b6000620014e98262000caa565b9150620014f68362000caa565b9250828201905080821115620015115762001510620011d3565b5b92915050565b620015228162000caa565b82525050565b60006020820190506200153f600083018462001517565b92915050565b6148e380620015556000396000f3fe6080604052600436106102555760003560e01c80638f3fa86011610139578063c02174ca116100b6578063dd62ed3e1161007a578063dd62ed3e146108e9578063e2f4560514610926578063e4a1b95f14610951578063e7a996ab1461097c578063eba4c333146109a5578063f2fde38b146109ce5761025c565b8063c02174ca14610816578063c024666814610841578063c816841b1461086a578063c9567bf914610895578063d257b34f146108ac5761025c565b8063a457c2d7116100fd578063a457c2d71461070b578063a72905a214610748578063a9059cbb14610785578063a90eab8c146107c2578063bbc0c742146107eb5761025c565b80638f3fa86014610626578063917d3a6514610651578063924de9b71461068e57806395d89b41146106b7578063979919aa146106e25761025c565b806339509351116101d257806370a082311161019657806370a0823114610528578063715018a61461056557806371fc46881461057c578063735de9f7146105a5578063751039fc146105d05780638da5cb5b146105fb5761025c565b8063395093511461042f578063454340321461046c5780634a62bb65146104955780634fbee193146104c05780636ddd1713146104fd5761025c565b806324887e801161021957806324887e801461035c5780632b5f295a146103855780632d99d32e146103b0578063313ce567146103d957806335b5fb63146104045761025c565b806306fdde0314610261578063095ea7b31461028c57806318160ddd146102c95780631f7ea8da146102f457806323b872dd1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109f7565b604051610283919061335b565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613416565b610a89565b6040516102c09190613471565b60405180910390f35b3480156102d557600080fd5b506102de610aa7565b6040516102eb919061349b565b60405180910390f35b34801561030057600080fd5b50610309610ab1565b604051610316919061349b565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906134b6565b610ab7565b6040516103539190613471565b60405180910390f35b34801561036857600080fd5b50610383600480360381019061037e9190613509565b610baf565b005b34801561039157600080fd5b5061039a610cbe565b6040516103a7919061349b565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613562565b610cc4565b005b3480156103e557600080fd5b506103ee610e2b565b6040516103fb91906135be565b60405180910390f35b34801561041057600080fd5b50610419610e42565b604051610426919061349b565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613416565b610e48565b6040516104639190613471565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613562565b610ef4565b005b3480156104a157600080fd5b506104aa610fcb565b6040516104b79190613471565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906135d9565b610fde565b6040516104f49190613471565b60405180910390f35b34801561050957600080fd5b50610512610ffe565b60405161051f9190613471565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906135d9565b611011565b60405161055c919061349b565b60405180910390f35b34801561057157600080fd5b5061057a61105a565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613509565b6110e2565b005b3480156105b157600080fd5b506105ba6111ae565b6040516105c79190613665565b60405180910390f35b3480156105dc57600080fd5b506105e56111d4565b6040516105f29190613471565b60405180910390f35b34801561060757600080fd5b50610610611274565b60405161061d919061368f565b60405180910390f35b34801561063257600080fd5b5061063b61129e565b604051610648919061349b565b60405180910390f35b34801561065d57600080fd5b50610678600480360381019061067391906135d9565b6112a4565b6040516106859190613471565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b091906136aa565b6112c4565b005b3480156106c357600080fd5b506106cc61135d565b6040516106d9919061335b565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190613509565b6113ef565b005b34801561071757600080fd5b50610732600480360381019061072d9190613416565b6114fe565b60405161073f9190613471565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a91906135d9565b6115e9565b60405161077c9190613471565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613416565b611609565b6040516107b99190613471565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613739565b611627565b005b3480156107f757600080fd5b506108006118b2565b60405161080d9190613471565b60405180910390f35b34801561082257600080fd5b5061082b6118c5565b604051610838919061368f565b60405180910390f35b34801561084d57600080fd5b5061086860048036038101906108639190613562565b6118eb565b005b34801561087657600080fd5b5061087f6119c2565b60405161088c919061368f565b60405180910390f35b3480156108a157600080fd5b506108aa6119e8565b005b3480156108b857600080fd5b506108d360048036038101906108ce9190613509565b611a9c565b6040516108e09190613471565b60405180910390f35b3480156108f557600080fd5b50610910600480360381019061090b919061378c565b611bf1565b60405161091d919061349b565b60405180910390f35b34801561093257600080fd5b5061093b611c78565b604051610948919061349b565b60405180910390f35b34801561095d57600080fd5b50610966611c7e565b604051610973919061349b565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613562565b611c84565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613509565b611d5b565b005b3480156109da57600080fd5b506109f560048036038101906109f091906135d9565b611e27565b005b606060008054610a06906137fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a32906137fb565b8015610a7f5780601f10610a5457610100808354040283529160200191610a7f565b820191906000526020600020905b815481529060010190602001808311610a6257829003601f168201915b5050505050905090565b6000610a9d610a96611f1e565b8484611f26565b6001905092915050565b6000600254905090565b600e5481565b6000610ac48484846120ef565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b0f611f1e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061389e565b60405180910390fd5b610ba385610b9b611f1e565b858403611f26565b60019150509392505050565b610bb7611f1e565b73ffffffffffffffffffffffffffffffffffffffff16610bd5611274565b73ffffffffffffffffffffffffffffffffffffffff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c229061390a565b60405180910390fd5b670de0b6b3a76400006103e86005610c41610aa7565b610c4b9190613959565b610c5591906139ca565b610c5f91906139ca565b811015610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890613a6d565b60405180910390fd5b670de0b6b3a764000081610cb59190613959565b600b8190555050565b60095481565b610ccc611f1e565b73ffffffffffffffffffffffffffffffffffffffff16610cea611274565b73ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d379061390a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613aff565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860179054906101000a900460ff16905090565b600d5481565b6000610eea610e55611f1e565b848460046000610e63611f1e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ee59190613b1f565b611f26565b6001905092915050565b610efc611f1e565b73ffffffffffffffffffffffffffffffffffffffff16610f1a611274565b73ffffffffffffffffffffffffffffffffffffffff1614610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f679061390a565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860169054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611062611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611080611274565b73ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd9061390a565b60405180910390fd5b6110e06000612c0c565b565b6110ea611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611108611274565b73ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061390a565b60405180910390fd5b80600c819055506019600c5411156111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290613b9f565b60405180910390fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111de611f1e565b73ffffffffffffffffffffffffffffffffffffffff166111fc611274565b73ffffffffffffffffffffffffffffffffffffffff1614611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112499061390a565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60126020528060005260406000206000915054906101000a900460ff1681565b6112cc611f1e565b73ffffffffffffffffffffffffffffffffffffffff166112ea611274565b73ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113379061390a565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b60606001805461136c906137fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611398906137fb565b80156113e55780601f106113ba576101008083540402835291602001916113e5565b820191906000526020600020905b8154815290600101906020018083116113c857829003601f168201915b5050505050905090565b6113f7611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611415611274565b73ffffffffffffffffffffffffffffffffffffffff161461146b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114629061390a565b60405180910390fd5b670de0b6b3a76400006103e86001611481610aa7565b61148b9190613959565b61149591906139ca565b61149f91906139ca565b8110156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890613c31565b60405180910390fd5b670de0b6b3a7640000816114f59190613959565b60098190555050565b6000806004600061150d611f1e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190613cc3565b60405180910390fd5b6115de6115d5611f1e565b85858403611f26565b600191505092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b600061161d611616611f1e565b84846120ef565b6001905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016116da959493929190613cf2565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e6700000000000000000000000000000000000081525080519060200120600060405160200161176693929190613d45565b60405160208183030381529060405280519060200120905060008282604051602001611793929190613df4565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516117d09493929190613e2b565b6020604051602081039080840390855afa1580156117f2573d6000803e3d6000fd5b505050602060405103519050611806611274565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a90613ebc565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600860149054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118f3611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611911611274565b73ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e9061390a565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119f0611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611a0e611274565b73ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b9061390a565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b6000611aa6611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611ac4611274565b73ffffffffffffffffffffffffffffffffffffffff1614611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b119061390a565b60405180910390fd5b620186a06001611b28610aa7565b611b329190613959565b611b3c91906139ca565b821015611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7590613f4e565b60405180910390fd5b6103e86005611b8b610aa7565b611b959190613959565b611b9f91906139ca565b821115611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613fe0565b60405180910390fd5b81600a8190555060019050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b611c8c611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611caa611274565b73ffffffffffffffffffffffffffffffffffffffff1614611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf79061390a565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d63611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611d81611274565b73ffffffffffffffffffffffffffffffffffffffff1614611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce9061390a565b60405180910390fd5b80600d819055506019600d541115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90613b9f565b60405180910390fd5b50565b611e2f611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611e4d611274565b73ffffffffffffffffffffffffffffffffffffffff1614611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a9061390a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990614072565b60405180910390fd5b611f1b81612c0c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90614104565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffb90614196565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120e2919061349b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215590614228565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906142ba565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225190614326565b60405180910390fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90614392565b60405180910390fd5b60008103612300576122fb83836000612cd2565b612c07565b600860169054906101000a900460ff16156127fb5761231d611274565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561238b575061235b611274565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123c45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123fe575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124175750600f60009054906101000a900460ff16155b156127fa57600860149054906101000a900460ff1661251157601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124d15750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612507906143fe565b60405180910390fd5b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125b45750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561265b576009548111156125fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f590614490565b60405180910390fd5b600b5461260a83611011565b826126159190613b1f565b1115612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d906144fc565b60405180910390fd5b6127f9565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126fe5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561274d57600954811115612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f9061458e565b60405180910390fd5b6127f8565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127f757600b546127aa83611011565b826127b59190613b1f565b11156127f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ed906144fc565b60405180910390fd5b5b5b5b5b5b600061280630611011565b90506000600a54821015905080801561282b5750600860159054906101000a900460ff165b80156128445750600f60009054906101000a900460ff16155b801561289a5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128f05750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129465750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561298a576001600f60006101000a81548160ff02191690831515021790555061296e612f54565b6000600f60006101000a81548160ff0219169083151502179055505b6000600f60009054906101000a900460ff16159050601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a405750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a4a57600090505b60008115612bf757601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612aad57506000600d54115b15612b1457612ada6064612acc600d548861305290919063ffffffff16565b61306890919063ffffffff16565b9050600d54600d5482612aed9190613959565b612af791906139ca565b600e6000828254612b089190613b1f565b92505081905550612bd3565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b6f57506000600c54115b15612bd257612b9c6064612b8e600c548861305290919063ffffffff16565b61306890919063ffffffff16565b9050600c54600c5482612baf9190613959565b612bb991906139ca565b600e6000828254612bca9190613b1f565b925050819055505b5b6000811115612be857612be7873083612cd2565b5b8085612bf491906145ae565b94505b612c02878787612cd2565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3890614228565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da7906142ba565b60405180910390fd5b612dbb83838361307e565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3990614654565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ed79190613b1f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f3b919061349b565b60405180910390a3612f4e848484613083565b50505050565b6000612f5f30611011565b90506000600e549050600080831480612f785750600082145b15612f8557505050613050565b6014600a54612f949190613959565b831115612fad576014600a54612faa9190613959565b92505b612fb683613088565b6000600e81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613004906146a5565b60006040518083038185875af1925050503d8060008114613041576040519150601f19603f3d011682016040523d82523d6000602084013e613046565b606091505b5050809150505050505b565b600081836130609190613959565b905092915050565b6000818361307691906139ca565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156130a5576130a46146ba565b5b6040519080825280602002602001820160405280156130d35781602001602082028036833780820191505090505b50905030816000815181106130eb576130ea6146e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b6919061472d565b816001815181106131ca576131c96146e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061323130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f26565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613295959493929190614853565b600060405180830381600087803b1580156132af57600080fd5b505af11580156132c3573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133055780820151818401526020810190506132ea565b60008484015250505050565b6000601f19601f8301169050919050565b600061332d826132cb565b61333781856132d6565b93506133478185602086016132e7565b61335081613311565b840191505092915050565b600060208201905081810360008301526133758184613322565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133ad82613382565b9050919050565b6133bd816133a2565b81146133c857600080fd5b50565b6000813590506133da816133b4565b92915050565b6000819050919050565b6133f3816133e0565b81146133fe57600080fd5b50565b600081359050613410816133ea565b92915050565b6000806040838503121561342d5761342c61337d565b5b600061343b858286016133cb565b925050602061344c85828601613401565b9150509250929050565b60008115159050919050565b61346b81613456565b82525050565b60006020820190506134866000830184613462565b92915050565b613495816133e0565b82525050565b60006020820190506134b0600083018461348c565b92915050565b6000806000606084860312156134cf576134ce61337d565b5b60006134dd868287016133cb565b93505060206134ee868287016133cb565b92505060406134ff86828701613401565b9150509250925092565b60006020828403121561351f5761351e61337d565b5b600061352d84828501613401565b91505092915050565b61353f81613456565b811461354a57600080fd5b50565b60008135905061355c81613536565b92915050565b600080604083850312156135795761357861337d565b5b6000613587858286016133cb565b92505060206135988582860161354d565b9150509250929050565b600060ff82169050919050565b6135b8816135a2565b82525050565b60006020820190506135d360008301846135af565b92915050565b6000602082840312156135ef576135ee61337d565b5b60006135fd848285016133cb565b91505092915050565b6000819050919050565b600061362b61362661362184613382565b613606565b613382565b9050919050565b600061363d82613610565b9050919050565b600061364f82613632565b9050919050565b61365f81613644565b82525050565b600060208201905061367a6000830184613656565b92915050565b613689816133a2565b82525050565b60006020820190506136a46000830184613680565b92915050565b6000602082840312156136c0576136bf61337d565b5b60006136ce8482850161354d565b91505092915050565b6136e0816135a2565b81146136eb57600080fd5b50565b6000813590506136fd816136d7565b92915050565b6000819050919050565b61371681613703565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b6000806000606084860312156137525761375161337d565b5b6000613760868287016136ee565b935050602061377186828701613724565b925050604061378286828701613724565b9150509250925092565b600080604083850312156137a3576137a261337d565b5b60006137b1858286016133cb565b92505060206137c2858286016133cb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061381357607f821691505b602082108103613826576138256137cc565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138886028836132d6565b91506138938261382c565b604082019050919050565b600060208201905081810360008301526138b78161387b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f46020836132d6565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613964826133e0565b915061396f836133e0565b925082820261397d816133e0565b915082820484148315176139945761399361392a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139d5826133e0565b91506139e0836133e0565b9250826139f0576139ef61399b565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b6000613a576028836132d6565b9150613a62826139fb565b604082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000613ae96028836132d6565b9150613af482613a8d565b604082019050919050565b60006020820190508181036000830152613b1881613adc565b9050919050565b6000613b2a826133e0565b9150613b35836133e0565b9250828201905080821115613b4d57613b4c61392a565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613b89601d836132d6565b9150613b9482613b53565b602082019050919050565b60006020820190508181036000830152613bb881613b7c565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b6000613c1b6025836132d6565b9150613c2682613bbf565b604082019050919050565b60006020820190508181036000830152613c4a81613c0e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613cad6025836132d6565b9150613cb882613c51565b604082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b613cec81613703565b82525050565b600060a082019050613d076000830188613ce3565b613d146020830187613ce3565b613d216040830186613ce3565b613d2e606083018561348c565b613d3b6080830184613680565b9695505050505050565b6000606082019050613d5a6000830186613ce3565b613d676020830185613ce3565b613d74604083018461348c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613dbd600283613d7c565b9150613dc882613d87565b600282019050919050565b6000819050919050565b613dee613de982613703565b613dd3565b82525050565b6000613dff82613db0565b9150613e0b8285613ddd565b602082019150613e1b8284613ddd565b6020820191508190509392505050565b6000608082019050613e406000830187613ce3565b613e4d60208301866135af565b613e5a6040830185613ce3565b613e676060830184613ce3565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000613ea66011836132d6565b9150613eb182613e70565b602082019050919050565b60006020820190508181036000830152613ed581613e99565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613f386035836132d6565b9150613f4382613edc565b604082019050919050565b60006020820190508181036000830152613f6781613f2b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613fca6034836132d6565b9150613fd582613f6e565b604082019050919050565b60006020820190508181036000830152613ff981613fbd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061405c6026836132d6565b915061406782614000565b604082019050919050565b6000602082019050818103600083015261408b8161404f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140ee6024836132d6565b91506140f982614092565b604082019050919050565b6000602082019050818103600083015261411d816140e1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141806022836132d6565b915061418b82614124565b604082019050919050565b600060208201905081810360008301526141af81614173565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006142126025836132d6565b915061421d826141b6565b604082019050919050565b6000602082019050818103600083015261424181614205565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006142a46023836132d6565b91506142af82614248565b604082019050919050565b600060208201905081810360008301526142d381614297565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006143106011836132d6565b915061431b826142da565b602082019050919050565b6000602082019050818103600083015261433f81614303565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b600061437c600f836132d6565b915061438782614346565b602082019050919050565b600060208201905081810360008301526143ab8161436f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006143e86016836132d6565b91506143f3826143b2565b602082019050919050565b60006020820190508181036000830152614417816143db565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b600061447a602b836132d6565b91506144858261441e565b604082019050919050565b600060208201905081810360008301526144a98161446d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006144e66013836132d6565b91506144f1826144b0565b602082019050919050565b60006020820190508181036000830152614515816144d9565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b6000614578602c836132d6565b91506145838261451c565b604082019050919050565b600060208201905081810360008301526145a78161456b565b9050919050565b60006145b9826133e0565b91506145c4836133e0565b92508282039050818111156145dc576145db61392a565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061463e6026836132d6565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b600081905092915050565b50565b600061468f600083614674565b915061469a8261467f565b600082019050919050565b60006146b082614682565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614727816133b4565b92915050565b6000602082840312156147435761474261337d565b5b600061475184828501614718565b91505092915050565b6000819050919050565b600061477f61477a6147758461475a565b613606565b6133e0565b9050919050565b61478f81614764565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147ca816133a2565b82525050565b60006147dc83836147c1565b60208301905092915050565b6000602082019050919050565b600061480082614795565b61480a81856147a0565b9350614815836147b1565b8060005b8381101561484657815161482d88826147d0565b9750614838836147e8565b925050600181019050614819565b5085935050505092915050565b600060a082019050614868600083018861348c565b6148756020830187614786565b818103604083015261488781866147f5565b90506148966060830185613680565b6148a3608083018461348c565b969550505050505056fea26469706673582212201a305d0eae7b7fb06ac34abbc030ba300d4254276182eba6ca1bb607c3f066e964736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000009896800000000000000000000000008f2913b20b4a4d9ff4ff0a473a453249c7f9e4f1000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000d4368616d70204d6f6e74616e610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054348414d50000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638f3fa86011610139578063c02174ca116100b6578063dd62ed3e1161007a578063dd62ed3e146108e9578063e2f4560514610926578063e4a1b95f14610951578063e7a996ab1461097c578063eba4c333146109a5578063f2fde38b146109ce5761025c565b8063c02174ca14610816578063c024666814610841578063c816841b1461086a578063c9567bf914610895578063d257b34f146108ac5761025c565b8063a457c2d7116100fd578063a457c2d71461070b578063a72905a214610748578063a9059cbb14610785578063a90eab8c146107c2578063bbc0c742146107eb5761025c565b80638f3fa86014610626578063917d3a6514610651578063924de9b71461068e57806395d89b41146106b7578063979919aa146106e25761025c565b806339509351116101d257806370a082311161019657806370a0823114610528578063715018a61461056557806371fc46881461057c578063735de9f7146105a5578063751039fc146105d05780638da5cb5b146105fb5761025c565b8063395093511461042f578063454340321461046c5780634a62bb65146104955780634fbee193146104c05780636ddd1713146104fd5761025c565b806324887e801161021957806324887e801461035c5780632b5f295a146103855780632d99d32e146103b0578063313ce567146103d957806335b5fb63146104045761025c565b806306fdde0314610261578063095ea7b31461028c57806318160ddd146102c95780631f7ea8da146102f457806323b872dd1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109f7565b604051610283919061335b565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613416565b610a89565b6040516102c09190613471565b60405180910390f35b3480156102d557600080fd5b506102de610aa7565b6040516102eb919061349b565b60405180910390f35b34801561030057600080fd5b50610309610ab1565b604051610316919061349b565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906134b6565b610ab7565b6040516103539190613471565b60405180910390f35b34801561036857600080fd5b50610383600480360381019061037e9190613509565b610baf565b005b34801561039157600080fd5b5061039a610cbe565b6040516103a7919061349b565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190613562565b610cc4565b005b3480156103e557600080fd5b506103ee610e2b565b6040516103fb91906135be565b60405180910390f35b34801561041057600080fd5b50610419610e42565b604051610426919061349b565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190613416565b610e48565b6040516104639190613471565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613562565b610ef4565b005b3480156104a157600080fd5b506104aa610fcb565b6040516104b79190613471565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906135d9565b610fde565b6040516104f49190613471565b60405180910390f35b34801561050957600080fd5b50610512610ffe565b60405161051f9190613471565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906135d9565b611011565b60405161055c919061349b565b60405180910390f35b34801561057157600080fd5b5061057a61105a565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613509565b6110e2565b005b3480156105b157600080fd5b506105ba6111ae565b6040516105c79190613665565b60405180910390f35b3480156105dc57600080fd5b506105e56111d4565b6040516105f29190613471565b60405180910390f35b34801561060757600080fd5b50610610611274565b60405161061d919061368f565b60405180910390f35b34801561063257600080fd5b5061063b61129e565b604051610648919061349b565b60405180910390f35b34801561065d57600080fd5b50610678600480360381019061067391906135d9565b6112a4565b6040516106859190613471565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b091906136aa565b6112c4565b005b3480156106c357600080fd5b506106cc61135d565b6040516106d9919061335b565b60405180910390f35b3480156106ee57600080fd5b5061070960048036038101906107049190613509565b6113ef565b005b34801561071757600080fd5b50610732600480360381019061072d9190613416565b6114fe565b60405161073f9190613471565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a91906135d9565b6115e9565b60405161077c9190613471565b60405180910390f35b34801561079157600080fd5b506107ac60048036038101906107a79190613416565b611609565b6040516107b99190613471565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190613739565b611627565b005b3480156107f757600080fd5b506108006118b2565b60405161080d9190613471565b60405180910390f35b34801561082257600080fd5b5061082b6118c5565b604051610838919061368f565b60405180910390f35b34801561084d57600080fd5b5061086860048036038101906108639190613562565b6118eb565b005b34801561087657600080fd5b5061087f6119c2565b60405161088c919061368f565b60405180910390f35b3480156108a157600080fd5b506108aa6119e8565b005b3480156108b857600080fd5b506108d360048036038101906108ce9190613509565b611a9c565b6040516108e09190613471565b60405180910390f35b3480156108f557600080fd5b50610910600480360381019061090b919061378c565b611bf1565b60405161091d919061349b565b60405180910390f35b34801561093257600080fd5b5061093b611c78565b604051610948919061349b565b60405180910390f35b34801561095d57600080fd5b50610966611c7e565b604051610973919061349b565b60405180910390f35b34801561098857600080fd5b506109a3600480360381019061099e9190613562565b611c84565b005b3480156109b157600080fd5b506109cc60048036038101906109c79190613509565b611d5b565b005b3480156109da57600080fd5b506109f560048036038101906109f091906135d9565b611e27565b005b606060008054610a06906137fb565b80601f0160208091040260200160405190810160405280929190818152602001828054610a32906137fb565b8015610a7f5780601f10610a5457610100808354040283529160200191610a7f565b820191906000526020600020905b815481529060010190602001808311610a6257829003601f168201915b5050505050905090565b6000610a9d610a96611f1e565b8484611f26565b6001905092915050565b6000600254905090565b600e5481565b6000610ac48484846120ef565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b0f611f1e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061389e565b60405180910390fd5b610ba385610b9b611f1e565b858403611f26565b60019150509392505050565b610bb7611f1e565b73ffffffffffffffffffffffffffffffffffffffff16610bd5611274565b73ffffffffffffffffffffffffffffffffffffffff1614610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c229061390a565b60405180910390fd5b670de0b6b3a76400006103e86005610c41610aa7565b610c4b9190613959565b610c5591906139ca565b610c5f91906139ca565b811015610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890613a6d565b60405180910390fd5b670de0b6b3a764000081610cb59190613959565b600b8190555050565b60095481565b610ccc611f1e565b73ffffffffffffffffffffffffffffffffffffffff16610cea611274565b73ffffffffffffffffffffffffffffffffffffffff1614610d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d379061390a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613aff565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860179054906101000a900460ff16905090565b600d5481565b6000610eea610e55611f1e565b848460046000610e63611f1e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ee59190613b1f565b611f26565b6001905092915050565b610efc611f1e565b73ffffffffffffffffffffffffffffffffffffffff16610f1a611274565b73ffffffffffffffffffffffffffffffffffffffff1614610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f679061390a565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860169054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611062611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611080611274565b73ffffffffffffffffffffffffffffffffffffffff16146110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd9061390a565b60405180910390fd5b6110e06000612c0c565b565b6110ea611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611108611274565b73ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061390a565b60405180910390fd5b80600c819055506019600c5411156111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290613b9f565b60405180910390fd5b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111de611f1e565b73ffffffffffffffffffffffffffffffffffffffff166111fc611274565b73ffffffffffffffffffffffffffffffffffffffff1614611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112499061390a565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60126020528060005260406000206000915054906101000a900460ff1681565b6112cc611f1e565b73ffffffffffffffffffffffffffffffffffffffff166112ea611274565b73ffffffffffffffffffffffffffffffffffffffff1614611340576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113379061390a565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b60606001805461136c906137fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611398906137fb565b80156113e55780601f106113ba576101008083540402835291602001916113e5565b820191906000526020600020905b8154815290600101906020018083116113c857829003601f168201915b5050505050905090565b6113f7611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611415611274565b73ffffffffffffffffffffffffffffffffffffffff161461146b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114629061390a565b60405180910390fd5b670de0b6b3a76400006103e86001611481610aa7565b61148b9190613959565b61149591906139ca565b61149f91906139ca565b8110156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890613c31565b60405180910390fd5b670de0b6b3a7640000816114f59190613959565b60098190555050565b6000806004600061150d611f1e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190613cc3565b60405180910390fd5b6115de6115d5611f1e565b85858403611f26565b600191505092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b600061161d611616611f1e565b84846120ef565b6001905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016116da959493929190613cf2565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e6700000000000000000000000000000000000081525080519060200120600060405160200161176693929190613d45565b60405160208183030381529060405280519060200120905060008282604051602001611793929190613df4565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516117d09493929190613e2b565b6020604051602081039080840390855afa1580156117f2573d6000803e3d6000fd5b505050602060405103519050611806611274565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a90613ebc565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b600860149054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118f3611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611911611274565b73ffffffffffffffffffffffffffffffffffffffff1614611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e9061390a565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119f0611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611a0e611274565b73ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b9061390a565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b6000611aa6611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611ac4611274565b73ffffffffffffffffffffffffffffffffffffffff1614611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b119061390a565b60405180910390fd5b620186a06001611b28610aa7565b611b329190613959565b611b3c91906139ca565b821015611b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7590613f4e565b60405180910390fd5b6103e86005611b8b610aa7565b611b959190613959565b611b9f91906139ca565b821115611be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd890613fe0565b60405180910390fd5b81600a8190555060019050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600c5481565b611c8c611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611caa611274565b73ffffffffffffffffffffffffffffffffffffffff1614611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf79061390a565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d63611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611d81611274565b73ffffffffffffffffffffffffffffffffffffffff1614611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce9061390a565b60405180910390fd5b80600d819055506019600d541115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90613b9f565b60405180910390fd5b50565b611e2f611f1e565b73ffffffffffffffffffffffffffffffffffffffff16611e4d611274565b73ffffffffffffffffffffffffffffffffffffffff1614611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a9061390a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990614072565b60405180910390fd5b611f1b81612c0c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90614104565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffb90614196565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120e2919061349b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215590614228565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c4906142ba565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561225a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225190614326565b60405180910390fd5b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de90614392565b60405180910390fd5b60008103612300576122fb83836000612cd2565b612c07565b600860169054906101000a900460ff16156127fb5761231d611274565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561238b575061235b611274565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123c45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156123fe575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124175750600f60009054906101000a900460ff16155b156127fa57600860149054906101000a900460ff1661251157601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124d15750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612510576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612507906143fe565b60405180910390fd5b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125b45750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561265b576009548111156125fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f590614490565b60405180910390fd5b600b5461260a83611011565b826126159190613b1f565b1115612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d906144fc565b60405180910390fd5b6127f9565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126fe5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561274d57600954811115612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f9061458e565b60405180910390fd5b6127f8565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127f757600b546127aa83611011565b826127b59190613b1f565b11156127f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ed906144fc565b60405180910390fd5b5b5b5b5b5b600061280630611011565b90506000600a54821015905080801561282b5750600860159054906101000a900460ff165b80156128445750600f60009054906101000a900460ff16155b801561289a5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128f05750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129465750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561298a576001600f60006101000a81548160ff02191690831515021790555061296e612f54565b6000600f60006101000a81548160ff0219169083151502179055505b6000600f60009054906101000a900460ff16159050601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a405750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a4a57600090505b60008115612bf757601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612aad57506000600d54115b15612b1457612ada6064612acc600d548861305290919063ffffffff16565b61306890919063ffffffff16565b9050600d54600d5482612aed9190613959565b612af791906139ca565b600e6000828254612b089190613b1f565b92505081905550612bd3565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b6f57506000600c54115b15612bd257612b9c6064612b8e600c548861305290919063ffffffff16565b61306890919063ffffffff16565b9050600c54600c5482612baf9190613959565b612bb991906139ca565b600e6000828254612bca9190613b1f565b925050819055505b5b6000811115612be857612be7873083612cd2565b5b8085612bf491906145ae565b94505b612c02878787612cd2565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3890614228565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da7906142ba565b60405180910390fd5b612dbb83838361307e565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3990614654565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ed79190613b1f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f3b919061349b565b60405180910390a3612f4e848484613083565b50505050565b6000612f5f30611011565b90506000600e549050600080831480612f785750600082145b15612f8557505050613050565b6014600a54612f949190613959565b831115612fad576014600a54612faa9190613959565b92505b612fb683613088565b6000600e81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613004906146a5565b60006040518083038185875af1925050503d8060008114613041576040519150601f19603f3d011682016040523d82523d6000602084013e613046565b606091505b5050809150505050505b565b600081836130609190613959565b905092915050565b6000818361307691906139ca565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156130a5576130a46146ba565b5b6040519080825280602002602001820160405280156130d35781602001602082028036833780820191505090505b50905030816000815181106130eb576130ea6146e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b6919061472d565b816001815181106131ca576131c96146e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061323130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f26565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613295959493929190614853565b600060405180830381600087803b1580156132af57600080fd5b505af11580156132c3573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133055780820151818401526020810190506132ea565b60008484015250505050565b6000601f19601f8301169050919050565b600061332d826132cb565b61333781856132d6565b93506133478185602086016132e7565b61335081613311565b840191505092915050565b600060208201905081810360008301526133758184613322565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133ad82613382565b9050919050565b6133bd816133a2565b81146133c857600080fd5b50565b6000813590506133da816133b4565b92915050565b6000819050919050565b6133f3816133e0565b81146133fe57600080fd5b50565b600081359050613410816133ea565b92915050565b6000806040838503121561342d5761342c61337d565b5b600061343b858286016133cb565b925050602061344c85828601613401565b9150509250929050565b60008115159050919050565b61346b81613456565b82525050565b60006020820190506134866000830184613462565b92915050565b613495816133e0565b82525050565b60006020820190506134b0600083018461348c565b92915050565b6000806000606084860312156134cf576134ce61337d565b5b60006134dd868287016133cb565b93505060206134ee868287016133cb565b92505060406134ff86828701613401565b9150509250925092565b60006020828403121561351f5761351e61337d565b5b600061352d84828501613401565b91505092915050565b61353f81613456565b811461354a57600080fd5b50565b60008135905061355c81613536565b92915050565b600080604083850312156135795761357861337d565b5b6000613587858286016133cb565b92505060206135988582860161354d565b9150509250929050565b600060ff82169050919050565b6135b8816135a2565b82525050565b60006020820190506135d360008301846135af565b92915050565b6000602082840312156135ef576135ee61337d565b5b60006135fd848285016133cb565b91505092915050565b6000819050919050565b600061362b61362661362184613382565b613606565b613382565b9050919050565b600061363d82613610565b9050919050565b600061364f82613632565b9050919050565b61365f81613644565b82525050565b600060208201905061367a6000830184613656565b92915050565b613689816133a2565b82525050565b60006020820190506136a46000830184613680565b92915050565b6000602082840312156136c0576136bf61337d565b5b60006136ce8482850161354d565b91505092915050565b6136e0816135a2565b81146136eb57600080fd5b50565b6000813590506136fd816136d7565b92915050565b6000819050919050565b61371681613703565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b6000806000606084860312156137525761375161337d565b5b6000613760868287016136ee565b935050602061377186828701613724565b925050604061378286828701613724565b9150509250925092565b600080604083850312156137a3576137a261337d565b5b60006137b1858286016133cb565b92505060206137c2858286016133cb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061381357607f821691505b602082108103613826576138256137cc565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138886028836132d6565b91506138938261382c565b604082019050919050565b600060208201905081810360008301526138b78161387b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f46020836132d6565b91506138ff826138be565b602082019050919050565b60006020820190508181036000830152613923816138e7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613964826133e0565b915061396f836133e0565b925082820261397d816133e0565b915082820484148315176139945761399361392a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139d5826133e0565b91506139e0836133e0565b9250826139f0576139ef61399b565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b6000613a576028836132d6565b9150613a62826139fb565b604082019050919050565b60006020820190508181036000830152613a8681613a4a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000613ae96028836132d6565b9150613af482613a8d565b604082019050919050565b60006020820190508181036000830152613b1881613adc565b9050919050565b6000613b2a826133e0565b9150613b35836133e0565b9250828201905080821115613b4d57613b4c61392a565b5b92915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613b89601d836132d6565b9150613b9482613b53565b602082019050919050565b60006020820190508181036000830152613bb881613b7c565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b6000613c1b6025836132d6565b9150613c2682613bbf565b604082019050919050565b60006020820190508181036000830152613c4a81613c0e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613cad6025836132d6565b9150613cb882613c51565b604082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b613cec81613703565b82525050565b600060a082019050613d076000830188613ce3565b613d146020830187613ce3565b613d216040830186613ce3565b613d2e606083018561348c565b613d3b6080830184613680565b9695505050505050565b6000606082019050613d5a6000830186613ce3565b613d676020830185613ce3565b613d74604083018461348c565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613dbd600283613d7c565b9150613dc882613d87565b600282019050919050565b6000819050919050565b613dee613de982613703565b613dd3565b82525050565b6000613dff82613db0565b9150613e0b8285613ddd565b602082019150613e1b8284613ddd565b6020820191508190509392505050565b6000608082019050613e406000830187613ce3565b613e4d60208301866135af565b613e5a6040830185613ce3565b613e676060830184613ce3565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000613ea66011836132d6565b9150613eb182613e70565b602082019050919050565b60006020820190508181036000830152613ed581613e99565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613f386035836132d6565b9150613f4382613edc565b604082019050919050565b60006020820190508181036000830152613f6781613f2b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613fca6034836132d6565b9150613fd582613f6e565b604082019050919050565b60006020820190508181036000830152613ff981613fbd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061405c6026836132d6565b915061406782614000565b604082019050919050565b6000602082019050818103600083015261408b8161404f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140ee6024836132d6565b91506140f982614092565b604082019050919050565b6000602082019050818103600083015261411d816140e1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006141806022836132d6565b915061418b82614124565b604082019050919050565b600060208201905081810360008301526141af81614173565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006142126025836132d6565b915061421d826141b6565b604082019050919050565b6000602082019050818103600083015261424181614205565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006142a46023836132d6565b91506142af82614248565b604082019050919050565b600060208201905081810360008301526142d381614297565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006143106011836132d6565b915061431b826142da565b602082019050919050565b6000602082019050818103600083015261433f81614303565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b600061437c600f836132d6565b915061438782614346565b602082019050919050565b600060208201905081810360008301526143ab8161436f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006143e86016836132d6565b91506143f3826143b2565b602082019050919050565b60006020820190508181036000830152614417816143db565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b600061447a602b836132d6565b91506144858261441e565b604082019050919050565b600060208201905081810360008301526144a98161446d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006144e66013836132d6565b91506144f1826144b0565b602082019050919050565b60006020820190508181036000830152614515816144d9565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b6000614578602c836132d6565b91506145838261451c565b604082019050919050565b600060208201905081810360008301526145a78161456b565b9050919050565b60006145b9826133e0565b91506145c4836133e0565b92508282039050818111156145dc576145db61392a565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061463e6026836132d6565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b600081905092915050565b50565b600061468f600083614674565b915061469a8261467f565b600082019050919050565b60006146b082614682565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614727816133b4565b92915050565b6000602082840312156147435761474261337d565b5b600061475184828501614718565b91505092915050565b6000819050919050565b600061477f61477a6147758461475a565b613606565b6133e0565b9050919050565b61478f81614764565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147ca816133a2565b82525050565b60006147dc83836147c1565b60208301905092915050565b6000602082019050919050565b600061480082614795565b61480a81856147a0565b9350614815836147b1565b8060005b8381101561484657815161482d88826147d0565b9750614838836147e8565b925050600181019050614819565b5085935050505092915050565b600060a082019050614868600083018861348c565b6148756020830187614786565b818103604083015261488781866147f5565b90506148966060830185613680565b6148a3608083018461348c565b969550505050505056fea26469706673582212201a305d0eae7b7fb06ac34abbc030ba300d4254276182eba6ca1bb607c3f066e964736f6c63430008180033

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

00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000009896800000000000000000000000008f2913b20b4a4d9ff4ff0a473a453249c7f9e4f1000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000d4368616d70204d6f6e74616e610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054348414d50000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Champ Montana
Arg [1] : symbol_ (string): CHAMP
Arg [2] : decimals_ (uint8): 18
Arg [3] : totalNativeSupply_ (uint256): 10000000
Arg [4] : marketingWallet_ (address): 0x8f2913b20B4a4d9fF4ff0a473A453249c7f9E4f1
Arg [5] : buyFee_ (uint256): 10
Arg [6] : sellFee_ (uint256): 10

-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000989680
Arg [4] : 0000000000000000000000008f2913b20b4a4d9ff4ff0a473a453249c7f9e4f1
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [7] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [8] : 4368616d70204d6f6e74616e6100000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [10] : 4348414d50000000000000000000000000000000000000000000000000000000


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.