ETH Price: $3,302.84 (-0.29%)
Gas: 8 Gwei

Token

XPEPEX (XPEPEX)
 

Overview

Max Total Supply

420,690,000,000,000 XPEPEX

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
199,001,831,153.984451850073314729 XPEPEX

Value
$0.00
0xfa2f7319a9430f66ff0c6f733613f445a982a5c7
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:
XPEPEX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)

pragma solidity ^0.8.0;


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

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

pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

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


pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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);
}

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {

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

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

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

pragma solidity ^0.8.0;

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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


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


pragma solidity ^0.8.0;

import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";
import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol";


contract XPEPEX is Ownable, ERC20 {
    uint256 public _taxRate = 100;  
    uint256 public totalSupplyInit = 420690000000000000000000000000000;
    uint256 public _minSwapThreshold = (totalSupplyInit * 1 / 100);  
    uint256 public maxTxAmount = (totalSupplyInit * 1 / 100);
    IUniswapV2Router02 private _uniswapV2Router;
    
    address private _uniswapV2Pair;
    address private _devWallet;  
    mapping(address => bool) private _excludedFromFees;  

    constructor(
        ) ERC20("XPEPEX", "XPEPEX") 
    {
        _devWallet = owner();

        _mint(msg.sender, totalSupplyInit);
        transferOwnership(msg.sender);
                _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D );

        // Create a Uniswap pair for this token
        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        // Set the devWallet
        _excludedFromFees[owner()] = true;
        _excludedFromFees[address(this)] = true;
        // Set the address of Uniswap V2 router

    }

    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }


    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        uint256 taxAmount = 0;
        if (!_excludedFromFees[sender] && !_excludedFromFees[recipient]){
            require(amount <= maxTxAmount, "OM");
        }

        // Calculate the tax if sender and recipient are not excluded from fees
        
        if ((!_excludedFromFees[sender] && !_excludedFromFees[recipient])) {     
            taxAmount = amount * _taxRate / 10000;
            amount -= taxAmount;
        }

        // Call parent function to perform the actual transfer
        super._transfer(sender, recipient, amount);

        // Transfer tax to the owner's balance if applicable
        if (taxAmount > 0) {
            super._transfer(sender, address(this), taxAmount);
        }

        // Swap tokens for ETH if sender is not Uniswap pair (avoid loops) and enough tokens are accumulated
        if (sender != _uniswapV2Pair && balanceOf(address(this)) >= _minSwapThreshold) {
            swapTokensForEth(balanceOf(address(this)));
        }
    }

    function setDevWallet(address _newW) public onlyOwner{
        _devWallet = _newW;
    }

    function excludeFromFees(address account) public onlyOwner {
        _excludedFromFees[account] = true;
    }
    function setTaxRate(uint256 _newTaxRate) public onlyOwner {
        require(_newTaxRate <= 2000);
        _taxRate = _newTaxRate;
    }

    function includeInFees(address account) public onlyOwner {
        _excludedFromFees[account] = false;
    }
                        
    function setmaxTxAmount(uint256 _maxTxAmount) public onlyOwner {
        require(_maxTxAmount > totalSupplyInit * 1 / 10000);
        maxTxAmount = _maxTxAmount;
    }

    function setNewMinSwap(uint256 _minswapThresh) public onlyOwner {
        _minSwapThreshold = _minswapThresh;
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        // Generate the Uniswap pair path of token -> WETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        // Approve token transfer to cover all possible scenarios
        _approve(address(this), address(_uniswapV2Router), tokenAmount);

        // Perform the swap and send ETH to the dev wallet
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // Accept any amount of ETH
            path,
            _devWallet,
            block.timestamp
        );
    }
}

File 2 of 4 : IUniswapV2Factory.sol
pragma solidity >=0.5.0;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

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

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

import './IUniswapV2Router01.sol';

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

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

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

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

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

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

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

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":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":"_minSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRate","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":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newW","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minswapThresh","type":"uint256"}],"name":"setNewMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTaxRate","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"setmaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyInit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260646006556d14bddab3e51a57cff87a50000000600755606460016007546200002e91906200085d565b6200003a9190620008d7565b600855606460016007546200005091906200085d565b6200005c9190620008d7565b6009553480156200006c57600080fd5b506040518060400160405280600681526020017f58504550455800000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5850455045580000000000000000000000000000000000000000000000000000815250620000f9620000ed6200049760201b60201c565b6200049f60201b60201c565b81600490816200010a919062000b7f565b5080600590816200011c919062000b7f565b5050506200012f6200056360201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000183336007546200058c60201b60201c565b62000194336200070560201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d919062000cd0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000cd0565b6040518363ffffffff1660e01b81526004016200034c92919062000d13565b6020604051808303816000875af11580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000392919062000cd0565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000620003e86200056360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000f36565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f59062000da1565b60405180910390fd5b62000612600083836200081a60201b60201c565b806003600082825462000626919062000dc3565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200067e919062000dc3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006e5919062000e0f565b60405180910390a362000701600083836200081f60201b60201c565b5050565b620007156200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200073b6200056360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000794576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078b9062000e7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000806576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007fd9062000f14565b60405180910390fd5b62000817816200049f60201b60201c565b50565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200086a8262000824565b9150620008778362000824565b9250828202620008878162000824565b91508282048414831517620008a157620008a06200082e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008e48262000824565b9150620008f18362000824565b925082620009045762000903620008a8565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200099157607f821691505b602082108103620009a757620009a662000949565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009d2565b62000a1d8683620009d2565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a6062000a5a62000a548462000824565b62000a35565b62000824565b9050919050565b6000819050919050565b62000a7c8362000a3f565b62000a9462000a8b8262000a67565b848454620009df565b825550505050565b600090565b62000aab62000a9c565b62000ab881848462000a71565b505050565b5b8181101562000ae05762000ad460008262000aa1565b60018101905062000abe565b5050565b601f82111562000b2f5762000af981620009ad565b62000b0484620009c2565b8101602085101562000b14578190505b62000b2c62000b2385620009c2565b83018262000abd565b50505b505050565b600082821c905092915050565b600062000b546000198460080262000b34565b1980831691505092915050565b600062000b6f838362000b41565b9150826002028217905092915050565b62000b8a826200090f565b67ffffffffffffffff81111562000ba65762000ba56200091a565b5b62000bb2825462000978565b62000bbf82828562000ae4565b600060209050601f83116001811462000bf7576000841562000be2578287015190505b62000bee858262000b61565b86555062000c5e565b601f19841662000c0786620009ad565b60005b8281101562000c315784890151825560018201915060208501945060208101905062000c0a565b8683101562000c51578489015162000c4d601f89168262000b41565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c988262000c6b565b9050919050565b62000caa8162000c8b565b811462000cb657600080fd5b50565b60008151905062000cca8162000c9f565b92915050565b60006020828403121562000ce95762000ce862000c66565b5b600062000cf98482850162000cb9565b91505092915050565b62000d0d8162000c8b565b82525050565b600060408201905062000d2a600083018562000d02565b62000d39602083018462000d02565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d89601f8362000d40565b915062000d968262000d51565b602082019050919050565b6000602082019050818103600083015262000dbc8162000d7a565b9050919050565b600062000dd08262000824565b915062000ddd8362000824565b925082820190508082111562000df85762000df76200082e565b5b92915050565b62000e098162000824565b82525050565b600060208201905062000e26600083018462000dfe565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000e6460208362000d40565b915062000e718262000e2c565b602082019050919050565b6000602082019050818103600083015262000e978162000e55565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600062000efc60268362000d40565b915062000f098262000e9e565b604082019050919050565b6000602082019050818103600083015262000f2f8162000eed565b9050919050565b6128ef8062000f466000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461043c578063e1d95b981461046c578063e57f14e114610488578063f2fde38b146104a457610173565b8063a9059cbb146103d2578063c6d69a3014610402578063c84333a11461041e57610173565b8063715018a6146103205780638c0b5e221461032a5780638da5cb5b1461034857806395d89b411461036657806398f235fe14610384578063a457c2d7146103a257610173565b8063313ce56711610130578063313ce5671461024c578063395093511461026a5780634084e0b31461029a57806342966c68146102b857806365e47de2146102d457806370a08231146102f057610173565b806306fdde0314610178578063095ea7b31461019657806316a2f82a146101c657806318160ddd146101e25780631f53ac021461020057806323b872dd1461021c575b600080fd5b6101806104c0565b60405161018d9190611bee565b60405180910390f35b6101b060048036038101906101ab9190611ca9565b610552565b6040516101bd9190611d04565b60405180910390f35b6101e060048036038101906101db9190611d1f565b610570565b005b6101ea610647565b6040516101f79190611d5b565b60405180910390f35b61021a60048036038101906102159190611d1f565b610651565b005b61023660048036038101906102319190611d76565b610711565b6040516102439190611d04565b60405180910390f35b610254610809565b6040516102619190611de5565b60405180910390f35b610284600480360381019061027f9190611ca9565b610812565b6040516102919190611d04565b60405180910390f35b6102a26108be565b6040516102af9190611d5b565b60405180910390f35b6102d260048036038101906102cd9190611e00565b6108c4565b005b6102ee60048036038101906102e99190611e00565b6108d1565b005b61030a60048036038101906103059190611d1f565b61097e565b6040516103179190611d5b565b60405180910390f35b6103286109c7565b005b610332610a4f565b60405161033f9190611d5b565b60405180910390f35b610350610a55565b60405161035d9190611e3c565b60405180910390f35b61036e610a7e565b60405161037b9190611bee565b60405180910390f35b61038c610b10565b6040516103999190611d5b565b60405180910390f35b6103bc60048036038101906103b79190611ca9565b610b16565b6040516103c99190611d04565b60405180910390f35b6103ec60048036038101906103e79190611ca9565b610c01565b6040516103f99190611d04565b60405180910390f35b61041c60048036038101906104179190611e00565b610c1f565b005b610426610cb4565b6040516104339190611d5b565b60405180910390f35b61045660048036038101906104519190611e57565b610cba565b6040516104639190611d5b565b60405180910390f35b61048660048036038101906104819190611e00565b610d41565b005b6104a2600480360381019061049d9190611d1f565b610dc7565b005b6104be60048036038101906104b99190611d1f565b610e9e565b005b6060600480546104cf90611ec6565b80601f01602080910402602001604051908101604052809291908181526020018280546104fb90611ec6565b80156105485780601f1061051d57610100808354040283529160200191610548565b820191906000526020600020905b81548152906001019060200180831161052b57829003601f168201915b5050505050905090565b600061056661055f610f95565b8484610f9d565b6001905092915050565b610578610f95565b73ffffffffffffffffffffffffffffffffffffffff16610596610a55565b73ffffffffffffffffffffffffffffffffffffffff16146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e390611f43565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600354905090565b610659610f95565b73ffffffffffffffffffffffffffffffffffffffff16610677610a55565b73ffffffffffffffffffffffffffffffffffffffff16146106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490611f43565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061071e848484611166565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611fd5565b60405180910390fd5b6107fd856107f5610f95565b858403610f9d565b60019150509392505050565b60006012905090565b60006108b461081f610f95565b84846002600061082d610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108af9190612024565b610f9d565b6001905092915050565b60065481565b6108ce33826113d1565b50565b6108d9610f95565b73ffffffffffffffffffffffffffffffffffffffff166108f7610a55565b73ffffffffffffffffffffffffffffffffffffffff161461094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490611f43565b60405180910390fd5b612710600160075461095f9190612058565b61096991906120c9565b811161097457600080fd5b8060098190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109cf610f95565b73ffffffffffffffffffffffffffffffffffffffff166109ed610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90611f43565b60405180910390fd5b610a4d60006115a9565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610a8d90611ec6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab990611ec6565b8015610b065780601f10610adb57610100808354040283529160200191610b06565b820191906000526020600020905b815481529060010190602001808311610ae957829003601f168201915b5050505050905090565b60085481565b60008060026000610b25610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd99061216c565b60405180910390fd5b610bf6610bed610f95565b85858403610f9d565b600191505092915050565b6000610c15610c0e610f95565b8484611166565b6001905092915050565b610c27610f95565b73ffffffffffffffffffffffffffffffffffffffff16610c45610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290611f43565b60405180910390fd5b6107d0811115610caa57600080fd5b8060068190555050565b60075481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d49610f95565b73ffffffffffffffffffffffffffffffffffffffff16610d67610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490611f43565b60405180910390fd5b8060088190555050565b610dcf610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ded610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a90611f43565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ea6610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ec4610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190611f43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f80906121fe565b60405180910390fd5b610f92816115a9565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612290565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612322565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111599190611d5b565b60405180910390a3505050565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561120c5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561125757600954821115611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d9061238e565b60405180910390fd5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112fb5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561132c57612710600654836113119190612058565b61131b91906120c9565b9050808261132991906123ae565b91505b61133784848461166d565b600081111561134c5761134b84308361166d565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b457506008546113b13061097e565b10155b156113cb576113ca6113c53061097e565b6118ef565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612454565b60405180910390fd5b61144c82600083611b54565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906124e6565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461152b91906123ae565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115909190611d5b565b60405180910390a36115a483600084611b59565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612578565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061260a565b60405180910390fd5b611756838383611b54565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061269c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118729190612024565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118d69190611d5b565b60405180910390a36118e9848484611b59565b50505050565b6000600267ffffffffffffffff81111561190c5761190b6126bc565b5b60405190808252806020026020018201604052801561193a5781602001602082028036833780820191505090505b5090503081600081518110611952576119516126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1d919061272f565b81600181518110611a3157611a306126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f9d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b1e95949392919061285f565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b98578082015181840152602081019050611b7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bc082611b5e565b611bca8185611b69565b9350611bda818560208601611b7a565b611be381611ba4565b840191505092915050565b60006020820190508181036000830152611c088184611bb5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4082611c15565b9050919050565b611c5081611c35565b8114611c5b57600080fd5b50565b600081359050611c6d81611c47565b92915050565b6000819050919050565b611c8681611c73565b8114611c9157600080fd5b50565b600081359050611ca381611c7d565b92915050565b60008060408385031215611cc057611cbf611c10565b5b6000611cce85828601611c5e565b9250506020611cdf85828601611c94565b9150509250929050565b60008115159050919050565b611cfe81611ce9565b82525050565b6000602082019050611d196000830184611cf5565b92915050565b600060208284031215611d3557611d34611c10565b5b6000611d4384828501611c5e565b91505092915050565b611d5581611c73565b82525050565b6000602082019050611d706000830184611d4c565b92915050565b600080600060608486031215611d8f57611d8e611c10565b5b6000611d9d86828701611c5e565b9350506020611dae86828701611c5e565b9250506040611dbf86828701611c94565b9150509250925092565b600060ff82169050919050565b611ddf81611dc9565b82525050565b6000602082019050611dfa6000830184611dd6565b92915050565b600060208284031215611e1657611e15611c10565b5b6000611e2484828501611c94565b91505092915050565b611e3681611c35565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b60008060408385031215611e6e57611e6d611c10565b5b6000611e7c85828601611c5e565b9250506020611e8d85828601611c5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ede57607f821691505b602082108103611ef157611ef0611e97565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f2d602083611b69565b9150611f3882611ef7565b602082019050919050565b60006020820190508181036000830152611f5c81611f20565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611fbf602883611b69565b9150611fca82611f63565b604082019050919050565b60006020820190508181036000830152611fee81611fb2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202f82611c73565b915061203a83611c73565b925082820190508082111561205257612051611ff5565b5b92915050565b600061206382611c73565b915061206e83611c73565b925082820261207c81611c73565b9150828204841483151761209357612092611ff5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006120d482611c73565b91506120df83611c73565b9250826120ef576120ee61209a565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612156602583611b69565b9150612161826120fa565b604082019050919050565b6000602082019050818103600083015261218581612149565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121e8602683611b69565b91506121f38261218c565b604082019050919050565b60006020820190508181036000830152612217816121db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061227a602483611b69565b91506122858261221e565b604082019050919050565b600060208201905081810360008301526122a98161226d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061230c602283611b69565b9150612317826122b0565b604082019050919050565b6000602082019050818103600083015261233b816122ff565b9050919050565b7f4f4d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612378600283611b69565b915061238382612342565b602082019050919050565b600060208201905081810360008301526123a78161236b565b9050919050565b60006123b982611c73565b91506123c483611c73565b92508282039050818111156123dc576123db611ff5565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061243e602183611b69565b9150612449826123e2565b604082019050919050565b6000602082019050818103600083015261246d81612431565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d0602283611b69565b91506124db82612474565b604082019050919050565b600060208201905081810360008301526124ff816124c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612562602583611b69565b915061256d82612506565b604082019050919050565b6000602082019050818103600083015261259181612555565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f4602383611b69565b91506125ff82612598565b604082019050919050565b60006020820190508181036000830152612623816125e7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612686602683611b69565b91506126918261262a565b604082019050919050565b600060208201905081810360008301526126b581612679565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061272981611c47565b92915050565b60006020828403121561274557612744611c10565b5b60006127538482850161271a565b91505092915050565b6000819050919050565b6000819050919050565b600061278b6127866127818461275c565b612766565b611c73565b9050919050565b61279b81612770565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6127d681611c35565b82525050565b60006127e883836127cd565b60208301905092915050565b6000602082019050919050565b600061280c826127a1565b61281681856127ac565b9350612821836127bd565b8060005b8381101561285257815161283988826127dc565b9750612844836127f4565b925050600181019050612825565b5085935050505092915050565b600060a0820190506128746000830188611d4c565b6128816020830187612792565b81810360408301526128938186612801565b90506128a26060830185611e2d565b6128af6080830184611d4c565b969550505050505056fea264697066735822122037e40a64a7661e557a3a6b1bf0ece3f4cb348ff40b0e518143b653e60774ab1864736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461043c578063e1d95b981461046c578063e57f14e114610488578063f2fde38b146104a457610173565b8063a9059cbb146103d2578063c6d69a3014610402578063c84333a11461041e57610173565b8063715018a6146103205780638c0b5e221461032a5780638da5cb5b1461034857806395d89b411461036657806398f235fe14610384578063a457c2d7146103a257610173565b8063313ce56711610130578063313ce5671461024c578063395093511461026a5780634084e0b31461029a57806342966c68146102b857806365e47de2146102d457806370a08231146102f057610173565b806306fdde0314610178578063095ea7b31461019657806316a2f82a146101c657806318160ddd146101e25780631f53ac021461020057806323b872dd1461021c575b600080fd5b6101806104c0565b60405161018d9190611bee565b60405180910390f35b6101b060048036038101906101ab9190611ca9565b610552565b6040516101bd9190611d04565b60405180910390f35b6101e060048036038101906101db9190611d1f565b610570565b005b6101ea610647565b6040516101f79190611d5b565b60405180910390f35b61021a60048036038101906102159190611d1f565b610651565b005b61023660048036038101906102319190611d76565b610711565b6040516102439190611d04565b60405180910390f35b610254610809565b6040516102619190611de5565b60405180910390f35b610284600480360381019061027f9190611ca9565b610812565b6040516102919190611d04565b60405180910390f35b6102a26108be565b6040516102af9190611d5b565b60405180910390f35b6102d260048036038101906102cd9190611e00565b6108c4565b005b6102ee60048036038101906102e99190611e00565b6108d1565b005b61030a60048036038101906103059190611d1f565b61097e565b6040516103179190611d5b565b60405180910390f35b6103286109c7565b005b610332610a4f565b60405161033f9190611d5b565b60405180910390f35b610350610a55565b60405161035d9190611e3c565b60405180910390f35b61036e610a7e565b60405161037b9190611bee565b60405180910390f35b61038c610b10565b6040516103999190611d5b565b60405180910390f35b6103bc60048036038101906103b79190611ca9565b610b16565b6040516103c99190611d04565b60405180910390f35b6103ec60048036038101906103e79190611ca9565b610c01565b6040516103f99190611d04565b60405180910390f35b61041c60048036038101906104179190611e00565b610c1f565b005b610426610cb4565b6040516104339190611d5b565b60405180910390f35b61045660048036038101906104519190611e57565b610cba565b6040516104639190611d5b565b60405180910390f35b61048660048036038101906104819190611e00565b610d41565b005b6104a2600480360381019061049d9190611d1f565b610dc7565b005b6104be60048036038101906104b99190611d1f565b610e9e565b005b6060600480546104cf90611ec6565b80601f01602080910402602001604051908101604052809291908181526020018280546104fb90611ec6565b80156105485780601f1061051d57610100808354040283529160200191610548565b820191906000526020600020905b81548152906001019060200180831161052b57829003601f168201915b5050505050905090565b600061056661055f610f95565b8484610f9d565b6001905092915050565b610578610f95565b73ffffffffffffffffffffffffffffffffffffffff16610596610a55565b73ffffffffffffffffffffffffffffffffffffffff16146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e390611f43565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600354905090565b610659610f95565b73ffffffffffffffffffffffffffffffffffffffff16610677610a55565b73ffffffffffffffffffffffffffffffffffffffff16146106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490611f43565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061071e848484611166565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090611fd5565b60405180910390fd5b6107fd856107f5610f95565b858403610f9d565b60019150509392505050565b60006012905090565b60006108b461081f610f95565b84846002600061082d610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108af9190612024565b610f9d565b6001905092915050565b60065481565b6108ce33826113d1565b50565b6108d9610f95565b73ffffffffffffffffffffffffffffffffffffffff166108f7610a55565b73ffffffffffffffffffffffffffffffffffffffff161461094d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094490611f43565b60405180910390fd5b612710600160075461095f9190612058565b61096991906120c9565b811161097457600080fd5b8060098190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109cf610f95565b73ffffffffffffffffffffffffffffffffffffffff166109ed610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90611f43565b60405180910390fd5b610a4d60006115a9565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610a8d90611ec6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab990611ec6565b8015610b065780601f10610adb57610100808354040283529160200191610b06565b820191906000526020600020905b815481529060010190602001808311610ae957829003601f168201915b5050505050905090565b60085481565b60008060026000610b25610f95565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd99061216c565b60405180910390fd5b610bf6610bed610f95565b85858403610f9d565b600191505092915050565b6000610c15610c0e610f95565b8484611166565b6001905092915050565b610c27610f95565b73ffffffffffffffffffffffffffffffffffffffff16610c45610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9290611f43565b60405180910390fd5b6107d0811115610caa57600080fd5b8060068190555050565b60075481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d49610f95565b73ffffffffffffffffffffffffffffffffffffffff16610d67610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490611f43565b60405180910390fd5b8060088190555050565b610dcf610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ded610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a90611f43565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ea6610f95565b73ffffffffffffffffffffffffffffffffffffffff16610ec4610a55565b73ffffffffffffffffffffffffffffffffffffffff1614610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190611f43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f80906121fe565b60405180910390fd5b610f92816115a9565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612290565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612322565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111599190611d5b565b60405180910390a3505050565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561120c5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561125757600954821115611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d9061238e565b60405180910390fd5b5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112fb5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561132c57612710600654836113119190612058565b61131b91906120c9565b9050808261132991906123ae565b91505b61133784848461166d565b600081111561134c5761134b84308361166d565b5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113b457506008546113b13061097e565b10155b156113cb576113ca6113c53061097e565b6118ef565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612454565b60405180910390fd5b61144c82600083611b54565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca906124e6565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461152b91906123ae565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115909190611d5b565b60405180910390a36115a483600084611b59565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390612578565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061260a565b60405180910390fd5b611756838383611b54565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d49061269c565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118729190612024565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118d69190611d5b565b60405180910390a36118e9848484611b59565b50505050565b6000600267ffffffffffffffff81111561190c5761190b6126bc565b5b60405190808252806020026020018201604052801561193a5781602001602082028036833780820191505090505b5090503081600081518110611952576119516126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1d919061272f565b81600181518110611a3157611a306126eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f9d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611b1e95949392919061285f565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b505050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b98578082015181840152602081019050611b7d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bc082611b5e565b611bca8185611b69565b9350611bda818560208601611b7a565b611be381611ba4565b840191505092915050565b60006020820190508181036000830152611c088184611bb5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4082611c15565b9050919050565b611c5081611c35565b8114611c5b57600080fd5b50565b600081359050611c6d81611c47565b92915050565b6000819050919050565b611c8681611c73565b8114611c9157600080fd5b50565b600081359050611ca381611c7d565b92915050565b60008060408385031215611cc057611cbf611c10565b5b6000611cce85828601611c5e565b9250506020611cdf85828601611c94565b9150509250929050565b60008115159050919050565b611cfe81611ce9565b82525050565b6000602082019050611d196000830184611cf5565b92915050565b600060208284031215611d3557611d34611c10565b5b6000611d4384828501611c5e565b91505092915050565b611d5581611c73565b82525050565b6000602082019050611d706000830184611d4c565b92915050565b600080600060608486031215611d8f57611d8e611c10565b5b6000611d9d86828701611c5e565b9350506020611dae86828701611c5e565b9250506040611dbf86828701611c94565b9150509250925092565b600060ff82169050919050565b611ddf81611dc9565b82525050565b6000602082019050611dfa6000830184611dd6565b92915050565b600060208284031215611e1657611e15611c10565b5b6000611e2484828501611c94565b91505092915050565b611e3681611c35565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b60008060408385031215611e6e57611e6d611c10565b5b6000611e7c85828601611c5e565b9250506020611e8d85828601611c5e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611ede57607f821691505b602082108103611ef157611ef0611e97565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611f2d602083611b69565b9150611f3882611ef7565b602082019050919050565b60006020820190508181036000830152611f5c81611f20565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611fbf602883611b69565b9150611fca82611f63565b604082019050919050565b60006020820190508181036000830152611fee81611fb2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202f82611c73565b915061203a83611c73565b925082820190508082111561205257612051611ff5565b5b92915050565b600061206382611c73565b915061206e83611c73565b925082820261207c81611c73565b9150828204841483151761209357612092611ff5565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006120d482611c73565b91506120df83611c73565b9250826120ef576120ee61209a565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612156602583611b69565b9150612161826120fa565b604082019050919050565b6000602082019050818103600083015261218581612149565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006121e8602683611b69565b91506121f38261218c565b604082019050919050565b60006020820190508181036000830152612217816121db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061227a602483611b69565b91506122858261221e565b604082019050919050565b600060208201905081810360008301526122a98161226d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061230c602283611b69565b9150612317826122b0565b604082019050919050565b6000602082019050818103600083015261233b816122ff565b9050919050565b7f4f4d000000000000000000000000000000000000000000000000000000000000600082015250565b6000612378600283611b69565b915061238382612342565b602082019050919050565b600060208201905081810360008301526123a78161236b565b9050919050565b60006123b982611c73565b91506123c483611c73565b92508282039050818111156123dc576123db611ff5565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061243e602183611b69565b9150612449826123e2565b604082019050919050565b6000602082019050818103600083015261246d81612431565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d0602283611b69565b91506124db82612474565b604082019050919050565b600060208201905081810360008301526124ff816124c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612562602583611b69565b915061256d82612506565b604082019050919050565b6000602082019050818103600083015261259181612555565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f4602383611b69565b91506125ff82612598565b604082019050919050565b60006020820190508181036000830152612623816125e7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612686602683611b69565b91506126918261262a565b604082019050919050565b600060208201905081810360008301526126b581612679565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061272981611c47565b92915050565b60006020828403121561274557612744611c10565b5b60006127538482850161271a565b91505092915050565b6000819050919050565b6000819050919050565b600061278b6127866127818461275c565b612766565b611c73565b9050919050565b61279b81612770565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6127d681611c35565b82525050565b60006127e883836127cd565b60208301905092915050565b6000602082019050919050565b600061280c826127a1565b61281681856127ac565b9350612821836127bd565b8060005b8381101561285257815161283988826127dc565b9750612844836127f4565b925050600181019050612825565b5085935050505092915050565b600060a0820190506128746000830188611d4c565b6128816020830187612792565b81810360408301526128938186612801565b90506128a26060830185611e2d565b6128af6080830184611d4c565b969550505050505056fea264697066735822122037e40a64a7661e557a3a6b1bf0ece3f4cb348ff40b0e518143b653e60774ab1864736f6c63430008120033

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.