ETH Price: $2,487.38 (-2.31%)

Token

New Keynesian Token (NEWKEN)
 

Overview

Max Total Supply

200,000 NEWKEN

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7.252495886446310501 NEWKEN

Value
$0.00
0xc433bb3b810889113b6d12cc4b0621731e4ee49e
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:
NEWKEN

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-17
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    
    function owner() public view returns (address) {
        return _owner;
    }
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = 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);
}

contract NEWKEN is Ownable, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    
    uint256 private _taxFee;
    uint256 private _uniswapSellTaxFee;
    uint256 private _maxFee;
    
    bool private _swapEnableFlag = false;
    
    address private _storeAddress;
    uint256 private _maxTransactionAmount;
    address private _UNIWethPoolAddress;
    
    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol, uint256 totalSupply, uint256 taxFee, uint256 uniswapSellTaxFee, uint256 maxTransactionAmount) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
        _taxFee = taxFee;
        _uniswapSellTaxFee = uniswapSellTaxFee;
        _maxFee = _taxFee >= _uniswapSellTaxFee ? _taxFee : _uniswapSellTaxFee;
        _maxTransactionAmount = maxTransactionAmount;
        _UNIWethPoolAddress = pairFor(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this)); //main net
        //_UNIWethPoolAddress = pairFor(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0xc778417E063141139Fce010982780140Aa0cD5Ab, address(this));   //ropsten test net
        //_UNIWethPoolAddress = pairFor(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0xd0A1E359811322d97991E03f863a0C30C2cF029C, address(this));   //kovan test net
        _mint(_msgSender(), totalSupply);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        uint256 sellTaxAmount;
        if(spender == _UNIWethPoolAddress) {
            sellTaxAmount = amount.mul(_maxFee).div(100);
        }
        _approve(_msgSender(), spender, amount.add(sellTaxAmount));
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(sender != owner() && recipient != owner() && (sender == _UNIWethPoolAddress || recipient == _UNIWethPoolAddress)) {
            require(_swapEnableFlag, 'You can not swap until swap enalbed');
            require(amount <= _maxTransactionAmount, "ERC20: transfer amount exceeds limit");
        }
        
        if(_maxFee > 0)
            require(_storeAddress != address(0), "ERC20: store address is not set yet.");

        _beforeTokenTransfer(sender, recipient, amount);

        
        uint256 taxAmount;
        uint256 transfAmount;
        
        if(recipient == _UNIWethPoolAddress) {
            taxAmount = amount.mul(_maxFee).div(100);
            transfAmount = amount;
        } else {
            taxAmount = amount.mul(_taxFee).div(100);
            transfAmount = amount.sub(taxAmount);
        }

        _balances[sender] = _balances[sender].sub(transfAmount.add(taxAmount), "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(transfAmount);
        emit Transfer(sender, recipient, transfAmount);
        
        if(taxAmount > 0) {
            _balances[_storeAddress] = _balances[_storeAddress].add(taxAmount);
            emit Transfer(sender, _storeAddress, taxAmount);
        }
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }
    
    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }

    /**
     * @dev Sets {_storeAddress} to a value.
     *
     */
    function setStoreAddress(address storeAddress) external onlyOwner returns (bool) {
        require(storeAddress != address(0), 'Should not be zero address');
        require(storeAddress != address(this), 'Should not be token address');

        _storeAddress = storeAddress;
        return true;
    }
    
    /**
     * @dev Sets {_taxFee} to a value.
     *
     */
    function setTaxFee(uint256 taxFee) external onlyOwner returns (bool) {
        require(taxFee >= 0 && taxFee <= 20, 'taxFee should be in 0 ~ 20');

        _taxFee = taxFee;
        _maxFee = _taxFee >= _uniswapSellTaxFee ? _taxFee : _uniswapSellTaxFee;
        return true;
    }
    
    /**
     * @dev Sets {_uniswapSellTaxFee} to a value.
     *
     */
    function setUniswapSellTaxFee(uint256 uniswapSellTaxFee) external onlyOwner returns (bool) {
        require(uniswapSellTaxFee >= 0 && uniswapSellTaxFee <= 20, 'uniswapSellTaxFee should be in 0 ~ 20');

        _uniswapSellTaxFee = uniswapSellTaxFee;
        _maxFee = _taxFee >= _uniswapSellTaxFee ? _taxFee : _uniswapSellTaxFee;
        return true;
    }
    
    /**
     * @dev Sets {_swapEnableFlag} to true.
     *
     */
    function setSwapEnableFlag() external onlyOwner returns (bool) {
        _swapEnableFlag = true;
        return true;
    }
    
    
    /**
     * @dev Sets {_taxFee} to a value.
     *
     */
    function setMaxTransactionAmount(uint256 maxTransactionAmount) external onlyOwner returns (bool) {
        require(maxTransactionAmount >= uint256(1000).mul(10**18), 'maxTransactionAmount should be greater than 1000 * 10^18');

        _maxTransactionAmount = maxTransactionAmount;
        return true;
    }
    
    /**
     * @dev See {_taxFee}.
     */
    function taxFee() external view returns (uint256) {
        return _taxFee;
    }
    
    /**
     * @dev See {_uniswapSellTaxFee}.
     */
    function uniswapSellTaxFee() external view returns (uint256) {
        return _uniswapSellTaxFee;
    }
    
    /**
     * @dev See {_swapEnableFlag}.
     */
    function swapEnableFlag() external view returns (bool) {
        return _swapEnableFlag;
    }
    
    /**
     * @dev See {_storeAddress}.
     */
    function storeAddress() external view returns (address) {
        return _storeAddress;
    }
    
    /**
     * @dev See {_maxTransactionAmount}.
     */
    function maxTransactionAmount() external view returns (uint256) {
        return _maxTransactionAmount;
    }
    
    /**
     * @dev returns sorted token addresses, used to handle return values from pairs sorted in this order
     */
    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {
        require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES');
        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS');
    }
    
    /**
     * @dev calculates the CREATE2 address for a pair without making any external calls
     */
    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
            ))));
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"taxFee","type":"uint256"},{"internalType":"uint256","name":"uniswapSellTaxFee","type":"uint256"},{"internalType":"uint256","name":"maxTransactionAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"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":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"storeAddress","type":"address"}],"name":"setStoreAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapEnableFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"uniswapSellTaxFee","type":"uint256"}],"name":"setUniswapSellTaxFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnableFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[],"name":"uniswapSellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526000600a60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040516200326138038062003261833981810160405260c08110156200005257600080fd5b81019080805160405193929190846401000000008211156200007357600080fd5b838201915060208201858111156200008a57600080fd5b8251866001820283011164010000000082111715620000a857600080fd5b8083526020830192505050908051906020019080838360005b83811015620000de578082015181840152602081019050620000c1565b50505050905090810190601f1680156200010c5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200013057600080fd5b838201915060208201858111156200014757600080fd5b82518660018202830111640100000000821117156200016557600080fd5b8083526020830192505050908051906020019080838360005b838110156200019b5780820151818401526020810190506200017e565b50505050905090810190601f168015620001c95780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190805190602001909291908051906020019092919050505060006200020d620003d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508560049080519060200190620002c39291906200092b565b508460059080519060200190620002dc9291906200092b565b506012600660006101000a81548160ff021916908360ff160217905550826007819055508160088190555060085460075410156200031d5760085462000321565b6007545b60098190555080600b8190555062000369735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc230620003de60201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003ca620003bd620003d660201b60201c565b856200054160201b60201c565b505050505050620009da565b600033905090565b6000806000620003f585856200072160201b60201c565b91509150858282604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060405160200180807fff000000000000000000000000000000000000000000000000000000000000008152506001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001807f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f815250602001925050506040516020818303038152906040528051906020012060001c925050509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620005e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620005f9600083836200089d60201b60201c565b6200061581600354620008a260201b62001a091790919060201c565b6003819055506200067481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008a260201b62001a091790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620007ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806200323c6025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610620007e7578284620007ea565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f556e697377617056324c6962726172793a205a45524f5f41444452455353000081525060200191505060405180910390fd5b9250929050565b505050565b60008082840190508381101562000921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200096e57805160ff19168380011785556200099f565b828001600101855582156200099f579182015b828111156200099e57825182559160200191906001019062000981565b5b509050620009ae9190620009b2565b5090565b620009d791905b80821115620009d3576000816000905550600101620009b9565b5090565b90565b61285280620009ea6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063748853f2116100c3578063a9059cbb1161007c578063a9059cbb14610671578063c4081a4c146106d7578063c8c8ebe41461071d578063dd62ed3e1461073b578063f2c4da93146107b3578063f2fde38b146107fd57610158565b8063748853f2146104e057806389023802146105025780638da5cb5b1461052057806395d89b411461056a578063a071dcf4146105ed578063a457c2d71461060b57610158565b80633950935111610115578063395093511461035457806349d9b86c146103ba5780636559e59a146104005780636bc996f61461045c57806370a082311461047e578063715018a6146104d657610158565b806306fdde031461015d578063095ea7b3146101e057806318160ddd146102465780631e293c101461026457806323b872dd146102aa578063313ce56714610330575b600080fd5b610165610841565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e3565b604051808215151515815260200191505060405180910390f35b61024e610996565b6040518082815260200191505060405180910390f35b6102906004803603602081101561027a57600080fd5b81019080803590602001909291905050506109a0565b604051808215151515815260200191505060405180910390f35b610316600480360360608110156102c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af0565b604051808215151515815260200191505060405180910390f35b610338610bc9565b604051808260ff1660ff16815260200191505060405180910390f35b6103a06004803603604081101561036a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be0565b604051808215151515815260200191505060405180910390f35b6103e6600480360360208110156103d057600080fd5b8101908080359060200190929190505050610c93565b604051808215151515815260200191505060405180910390f35b6104426004803603602081101561041657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610df3565b604051808215151515815260200191505060405180910390f35b61046461104d565b604051808215151515815260200191505060405180910390f35b6104c06004803603602081101561049457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113a565b6040518082815260200191505060405180910390f35b6104de611183565b005b6104e861130b565b604051808215151515815260200191505060405180910390f35b61050a611322565b6040518082815260200191505060405180910390f35b61052861132c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610572611355565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b2578082015181840152602081019050610597565b50505050905090810190601f1680156105df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105f56113f7565b6040518082815260200191505060405180910390f35b6106576004803603604081101561062157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611401565b604051808215151515815260200191505060405180910390f35b6106bd6004803603604081101561068757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114ce565b604051808215151515815260200191505060405180910390f35b610703600480360360208110156106ed57600080fd5b81019080803590602001909291905050506114ec565b604051808215151515815260200191505060405180910390f35b610725611669565b6040518082815260200191505060405180910390f35b61079d6004803603604081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b6040518082815260200191505060405180910390f35b6107bb6116fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61083f6004803603602081101561081357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611724565b005b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108d95780601f106108ae576101008083540402835291602001916108d9565b820191906000526020600020905b8154815290600101906020018083116108bc57829003601f168201915b5050505050905090565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156109675761096460646109566009548661193190919063ffffffff16565b6119b790919063ffffffff16565b90505b61098b610972611a01565b856109868487611a0990919063ffffffff16565b611a91565b600191505092915050565b6000600354905090565b60006109aa611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610a88670de0b6b3a76400006103e861193190919063ffffffff16565b821015610ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126786038913960400191505060405180910390fd5b81600b8190555060019050919050565b6000610afd848484611c88565b610bbe84610b09611a01565b610bb9856040518060600160405280602881526020016126f760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6f611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124379092919063ffffffff16565b611a91565b600190509392505050565b6000600660009054906101000a900460ff16905090565b6000610c89610bed611a01565b84610c848560026000610bfe611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0990919063ffffffff16565b611a91565b6001905092915050565b6000610c9d611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008210158015610d70575060148211155b610dc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127686025913960400191505060405180910390fd5b816008819055506008546007541015610de057600854610de4565b6007545b60098190555060019050919050565b6000610dfd611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f53686f756c64206e6f74206265207a65726f206164647265737300000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611003576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f53686f756c64206e6f7420626520746f6b656e2061646472657373000000000081525060200191505060405180910390fd5b81600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000611057611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055506001905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61118b611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a60009054906101000a900460ff16905090565b6000600854905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ed5780601f106113c2576101008083540402835291602001916113ed565b820191906000526020600020905b8154815290600101906020018083116113d057829003601f168201915b5050505050905090565b6000600754905090565b60006114c461140e611a01565b846114bf856040518060600160405280602581526020016127d46025913960026000611438611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124379092919063ffffffff16565b611a91565b6001905092915050565b60006114e26114db611a01565b8484611c88565b6001905092915050565b60006114f6611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600082101580156115c9575060148211155b61163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2030207e20323000000000000081525060200191505060405180910390fd5b8160078190555060085460075410156116565760085461165a565b6007545b60098190555060019050919050565b6000600b54905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61172c611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806126306026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561194457600090506119b1565b600082840290508284828161195557fe5b04146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126d66021913960400191505060405180910390fd5b809150505b92915050565b60006119f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f7565b905092915050565b600033905090565b600080828401905083811015611a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127446024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126566022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061271f6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061260d6023913960400191505060405180910390fd5b611d9c61132c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e0a5750611dda61132c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ebb5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611eba5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b15611f8157600a60009054906101000a900460ff16611f25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806127b16023913960400191505060405180910390fd5b600b54811115611f80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061278d6024913960400191505060405180910390fd5b5b6000600954111561203557600073ffffffffffffffffffffffffffffffffffffffff16600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127f96024913960400191505060405180910390fd5b5b6120408383836125bd565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156120cb576120c160646120b36009548661193190919063ffffffff16565b6119b790919063ffffffff16565b915082905061210b565b6120f360646120e56007548661193190919063ffffffff16565b6119b790919063ffffffff16565b915061210882846125c290919063ffffffff16565b90505b6121896121218383611a0990919063ffffffff16565b6040518060600160405280602681526020016126b060269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124379092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221e81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000821115612430576123438260016000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0990919063ffffffff16565b60016000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5050505050565b60008383111582906124e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a957808201518184015260208101905061248e565b50505050905090810190601f1680156124d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906125a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561256857808201518184015260208101905061254d565b50505050905090810190601f1680156125955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816125af57fe5b049050809150509392505050565b505050565b600061260483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612437565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d61785472616e73616374696f6e416d6f756e742073686f756c642062652067726561746572207468616e2031303030202a2031305e313845524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373756e697377617053656c6c5461784665652073686f756c6420626520696e2030207e20323045524332303a207472616e7366657220616d6f756e742065786365656473206c696d6974596f752063616e206e6f74207377617020756e74696c207377617020656e616c62656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f45524332303a2073746f72652061646472657373206973206e6f7420736574207965742ea26469706673582212208f61e23a3533d4939ff7bd4a3145fd2e3be67a60da79e1c34243e7e4ad4e2ba364736f6c63430006060033556e697377617056324c6962726172793a204944454e544943414c5f41444452455353455300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000002a5a058fc295ed000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000878678326eac90000000000000000000000000000000000000000000000000000000000000000000134e6577204b65796e657369616e20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064e45574b454e0000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063748853f2116100c3578063a9059cbb1161007c578063a9059cbb14610671578063c4081a4c146106d7578063c8c8ebe41461071d578063dd62ed3e1461073b578063f2c4da93146107b3578063f2fde38b146107fd57610158565b8063748853f2146104e057806389023802146105025780638da5cb5b1461052057806395d89b411461056a578063a071dcf4146105ed578063a457c2d71461060b57610158565b80633950935111610115578063395093511461035457806349d9b86c146103ba5780636559e59a146104005780636bc996f61461045c57806370a082311461047e578063715018a6146104d657610158565b806306fdde031461015d578063095ea7b3146101e057806318160ddd146102465780631e293c101461026457806323b872dd146102aa578063313ce56714610330575b600080fd5b610165610841565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e3565b604051808215151515815260200191505060405180910390f35b61024e610996565b6040518082815260200191505060405180910390f35b6102906004803603602081101561027a57600080fd5b81019080803590602001909291905050506109a0565b604051808215151515815260200191505060405180910390f35b610316600480360360608110156102c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af0565b604051808215151515815260200191505060405180910390f35b610338610bc9565b604051808260ff1660ff16815260200191505060405180910390f35b6103a06004803603604081101561036a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be0565b604051808215151515815260200191505060405180910390f35b6103e6600480360360208110156103d057600080fd5b8101908080359060200190929190505050610c93565b604051808215151515815260200191505060405180910390f35b6104426004803603602081101561041657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610df3565b604051808215151515815260200191505060405180910390f35b61046461104d565b604051808215151515815260200191505060405180910390f35b6104c06004803603602081101561049457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113a565b6040518082815260200191505060405180910390f35b6104de611183565b005b6104e861130b565b604051808215151515815260200191505060405180910390f35b61050a611322565b6040518082815260200191505060405180910390f35b61052861132c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610572611355565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b2578082015181840152602081019050610597565b50505050905090810190601f1680156105df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105f56113f7565b6040518082815260200191505060405180910390f35b6106576004803603604081101561062157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611401565b604051808215151515815260200191505060405180910390f35b6106bd6004803603604081101561068757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114ce565b604051808215151515815260200191505060405180910390f35b610703600480360360208110156106ed57600080fd5b81019080803590602001909291905050506114ec565b604051808215151515815260200191505060405180910390f35b610725611669565b6040518082815260200191505060405180910390f35b61079d6004803603604081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611673565b6040518082815260200191505060405180910390f35b6107bb6116fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61083f6004803603602081101561081357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611724565b005b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108d95780601f106108ae576101008083540402835291602001916108d9565b820191906000526020600020905b8154815290600101906020018083116108bc57829003601f168201915b5050505050905090565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156109675761096460646109566009548661193190919063ffffffff16565b6119b790919063ffffffff16565b90505b61098b610972611a01565b856109868487611a0990919063ffffffff16565b611a91565b600191505092915050565b6000600354905090565b60006109aa611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610a88670de0b6b3a76400006103e861193190919063ffffffff16565b821015610ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126786038913960400191505060405180910390fd5b81600b8190555060019050919050565b6000610afd848484611c88565b610bbe84610b09611a01565b610bb9856040518060600160405280602881526020016126f760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6f611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124379092919063ffffffff16565b611a91565b600190509392505050565b6000600660009054906101000a900460ff16905090565b6000610c89610bed611a01565b84610c848560026000610bfe611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0990919063ffffffff16565b611a91565b6001905092915050565b6000610c9d611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60008210158015610d70575060148211155b610dc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127686025913960400191505060405180910390fd5b816008819055506008546007541015610de057600854610de4565b6007545b60098190555060019050919050565b6000610dfd611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f53686f756c64206e6f74206265207a65726f206164647265737300000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611003576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f53686f756c64206e6f7420626520746f6b656e2061646472657373000000000081525060200191505060405180910390fd5b81600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000611057611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055506001905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61118b611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a60009054906101000a900460ff16905090565b6000600854905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ed5780601f106113c2576101008083540402835291602001916113ed565b820191906000526020600020905b8154815290600101906020018083116113d057829003601f168201915b5050505050905090565b6000600754905090565b60006114c461140e611a01565b846114bf856040518060600160405280602581526020016127d46025913960026000611438611a01565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124379092919063ffffffff16565b611a91565b6001905092915050565b60006114e26114db611a01565b8484611c88565b6001905092915050565b60006114f6611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600082101580156115c9575060148211155b61163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f7461784665652073686f756c6420626520696e2030207e20323000000000000081525060200191505060405180910390fd5b8160078190555060085460075410156116565760085461165a565b6007545b60098190555060019050919050565b6000600b54905090565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61172c611a01565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806126306026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561194457600090506119b1565b600082840290508284828161195557fe5b04146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126d66021913960400191505060405180910390fd5b809150505b92915050565b60006119f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f7565b905092915050565b600033905090565b600080828401905083811015611a87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127446024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126566022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061271f6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061260d6023913960400191505060405180910390fd5b611d9c61132c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e0a5750611dda61132c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ebb5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611eba5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b15611f8157600a60009054906101000a900460ff16611f25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806127b16023913960400191505060405180910390fd5b600b54811115611f80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061278d6024913960400191505060405180910390fd5b5b6000600954111561203557600073ffffffffffffffffffffffffffffffffffffffff16600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612034576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127f96024913960400191505060405180910390fd5b5b6120408383836125bd565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156120cb576120c160646120b36009548661193190919063ffffffff16565b6119b790919063ffffffff16565b915082905061210b565b6120f360646120e56007548661193190919063ffffffff16565b6119b790919063ffffffff16565b915061210882846125c290919063ffffffff16565b90505b6121896121218383611a0990919063ffffffff16565b6040518060600160405280602681526020016126b060269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124379092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221e81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36000821115612430576123438260016000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0990919063ffffffff16565b60016000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5050505050565b60008383111582906124e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124a957808201518184015260208101905061248e565b50505050905090810190601f1680156124d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906125a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561256857808201518184015260208101905061254d565b50505050905090810190601f1680156125955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816125af57fe5b049050809150509392505050565b505050565b600061260483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612437565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736d61785472616e73616374696f6e416d6f756e742073686f756c642062652067726561746572207468616e2031303030202a2031305e313845524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373756e697377617053656c6c5461784665652073686f756c6420626520696e2030207e20323045524332303a207472616e7366657220616d6f756e742065786365656473206c696d6974596f752063616e206e6f74207377617020756e74696c207377617020656e616c62656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f45524332303a2073746f72652061646472657373206973206e6f7420736574207965742ea26469706673582212208f61e23a3533d4939ff7bd4a3145fd2e3be67a60da79e1c34243e7e4ad4e2ba364736f6c63430006060033

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

00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000002a5a058fc295ed000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000878678326eac90000000000000000000000000000000000000000000000000000000000000000000134e6577204b65796e657369616e20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064e45574b454e0000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): New Keynesian Token
Arg [1] : symbol (string): NEWKEN
Arg [2] : totalSupply (uint256): 200000000000000000000000
Arg [3] : taxFee (uint256): 2
Arg [4] : uniswapSellTaxFee (uint256): 2
Arg [5] : maxTransactionAmount (uint256): 2500000000000000000000

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 000000000000000000000000000000000000000000002a5a058fc295ed000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 0000000000000000000000000000000000000000000000878678326eac900000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [7] : 4e6577204b65796e657369616e20546f6b656e00000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [9] : 4e45574b454e0000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

3853:15722:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3853:15722:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;5849:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5849:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7955:336;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7955:336:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6924:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17356:313;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17356:313:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8773:321;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8773:321:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6776:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9503:218;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9503:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16700:363;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16700:363:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15939:308;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15939:308:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17146:126;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7087:119;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7087:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2765:148;;;:::i;:::-;;18050:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17879:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2543:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6051:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6051:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17727:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10224:269;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10224:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7419:175;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7419:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16325:286;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16325:286:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18377:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7657:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7657:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18210:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2925:244;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2925:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5849:83;5886:13;5919:5;5912:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5849:83;:::o;7955:336::-;8038:4;8055:21;8101:19;;;;;;;;;;;8090:30;;:7;:30;;;8087:106;;;8153:28;8177:3;8153:19;8164:7;;8153:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8137:44;;8087:106;8203:58;8212:12;:10;:12::i;:::-;8226:7;8235:25;8246:13;8235:6;:10;;:25;;;;:::i;:::-;8203:8;:58::i;:::-;8279:4;8272:11;;;7955:336;;;;:::o;6924:100::-;6977:7;7004:12;;6997:19;;6924:100;:::o;17356:313::-;17447:4;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17496:25:::1;17514:6;17504:4;17496:17;;:25;;;;:::i;:::-;17472:20;:49;;17464:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17619:20;17595:21;:44;;;;17657:4;17650:11;;17356:313:::0;;;:::o;8773:321::-;8879:4;8896:36;8906:6;8914:9;8925:6;8896:9;:36::i;:::-;8943:121;8952:6;8960:12;:10;:12::i;:::-;8974:89;9012:6;8974:89;;;;;;;;;;;;;;;;;:11;:19;8986:6;8974:19;;;;;;;;;;;;;;;:33;8994:12;:10;:12::i;:::-;8974:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8943:8;:121::i;:::-;9082:4;9075:11;;8773:321;;;;;:::o;6776:83::-;6817:5;6842:9;;;;;;;;;;;6835:16;;6776:83;:::o;9503:218::-;9591:4;9608:83;9617:12;:10;:12::i;:::-;9631:7;9640:50;9679:10;9640:11;:25;9652:12;:10;:12::i;:::-;9640:25;;;;;;;;;;;;;;;:34;9666:7;9640:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9608:8;:83::i;:::-;9709:4;9702:11;;9503:218;;;;:::o;16700:363::-;16785:4;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16831:1:::1;16810:17;:22;;:49;;;;;16857:2;16836:17;:23;;16810:49;16802:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16935:17;16914:18;:38;;;;16984:18;;16973:7;;:29;;:60;;17015:18;;16973:60;;;17005:7;;16973:60;16963:7;:70;;;;17051:4;17044:11;;16700:363:::0;;;:::o;15939:308::-;16014:4;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16063:1:::1;16039:26;;:12;:26;;;;16031:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16139:4;16115:29;;:12;:29;;;;16107:69;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16205:12;16189:13;;:28;;;;;;;;;;;;;;;;;;16235:4;16228:11;;15939:308:::0;;;:::o;17146:126::-;17203:4;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17238:4:::1;17220:15;;:22;;;;;;;;;;;;;;;;;;17260:4;17253:11;;17146:126:::0;:::o;7087:119::-;7153:7;7180:9;:18;7190:7;7180:18;;;;;;;;;;;;;;;;7173:25;;7087:119;;;:::o;2765:148::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2872:1:::1;2835:40;;2856:6;::::0;::::1;;;;;;;;;2835:40;;;;;;;;;;;;2903:1;2886:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2765:148::o:0;18050:96::-;18099:4;18123:15;;;;;;;;;;;18116:22;;18050:96;:::o;17879:105::-;17931:7;17958:18;;17951:25;;17879:105;:::o;2543:79::-;2581:7;2608:6;;;;;;;;;;;2601:13;;2543:79;:::o;6051:87::-;6090:13;6123:7;6116:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6051:87;:::o;17727:83::-;17768:7;17795;;17788:14;;17727:83;:::o;10224:269::-;10317:4;10334:129;10343:12;:10;:12::i;:::-;10357:7;10366:96;10405:15;10366:96;;;;;;;;;;;;;;;;;:11;:25;10378:12;:10;:12::i;:::-;10366:25;;;;;;;;;;;;;;;:34;10392:7;10366:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;10334:8;:129::i;:::-;10481:4;10474:11;;10224:269;;;;:::o;7419:175::-;7505:4;7522:42;7532:12;:10;:12::i;:::-;7546:9;7557:6;7522:9;:42::i;:::-;7582:4;7575:11;;7419:175;;;;:::o;16325:286::-;16388:4;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16423:1:::1;16413:6;:11;;:27;;;;;16438:2;16428:6;:12;;16413:27;16405:66;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16494:6;16484:7;:16;;;;16532:18;;16521:7;;:29;;:60;;16563:18;;16521:60;;;16553:7;;16521:60;16511:7;:70;;;;16599:4;16592:11;;16325:286:::0;;;:::o;18377:111::-;18432:7;18459:21;;18452:28;;18377:111;:::o;7657:151::-;7746:7;7773:11;:18;7785:5;7773:18;;;;;;;;;;;;;;;:27;7792:7;7773:27;;;;;;;;;;;;;;;;7766:34;;7657:151;;;;:::o;18210:95::-;18257:7;18284:13;;;;;;;;;;;18277:20;;18210:95;:::o;2925:244::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3034:1:::1;3014:22;;:8;:22;;;;3006:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:8;3095:38;;3116:6;::::0;::::1;;;;;;;;;3095:38;;;;;;;;;;;;3153:8;3144:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2925:244:::0;:::o;615:467::-;673:7;923:1;918;:6;914:47;;;948:1;941:8;;;;914:47;971:9;987:1;983;:5;971:17;;1016:1;1011;1007;:5;;;;;;:10;999:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1073:1;1066:8;;;615:467;;;;;:::o;1088:132::-;1146:7;1173:39;1177:1;1180;1173:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1166:46;;1088:132;;;;:::o;1850:106::-;1903:15;1938:10;1931:17;;1850:106;:::o;92:179::-;150:7;170:9;186:1;182;:5;170:17;;211:1;206;:6;;198:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:1;255:8;;;92:179;;;;:::o;14392:346::-;14511:1;14494:19;;:5;:19;;;;14486:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14592:1;14573:21;;:7;:21;;;;14565:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14676:6;14646:11;:18;14658:5;14646:18;;;;;;;;;;;;;;;:27;14665:7;14646:27;;;;;;;;;;;;;;;:36;;;;14714:7;14698:32;;14707:5;14698:32;;;14723:6;14698:32;;;;;;;;;;;;;;;;;;14392:346;;;:::o;10983:1560::-;11107:1;11089:20;;:6;:20;;;;11081:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11191:1;11170:23;;:9;:23;;;;11162:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11259:7;:5;:7::i;:::-;11249:17;;:6;:17;;;;:41;;;;;11283:7;:5;:7::i;:::-;11270:20;;:9;:20;;;;11249:41;:112;;;;;11305:19;;;;;;;;;;;11295:29;;:6;:29;;;:65;;;;11341:19;;;;;;;;;;;11328:32;;:9;:32;;;11295:65;11249:112;11246:302;;;11386:15;;;;;;;;;;;11378:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11474:21;;11464:6;:31;;11456:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11246:302;11581:1;11571:7;;:11;11568:105;;;11630:1;11605:27;;:13;;;;;;;;;;;:27;;;;11597:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11568:105;11686:47;11707:6;11715:9;11726:6;11686:20;:47::i;:::-;11756:17;11784:20;11841:19;;;;;;;;;;;11828:32;;:9;:32;;;11825:264;;;11889:28;11913:3;11889:19;11900:7;;11889:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11877:40;;11947:6;11932:21;;11825:264;;;11998:28;12022:3;11998:19;12009:7;;11998:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11986:40;;12056:21;12067:9;12056:6;:10;;:21;;;;:::i;:::-;12041:36;;11825:264;12121:92;12143:27;12160:9;12143:12;:16;;:27;;;;:::i;:::-;12121:92;;;;;;;;;;;;;;;;;:9;:17;12131:6;12121:17;;;;;;;;;;;;;;;;:21;;:92;;;;;:::i;:::-;12101:9;:17;12111:6;12101:17;;;;;;;;;;;;;;;:112;;;;12247:38;12272:12;12247:9;:20;12257:9;12247:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;12224:9;:20;12234:9;12224:20;;;;;;;;;;;;;;;:61;;;;12318:9;12301:41;;12310:6;12301:41;;;12329:12;12301:41;;;;;;;;;;;;;;;;;;12378:1;12366:9;:13;12363:173;;;12423:39;12452:9;12423;:24;12433:13;;;;;;;;;;;12423:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12396:9;:24;12406:13;;;;;;;;;;;12396:24;;;;;;;;;;;;;;;:66;;;;12499:13;;;;;;;;;;;12482:42;;12491:6;12482:42;;;12514:9;12482:42;;;;;;;;;;;;;;;;;;12363:173;10983:1560;;;;;:::o;419:190::-;505:7;538:1;533;:6;;541:12;525:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;525:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;565:9;581:1;577;:5;565:17;;600:1;593:8;;;419:190;;;;;:::o;1226:276::-;1312:7;1344:1;1340;:5;1347:12;1332:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1332:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1371:9;1387:1;1383;:5;;;;;;1371:17;;1493:1;1486:8;;;1226:276;;;;;:::o;15767:92::-;;;;:::o;277:136::-;335:7;362:43;366:1;369;362:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;355:50;;277:136;;;;:::o

Swarm Source

ipfs://8f61e23a3533d4939ff7bd4a3145fd2e3be67a60da79e1c34243e7e4ad4e2ba3
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.