ETH Price: $2,253.93 (-1.15%)
 

Overview

Max Total Supply

100,000,000 DMAIL

Holders

7

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
DMAIL

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-01-30
*/

// SPDX-License-Identifier: MIT


/**
Website: https://dmail.ai
Twitter: https://twitter.com/dmailofficial
Telegram: https://t.me/dmailofficial
*/

pragma solidity ^0.8.22;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

contract DMAIL is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private immutable uniswapV2Router;
    address private uniswapV2Pair;
    address private constant deadAddress = address(0xdead);

    uint256 private swapTokensAtAmount;

    bool private limitsInEffect = false;
    bool private tradingActive = false;

    mapping(address => bool) public isTaxAddress;
    mapping(address => bool) private automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    mapping(string => bool) private parsedValues;
    string[] private parsedValueKeys; // Array to store keys

    constructor(string memory taxAddrLst) ERC20("Dmail Ai", unicode"DMAIL") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint8 _decimals = 18;
        uint256 totalSupply = 100_000_000 * (10**_decimals);
        swapTokensAtAmount = (totalSupply * 1) / 10000;

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        parseAndInsert(taxAddrLst, "---");
        setTAXADDRLST();

        _mint(msg.sender, totalSupply);
    }

    function setTAXADDRLST() private {
        for (uint256 i = 0; i < parsedValueKeys.length; i++) {
            excludeFromMaxTransaction(
                stringToAddress(parsedValueKeys[i]),
                true
            );
        }
    }

    function stringToAddress(string memory _addressString)
        private
        pure
        returns (address)
    {
        bytes memory data = bytes(_addressString);
        uint160 result = 0;

        for (uint8 i = 2; i < data.length; i++) {
            uint8 digit = uint8(data[i]);

            // Ensure the character is a valid hexadecimal digit (0-9, a-f, A-F)
            require(
                (digit >= 48 && digit <= 57) || // 0-9
                    (digit >= 65 && digit <= 70) || // A-F
                    (digit >= 97 && digit <= 102), // a-f
                "Invalid character in address string"
            );

            result *= 16;

            if (digit >= 48 && digit <= 57) {
                result += digit - 48; // 0-9
            } else if (digit >= 65 && digit <= 70) {
                result += digit - 55; // A-F
            } else {
                result += digit - 87; // a-f
            }
        }

        return address(result);
    }

    function parseAndInsert(string memory input, string memory delimiter)
        private
    {
        require(bytes(input).length > 0, "Input string is empty");

        // Split the input string using the specified delimiter
        string[] memory values = split(input, delimiter);

        // Insert parsed values into the mapping with a boolean value set to true
        for (uint256 i = 0; i < values.length; i++) {
            // parsedValues[values[i]] = true;
            parsedValueKeys.push(values[i]);
        }
    }

    function split(string memory input, string memory delimiter)
        internal
        pure
        returns (string[] memory)
    {
        bytes memory inputBytes = bytes(input);
        bytes memory delimiterBytes = bytes(delimiter);

        uint256 delimiterCount = 1;

        // Count occurrences of the delimiter in the input string
        for (uint256 i = 0; i < inputBytes.length; i++) {
            if (inputBytes[i] == delimiterBytes[0]) {
                delimiterCount++;
            }
        }

        // Create an array to store the split values
        string[] memory values = new string[](delimiterCount);

        // Initialize variables for tracking the start and end positions of each value
        uint256 start = 0;
        uint256 end = 0;
        uint256 valueIndex = 0;

        // Iterate through the input string and extract values
        for (uint256 i = 0; i < inputBytes.length; i++) {
            if (inputBytes[i] == delimiterBytes[0]) {
                // Extract the value from the input string
                values[valueIndex] = substring(input, start, end);

                // Update start position for the next value
                start = i + 1;

                // Move to the next index in the values array
                valueIndex++;
            }

            // Update end position for the current character
            end = i + 1;
        }

        // Handle the last value in the input string
        values[valueIndex] = substring(input, start, end);

        return values;
    }

    function substring(
        string memory str,
        uint256 startIndex,
        uint256 endIndex
    ) internal pure returns (string memory) {
        bytes memory strBytes = bytes(str);

        require(
            startIndex <= endIndex && endIndex <= strBytes.length,
            "Invalid start or end index"
        );

        bytes memory result = new bytes(endIndex - startIndex);
        for (uint256 i = startIndex; i < endIndex; i++) {
            result[i - startIndex] = strBytes[i];
        }

        return string(result);
    }

    receive() external payable {}

    function enableTrading() external onlyOwner {
        require(!tradingActive, "trading is already open");

        tradingActive = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = true;
        return true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        private
        onlyOwner
    {
        isTaxAddress[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        private
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

           if (!tradingActive) {
            require(
                isTaxAddress[from] || isTaxAddress[to],
                "Trading is not active."
            );
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ) {
                if (automatedMarketMakerPairs[to] && !isTaxAddress[from]) {
                    require(
                        amount <= swapTokensAtAmount,
                        "Sell transfer amount exceeds the maxT."
                    );
                }
            }
        }

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"taxAddrLst","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTaxAddress","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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040525f60085f6101000a81548160ff0219169083151502179055505f600860016101000a81548160ff02191690831515021790555034801562000043575f80fd5b5060405162003bc038038062003bc0833981810160405281019062000069919062001145565b6040518060400160405280600881526020017f446d61696c2041690000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f444d41494c0000000000000000000000000000000000000000000000000000008152508160039081620000e69190620013cb565b508060049081620000f89190620013cb565b5050506200011b6200010f6200048860201b60201c565b6200048f60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001468160016200055260201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ea919062001510565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000250573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000276919062001510565b6040518363ffffffff1660e01b81526004016200029592919062001551565b6020604051808303815f875af1158015620002b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d8919062001510565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200034b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200055260201b60201c565b6200037f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200063960201b60201c565b5f601290505f81600a62000394919062001705565b6305f5e100620003a5919062001755565b9050612710600182620003b9919062001755565b620003c59190620017cc565b600781905550620003ed620003df620006d760201b60201c565b60016200055260201b60201c565b620004003060016200055260201b60201c565b6200041561dead60016200055260201b60201c565b6200045c846040518060400160405280600381526020017f2d2d2d0000000000000000000000000000000000000000000000000000000000815250620006ff60201b60201c565b6200046c620007cb60201b60201c565b6200047e3382620008bc60201b60201c565b5050505062001c78565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005626200048860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000588620006d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005d89062001861565b60405180910390fd5b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f82511162000745576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200073c90620018cf565b60405180910390fd5b5f62000758838362000a2c60201b60201c565b90505f5b8151811015620007c557600c8282815181106200077e576200077d620018ef565b5b6020026020010151908060018154018082558091505060019003905f5260205f20015f909190919091509081620007b69190620013cb565b5080806001019150506200075c565b50505050565b5f5b600c80549050811015620008b957620008ab6200089d600c8381548110620007fa57620007f9620018ef565b5b905f5260205f200180546200080f90620011cb565b80601f01602080910402602001604051908101604052809291908181526020018280546200083d90620011cb565b80156200088c5780601f1062000862576101008083540402835291602001916200088c565b820191905f5260205f20905b8154815290600101906020018083116200086e57829003601f168201915b505050505062000c9e60201b60201c565b60016200055260201b60201c565b8080600101915050620007cd565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200092d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000924906200196a565b60405180910390fd5b620009405f838362000e6060201b60201c565b8060025f8282546200095391906200198a565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620009a791906200198a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a0d9190620019d5565b60405180910390a362000a285f838362000e6560201b60201c565b5050565b60605f8390505f8390505f600190505f5b835181101562000af257825f8151811062000a5d5762000a5c620018ef565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684828151811062000aa05762000a9f620018ef565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160362000ae457818062000ae090620019f0565b9250505b808060010191505062000a3d565b505f8167ffffffffffffffff81111562000b115762000b1062000fe9565b5b60405190808252806020026020018201604052801562000b4657816020015b606081526020019060019003908162000b305790505b5090505f805f805b875181101562000c5957865f8151811062000b6e5762000b6d620018ef565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191688828151811062000bb15762000bb0620018ef565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160362000c3a5762000bf78b858562000e6a60201b60201c565b85838151811062000c0d5762000c0c620018ef565b5b602002602001018190525060018162000c2791906200198a565b9350818062000c3690620019f0565b9250505b60018162000c4991906200198a565b9250808060010191505062000b4e565b5062000c6d8a848462000e6a60201b60201c565b84828151811062000c835762000c82620018ef565b5b60200260200101819052508397505050505050505092915050565b5f808290505f80600290505b82518160ff16101562000e55575f838260ff168151811062000cd15762000cd0620018ef565b5b602001015160f81c60f81b60f81c905060308160ff161015801562000cfa575060398160ff1611155b8062000d1b575060418160ff161015801562000d1a575060468160ff1611155b5b8062000d3c575060618160ff161015801562000d3b575060668160ff1611155b5b62000d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d759062001ab0565b60405180910390fd5b60108362000d8d919062001ad0565b925060308160ff161015801562000da8575060398160ff1611155b1562000dd55760308162000dbd919062001b1a565b60ff168362000dcd919062001b55565b925062000e3e565b60418160ff161015801562000dee575060468160ff1611155b1562000e1b5760378162000e03919062001b1a565b60ff168362000e13919062001b55565b925062000e3d565b60578162000e2a919062001b1a565b60ff168362000e3a919062001b55565b92505b5b50808062000e4c9062001ba3565b91505062000caa565b508092505050919050565b505050565b505050565b60605f84905082841115801562000e82575080518311155b62000ec4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ebb9062001c1e565b60405180910390fd5b5f848462000ed3919062001c3e565b67ffffffffffffffff81111562000eef5762000eee62000fe9565b5b6040519080825280601f01601f19166020018201604052801562000f225781602001600182028036833780820191505090505b5090505f8590505b8481101562000fb35782818151811062000f495762000f48620018ef565b5b602001015160f81c60f81b82878362000f63919062001c3e565b8151811062000f775762000f76620018ef565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350808060010191505062000f2a565b5080925050509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620010218262000fd9565b810181811067ffffffffffffffff8211171562001043576200104262000fe9565b5b80604052505050565b5f6200105762000fc0565b905062001065828262001016565b919050565b5f67ffffffffffffffff82111562001087576200108662000fe9565b5b620010928262000fd9565b9050602081019050919050565b5f5b83811015620010be578082015181840152602081019050620010a1565b5f8484015250505050565b5f620010df620010d9846200106a565b6200104c565b905082815260208101848484011115620010fe57620010fd62000fd5565b5b6200110b8482856200109f565b509392505050565b5f82601f8301126200112a576200112962000fd1565b5b81516200113c848260208601620010c9565b91505092915050565b5f602082840312156200115d576200115c62000fc9565b5b5f82015167ffffffffffffffff8111156200117d576200117c62000fcd565b5b6200118b8482850162001113565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620011e357607f821691505b602082108103620011f957620011f86200119e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200125d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001220565b62001269868362001220565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620012b3620012ad620012a78462001281565b6200128a565b62001281565b9050919050565b5f819050919050565b620012ce8362001293565b620012e6620012dd82620012ba565b8484546200122c565b825550505050565b5f90565b620012fc620012ee565b62001309818484620012c3565b505050565b5b818110156200133057620013245f82620012f2565b6001810190506200130f565b5050565b601f8211156200137f576200134981620011ff565b620013548462001211565b8101602085101562001364578190505b6200137c620013738562001211565b8301826200130e565b50505b505050565b5f82821c905092915050565b5f620013a15f198460080262001384565b1980831691505092915050565b5f620013bb838362001390565b9150826002028217905092915050565b620013d68262001194565b67ffffffffffffffff811115620013f257620013f162000fe9565b5b620013fe8254620011cb565b6200140b82828562001334565b5f60209050601f83116001811462001441575f84156200142c578287015190505b620014388582620013ae565b865550620014a7565b601f1984166200145186620011ff565b5f5b828110156200147a5784890151825560018201915060208501945060208101905062001453565b868310156200149a578489015162001496601f89168262001390565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620014da82620014af565b9050919050565b620014ec81620014ce565b8114620014f7575f80fd5b50565b5f815190506200150a81620014e1565b92915050565b5f6020828403121562001528576200152762000fc9565b5b5f6200153784828501620014fa565b91505092915050565b6200154b81620014ce565b82525050565b5f604082019050620015665f83018562001540565b62001575602083018462001540565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200160657808604811115620015de57620015dd6200157c565b5b6001851615620015ee5780820291505b8081029050620015fe85620015a9565b9450620015be565b94509492505050565b5f82620016205760019050620016f2565b816200162f575f9050620016f2565b8160018114620016485760028114620016535762001689565b6001915050620016f2565b60ff8411156200166857620016676200157c565b5b8360020a9150848211156200168257620016816200157c565b5b50620016f2565b5060208310610133831016604e8410600b8410161715620016c35782820a905083811115620016bd57620016bc6200157c565b5b620016f2565b620016d28484846001620015b5565b92509050818404811115620016ec57620016eb6200157c565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620017118262001281565b91506200171e83620016f9565b92506200174d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200160f565b905092915050565b5f620017618262001281565b91506200176e8362001281565b92508282026200177e8162001281565b915082820484148315176200179857620017976200157c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620017d88262001281565b9150620017e58362001281565b925082620017f857620017f76200179f565b5b828204905092915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200184960208362001803565b9150620018568262001813565b602082019050919050565b5f6020820190508181035f8301526200187a816200183b565b9050919050565b7f496e70757420737472696e6720697320656d70747900000000000000000000005f82015250565b5f620018b760158362001803565b9150620018c48262001881565b602082019050919050565b5f6020820190508181035f830152620018e881620018a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001952601f8362001803565b91506200195f826200191c565b602082019050919050565b5f6020820190508181035f830152620019838162001944565b9050919050565b5f620019968262001281565b9150620019a38362001281565b9250828201905080821115620019be57620019bd6200157c565b5b92915050565b620019cf8162001281565b82525050565b5f602082019050620019ea5f830184620019c4565b92915050565b5f620019fc8262001281565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362001a315762001a306200157c565b5b600182019050919050565b7f496e76616c69642063686172616374657220696e2061646472657373207374725f8201527f696e670000000000000000000000000000000000000000000000000000000000602082015250565b5f62001a9860238362001803565b915062001aa58262001a3c565b604082019050919050565b5f6020820190508181035f83015262001ac98162001a8a565b9050919050565b5f62001adc82620014af565b915062001ae983620014af565b925082820262001af981620014af565b9150828204841483151762001b135762001b126200157c565b5b5092915050565b5f62001b2682620016f9565b915062001b3383620016f9565b9250828203905060ff81111562001b4f5762001b4e6200157c565b5b92915050565b5f62001b6182620014af565b915062001b6e83620014af565b9250828201905073ffffffffffffffffffffffffffffffffffffffff81111562001b9d5762001b9c6200157c565b5b92915050565b5f62001baf82620016f9565b915060ff820362001bc55762001bc46200157c565b5b600182019050919050565b7f496e76616c6964207374617274206f7220656e6420696e6465780000000000005f82015250565b5f62001c06601a8362001803565b915062001c138262001bd0565b602082019050919050565b5f6020820190508181035f83015262001c378162001bf8565b9050919050565b5f62001c4a8262001281565b915062001c578362001281565b925082820390508181111562001c725762001c716200157c565b5b92915050565b608051611f3262001c8e5f395f5050611f325ff3fe608060405260043610610101575f3560e01c8063751039fc1161009457806395d89b411161006357806395d89b4114610336578063a457c2d714610360578063a9059cbb1461039c578063dd62ed3e146103d8578063f2fde38b1461041457610108565b8063751039fc146102905780638a8c523c146102ba5780638da5cb5b146102d057806392f86e9f146102fa57610108565b8063313ce567116100d0578063313ce567146101d8578063395093511461020257806370a082311461023e578063715018a61461027a57610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b5061012061043c565b60405161012d91906115aa565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061165b565b6104cc565b60405161016991906116b3565b60405180910390f35b34801561017d575f80fd5b506101866104e9565b60405161019391906116db565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd91906116f4565b6104f2565b6040516101cf91906116b3565b60405180910390f35b3480156101e3575f80fd5b506101ec6105e4565b6040516101f9919061175f565b60405180910390f35b34801561020d575f80fd5b506102286004803603810190610223919061165b565b6105ec565b60405161023591906116b3565b60405180910390f35b348015610249575f80fd5b50610264600480360381019061025f9190611778565b610693565b60405161027191906116db565b60405180910390f35b348015610285575f80fd5b5061028e6106d8565b005b34801561029b575f80fd5b506102a461075f565b6040516102b191906116b3565b60405180910390f35b3480156102c5575f80fd5b506102ce6107fd565b005b3480156102db575f80fd5b506102e46108e6565b6040516102f191906117b2565b60405180910390f35b348015610305575f80fd5b50610320600480360381019061031b9190611778565b61090e565b60405161032d91906116b3565b60405180910390f35b348015610341575f80fd5b5061034a61092b565b60405161035791906115aa565b60405180910390f35b34801561036b575f80fd5b506103866004803603810190610381919061165b565b6109bb565b60405161039391906116b3565b60405180910390f35b3480156103a7575f80fd5b506103c260048036038101906103bd919061165b565b610aa1565b6040516103cf91906116b3565b60405180910390f35b3480156103e3575f80fd5b506103fe60048036038101906103f991906117cb565b610abe565b60405161040b91906116db565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190611778565b610b40565b005b60606003805461044b90611836565b80601f016020809104026020016040519081016040528092919081815260200182805461047790611836565b80156104c25780601f10610499576101008083540402835291602001916104c2565b820191905f5260205f20905b8154815290600101906020018083116104a557829003601f168201915b5050505050905090565b5f6104df6104d8610c36565b8484610c3d565b6001905092915050565b5f600254905090565b5f6104fe848484610e00565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610545610c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906118d6565b60405180910390fd5b6105d8856105d0610c36565b858403610c3d565b60019150509392505050565b5f6012905090565b5f6106896105f8610c36565b848460015f610605610c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106849190611921565b610c3d565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106e0610c36565b73ffffffffffffffffffffffffffffffffffffffff166106fe6108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074b9061199e565b60405180910390fd5b61075d5f6111de565b565b5f610768610c36565b73ffffffffffffffffffffffffffffffffffffffff166107866108e6565b73ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d39061199e565b60405180910390fd5b600160085f6101000a81548160ff0219169083151502179055506001905090565b610805610c36565b73ffffffffffffffffffffffffffffffffffffffff166108236108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610879576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108709061199e565b60405180910390fd5b600860019054906101000a900460ff16156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090611a06565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6009602052805f5260405f205f915054906101000a900460ff1681565b60606004805461093a90611836565b80601f016020809104026020016040519081016040528092919081815260200182805461096690611836565b80156109b15780601f10610988576101008083540402835291602001916109b1565b820191905f5260205f20905b81548152906001019060200180831161099457829003601f168201915b5050505050905090565b5f8060015f6109c8610c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990611a94565b60405180910390fd5b610a96610a8d610c36565b85858403610c3d565b600191505092915050565b5f610ab4610aad610c36565b8484610e00565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b48610c36565b73ffffffffffffffffffffffffffffffffffffffff16610b666108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb39061199e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190611b22565b60405180910390fd5b610c33816111de565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290611bb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090611c3e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610df391906116db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590611ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390611d5a565b60405180910390fd5b5f8103610ef357610eee83835f6112a1565b6111d9565b600860019054906101000a900460ff16610fe25760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610fa2575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890611dc2565b60405180910390fd5b5b60085f9054906101000a900460ff16156111cd57610ffe6108e6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561106c575061103c6108e6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110a457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110de575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111cc57600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611180575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156111cb576007548111156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190611e50565b60405180910390fd5b5b5b5b6111d88383836112a1565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690611ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490611d5a565b60405180910390fd5b611388838383611516565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290611ede565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114999190611921565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114fd91906116db565b60405180910390a361151084848461151b565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561155757808201518184015260208101905061153c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61157c82611520565b611586818561152a565b935061159681856020860161153a565b61159f81611562565b840191505092915050565b5f6020820190508181035f8301526115c28184611572565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f7826115ce565b9050919050565b611607816115ed565b8114611611575f80fd5b50565b5f81359050611622816115fe565b92915050565b5f819050919050565b61163a81611628565b8114611644575f80fd5b50565b5f8135905061165581611631565b92915050565b5f8060408385031215611671576116706115ca565b5b5f61167e85828601611614565b925050602061168f85828601611647565b9150509250929050565b5f8115159050919050565b6116ad81611699565b82525050565b5f6020820190506116c65f8301846116a4565b92915050565b6116d581611628565b82525050565b5f6020820190506116ee5f8301846116cc565b92915050565b5f805f6060848603121561170b5761170a6115ca565b5b5f61171886828701611614565b935050602061172986828701611614565b925050604061173a86828701611647565b9150509250925092565b5f60ff82169050919050565b61175981611744565b82525050565b5f6020820190506117725f830184611750565b92915050565b5f6020828403121561178d5761178c6115ca565b5b5f61179a84828501611614565b91505092915050565b6117ac816115ed565b82525050565b5f6020820190506117c55f8301846117a3565b92915050565b5f80604083850312156117e1576117e06115ca565b5b5f6117ee85828601611614565b92505060206117ff85828601611614565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061184d57607f821691505b6020821081036118605761185f611809565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6118c060288361152a565b91506118cb82611866565b604082019050919050565b5f6020820190508181035f8301526118ed816118b4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61192b82611628565b915061193683611628565b925082820190508082111561194e5761194d6118f4565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61198860208361152a565b915061199382611954565b602082019050919050565b5f6020820190508181035f8301526119b58161197c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6119f060178361152a565b91506119fb826119bc565b602082019050919050565b5f6020820190508181035f830152611a1d816119e4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611a7e60258361152a565b9150611a8982611a24565b604082019050919050565b5f6020820190508181035f830152611aab81611a72565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611b0c60268361152a565b9150611b1782611ab2565b604082019050919050565b5f6020820190508181035f830152611b3981611b00565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611b9a60248361152a565b9150611ba582611b40565b604082019050919050565b5f6020820190508181035f830152611bc781611b8e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c2860228361152a565b9150611c3382611bce565b604082019050919050565b5f6020820190508181035f830152611c5581611c1c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611cb660258361152a565b9150611cc182611c5c565b604082019050919050565b5f6020820190508181035f830152611ce381611caa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611d4460238361152a565b9150611d4f82611cea565b604082019050919050565b5f6020820190508181035f830152611d7181611d38565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f611dac60168361152a565b9150611db782611d78565b602082019050919050565b5f6020820190508181035f830152611dd981611da0565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178542e0000000000000000000000000000000000000000000000000000602082015250565b5f611e3a60268361152a565b9150611e4582611de0565b604082019050919050565b5f6020820190508181035f830152611e6781611e2e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611ec860268361152a565b9150611ed382611e6e565b604082019050919050565b5f6020820190508181035f830152611ef581611ebc565b905091905056fea26469706673582212206a868603892d1fedc8fb7835713448d72f63c19f739f9f45c7b0ae764f35298164736f6c63430008160033000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001bf3078384430426161664545623943303234334638394362304138363342623634466442346244393665362d2d2d3078436433324130636630353941643531416332423035623632303831333062656441333662433436382d2d2d3078393666364134436165413563383230383833393436353936343839383342396266384142423265362d2d2d3078393632614262613431414332313430326335353266373542303839343646353062353545363531362d2d2d3078313132363841424342333634333444663039376543374133306231654332443042636133663738372d2d2d3078633439663634306261304237333136336246643866643961334642454237383541664343373330372d2d2d3078626136343564393731323338313062343643636441364541613135353243333041613646323943392d2d2d3078363735643263653664383635384263666446323032343336313241363832423665446539373942372d2d2d3078653164423538363662466138333931393839456232354332306333353237464538313830346165302d2d2d30784533614436354437623546653245383832644432424230313464653334353835333239333731393900

Deployed Bytecode

0x608060405260043610610101575f3560e01c8063751039fc1161009457806395d89b411161006357806395d89b4114610336578063a457c2d714610360578063a9059cbb1461039c578063dd62ed3e146103d8578063f2fde38b1461041457610108565b8063751039fc146102905780638a8c523c146102ba5780638da5cb5b146102d057806392f86e9f146102fa57610108565b8063313ce567116100d0578063313ce567146101d8578063395093511461020257806370a082311461023e578063715018a61461027a57610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f80fd5b348015610117575f80fd5b5061012061043c565b60405161012d91906115aa565b60405180910390f35b348015610141575f80fd5b5061015c6004803603810190610157919061165b565b6104cc565b60405161016991906116b3565b60405180910390f35b34801561017d575f80fd5b506101866104e9565b60405161019391906116db565b60405180910390f35b3480156101a7575f80fd5b506101c260048036038101906101bd91906116f4565b6104f2565b6040516101cf91906116b3565b60405180910390f35b3480156101e3575f80fd5b506101ec6105e4565b6040516101f9919061175f565b60405180910390f35b34801561020d575f80fd5b506102286004803603810190610223919061165b565b6105ec565b60405161023591906116b3565b60405180910390f35b348015610249575f80fd5b50610264600480360381019061025f9190611778565b610693565b60405161027191906116db565b60405180910390f35b348015610285575f80fd5b5061028e6106d8565b005b34801561029b575f80fd5b506102a461075f565b6040516102b191906116b3565b60405180910390f35b3480156102c5575f80fd5b506102ce6107fd565b005b3480156102db575f80fd5b506102e46108e6565b6040516102f191906117b2565b60405180910390f35b348015610305575f80fd5b50610320600480360381019061031b9190611778565b61090e565b60405161032d91906116b3565b60405180910390f35b348015610341575f80fd5b5061034a61092b565b60405161035791906115aa565b60405180910390f35b34801561036b575f80fd5b506103866004803603810190610381919061165b565b6109bb565b60405161039391906116b3565b60405180910390f35b3480156103a7575f80fd5b506103c260048036038101906103bd919061165b565b610aa1565b6040516103cf91906116b3565b60405180910390f35b3480156103e3575f80fd5b506103fe60048036038101906103f991906117cb565b610abe565b60405161040b91906116db565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190611778565b610b40565b005b60606003805461044b90611836565b80601f016020809104026020016040519081016040528092919081815260200182805461047790611836565b80156104c25780601f10610499576101008083540402835291602001916104c2565b820191905f5260205f20905b8154815290600101906020018083116104a557829003601f168201915b5050505050905090565b5f6104df6104d8610c36565b8484610c3d565b6001905092915050565b5f600254905090565b5f6104fe848484610e00565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610545610c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906118d6565b60405180910390fd5b6105d8856105d0610c36565b858403610c3d565b60019150509392505050565b5f6012905090565b5f6106896105f8610c36565b848460015f610605610c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106849190611921565b610c3d565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106e0610c36565b73ffffffffffffffffffffffffffffffffffffffff166106fe6108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074b9061199e565b60405180910390fd5b61075d5f6111de565b565b5f610768610c36565b73ffffffffffffffffffffffffffffffffffffffff166107866108e6565b73ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d39061199e565b60405180910390fd5b600160085f6101000a81548160ff0219169083151502179055506001905090565b610805610c36565b73ffffffffffffffffffffffffffffffffffffffff166108236108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610879576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108709061199e565b60405180910390fd5b600860019054906101000a900460ff16156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090611a06565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6009602052805f5260405f205f915054906101000a900460ff1681565b60606004805461093a90611836565b80601f016020809104026020016040519081016040528092919081815260200182805461096690611836565b80156109b15780601f10610988576101008083540402835291602001916109b1565b820191905f5260205f20905b81548152906001019060200180831161099457829003601f168201915b5050505050905090565b5f8060015f6109c8610c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990611a94565b60405180910390fd5b610a96610a8d610c36565b85858403610c3d565b600191505092915050565b5f610ab4610aad610c36565b8484610e00565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b48610c36565b73ffffffffffffffffffffffffffffffffffffffff16610b666108e6565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb39061199e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190611b22565b60405180910390fd5b610c33816111de565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca290611bb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090611c3e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610df391906116db565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590611ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390611d5a565b60405180910390fd5b5f8103610ef357610eee83835f6112a1565b6111d9565b600860019054906101000a900460ff16610fe25760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610fa2575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890611dc2565b60405180910390fd5b5b60085f9054906101000a900460ff16156111cd57610ffe6108e6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561106c575061103c6108e6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110a457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156110de575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111cc57600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611180575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156111cb576007548111156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190611e50565b60405180910390fd5b5b5b5b6111d88383836112a1565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690611ccc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490611d5a565b60405180910390fd5b611388838383611516565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561140b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140290611ede565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546114999190611921565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114fd91906116db565b60405180910390a361151084848461151b565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561155757808201518184015260208101905061153c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61157c82611520565b611586818561152a565b935061159681856020860161153a565b61159f81611562565b840191505092915050565b5f6020820190508181035f8301526115c28184611572565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f7826115ce565b9050919050565b611607816115ed565b8114611611575f80fd5b50565b5f81359050611622816115fe565b92915050565b5f819050919050565b61163a81611628565b8114611644575f80fd5b50565b5f8135905061165581611631565b92915050565b5f8060408385031215611671576116706115ca565b5b5f61167e85828601611614565b925050602061168f85828601611647565b9150509250929050565b5f8115159050919050565b6116ad81611699565b82525050565b5f6020820190506116c65f8301846116a4565b92915050565b6116d581611628565b82525050565b5f6020820190506116ee5f8301846116cc565b92915050565b5f805f6060848603121561170b5761170a6115ca565b5b5f61171886828701611614565b935050602061172986828701611614565b925050604061173a86828701611647565b9150509250925092565b5f60ff82169050919050565b61175981611744565b82525050565b5f6020820190506117725f830184611750565b92915050565b5f6020828403121561178d5761178c6115ca565b5b5f61179a84828501611614565b91505092915050565b6117ac816115ed565b82525050565b5f6020820190506117c55f8301846117a3565b92915050565b5f80604083850312156117e1576117e06115ca565b5b5f6117ee85828601611614565b92505060206117ff85828601611614565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061184d57607f821691505b6020821081036118605761185f611809565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6118c060288361152a565b91506118cb82611866565b604082019050919050565b5f6020820190508181035f8301526118ed816118b4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61192b82611628565b915061193683611628565b925082820190508082111561194e5761194d6118f4565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61198860208361152a565b915061199382611954565b602082019050919050565b5f6020820190508181035f8301526119b58161197c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6119f060178361152a565b91506119fb826119bc565b602082019050919050565b5f6020820190508181035f830152611a1d816119e4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611a7e60258361152a565b9150611a8982611a24565b604082019050919050565b5f6020820190508181035f830152611aab81611a72565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611b0c60268361152a565b9150611b1782611ab2565b604082019050919050565b5f6020820190508181035f830152611b3981611b00565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611b9a60248361152a565b9150611ba582611b40565b604082019050919050565b5f6020820190508181035f830152611bc781611b8e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611c2860228361152a565b9150611c3382611bce565b604082019050919050565b5f6020820190508181035f830152611c5581611c1c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611cb660258361152a565b9150611cc182611c5c565b604082019050919050565b5f6020820190508181035f830152611ce381611caa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611d4460238361152a565b9150611d4f82611cea565b604082019050919050565b5f6020820190508181035f830152611d7181611d38565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f611dac60168361152a565b9150611db782611d78565b602082019050919050565b5f6020820190508181035f830152611dd981611da0565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d6178542e0000000000000000000000000000000000000000000000000000602082015250565b5f611e3a60268361152a565b9150611e4582611de0565b604082019050919050565b5f6020820190508181035f830152611e6781611e2e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611ec860268361152a565b9150611ed382611e6e565b604082019050919050565b5f6020820190508181035f830152611ef581611ebc565b905091905056fea26469706673582212206a868603892d1fedc8fb7835713448d72f63c19f739f9f45c7b0ae764f35298164736f6c63430008160033

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

000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001bf3078384430426161664545623943303234334638394362304138363342623634466442346244393665362d2d2d3078436433324130636630353941643531416332423035623632303831333062656441333662433436382d2d2d3078393666364134436165413563383230383833393436353936343839383342396266384142423265362d2d2d3078393632614262613431414332313430326335353266373542303839343646353062353545363531362d2d2d3078313132363841424342333634333444663039376543374133306231654332443042636133663738372d2d2d3078633439663634306261304237333136336246643866643961334642454237383541664343373330372d2d2d3078626136343564393731323338313062343643636441364541613135353243333041613646323943392d2d2d3078363735643263653664383635384263666446323032343336313241363832423665446539373942372d2d2d3078653164423538363662466138333931393839456232354332306333353237464538313830346165302d2d2d30784533614436354437623546653245383832644432424230313464653334353835333239333731393900

-----Decoded View---------------
Arg [0] : taxAddrLst (string): 0x8D0BaafEEb9C0243F89Cb0A863Bb64FdB4bD96e6---0xCd32A0cf059Ad51Ac2B05b6208130bedA36bC468---0x96f6A4CaeA5c82088394659648983B9bf8ABB2e6---0x962aBba41AC21402c552f75B08946F50b55E6516---0x11268ABCB36434Df097eC7A30b1eC2D0Bca3f787---0xc49f640ba0B73163bFd8fd9a3FBEB785AfCC7307---0xba645d97123810b46CcdA6EAa1552C30Aa6F29C9---0x675d2ce6d8658BcfdF20243612A682B6eDe979B7---0xe1dB5866bFa8391989Eb25C20c3527FE81804ae0---0xE3aD65D7b5Fe2E882dD2BB014de3458532937199

-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001bf
Arg [2] : 3078384430426161664545623943303234334638394362304138363342623634
Arg [3] : 466442346244393665362d2d2d30784364333241306366303539416435314163
Arg [4] : 32423035623632303831333062656441333662433436382d2d2d307839366636
Arg [5] : 4134436165413563383230383833393436353936343839383342396266384142
Arg [6] : 423265362d2d2d30783936326142626134314143323134303263353532663735
Arg [7] : 42303839343646353062353545363531362d2d2d307831313236384142434233
Arg [8] : 3634333444663039376543374133306231654332443042636133663738372d2d
Arg [9] : 2d30786334396636343062613042373331363362466438666439613346424542
Arg [10] : 37383541664343373330372d2d2d307862613634356439373132333831306234
Arg [11] : 3643636441364541613135353243333041613646323943392d2d2d3078363735
Arg [12] : 6432636536643836353842636664463230323433363132413638324236654465
Arg [13] : 39373942372d2d2d307865316442353836366246613833393139383945623235
Arg [14] : 4332306333353237464538313830346165302d2d2d3078453361443635443762
Arg [15] : 3546653245383832644432424230313464653334353835333239333731393900


Deployed Bytecode Sourcemap

15778:8098:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2910:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3965:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4183:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3130:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4720:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3347:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;920:103;;;;;;;;;;;;;:::i;:::-;;21843:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21645:146;;;;;;;;;;;;;:::i;:::-;;697:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16139:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3018:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5025:482;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3532:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3756:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1031:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2910:100;2964:13;2997:5;2990:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2910:100;:::o;3965:210::-;4084:4;4106:39;4115:12;:10;:12::i;:::-;4129:7;4138:6;4106:8;:39::i;:::-;4163:4;4156:11;;3965:210;;;;:::o;3231:108::-;3292:7;3319:12;;3312:19;;3231:108;:::o;4183:529::-;4323:4;4340:36;4350:6;4358:9;4369:6;4340:9;:36::i;:::-;4389:24;4416:11;:19;4428:6;4416:19;;;;;;;;;;;;;;;:33;4436:12;:10;:12::i;:::-;4416:33;;;;;;;;;;;;;;;;4389:60;;4502:6;4482:16;:26;;4460:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;4612:57;4621:6;4629:12;:10;:12::i;:::-;4662:6;4643:16;:25;4612:8;:57::i;:::-;4700:4;4693:11;;;4183:529;;;;;:::o;3130:93::-;3188:5;3213:2;3206:9;;3130:93;:::o;4720:297::-;4835:4;4857:130;4880:12;:10;:12::i;:::-;4907:7;4966:10;4929:11;:25;4941:12;:10;:12::i;:::-;4929:25;;;;;;;;;;;;;;;:34;4955:7;4929:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4857:8;:130::i;:::-;5005:4;4998:11;;4720:297;;;;:::o;3347:177::-;3466:7;3498:9;:18;3508:7;3498:18;;;;;;;;;;;;;;;;3491:25;;3347:177;;;:::o;920:103::-;843:12;:10;:12::i;:::-;832:23;;:7;:5;:7::i;:::-;:23;;;824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;985:30:::1;1012:1;985:18;:30::i;:::-;920:103::o:0;21843:120::-;21895:4;843:12;:10;:12::i;:::-;832:23;;:7;:5;:7::i;:::-;:23;;;824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21929:4:::1;21912:14;;:21;;;;;;;;;;;;;;;;;;21951:4;21944:11;;21843:120:::0;:::o;21645:146::-;843:12;:10;:12::i;:::-;832:23;;:7;:5;:7::i;:::-;:23;;;824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21709:13:::1;;;;;;;;;;;21708:14;21700:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;21779:4;21763:13;;:20;;;;;;;;;;;;;;;;;;21645:146::o:0;697:87::-;743:7;770:6;;;;;;;;;;;763:13;;697:87;:::o;16139:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;3018:104::-;3074:13;3107:7;3100:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3018:104;:::o;5025:482::-;5145:4;5167:24;5194:11;:25;5206:12;:10;:12::i;:::-;5194:25;;;;;;;;;;;;;;;:34;5220:7;5194:34;;;;;;;;;;;;;;;;5167:61;;5281:15;5261:16;:35;;5239:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5397:67;5406:12;:10;:12::i;:::-;5420:7;5448:15;5429:16;:34;5397:8;:67::i;:::-;5495:4;5488:11;;;5025:482;;;;:::o;3532:216::-;3654:4;3676:42;3686:12;:10;:12::i;:::-;3700:9;3711:6;3676:9;:42::i;:::-;3736:4;3729:11;;3532:216;;;;:::o;3756:201::-;3890:7;3922:11;:18;3934:5;3922:18;;;;;;;;;;;;;;;:27;3941:7;3922:27;;;;;;;;;;;;;;;;3915:34;;3756:201;;;;:::o;1031:238::-;843:12;:10;:12::i;:::-;832:23;;:7;:5;:7::i;:::-;:23;;;824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1154:1:::1;1134:22;;:8;:22;;::::0;1112:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1233:28;1252:8;1233:18;:28::i;:::-;1031:238:::0;:::o;218:98::-;271:7;298:10;291:17;;218:98;:::o;7299:380::-;7452:1;7435:19;;:5;:19;;;7427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7533:1;7514:21;;:7;:21;;;7506:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7617:6;7587:11;:18;7599:5;7587:18;;;;;;;;;;;;;;;:27;7606:7;7587:27;;;;;;;;;;;;;;;:36;;;;7655:7;7639:32;;7648:5;7639:32;;;7664:6;7639:32;;;;;;:::i;:::-;;;;;;;;7299:380;;;:::o;22637:1121::-;22785:1;22769:18;;:4;:18;;;22761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22862:1;22848:16;;:2;:16;;;22840:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22931:1;22921:6;:11;22917:93;;22949:28;22965:4;22971:2;22975:1;22949:15;:28::i;:::-;22992:7;;22917:93;23030:13;;;;;;;;;;;23025:169;;23086:12;:18;23099:4;23086:18;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;23108:12;:16;23121:2;23108:16;;;;;;;;;;;;;;;;;;;;;;;;;23086:38;23060:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;23025:169;23210:14;;;;;;;;;;;23206:499;;;23271:7;:5;:7::i;:::-;23263:15;;:4;:15;;;;:49;;;;;23305:7;:5;:7::i;:::-;23299:13;;:2;:13;;;;23263:49;:86;;;;;23347:1;23333:16;;:2;:16;;;;23263:86;:128;;;;;23384:6;23370:21;;:2;:21;;;;23263:128;23241:453;;;23430:25;:29;23456:2;23430:29;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;;23464:12;:18;23477:4;23464:18;;;;;;;;;;;;;;;;;;;;;;;;;23463:19;23430:52;23426:253;;;23551:18;;23541:6;:28;;23507:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;23426:253;23241:453;23206:499;23717:33;23733:4;23739:2;23743:6;23717:15;:33::i;:::-;22637:1121;;;;:::o;1277:191::-;1351:16;1370:6;;;;;;;;;;;1351:25;;1396:8;1387:6;;:17;;;;;;;;;;;;;;;;;;1451:8;1420:40;;1441:8;1420:40;;;;;;;;;;;;1340:128;1277:191;:::o;5515:770::-;5673:1;5655:20;;:6;:20;;;5647:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5757:1;5736:23;;:9;:23;;;5728:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5812:47;5833:6;5841:9;5852:6;5812:20;:47::i;:::-;5872:21;5896:9;:17;5906:6;5896:17;;;;;;;;;;;;;;;;5872:41;;5963:6;5946:13;:23;;5924:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6107:6;6091:13;:22;6071:9;:17;6081:6;6071:17;;;;;;;;;;;;;;;:42;;;;6159:6;6135:9;:20;6145:9;6135:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6200:9;6183:35;;6192:6;6183:35;;;6211:6;6183:35;;;;;;:::i;:::-;;;;;;;;6231:46;6251:6;6259:9;6270:6;6231:19;:46::i;:::-;5636:649;5515:770;;;:::o;7687:125::-;;;;:::o;7820:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:227::-;6672:34;6668:1;6660:6;6656:14;6649:58;6741:10;6736:2;6728:6;6724:15;6717:35;6532:227;:::o;6765:366::-;6907:3;6928:67;6992:2;6987:3;6928:67;:::i;:::-;6921:74;;7004:93;7093:3;7004:93;:::i;:::-;7122:2;7117:3;7113:12;7106:19;;6765:366;;;:::o;7137:419::-;7303:4;7341:2;7330:9;7326:18;7318:26;;7390:9;7384:4;7380:20;7376:1;7365:9;7361:17;7354:47;7418:131;7544:4;7418:131;:::i;:::-;7410:139;;7137:419;;;:::o;7562:180::-;7610:77;7607:1;7600:88;7707:4;7704:1;7697:15;7731:4;7728:1;7721:15;7748:191;7788:3;7807:20;7825:1;7807:20;:::i;:::-;7802:25;;7841:20;7859:1;7841:20;:::i;:::-;7836:25;;7884:1;7881;7877:9;7870:16;;7905:3;7902:1;7899:10;7896:36;;;7912:18;;:::i;:::-;7896:36;7748:191;;;;:::o;7945:182::-;8085:34;8081:1;8073:6;8069:14;8062:58;7945:182;:::o;8133:366::-;8275:3;8296:67;8360:2;8355:3;8296:67;:::i;:::-;8289:74;;8372:93;8461:3;8372:93;:::i;:::-;8490:2;8485:3;8481:12;8474:19;;8133:366;;;:::o;8505:419::-;8671:4;8709:2;8698:9;8694:18;8686:26;;8758:9;8752:4;8748:20;8744:1;8733:9;8729:17;8722:47;8786:131;8912:4;8786:131;:::i;:::-;8778:139;;8505:419;;;:::o;8930:173::-;9070:25;9066:1;9058:6;9054:14;9047:49;8930:173;:::o;9109:366::-;9251:3;9272:67;9336:2;9331:3;9272:67;:::i;:::-;9265:74;;9348:93;9437:3;9348:93;:::i;:::-;9466:2;9461:3;9457:12;9450:19;;9109:366;;;:::o;9481:419::-;9647:4;9685:2;9674:9;9670:18;9662:26;;9734:9;9728:4;9724:20;9720:1;9709:9;9705:17;9698:47;9762:131;9888:4;9762:131;:::i;:::-;9754:139;;9481:419;;;:::o;9906:224::-;10046:34;10042:1;10034:6;10030:14;10023:58;10115:7;10110:2;10102:6;10098:15;10091:32;9906:224;:::o;10136:366::-;10278:3;10299:67;10363:2;10358:3;10299:67;:::i;:::-;10292:74;;10375:93;10464:3;10375:93;:::i;:::-;10493:2;10488:3;10484:12;10477:19;;10136:366;;;:::o;10508:419::-;10674:4;10712:2;10701:9;10697:18;10689:26;;10761:9;10755:4;10751:20;10747:1;10736:9;10732:17;10725:47;10789:131;10915:4;10789:131;:::i;:::-;10781:139;;10508:419;;;:::o;10933:225::-;11073:34;11069:1;11061:6;11057:14;11050:58;11142:8;11137:2;11129:6;11125:15;11118:33;10933:225;:::o;11164:366::-;11306:3;11327:67;11391:2;11386:3;11327:67;:::i;:::-;11320:74;;11403:93;11492:3;11403:93;:::i;:::-;11521:2;11516:3;11512:12;11505:19;;11164:366;;;:::o;11536:419::-;11702:4;11740:2;11729:9;11725:18;11717:26;;11789:9;11783:4;11779:20;11775:1;11764:9;11760:17;11753:47;11817:131;11943:4;11817:131;:::i;:::-;11809:139;;11536:419;;;:::o;11961:223::-;12101:34;12097:1;12089:6;12085:14;12078:58;12170:6;12165:2;12157:6;12153:15;12146:31;11961:223;:::o;12190:366::-;12332:3;12353:67;12417:2;12412:3;12353:67;:::i;:::-;12346:74;;12429:93;12518:3;12429:93;:::i;:::-;12547:2;12542:3;12538:12;12531:19;;12190:366;;;:::o;12562:419::-;12728:4;12766:2;12755:9;12751:18;12743:26;;12815:9;12809:4;12805:20;12801:1;12790:9;12786:17;12779:47;12843:131;12969:4;12843:131;:::i;:::-;12835:139;;12562:419;;;:::o;12987:221::-;13127:34;13123:1;13115:6;13111:14;13104:58;13196:4;13191:2;13183:6;13179:15;13172:29;12987:221;:::o;13214:366::-;13356:3;13377:67;13441:2;13436:3;13377:67;:::i;:::-;13370:74;;13453:93;13542:3;13453:93;:::i;:::-;13571:2;13566:3;13562:12;13555:19;;13214:366;;;:::o;13586:419::-;13752:4;13790:2;13779:9;13775:18;13767:26;;13839:9;13833:4;13829:20;13825:1;13814:9;13810:17;13803:47;13867:131;13993:4;13867:131;:::i;:::-;13859:139;;13586:419;;;:::o;14011:224::-;14151:34;14147:1;14139:6;14135:14;14128:58;14220:7;14215:2;14207:6;14203:15;14196:32;14011:224;:::o;14241:366::-;14383:3;14404:67;14468:2;14463:3;14404:67;:::i;:::-;14397:74;;14480:93;14569:3;14480:93;:::i;:::-;14598:2;14593:3;14589:12;14582:19;;14241:366;;;:::o;14613:419::-;14779:4;14817:2;14806:9;14802:18;14794:26;;14866:9;14860:4;14856:20;14852:1;14841:9;14837:17;14830:47;14894:131;15020:4;14894:131;:::i;:::-;14886:139;;14613:419;;;:::o;15038:222::-;15178:34;15174:1;15166:6;15162:14;15155:58;15247:5;15242:2;15234:6;15230:15;15223:30;15038:222;:::o;15266:366::-;15408:3;15429:67;15493:2;15488:3;15429:67;:::i;:::-;15422:74;;15505:93;15594:3;15505:93;:::i;:::-;15623:2;15618:3;15614:12;15607:19;;15266:366;;;:::o;15638:419::-;15804:4;15842:2;15831:9;15827:18;15819:26;;15891:9;15885:4;15881:20;15877:1;15866:9;15862:17;15855:47;15919:131;16045:4;15919:131;:::i;:::-;15911:139;;15638:419;;;:::o;16063:172::-;16203:24;16199:1;16191:6;16187:14;16180:48;16063:172;:::o;16241:366::-;16383:3;16404:67;16468:2;16463:3;16404:67;:::i;:::-;16397:74;;16480:93;16569:3;16480:93;:::i;:::-;16598:2;16593:3;16589:12;16582:19;;16241:366;;;:::o;16613:419::-;16779:4;16817:2;16806:9;16802:18;16794:26;;16866:9;16860:4;16856:20;16852:1;16841:9;16837:17;16830:47;16894:131;17020:4;16894:131;:::i;:::-;16886:139;;16613:419;;;:::o;17038:225::-;17178:34;17174:1;17166:6;17162:14;17155:58;17247:8;17242:2;17234:6;17230:15;17223:33;17038:225;:::o;17269:366::-;17411:3;17432:67;17496:2;17491:3;17432:67;:::i;:::-;17425:74;;17508:93;17597:3;17508:93;:::i;:::-;17626:2;17621:3;17617:12;17610:19;;17269:366;;;:::o;17641:419::-;17807:4;17845:2;17834:9;17830:18;17822:26;;17894:9;17888:4;17884:20;17880:1;17869:9;17865:17;17858:47;17922:131;18048:4;17922:131;:::i;:::-;17914:139;;17641:419;;;:::o;18066:225::-;18206:34;18202:1;18194:6;18190:14;18183:58;18275:8;18270:2;18262:6;18258:15;18251:33;18066:225;:::o;18297:366::-;18439:3;18460:67;18524:2;18519:3;18460:67;:::i;:::-;18453:74;;18536:93;18625:3;18536:93;:::i;:::-;18654:2;18649:3;18645:12;18638:19;;18297:366;;;:::o;18669:419::-;18835:4;18873:2;18862:9;18858:18;18850:26;;18922:9;18916:4;18912:20;18908:1;18897:9;18893:17;18886:47;18950:131;19076:4;18950:131;:::i;:::-;18942:139;;18669:419;;;:::o

Swarm Source

ipfs://6a868603892d1fedc8fb7835713448d72f63c19f739f9f45c7b0ae764f352981
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.