ETH Price: $2,526.07 (-0.75%)
Gas: 0.97 Gwei

Token

KAT Meme ($KAT)
 

Overview

Max Total Supply

420,069,420,069 $KAT

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,097,103,213.806650720867290763 $KAT

Value
$0.00
0x1803b68cdbfc106b752720ac22a8647be119a0e1
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:
KatMeme

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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

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

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

pragma solidity ^0.8.20;

abstract contract Ownable is Context {
    address private _owner;
    error OwnableUnauthorizedAccount(address account);

    error OwnableInvalidOwner(address owner);

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

    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

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

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

    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

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

pragma solidity ^0.8.20;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

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

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

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

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

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

pragma solidity ^0.8.20;

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.20;

interface IERC20Errors {
    error ERC20InsufficientBalance(
        address sender,
        uint256 balance,
        uint256 needed
    );

    error ERC20InvalidSender(address sender);

    error ERC20InvalidReceiver(address receiver);

    error ERC20InsufficientAllowance(
        address spender,
        uint256 allowance,
        uint256 needed
    );

    error ERC20InvalidApprover(address approver);

    error ERC20InvalidSpender(address spender);
}

interface IERC721Errors {
    error ERC721InvalidOwner(address owner);

    error ERC721NonexistentToken(uint256 tokenId);

    error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);

    error ERC721InvalidSender(address sender);

    error ERC721InvalidReceiver(address receiver);

    error ERC721InsufficientApproval(address operator, uint256 tokenId);

    error ERC721InvalidApprover(address approver);

    error ERC721InvalidOperator(address operator);
}

interface IERC1155Errors {
    error ERC1155InsufficientBalance(
        address sender,
        uint256 balance,
        uint256 needed,
        uint256 tokenId
    );

    error ERC1155InvalidSender(address sender);

    error ERC1155InvalidReceiver(address receiver);

    error ERC1155MissingApprovalForAll(address operator, address owner);

    error ERC1155InvalidApprover(address approver);

    error ERC1155InvalidOperator(address operator);

    error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);
}

pragma solidity ^0.8.24;

interface IUniswapV2Factory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

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

    function WETH() external pure returns (address);

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

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

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

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

contract KatMeme is Ownable, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;

    mapping(address account => mapping(address spender => uint256))
    private _allowances;

    mapping(address => bool) public katsCage;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable private devWallet;
    address payable private marketingWallet;

    bool public tradingOpen = false;
    IUniswapV2Router02 public uniswapV2Router;
    address private uniswapV2Pair;

    uint256 private constant FEE_TAX = 250;
    uint256 private constant LIQUIDITY_TAX = 250;
    uint256 private constant FEE_SEND_DURATION = 2 hours;

    uint256 public buySellCount = 0;
    uint256 private katsCageCount = 10;

    bool inSwapAndLiquify;

    uint256 lastTaxTransferTimestamp;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_,
        uint256 initialSupply_,
        address devWallet_,
        address marketingWallet_
    ) Ownable(_msgSender()) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;

        devWallet = payable(devWallet_);
        marketingWallet = payable(marketingWallet_);

        katsCage[_msgSender()] = true;
        katsCage[address(this)] = true;

        _mint(_msgSender(), initialSupply_);
    }

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

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

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

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

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

    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

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

    function approve(
        address spender,
        uint256 value
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    function _transfer(address from, address to, uint256 value) internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        uint256 fromBalance = _balances[from];
        if (fromBalance < value) {
            revert ERC20InsufficientBalance(from, fromBalance, value);
        }

        uint256 _taxAmt = 0;

        if (from != owner() && to != owner() && tradingOpen) {
            if (
                (from == uniswapV2Pair && to != address(uniswapV2Router)) ||
                (to == uniswapV2Pair && from != address(this))
            ) {
                if (buySellCount < katsCageCount) {
                    require(katsCage[to], "Something is not allowed");
                }

                unchecked {
                    _taxAmt =
                        ((value * FEE_TAX) + (value * LIQUIDITY_TAX)) /
                        1e4;
                }

                uint256 contractTokenBalance = balanceOf(address(this));

                if (
                    block.timestamp >
                    lastTaxTransferTimestamp + FEE_SEND_DURATION &&
                    to == uniswapV2Pair &&
                    !inSwapAndLiquify &&
                    contractTokenBalance > 0
                ) {
                    uint256 T_TAX = LIQUIDITY_TAX + FEE_TAX;
                    uint256 amount = value < contractTokenBalance
                        ? value
                        : contractTokenBalance;

                    swapAndSendTax(
                        (amount * LIQUIDITY_TAX) / T_TAX,
                        (amount * FEE_TAX) / T_TAX
                    );

                    lastTaxTransferTimestamp = block.timestamp;
                }

                buySellCount++;
            }
        }

        if (_taxAmt > 0) {
            _balances[address(this)] += _taxAmt;
            emit Transfer(from, address(this), _taxAmt);
        }

        unchecked {
            _balances[from] = fromBalance - value;
            _balances[to] += value - _taxAmt;
        }
        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _totalSupply += value;
        _balances[account] += value;

        emit Transfer(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        uint256 accountBalance = _balances[account];
        if (accountBalance < value) {
            revert ERC20InsufficientBalance(account, accountBalance, value);
        }
        unchecked {
            _balances[account] = accountBalance - value;
        }
        _totalSupply -= value;

        emit Transfer(account, address(0), value);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value,
        bool emitEvent
    ) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 value
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(
                    spender,
                    currentAllowance,
                    value
                );
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }

    function swapAndSendTax(
        uint256 _liquidityAmount,
        uint256 _teamAmount
    ) private lockTheSwap {
        uint256 T_TAX = (LIQUIDITY_TAX / 2) + FEE_TAX;

        uint256 liqHalf = _liquidityAmount / 2;
        uint256 liqOtherHalf = _liquidityAmount - (liqHalf);

        swapTokensForEth(liqHalf + _teamAmount);

        uint256 ethBalance = address(this).balance;
        uint256 feeETH = (ethBalance * FEE_TAX) / T_TAX;
        uint256 liquidityETH = ethBalance - feeETH;

        addLiquidity(liqOtherHalf, liquidityETH);

        sendETHToFee(feeETH);

        emit SwapAndLiquify(liqHalf, liquidityETH, liqOtherHalf);
    }

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

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        uint256 half = amount / 2;
        marketingWallet.transfer(half);
        devWallet.transfer(amount - half);
    }

    function fairlaunch(address _uniswapV2Router) external onlyOwner {
        require(_uniswapV2Router != address(0), "Invalid router address");
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(_uniswapV2Router);
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
                address(this),
                uniswapV2Router.WETH()
            );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        katsCage[uniswapV2Pair] = true;
        tradingOpen = true;
    }

    function addkatsCage(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            katsCage[accounts[i]] = true;
        }
    }

    function setkatsCageCount(uint256 count) external onlyOwner {
        katsCageCount = count;
    }

    receive() external payable {}
}

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":"initialSupply_","type":"uint256"},{"internalType":"address","name":"devWallet_","type":"address"},{"internalType":"address","name":"marketingWallet_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"accounts","type":"address[]"}],"name":"addkatsCage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":"buySellCount","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":"_uniswapV2Router","type":"address"}],"name":"fairlaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"katsCage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"setkatsCageCount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600860146101000a81548160ff0219169083151502179055505f600b55600a600c55348015610032575f80fd5b5060405161346f38038061346f83398181016040528101906100549190610698565b61006261027c60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100d2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100c99190610768565b60405180910390fd5b6100e18161028360201b60201c565b5085600590816100f19190610985565b5084600690816101019190610985565b508360075f6101000a81548160ff021916908360ff16021790555081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f6101b061027c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061027161026561027c60201b60201c565b8461034460201b60201c565b505050505050610adc565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103b4575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103ab9190610768565b60405180910390fd5b8060045f8282546103c59190610a81565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104189190610a81565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161047c9190610ac3565b60405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104e7826104a1565b810181811067ffffffffffffffff82111715610506576105056104b1565b5b80604052505050565b5f610518610488565b905061052482826104de565b919050565b5f67ffffffffffffffff821115610543576105426104b1565b5b61054c826104a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61057961057484610529565b61050f565b9050828152602081018484840111156105955761059461049d565b5b6105a0848285610559565b509392505050565b5f82601f8301126105bc576105bb610499565b5b81516105cc848260208601610567565b91505092915050565b5f60ff82169050919050565b6105ea816105d5565b81146105f4575f80fd5b50565b5f81519050610605816105e1565b92915050565b5f819050919050565b61061d8161060b565b8114610627575f80fd5b50565b5f8151905061063881610614565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106678261063e565b9050919050565b6106778161065d565b8114610681575f80fd5b50565b5f815190506106928161066e565b92915050565b5f805f805f8060c087890312156106b2576106b1610491565b5b5f87015167ffffffffffffffff8111156106cf576106ce610495565b5b6106db89828a016105a8565b965050602087015167ffffffffffffffff8111156106fc576106fb610495565b5b61070889828a016105a8565b955050604061071989828a016105f7565b945050606061072a89828a0161062a565b935050608061073b89828a01610684565b92505060a061074c89828a01610684565b9150509295509295509295565b6107628161065d565b82525050565b5f60208201905061077b5f830184610759565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806107cf57607f821691505b6020821081036107e2576107e161078b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026108447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610809565b61084e8683610809565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61088961088461087f8461060b565b610866565b61060b565b9050919050565b5f819050919050565b6108a28361086f565b6108b66108ae82610890565b848454610815565b825550505050565b5f90565b6108ca6108be565b6108d5818484610899565b505050565b5b818110156108f8576108ed5f826108c2565b6001810190506108db565b5050565b601f82111561093d5761090e816107e8565b610917846107fa565b81016020851015610926578190505b61093a610932856107fa565b8301826108da565b50505b505050565b5f82821c905092915050565b5f61095d5f1984600802610942565b1980831691505092915050565b5f610975838361094e565b9150826002028217905092915050565b61098e82610781565b67ffffffffffffffff8111156109a7576109a66104b1565b5b6109b182546107b8565b6109bc8282856108fc565b5f60209050601f8311600181146109ed575f84156109db578287015190505b6109e5858261096a565b865550610a4c565b601f1984166109fb866107e8565b5f5b82811015610a22578489015182556001820191506020850194506020810190506109fd565b86831015610a3f5784890151610a3b601f89168261094e565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a8b8261060b565b9150610a968361060b565b9250828201905080821115610aae57610aad610a54565b5b92915050565b610abd8161060b565b82525050565b5f602082019050610ad65f830184610ab4565b92915050565b61298680610ae95f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f578063dd62ed3e11610063578063dd62ed3e1461039e578063f2aef4d1146103da578063f2fde38b14610402578063f7c17b801461042a578063ffb54a99146104665761011e565b8063715018a6146102d05780638da5cb5b146102e657806395d89b4114610310578063a9059cbb1461033a578063c105f629146103765761011e565b80631f3fe43f116100e65780631f3fe43f146101dc57806323b872dd14610206578063313ce567146102425780633402e2cf1461026c57806370a08231146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780631694505e1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610490565b6040516101439190611e2d565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190611eeb565b610520565b60405161017f9190611f43565b60405180910390f35b348015610193575f80fd5b5061019c610542565b6040516101a99190611fb7565b60405180910390f35b3480156101bd575f80fd5b506101c6610567565b6040516101d39190611fdf565b60405180910390f35b3480156101e7575f80fd5b506101f0610570565b6040516101fd9190611fdf565b60405180910390f35b348015610211575f80fd5b5061022c60048036038101906102279190611ff8565b610576565b6040516102399190611f43565b60405180910390f35b34801561024d575f80fd5b506102566105a4565b6040516102639190612063565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d919061207c565b6105b9565b005b34801561029f575f80fd5b506102ba60048036038101906102b591906120a7565b6105cb565b6040516102c79190611fdf565b60405180910390f35b3480156102db575f80fd5b506102e4610611565b005b3480156102f1575f80fd5b506102fa610624565b60405161030791906120e1565b60405180910390f35b34801561031b575f80fd5b5061032461064b565b6040516103319190611e2d565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b9190611eeb565b6106db565b60405161036d9190611f43565b60405180910390f35b348015610381575f80fd5b5061039c6004803603810190610397919061223a565b6106fd565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612281565b610790565b6040516103d19190611fdf565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb91906120a7565b610812565b005b34801561040d575f80fd5b50610428600480360381019061042391906120a7565b610d44565b005b348015610435575f80fd5b50610450600480360381019061044b91906120a7565b610dc8565b60405161045d9190611f43565b60405180910390f35b348015610471575f80fd5b5061047a610de5565b6040516104879190611f43565b60405180910390f35b60606005805461049f906122ec565b80601f01602080910402602001604051908101604052809291908181526020018280546104cb906122ec565b80156105165780601f106104ed57610100808354040283529160200191610516565b820191905f5260205f20905b8154815290600101906020018083116104f957829003601f168201915b5050505050905090565b5f8061052a610df8565b9050610537818585610dff565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600454905090565b600b5481565b5f80610580610df8565b905061058d858285610e11565b610598858585610ea3565b60019150509392505050565b5f60075f9054906101000a900460ff16905090565b6105c161156a565b80600c8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61061961156a565b6106225f6115f1565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461065a906122ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906122ec565b80156106d15780601f106106a8576101008083540402835291602001916106d1565b820191905f5260205f20905b8154815290600101906020018083116106b457829003601f168201915b5050505050905090565b5f806106e5610df8565b90506106f2818585610ea3565b600191505092915050565b61070561156a565b5f5b815181101561078c57600160035f8484815181106107285761072761231c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610707565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61081a61156a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087f90612393565b60405180910390fd5b600860149054906101000a900460ff16156108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf906123fb565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109463060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454610dff565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d4919061242d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7e919061242d565b6040518363ffffffff1660e01b8152600401610a9b929190612458565b6020604051808303815f875af1158015610ab7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adb919061242d565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b62306105cb565b5f80610b6c610624565b426040518863ffffffff1660e01b8152600401610b8e969594939291906124b8565b60606040518083038185885af1158015610baa573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bcf919061252b565b505050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c6f92919061257b565b6020604051808303815f875af1158015610c8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caf91906125cc565b50600160035f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600860146101000a81548160ff02191690831515021790555050565b610d4c61156a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dbc575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610db391906120e1565b60405180910390fd5b610dc5816115f1565b50565b6003602052805f5260405f205f915054906101000a900460ff1681565b600860149054906101000a900460ff1681565b5f33905090565b610e0c83838360016116b2565b505050565b5f610e1c8484610790565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e9d5781811015610e8e578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610e85939291906125f7565b60405180910390fd5b610e9c84848484035f6116b2565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f13575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f0a91906120e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f83575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f7a91906120e1565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561100d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611004939291906125f7565b60405180910390fd5b5f611016610624565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156110845750611054610624565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561109c5750600860149054906101000a900460ff165b156113ad57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561114a575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b806111d95750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111d857503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b156113ac57600c54600b5410156112745760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a90612676565b60405180910390fd5b5b61271060fa840260fa8502018161128e5761128d612694565b5b0490505f61129b306105cb565b9050611c20600e546112ad91906126ee565b421180156113075750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561131f5750600d5f9054906101000a900460ff16155b801561132a57505f81115b15611393575f60fa8061133d91906126ee565b90505f82861061134d578261134f565b855b90506113898260fa836113629190612721565b61136c9190612762565b8360fa8461137a9190612721565b6113849190612762565b611881565b42600e8190555050505b600b5f8154809291906113a590612792565b9190505550505b5b5f81111561146e578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461140191906126ee565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114659190611fdf565b60405180910390a35b82820360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080830360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161155b9190611fdf565b60405180910390a35050505050565b611572610df8565b73ffffffffffffffffffffffffffffffffffffffff16611590610624565b73ffffffffffffffffffffffffffffffffffffffff16146115ef576115b3610df8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115e691906120e1565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611722575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161171991906120e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611792575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161178991906120e1565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561187b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516118729190611fdf565b60405180910390a35b50505050565b6001600d5f6101000a81548160ff0219169083151502179055505f60fa600260fa6118ac9190612762565b6118b691906126ee565b90505f6002846118c69190612762565b90505f81856118d591906127d9565b90506118eb84836118e691906126ee565b61198a565b5f4790505f8460fa836118fe9190612721565b6119089190612762565b90505f818361191791906127d9565b90506119238482611bf3565b61192c82611cd3565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185828660405161195f9392919061280c565b60405180910390a15050505050505f600d5f6101000a81548160ff0219169083151502179055505050565b6001600d5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119c0576119bf6120fe565b5b6040519080825280602002602001820160405280156119ee5781602001602082028036833780820191505090505b50905030815f81518110611a0557611a0461231c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611acd919061242d565b81600181518110611ae157611ae061231c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b473060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dff565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ba99594939291906128f8565b5f604051808303815f87803b158015611bc0575f80fd5b505af1158015611bd2573d5f803e3d5ffd5b50505050505f600d5f6101000a81548160ff02191690831515021790555050565b611c1f3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dff565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80611c69610624565b426040518863ffffffff1660e01b8152600401611c8b969594939291906124b8565b60606040518083038185885af1158015611ca7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ccc919061252b565b5050505050565b5f600282611ce19190612762565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d47573d5f803e3d5ffd5b50600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284611d9091906127d9565b90811502906040515f60405180830381858888f19350505050158015611db8573d5f803e3d5ffd5b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611dff82611dbd565b611e098185611dc7565b9350611e19818560208601611dd7565b611e2281611de5565b840191505092915050565b5f6020820190508181035f830152611e458184611df5565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e8782611e5e565b9050919050565b611e9781611e7d565b8114611ea1575f80fd5b50565b5f81359050611eb281611e8e565b92915050565b5f819050919050565b611eca81611eb8565b8114611ed4575f80fd5b50565b5f81359050611ee581611ec1565b92915050565b5f8060408385031215611f0157611f00611e56565b5b5f611f0e85828601611ea4565b9250506020611f1f85828601611ed7565b9150509250929050565b5f8115159050919050565b611f3d81611f29565b82525050565b5f602082019050611f565f830184611f34565b92915050565b5f819050919050565b5f611f7f611f7a611f7584611e5e565b611f5c565b611e5e565b9050919050565b5f611f9082611f65565b9050919050565b5f611fa182611f86565b9050919050565b611fb181611f97565b82525050565b5f602082019050611fca5f830184611fa8565b92915050565b611fd981611eb8565b82525050565b5f602082019050611ff25f830184611fd0565b92915050565b5f805f6060848603121561200f5761200e611e56565b5b5f61201c86828701611ea4565b935050602061202d86828701611ea4565b925050604061203e86828701611ed7565b9150509250925092565b5f60ff82169050919050565b61205d81612048565b82525050565b5f6020820190506120765f830184612054565b92915050565b5f6020828403121561209157612090611e56565b5b5f61209e84828501611ed7565b91505092915050565b5f602082840312156120bc576120bb611e56565b5b5f6120c984828501611ea4565b91505092915050565b6120db81611e7d565b82525050565b5f6020820190506120f45f8301846120d2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61213482611de5565b810181811067ffffffffffffffff82111715612153576121526120fe565b5b80604052505050565b5f612165611e4d565b9050612171828261212b565b919050565b5f67ffffffffffffffff8211156121905761218f6120fe565b5b602082029050602081019050919050565b5f80fd5b5f6121b76121b284612176565b61215c565b905080838252602082019050602084028301858111156121da576121d96121a1565b5b835b8181101561220357806121ef8882611ea4565b8452602084019350506020810190506121dc565b5050509392505050565b5f82601f830112612221576122206120fa565b5b81356122318482602086016121a5565b91505092915050565b5f6020828403121561224f5761224e611e56565b5b5f82013567ffffffffffffffff81111561226c5761226b611e5a565b5b6122788482850161220d565b91505092915050565b5f806040838503121561229757612296611e56565b5b5f6122a485828601611ea4565b92505060206122b585828601611ea4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061230357607f821691505b602082108103612316576123156122bf565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e76616c696420726f757465722061646472657373000000000000000000005f82015250565b5f61237d601683611dc7565b915061238882612349565b602082019050919050565b5f6020820190508181035f8301526123aa81612371565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123e5601783611dc7565b91506123f0826123b1565b602082019050919050565b5f6020820190508181035f830152612412816123d9565b9050919050565b5f8151905061242781611e8e565b92915050565b5f6020828403121561244257612441611e56565b5b5f61244f84828501612419565b91505092915050565b5f60408201905061246b5f8301856120d2565b61247860208301846120d2565b9392505050565b5f819050919050565b5f6124a261249d6124988461247f565b611f5c565b611eb8565b9050919050565b6124b281612488565b82525050565b5f60c0820190506124cb5f8301896120d2565b6124d86020830188611fd0565b6124e560408301876124a9565b6124f260608301866124a9565b6124ff60808301856120d2565b61250c60a0830184611fd0565b979650505050505050565b5f8151905061252581611ec1565b92915050565b5f805f6060848603121561254257612541611e56565b5b5f61254f86828701612517565b935050602061256086828701612517565b925050604061257186828701612517565b9150509250925092565b5f60408201905061258e5f8301856120d2565b61259b6020830184611fd0565b9392505050565b6125ab81611f29565b81146125b5575f80fd5b50565b5f815190506125c6816125a2565b92915050565b5f602082840312156125e1576125e0611e56565b5b5f6125ee848285016125b8565b91505092915050565b5f60608201905061260a5f8301866120d2565b6126176020830185611fd0565b6126246040830184611fd0565b949350505050565b7f536f6d657468696e67206973206e6f7420616c6c6f77656400000000000000005f82015250565b5f612660601883611dc7565b915061266b8261262c565b602082019050919050565b5f6020820190508181035f83015261268d81612654565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126f882611eb8565b915061270383611eb8565b925082820190508082111561271b5761271a6126c1565b5b92915050565b5f61272b82611eb8565b915061273683611eb8565b925082820261274481611eb8565b9150828204841483151761275b5761275a6126c1565b5b5092915050565b5f61276c82611eb8565b915061277783611eb8565b92508261278757612786612694565b5b828204905092915050565b5f61279c82611eb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127ce576127cd6126c1565b5b600182019050919050565b5f6127e382611eb8565b91506127ee83611eb8565b9250828203905081811115612806576128056126c1565b5b92915050565b5f60608201905061281f5f830186611fd0565b61282c6020830185611fd0565b6128396040830184611fd0565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61287381611e7d565b82525050565b5f612884838361286a565b60208301905092915050565b5f602082019050919050565b5f6128a682612841565b6128b0818561284b565b93506128bb8361285b565b805f5b838110156128eb5781516128d28882612879565b97506128dd83612890565b9250506001810190506128be565b5085935050505092915050565b5f60a08201905061290b5f830188611fd0565b61291860208301876124a9565b818103604083015261292a818661289c565b905061293960608301856120d2565b6129466080830184611fd0565b969550505050505056fea2646970667358221220384673bb25f3a5f7ae62909c62bcb0d66e2a2eaa7ecbace51184633c2953ec2464736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000054d5147bbad41f70661740000000000000000000000000000bf32d9c413e0ad1802f332f5ecebab157393d8cc0000000000000000000000000af325e1e103c2a7ea329c200872306c14e549ef00000000000000000000000000000000000000000000000000000000000000084b4154204d656d650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004244b415400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f578063dd62ed3e11610063578063dd62ed3e1461039e578063f2aef4d1146103da578063f2fde38b14610402578063f7c17b801461042a578063ffb54a99146104665761011e565b8063715018a6146102d05780638da5cb5b146102e657806395d89b4114610310578063a9059cbb1461033a578063c105f629146103765761011e565b80631f3fe43f116100e65780631f3fe43f146101dc57806323b872dd14610206578063313ce567146102425780633402e2cf1461026c57806370a08231146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780631694505e1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610490565b6040516101439190611e2d565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190611eeb565b610520565b60405161017f9190611f43565b60405180910390f35b348015610193575f80fd5b5061019c610542565b6040516101a99190611fb7565b60405180910390f35b3480156101bd575f80fd5b506101c6610567565b6040516101d39190611fdf565b60405180910390f35b3480156101e7575f80fd5b506101f0610570565b6040516101fd9190611fdf565b60405180910390f35b348015610211575f80fd5b5061022c60048036038101906102279190611ff8565b610576565b6040516102399190611f43565b60405180910390f35b34801561024d575f80fd5b506102566105a4565b6040516102639190612063565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d919061207c565b6105b9565b005b34801561029f575f80fd5b506102ba60048036038101906102b591906120a7565b6105cb565b6040516102c79190611fdf565b60405180910390f35b3480156102db575f80fd5b506102e4610611565b005b3480156102f1575f80fd5b506102fa610624565b60405161030791906120e1565b60405180910390f35b34801561031b575f80fd5b5061032461064b565b6040516103319190611e2d565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b9190611eeb565b6106db565b60405161036d9190611f43565b60405180910390f35b348015610381575f80fd5b5061039c6004803603810190610397919061223a565b6106fd565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612281565b610790565b6040516103d19190611fdf565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb91906120a7565b610812565b005b34801561040d575f80fd5b50610428600480360381019061042391906120a7565b610d44565b005b348015610435575f80fd5b50610450600480360381019061044b91906120a7565b610dc8565b60405161045d9190611f43565b60405180910390f35b348015610471575f80fd5b5061047a610de5565b6040516104879190611f43565b60405180910390f35b60606005805461049f906122ec565b80601f01602080910402602001604051908101604052809291908181526020018280546104cb906122ec565b80156105165780601f106104ed57610100808354040283529160200191610516565b820191905f5260205f20905b8154815290600101906020018083116104f957829003601f168201915b5050505050905090565b5f8061052a610df8565b9050610537818585610dff565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600454905090565b600b5481565b5f80610580610df8565b905061058d858285610e11565b610598858585610ea3565b60019150509392505050565b5f60075f9054906101000a900460ff16905090565b6105c161156a565b80600c8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61061961156a565b6106225f6115f1565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461065a906122ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610686906122ec565b80156106d15780601f106106a8576101008083540402835291602001916106d1565b820191905f5260205f20905b8154815290600101906020018083116106b457829003601f168201915b5050505050905090565b5f806106e5610df8565b90506106f2818585610ea3565b600191505092915050565b61070561156a565b5f5b815181101561078c57600160035f8484815181106107285761072761231c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610707565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61081a61156a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087f90612393565b60405180910390fd5b600860149054906101000a900460ff16156108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf906123fb565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109463060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454610dff565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109d4919061242d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7e919061242d565b6040518363ffffffff1660e01b8152600401610a9b929190612458565b6020604051808303815f875af1158015610ab7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adb919061242d565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b62306105cb565b5f80610b6c610624565b426040518863ffffffff1660e01b8152600401610b8e969594939291906124b8565b60606040518083038185885af1158015610baa573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610bcf919061252b565b505050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c6f92919061257b565b6020604051808303815f875af1158015610c8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caf91906125cc565b50600160035f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600860146101000a81548160ff02191690831515021790555050565b610d4c61156a565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dbc575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610db391906120e1565b60405180910390fd5b610dc5816115f1565b50565b6003602052805f5260405f205f915054906101000a900460ff1681565b600860149054906101000a900460ff1681565b5f33905090565b610e0c83838360016116b2565b505050565b5f610e1c8484610790565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e9d5781811015610e8e578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610e85939291906125f7565b60405180910390fd5b610e9c84848484035f6116b2565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f13575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610f0a91906120e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f83575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610f7a91906120e1565b60405180910390fd5b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561100d578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611004939291906125f7565b60405180910390fd5b5f611016610624565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156110845750611054610624565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561109c5750600860149054906101000a900460ff165b156113ad57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561114a575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b806111d95750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111d857503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b156113ac57600c54600b5410156112745760035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a90612676565b60405180910390fd5b5b61271060fa840260fa8502018161128e5761128d612694565b5b0490505f61129b306105cb565b9050611c20600e546112ad91906126ee565b421180156113075750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b801561131f5750600d5f9054906101000a900460ff16155b801561132a57505f81115b15611393575f60fa8061133d91906126ee565b90505f82861061134d578261134f565b855b90506113898260fa836113629190612721565b61136c9190612762565b8360fa8461137a9190612721565b6113849190612762565b611881565b42600e8190555050505b600b5f8154809291906113a590612792565b9190505550505b5b5f81111561146e578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461140191906126ee565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114659190611fdf565b60405180910390a35b82820360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080830360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161155b9190611fdf565b60405180910390a35050505050565b611572610df8565b73ffffffffffffffffffffffffffffffffffffffff16611590610624565b73ffffffffffffffffffffffffffffffffffffffff16146115ef576115b3610df8565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115e691906120e1565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611722575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161171991906120e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611792575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161178991906120e1565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561187b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516118729190611fdf565b60405180910390a35b50505050565b6001600d5f6101000a81548160ff0219169083151502179055505f60fa600260fa6118ac9190612762565b6118b691906126ee565b90505f6002846118c69190612762565b90505f81856118d591906127d9565b90506118eb84836118e691906126ee565b61198a565b5f4790505f8460fa836118fe9190612721565b6119089190612762565b90505f818361191791906127d9565b90506119238482611bf3565b61192c82611cd3565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185828660405161195f9392919061280c565b60405180910390a15050505050505f600d5f6101000a81548160ff0219169083151502179055505050565b6001600d5f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119c0576119bf6120fe565b5b6040519080825280602002602001820160405280156119ee5781602001602082028036833780820191505090505b50905030815f81518110611a0557611a0461231c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611acd919061242d565b81600181518110611ae157611ae061231c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b473060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dff565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ba99594939291906128f8565b5f604051808303815f87803b158015611bc0575f80fd5b505af1158015611bd2573d5f803e3d5ffd5b50505050505f600d5f6101000a81548160ff02191690831515021790555050565b611c1f3060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dff565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80611c69610624565b426040518863ffffffff1660e01b8152600401611c8b969594939291906124b8565b60606040518083038185885af1158015611ca7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ccc919061252b565b5050505050565b5f600282611ce19190612762565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d47573d5f803e3d5ffd5b50600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284611d9091906127d9565b90811502906040515f60405180830381858888f19350505050158015611db8573d5f803e3d5ffd5b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611dff82611dbd565b611e098185611dc7565b9350611e19818560208601611dd7565b611e2281611de5565b840191505092915050565b5f6020820190508181035f830152611e458184611df5565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e8782611e5e565b9050919050565b611e9781611e7d565b8114611ea1575f80fd5b50565b5f81359050611eb281611e8e565b92915050565b5f819050919050565b611eca81611eb8565b8114611ed4575f80fd5b50565b5f81359050611ee581611ec1565b92915050565b5f8060408385031215611f0157611f00611e56565b5b5f611f0e85828601611ea4565b9250506020611f1f85828601611ed7565b9150509250929050565b5f8115159050919050565b611f3d81611f29565b82525050565b5f602082019050611f565f830184611f34565b92915050565b5f819050919050565b5f611f7f611f7a611f7584611e5e565b611f5c565b611e5e565b9050919050565b5f611f9082611f65565b9050919050565b5f611fa182611f86565b9050919050565b611fb181611f97565b82525050565b5f602082019050611fca5f830184611fa8565b92915050565b611fd981611eb8565b82525050565b5f602082019050611ff25f830184611fd0565b92915050565b5f805f6060848603121561200f5761200e611e56565b5b5f61201c86828701611ea4565b935050602061202d86828701611ea4565b925050604061203e86828701611ed7565b9150509250925092565b5f60ff82169050919050565b61205d81612048565b82525050565b5f6020820190506120765f830184612054565b92915050565b5f6020828403121561209157612090611e56565b5b5f61209e84828501611ed7565b91505092915050565b5f602082840312156120bc576120bb611e56565b5b5f6120c984828501611ea4565b91505092915050565b6120db81611e7d565b82525050565b5f6020820190506120f45f8301846120d2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61213482611de5565b810181811067ffffffffffffffff82111715612153576121526120fe565b5b80604052505050565b5f612165611e4d565b9050612171828261212b565b919050565b5f67ffffffffffffffff8211156121905761218f6120fe565b5b602082029050602081019050919050565b5f80fd5b5f6121b76121b284612176565b61215c565b905080838252602082019050602084028301858111156121da576121d96121a1565b5b835b8181101561220357806121ef8882611ea4565b8452602084019350506020810190506121dc565b5050509392505050565b5f82601f830112612221576122206120fa565b5b81356122318482602086016121a5565b91505092915050565b5f6020828403121561224f5761224e611e56565b5b5f82013567ffffffffffffffff81111561226c5761226b611e5a565b5b6122788482850161220d565b91505092915050565b5f806040838503121561229757612296611e56565b5b5f6122a485828601611ea4565b92505060206122b585828601611ea4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061230357607f821691505b602082108103612316576123156122bf565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e76616c696420726f757465722061646472657373000000000000000000005f82015250565b5f61237d601683611dc7565b915061238882612349565b602082019050919050565b5f6020820190508181035f8301526123aa81612371565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123e5601783611dc7565b91506123f0826123b1565b602082019050919050565b5f6020820190508181035f830152612412816123d9565b9050919050565b5f8151905061242781611e8e565b92915050565b5f6020828403121561244257612441611e56565b5b5f61244f84828501612419565b91505092915050565b5f60408201905061246b5f8301856120d2565b61247860208301846120d2565b9392505050565b5f819050919050565b5f6124a261249d6124988461247f565b611f5c565b611eb8565b9050919050565b6124b281612488565b82525050565b5f60c0820190506124cb5f8301896120d2565b6124d86020830188611fd0565b6124e560408301876124a9565b6124f260608301866124a9565b6124ff60808301856120d2565b61250c60a0830184611fd0565b979650505050505050565b5f8151905061252581611ec1565b92915050565b5f805f6060848603121561254257612541611e56565b5b5f61254f86828701612517565b935050602061256086828701612517565b925050604061257186828701612517565b9150509250925092565b5f60408201905061258e5f8301856120d2565b61259b6020830184611fd0565b9392505050565b6125ab81611f29565b81146125b5575f80fd5b50565b5f815190506125c6816125a2565b92915050565b5f602082840312156125e1576125e0611e56565b5b5f6125ee848285016125b8565b91505092915050565b5f60608201905061260a5f8301866120d2565b6126176020830185611fd0565b6126246040830184611fd0565b949350505050565b7f536f6d657468696e67206973206e6f7420616c6c6f77656400000000000000005f82015250565b5f612660601883611dc7565b915061266b8261262c565b602082019050919050565b5f6020820190508181035f83015261268d81612654565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126f882611eb8565b915061270383611eb8565b925082820190508082111561271b5761271a6126c1565b5b92915050565b5f61272b82611eb8565b915061273683611eb8565b925082820261274481611eb8565b9150828204841483151761275b5761275a6126c1565b5b5092915050565b5f61276c82611eb8565b915061277783611eb8565b92508261278757612786612694565b5b828204905092915050565b5f61279c82611eb8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127ce576127cd6126c1565b5b600182019050919050565b5f6127e382611eb8565b91506127ee83611eb8565b9250828203905081811115612806576128056126c1565b5b92915050565b5f60608201905061281f5f830186611fd0565b61282c6020830185611fd0565b6128396040830184611fd0565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61287381611e7d565b82525050565b5f612884838361286a565b60208301905092915050565b5f602082019050919050565b5f6128a682612841565b6128b0818561284b565b93506128bb8361285b565b805f5b838110156128eb5781516128d28882612879565b97506128dd83612890565b9250506001810190506128be565b5085935050505092915050565b5f60a08201905061290b5f830188611fd0565b61291860208301876124a9565b818103604083015261292a818661289c565b905061293960608301856120d2565b6129466080830184611fd0565b969550505050505056fea2646970667358221220384673bb25f3a5f7ae62909c62bcb0d66e2a2eaa7ecbace51184633c2953ec2464736f6c63430008190033

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

00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000054d5147bbad41f70661740000000000000000000000000000bf32d9c413e0ad1802f332f5ecebab157393d8cc0000000000000000000000000af325e1e103c2a7ea329c200872306c14e549ef00000000000000000000000000000000000000000000000000000000000000084b4154204d656d650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004244b415400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): KAT Meme
Arg [1] : symbol_ (string): $KAT
Arg [2] : decimals_ (uint8): 18
Arg [3] : initialSupply_ (uint256): 420069420069000000000000000000
Arg [4] : devWallet_ (address): 0xbf32D9c413e0AD1802f332f5eceBAB157393d8Cc
Arg [5] : marketingWallet_ (address): 0x0af325e1e103c2a7Ea329c200872306c14e549Ef

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 00000000000000000000000000000000000000054d5147bbad41f70661740000
Arg [4] : 000000000000000000000000bf32d9c413e0ad1802f332f5ecebab157393d8cc
Arg [5] : 0000000000000000000000000af325e1e103c2a7ea329c200872306c14e549ef
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [7] : 4b4154204d656d65000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 244b415400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

5625:10728:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7362:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8261:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6157:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7663:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6400:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8484:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7564:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16213:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7770:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1284:103;;;;;;;;;;;;;:::i;:::-;;1015:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7461:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7896:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16019:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8086:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15102:909;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1395:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5857:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6119:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7362:91;7407:13;7440:5;7433:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7362:91;:::o;8261:215::-;8359:4;8376:13;8392:12;:10;:12::i;:::-;8376:28;;8415:31;8424:5;8431:7;8440:5;8415:8;:31::i;:::-;8464:4;8457:11;;;8261:215;;;;:::o;6157:41::-;;;;;;;;;;;;;:::o;7663:99::-;7715:7;7742:12;;7735:19;;7663:99;:::o;6400:31::-;;;;:::o;8484:283::-;8605:4;8622:15;8640:12;:10;:12::i;:::-;8622:30;;8663:37;8679:4;8685:7;8694:5;8663:15;:37::i;:::-;8711:26;8721:4;8727:2;8731:5;8711:9;:26::i;:::-;8755:4;8748:11;;;8484:283;;;;;:::o;7564:91::-;7613:5;7638:9;;;;;;;;;;;7631:16;;7564:91;:::o;16213:100::-;974:13;:11;:13::i;:::-;16300:5:::1;16284:13;:21;;;;16213:100:::0;:::o;7770:118::-;7835:7;7862:9;:18;7872:7;7862:18;;;;;;;;;;;;;;;;7855:25;;7770:118;;;:::o;1284:103::-;974:13;:11;:13::i;:::-;1349:30:::1;1376:1;1349:18;:30::i;:::-;1284:103::o:0;1015:87::-;1061:7;1088:6;;;;;;;;;;;1081:13;;1015:87;:::o;7461:95::-;7508:13;7541:7;7534:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7461:95;:::o;7896:182::-;7965:4;7982:13;7998:12;:10;:12::i;:::-;7982:28;;8021:27;8031:5;8038:2;8042:5;8021:9;:27::i;:::-;8066:4;8059:11;;;7896:182;;;;:::o;16019:186::-;974:13;:11;:13::i;:::-;16102:9:::1;16097:101;16121:8;:15;16117:1;:19;16097:101;;;16182:4;16158:8;:21;16167:8;16176:1;16167:11;;;;;;;;:::i;:::-;;;;;;;;16158:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16138:3;;;;;;;16097:101;;;;16019:186:::0;:::o;8086:167::-;8191:7;8218:11;:18;8230:5;8218:18;;;;;;;;;;;;;;;:27;8237:7;8218:27;;;;;;;;;;;;;;;;8211:34;;8086:167;;;;:::o;15102:909::-;974:13;:11;:13::i;:::-;15214:1:::1;15186:30;;:16;:30;;::::0;15178:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15263:11;;;;;;;;;;;15262:12;15254:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15352:16;15315:15;;:54;;;;;;;;;;;;;;;;;;15380:63;15397:4;15412:15;;;;;;;;;;;15430:12;;15380:8;:63::i;:::-;15490:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15472:55;;;15554:4;15578:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15472:143;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15456:13;;:159;;;;;;;;;;;;;;;;;;15626:15;;;;;;;;;;;:31;;;15665:21;15710:4;15730:24;15748:4;15730:9;:24::i;:::-;15769:1;15785::::0;15801:7:::1;:5;:7::i;:::-;15823:15;15626:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15867:13;;;;;;;;;;;15860:29;;;15898:15;;;;;;;;;;;15916:14;15860:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15970:4;15944:8;:23;15953:13;;;;;;;;;;;15944:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15999:4;15985:11;;:18;;;;;;;;;;;;;;;;;;15102:909:::0;:::o;1395:220::-;974:13;:11;:13::i;:::-;1500:1:::1;1480:22;;:8;:22;;::::0;1476:93:::1;;1554:1;1526:31;;;;;;;;;;;:::i;:::-;;;;;;;;1476:93;1579:28;1598:8;1579:18;:28::i;:::-;1395:220:::0;:::o;5857:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;6119:31::-;;;;;;;;;;;;;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;11872:130::-;11957:37;11966:5;11973:7;11982:5;11989:4;11957:8;:37::i;:::-;11872:130;;;:::o;12504:603::-;12638:24;12665:25;12675:5;12682:7;12665:9;:25::i;:::-;12638:52;;12725:17;12705:16;:37;12701:399;;12782:5;12763:16;:24;12759:214;;;12864:7;12894:16;12933:5;12815:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;12759:214;13016:57;13025:5;13032:7;13060:5;13041:16;:24;13067:5;13016:8;:57::i;:::-;12701:399;12627:480;12504:603;;;:::o;8775:2259::-;8875:1;8859:18;;:4;:18;;;8855:88;;8928:1;8901:30;;;;;;;;;;;:::i;:::-;;;;;;;;8855:88;8971:1;8957:16;;:2;:16;;;8953:88;;9026:1;8997:32;;;;;;;;;;;:::i;:::-;;;;;;;;8953:88;9051:19;9073:9;:15;9083:4;9073:15;;;;;;;;;;;;;;;;9051:37;;9117:5;9103:11;:19;9099:109;;;9171:4;9177:11;9190:5;9146:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;9099:109;9220:15;9264:7;:5;:7::i;:::-;9256:15;;:4;:15;;;;:32;;;;;9281:7;:5;:7::i;:::-;9275:13;;:2;:13;;;;9256:32;:47;;;;;9292:11;;;;;;;;;;;9256:47;9252:1452;;;9351:13;;;;;;;;;;;9343:21;;:4;:21;;;:55;;;;;9382:15;;;;;;;;;;;9368:30;;:2;:30;;;;9343:55;9342:124;;;;9427:13;;;;;;;;;;;9421:19;;:2;:19;;;:44;;;;;9460:4;9444:21;;:4;:21;;;;9421:44;9342:124;9320:1373;;;9520:13;;9505:12;;:28;9501:126;;;9566:8;:12;9575:2;9566:12;;;;;;;;;;;;;;;;;;;;;;;;;9558:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9501:126;9788:3;6329;9737:5;:21;6278:3;9717:5;:15;9716:43;9715:76;;;;;:::i;:::-;;;9680:111;;9831:28;9862:24;9880:4;9862:9;:24::i;:::-;9831:55;;6384:7;9972:24;;:44;;;;:::i;:::-;9933:15;:83;:127;;;;;10047:13;;;;;;;;;;;10041:19;;:2;:19;;;9933:127;:169;;;;;10086:16;;;;;;;;;;;10085:17;9933:169;:218;;;;;10150:1;10127:20;:24;9933:218;9907:736;;;10194:13;6278:3;6329;10210:23;;;;:::i;:::-;10194:39;;10256:14;10281:20;10273:5;:28;:109;;10362:20;10273:109;;;10329:5;10273:109;10256:126;;10407:149;10475:5;6329:3;10449:6;:22;;;;:::i;:::-;10448:32;;;;:::i;:::-;10528:5;6278:3;10508:6;:16;;;;:::i;:::-;10507:26;;;;:::i;:::-;10407:14;:149::i;:::-;10608:15;10581:24;:42;;;;10171:472;;9907:736;10663:12;;:14;;;;;;;;;:::i;:::-;;;;;;9482:1211;9320:1373;9252:1452;10730:1;10720:7;:11;10716:137;;;10776:7;10748:9;:24;10766:4;10748:24;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10826:4;10803:38;;10812:4;10803:38;;;10833:7;10803:38;;;;;;:::i;:::-;;;;;;;;10716:137;10922:5;10908:11;:19;10890:9;:15;10900:4;10890:15;;;;;;;;;;;;;;;:37;;;;10967:7;10959:5;:15;10942:9;:13;10952:2;10942:13;;;;;;;;;;;;;;;;:32;;;;;;;;;;;11016:2;11001:25;;11010:4;11001:25;;;11020:5;11001:25;;;;;;:::i;:::-;;;;;;;;8844:2190;;8775:2259;;;:::o;1110:166::-;1181:12;:10;:12::i;:::-;1170:23;;:7;:5;:7::i;:::-;:23;;;1166:103;;1244:12;:10;:12::i;:::-;1217:40;;;;;;;;;;;:::i;:::-;;;;;;;;1166:103;1110:166::o;1623:191::-;1697:16;1716:6;;;;;;;;;;;1697:25;;1742:8;1733:6;;:17;;;;;;;;;;;;;;;;;;1797:8;1766:40;;1787:8;1766:40;;;;;;;;;;;;1686:128;1623:191;:::o;12010:486::-;12183:1;12166:19;;:5;:19;;;12162:91;;12238:1;12209:32;;;;;;;;;;;:::i;:::-;;;;;;;;12162:91;12286:1;12267:21;;:7;:21;;;12263:92;;12340:1;12312:31;;;;;;;;;;;:::i;:::-;;;;;;;;12263:92;12395:5;12365:11;:18;12377:5;12365:18;;;;;;;;;;;;;;;:27;12384:7;12365:27;;;;;;;;;;;;;;;:35;;;;12415:9;12411:78;;;12462:7;12446:31;;12455:5;12446:31;;;12471:5;12446:31;;;;;;:::i;:::-;;;;;;;;12411:78;12010:486;;;;:::o;13115:666::-;6740:4;6721:16;;:23;;;;;;;;;;;;;;;;;;13242:13:::1;6278:3;13275:1;6329:3;13259:17;;;;:::i;:::-;13258:29;;;;:::i;:::-;13242:45;;13300:15;13337:1;13318:16;:20;;;;:::i;:::-;13300:38;;13349:20;13392:7;13372:16;:28;;;;:::i;:::-;13349:51;;13413:39;13440:11;13430:7;:21;;;;:::i;:::-;13413:16;:39::i;:::-;13465:18;13486:21;13465:42;;13518:14;13560:5;6278:3;13536:10;:20;;;;:::i;:::-;13535:30;;;;:::i;:::-;13518:47;;13576:20;13612:6;13599:10;:19;;;;:::i;:::-;13576:42;;13631:40;13644:12;13658;13631;:40::i;:::-;13684:20;13697:6;13684:12;:20::i;:::-;13722:51;13737:7;13746:12;13760;13722:51;;;;;;;;:::i;:::-;;;;;;;;13231:550;;;;;;6786:5:::0;6767:16;;:24;;;;;;;;;;;;;;;;;;13115:666;;:::o;13789:601::-;6740:4;6721:16;;:23;;;;;;;;;;;;;;;;;;13927:21:::1;13965:1;13951:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13927:40;;13996:4;13978;13983:1;13978:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14022:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14012:4;14017:1;14012:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14057:62;14074:4;14089:15;;;;;;;;;;;14107:11;14057:8;:62::i;:::-;14158:15;;;;;;;;;;;:66;;;14239:11;14265:1;14309:4;14336;14356:15;14158:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13856:534;6786:5:::0;6767:16;;:24;;;;;;;;;;;;;;;;;;13789:601;:::o;14398:513::-;14546:62;14563:4;14578:15;;;;;;;;;;;14596:11;14546:8;:62::i;:::-;14651:15;;;;;;;;;;;:31;;;14690:9;14723:4;14743:11;14769:1;14812;14855:7;:5;:7::i;:::-;14877:15;14651:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14398:513;;:::o;14919:175::-;14976:12;15000:1;14991:6;:10;;;;:::i;:::-;14976:25;;15012:15;;;;;;;;;;;:24;;:30;15037:4;15012:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15053:9;;;;;;;;;;;:18;;:33;15081:4;15072:6;:13;;;;:::i;:::-;15053:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14965:129;14919:175;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:60::-;3367:3;3388:5;3381:12;;3339:60;;;:::o;3405:142::-;3455:9;3488:53;3506:34;3515:24;3533:5;3515:24;:::i;:::-;3506:34;:::i;:::-;3488:53;:::i;:::-;3475:66;;3405:142;;;:::o;3553:126::-;3603:9;3636:37;3667:5;3636:37;:::i;:::-;3623:50;;3553:126;;;:::o;3685:152::-;3761:9;3794:37;3825:5;3794:37;:::i;:::-;3781:50;;3685:152;;;:::o;3843:183::-;3956:63;4013:5;3956:63;:::i;:::-;3951:3;3944:76;3843:183;;:::o;4032:274::-;4151:4;4189:2;4178:9;4174:18;4166:26;;4202:97;4296:1;4285:9;4281:17;4272:6;4202:97;:::i;:::-;4032:274;;;;:::o;4312:118::-;4399:24;4417:5;4399:24;:::i;:::-;4394:3;4387:37;4312:118;;:::o;4436:222::-;4529:4;4567:2;4556:9;4552:18;4544:26;;4580:71;4648:1;4637:9;4633:17;4624:6;4580:71;:::i;:::-;4436:222;;;;:::o;4664:619::-;4741:6;4749;4757;4806:2;4794:9;4785:7;4781:23;4777:32;4774:119;;;4812:79;;:::i;:::-;4774:119;4932:1;4957:53;5002:7;4993:6;4982:9;4978:22;4957:53;:::i;:::-;4947:63;;4903:117;5059:2;5085:53;5130:7;5121:6;5110:9;5106:22;5085:53;:::i;:::-;5075:63;;5030:118;5187:2;5213:53;5258:7;5249:6;5238:9;5234:22;5213:53;:::i;:::-;5203:63;;5158:118;4664:619;;;;;:::o;5289:86::-;5324:7;5364:4;5357:5;5353:16;5342:27;;5289:86;;;:::o;5381:112::-;5464:22;5480:5;5464:22;:::i;:::-;5459:3;5452:35;5381:112;;:::o;5499:214::-;5588:4;5626:2;5615:9;5611:18;5603:26;;5639:67;5703:1;5692:9;5688:17;5679:6;5639:67;:::i;:::-;5499:214;;;;:::o;5719:329::-;5778:6;5827:2;5815:9;5806:7;5802:23;5798:32;5795:119;;;5833:79;;:::i;:::-;5795:119;5953:1;5978:53;6023:7;6014:6;6003:9;5999:22;5978:53;:::i;:::-;5968:63;;5924:117;5719:329;;;;:::o;6054:::-;6113:6;6162:2;6150:9;6141:7;6137:23;6133:32;6130:119;;;6168:79;;:::i;:::-;6130:119;6288:1;6313:53;6358:7;6349:6;6338:9;6334:22;6313:53;:::i;:::-;6303:63;;6259:117;6054:329;;;;:::o;6389:118::-;6476:24;6494:5;6476:24;:::i;:::-;6471:3;6464:37;6389:118;;:::o;6513:222::-;6606:4;6644:2;6633:9;6629:18;6621:26;;6657:71;6725:1;6714:9;6710:17;6701:6;6657:71;:::i;:::-;6513:222;;;;:::o;6741:117::-;6850:1;6847;6840:12;6864:180;6912:77;6909:1;6902:88;7009:4;7006:1;6999:15;7033:4;7030:1;7023:15;7050:281;7133:27;7155:4;7133:27;:::i;:::-;7125:6;7121:40;7263:6;7251:10;7248:22;7227:18;7215:10;7212:34;7209:62;7206:88;;;7274:18;;:::i;:::-;7206:88;7314:10;7310:2;7303:22;7093:238;7050:281;;:::o;7337:129::-;7371:6;7398:20;;:::i;:::-;7388:30;;7427:33;7455:4;7447:6;7427:33;:::i;:::-;7337:129;;;:::o;7472:311::-;7549:4;7639:18;7631:6;7628:30;7625:56;;;7661:18;;:::i;:::-;7625:56;7711:4;7703:6;7699:17;7691:25;;7771:4;7765;7761:15;7753:23;;7472:311;;;:::o;7789:117::-;7898:1;7895;7888:12;7929:710;8025:5;8050:81;8066:64;8123:6;8066:64;:::i;:::-;8050:81;:::i;:::-;8041:90;;8151:5;8180:6;8173:5;8166:21;8214:4;8207:5;8203:16;8196:23;;8267:4;8259:6;8255:17;8247:6;8243:30;8296:3;8288:6;8285:15;8282:122;;;8315:79;;:::i;:::-;8282:122;8430:6;8413:220;8447:6;8442:3;8439:15;8413:220;;;8522:3;8551:37;8584:3;8572:10;8551:37;:::i;:::-;8546:3;8539:50;8618:4;8613:3;8609:14;8602:21;;8489:144;8473:4;8468:3;8464:14;8457:21;;8413:220;;;8417:21;8031:608;;7929:710;;;;;:::o;8662:370::-;8733:5;8782:3;8775:4;8767:6;8763:17;8759:27;8749:122;;8790:79;;:::i;:::-;8749:122;8907:6;8894:20;8932:94;9022:3;9014:6;9007:4;8999:6;8995:17;8932:94;:::i;:::-;8923:103;;8739:293;8662:370;;;;:::o;9038:539::-;9122:6;9171:2;9159:9;9150:7;9146:23;9142:32;9139:119;;;9177:79;;:::i;:::-;9139:119;9325:1;9314:9;9310:17;9297:31;9355:18;9347:6;9344:30;9341:117;;;9377:79;;:::i;:::-;9341:117;9482:78;9552:7;9543:6;9532:9;9528:22;9482:78;:::i;:::-;9472:88;;9268:302;9038:539;;;;:::o;9583:474::-;9651:6;9659;9708:2;9696:9;9687:7;9683:23;9679:32;9676:119;;;9714:79;;:::i;:::-;9676:119;9834:1;9859:53;9904:7;9895:6;9884:9;9880:22;9859:53;:::i;:::-;9849:63;;9805:117;9961:2;9987:53;10032:7;10023:6;10012:9;10008:22;9987:53;:::i;:::-;9977:63;;9932:118;9583:474;;;;;:::o;10063:180::-;10111:77;10108:1;10101:88;10208:4;10205:1;10198:15;10232:4;10229:1;10222:15;10249:320;10293:6;10330:1;10324:4;10320:12;10310:22;;10377:1;10371:4;10367:12;10398:18;10388:81;;10454:4;10446:6;10442:17;10432:27;;10388:81;10516:2;10508:6;10505:14;10485:18;10482:38;10479:84;;10535:18;;:::i;:::-;10479:84;10300:269;10249:320;;;:::o;10575:180::-;10623:77;10620:1;10613:88;10720:4;10717:1;10710:15;10744:4;10741:1;10734:15;10761:172;10901:24;10897:1;10889:6;10885:14;10878:48;10761:172;:::o;10939:366::-;11081:3;11102:67;11166:2;11161:3;11102:67;:::i;:::-;11095:74;;11178:93;11267:3;11178:93;:::i;:::-;11296:2;11291:3;11287:12;11280:19;;10939:366;;;:::o;11311:419::-;11477:4;11515:2;11504:9;11500:18;11492:26;;11564:9;11558:4;11554:20;11550:1;11539:9;11535:17;11528:47;11592:131;11718:4;11592:131;:::i;:::-;11584:139;;11311:419;;;:::o;11736:173::-;11876:25;11872:1;11864:6;11860:14;11853:49;11736:173;:::o;11915:366::-;12057:3;12078:67;12142:2;12137:3;12078:67;:::i;:::-;12071:74;;12154:93;12243:3;12154:93;:::i;:::-;12272:2;12267:3;12263:12;12256:19;;11915:366;;;:::o;12287:419::-;12453:4;12491:2;12480:9;12476:18;12468:26;;12540:9;12534:4;12530:20;12526:1;12515:9;12511:17;12504:47;12568:131;12694:4;12568:131;:::i;:::-;12560:139;;12287:419;;;:::o;12712:143::-;12769:5;12800:6;12794:13;12785:22;;12816:33;12843:5;12816:33;:::i;:::-;12712:143;;;;:::o;12861:351::-;12931:6;12980:2;12968:9;12959:7;12955:23;12951:32;12948:119;;;12986:79;;:::i;:::-;12948:119;13106:1;13131:64;13187:7;13178:6;13167:9;13163:22;13131:64;:::i;:::-;13121:74;;13077:128;12861:351;;;;:::o;13218:332::-;13339:4;13377:2;13366:9;13362:18;13354:26;;13390:71;13458:1;13447:9;13443:17;13434:6;13390:71;:::i;:::-;13471:72;13539:2;13528:9;13524:18;13515:6;13471:72;:::i;:::-;13218:332;;;;;:::o;13556:85::-;13601:7;13630:5;13619:16;;13556:85;;;:::o;13647:158::-;13705:9;13738:61;13756:42;13765:32;13791:5;13765:32;:::i;:::-;13756:42;:::i;:::-;13738:61;:::i;:::-;13725:74;;13647:158;;;:::o;13811:147::-;13906:45;13945:5;13906:45;:::i;:::-;13901:3;13894:58;13811:147;;:::o;13964:807::-;14213:4;14251:3;14240:9;14236:19;14228:27;;14265:71;14333:1;14322:9;14318:17;14309:6;14265:71;:::i;:::-;14346:72;14414:2;14403:9;14399:18;14390:6;14346:72;:::i;:::-;14428:80;14504:2;14493:9;14489:18;14480:6;14428:80;:::i;:::-;14518;14594:2;14583:9;14579:18;14570:6;14518:80;:::i;:::-;14608:73;14676:3;14665:9;14661:19;14652:6;14608:73;:::i;:::-;14691;14759:3;14748:9;14744:19;14735:6;14691:73;:::i;:::-;13964:807;;;;;;;;;:::o;14777:143::-;14834:5;14865:6;14859:13;14850:22;;14881:33;14908:5;14881:33;:::i;:::-;14777:143;;;;:::o;14926:663::-;15014:6;15022;15030;15079:2;15067:9;15058:7;15054:23;15050:32;15047:119;;;15085:79;;:::i;:::-;15047:119;15205:1;15230:64;15286:7;15277:6;15266:9;15262:22;15230:64;:::i;:::-;15220:74;;15176:128;15343:2;15369:64;15425:7;15416:6;15405:9;15401:22;15369:64;:::i;:::-;15359:74;;15314:129;15482:2;15508:64;15564:7;15555:6;15544:9;15540:22;15508:64;:::i;:::-;15498:74;;15453:129;14926:663;;;;;:::o;15595:332::-;15716:4;15754:2;15743:9;15739:18;15731:26;;15767:71;15835:1;15824:9;15820:17;15811:6;15767:71;:::i;:::-;15848:72;15916:2;15905:9;15901:18;15892:6;15848:72;:::i;:::-;15595:332;;;;;:::o;15933:116::-;16003:21;16018:5;16003:21;:::i;:::-;15996:5;15993:32;15983:60;;16039:1;16036;16029:12;15983:60;15933:116;:::o;16055:137::-;16109:5;16140:6;16134:13;16125:22;;16156:30;16180:5;16156:30;:::i;:::-;16055:137;;;;:::o;16198:345::-;16265:6;16314:2;16302:9;16293:7;16289:23;16285:32;16282:119;;;16320:79;;:::i;:::-;16282:119;16440:1;16465:61;16518:7;16509:6;16498:9;16494:22;16465:61;:::i;:::-;16455:71;;16411:125;16198:345;;;;:::o;16549:442::-;16698:4;16736:2;16725:9;16721:18;16713:26;;16749:71;16817:1;16806:9;16802:17;16793:6;16749:71;:::i;:::-;16830:72;16898:2;16887:9;16883:18;16874:6;16830:72;:::i;:::-;16912;16980:2;16969:9;16965:18;16956:6;16912:72;:::i;:::-;16549:442;;;;;;:::o;16997:174::-;17137:26;17133:1;17125:6;17121:14;17114:50;16997:174;:::o;17177:366::-;17319:3;17340:67;17404:2;17399:3;17340:67;:::i;:::-;17333:74;;17416:93;17505:3;17416:93;:::i;:::-;17534:2;17529:3;17525:12;17518:19;;17177:366;;;:::o;17549:419::-;17715:4;17753:2;17742:9;17738:18;17730:26;;17802:9;17796:4;17792:20;17788:1;17777:9;17773:17;17766:47;17830:131;17956:4;17830:131;:::i;:::-;17822:139;;17549:419;;;:::o;17974:180::-;18022:77;18019:1;18012:88;18119:4;18116:1;18109:15;18143:4;18140:1;18133:15;18160:180;18208:77;18205:1;18198:88;18305:4;18302:1;18295:15;18329:4;18326:1;18319:15;18346:191;18386:3;18405:20;18423:1;18405:20;:::i;:::-;18400:25;;18439:20;18457:1;18439:20;:::i;:::-;18434:25;;18482:1;18479;18475:9;18468:16;;18503:3;18500:1;18497:10;18494:36;;;18510:18;;:::i;:::-;18494:36;18346:191;;;;:::o;18543:410::-;18583:7;18606:20;18624:1;18606:20;:::i;:::-;18601:25;;18640:20;18658:1;18640:20;:::i;:::-;18635:25;;18695:1;18692;18688:9;18717:30;18735:11;18717:30;:::i;:::-;18706:41;;18896:1;18887:7;18883:15;18880:1;18877:22;18857:1;18850:9;18830:83;18807:139;;18926:18;;:::i;:::-;18807:139;18591:362;18543:410;;;;:::o;18959:185::-;18999:1;19016:20;19034:1;19016:20;:::i;:::-;19011:25;;19050:20;19068:1;19050:20;:::i;:::-;19045:25;;19089:1;19079:35;;19094:18;;:::i;:::-;19079:35;19136:1;19133;19129:9;19124:14;;18959:185;;;;:::o;19150:233::-;19189:3;19212:24;19230:5;19212:24;:::i;:::-;19203:33;;19258:66;19251:5;19248:77;19245:103;;19328:18;;:::i;:::-;19245:103;19375:1;19368:5;19364:13;19357:20;;19150:233;;;:::o;19389:194::-;19429:4;19449:20;19467:1;19449:20;:::i;:::-;19444:25;;19483:20;19501:1;19483:20;:::i;:::-;19478:25;;19527:1;19524;19520:9;19512:17;;19551:1;19545:4;19542:11;19539:37;;;19556:18;;:::i;:::-;19539:37;19389:194;;;;:::o;19589:442::-;19738:4;19776:2;19765:9;19761:18;19753:26;;19789:71;19857:1;19846:9;19842:17;19833:6;19789:71;:::i;:::-;19870:72;19938:2;19927:9;19923:18;19914:6;19870:72;:::i;:::-;19952;20020:2;20009:9;20005:18;19996:6;19952:72;:::i;:::-;19589:442;;;;;;:::o;20037:114::-;20104:6;20138:5;20132:12;20122:22;;20037:114;;;:::o;20157:184::-;20256:11;20290:6;20285:3;20278:19;20330:4;20325:3;20321:14;20306:29;;20157:184;;;;:::o;20347:132::-;20414:4;20437:3;20429:11;;20467:4;20462:3;20458:14;20450:22;;20347:132;;;:::o;20485:108::-;20562:24;20580:5;20562:24;:::i;:::-;20557:3;20550:37;20485:108;;:::o;20599:179::-;20668:10;20689:46;20731:3;20723:6;20689:46;:::i;:::-;20767:4;20762:3;20758:14;20744:28;;20599:179;;;;:::o;20784:113::-;20854:4;20886;20881:3;20877:14;20869:22;;20784:113;;;:::o;20933:732::-;21052:3;21081:54;21129:5;21081:54;:::i;:::-;21151:86;21230:6;21225:3;21151:86;:::i;:::-;21144:93;;21261:56;21311:5;21261:56;:::i;:::-;21340:7;21371:1;21356:284;21381:6;21378:1;21375:13;21356:284;;;21457:6;21451:13;21484:63;21543:3;21528:13;21484:63;:::i;:::-;21477:70;;21570:60;21623:6;21570:60;:::i;:::-;21560:70;;21416:224;21403:1;21400;21396:9;21391:14;;21356:284;;;21360:14;21656:3;21649:10;;21057:608;;;20933:732;;;;:::o;21671:831::-;21934:4;21972:3;21961:9;21957:19;21949:27;;21986:71;22054:1;22043:9;22039:17;22030:6;21986:71;:::i;:::-;22067:80;22143:2;22132:9;22128:18;22119:6;22067:80;:::i;:::-;22194:9;22188:4;22184:20;22179:2;22168:9;22164:18;22157:48;22222:108;22325:4;22316:6;22222:108;:::i;:::-;22214:116;;22340:72;22408:2;22397:9;22393:18;22384:6;22340:72;:::i;:::-;22422:73;22490:3;22479:9;22475:19;22466:6;22422:73;:::i;:::-;21671:831;;;;;;;;:::o

Swarm Source

ipfs://384673bb25f3a5f7ae62909c62bcb0d66e2a2eaa7ecbace51184633c2953ec24
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.