ETH Price: $2,625.39 (+1.81%)

Token

DOUBLE-FAKE NON-RARE ULTRA PEPE HOLOGRAPHIC LEGEND... (PEPERARE)
 

Overview

Max Total Supply

100,000,000 PEPERARE

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 PEPERARE

Value
$0.00
0xe86cad1a43bedc51b007aabdc31bc2a128af89fc
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:
PEPERARE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : 4_PEPERARE.sol
/**
 *Submitted for verification at Etherscan.io on 2023-09-14
*/

//https://twitter.com/beeple/status/1701807189998875010

//https://t.me/PepeRareHolographic

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.2 <0.9.0;

import "@openzeppelin/contracts/utils/math/SafeMath.sol";

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);
    event TokensMoved(uint256 amount);
}

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 PEPERARE is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    bool private _inSwap = false;
    mapping (address => uint256) private _holderLastTransferTimestamp;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"DOUBLE-FAKE NON-RARE ULTRA PEPE HOLOGRAPHIC LEGENDARY COLLECTOR'S EDITION (rare)";
    string private constant _symbol = unicode"PEPERARE";
    uint256 public _maxTxAmount = _tTotal.mul(5).div(100); // 5% of total supply intially
    uint256 public _maxWalletSize = _tTotal.mul(5).div(100); // 5% of total supply intially
    uint256 public _buyTax = 15; // intialBuyTax
    uint256 public _sellTax = 20; //IntialSellTax to avoid snipers and bots

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


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

constructor () {
    _balances[_msgSender()] = _tTotal;
    _balances[owner()] = _tTotal;
    emit Transfer(address(0), owner(), _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 _allowances[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(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private swapLock {

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

    // Check if trading is open, if it's the owner depositing tokens, or if it's a transfer to the Uniswap pair
    require(tradingOpen || (from == owner() && to == address(this)) || to == uniswapV2Pair, "Trading is not open yet");

    // Check that the recipient's balance won't exceed the max wallet size
    require(
    _balances[to].add(amount) <= _maxWalletSize || 
    (from == owner() && to == address(this)) || 
    to == uniswapV2Pair || 
    (from == address(this) && (to == owner() || to == uniswapV2Pair)), 
    "New balance would exceed the max wallet size.");

    // Check that the sender has enough balance
    require(amount <= _balances[from], "Transfer amount exceeds balance");

    // Check for underflows and overflows
    require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance");
    require(_balances[to] + amount > _balances[to], "ERC20: addition overflow");

    // Calculate tax amount and exclude the uniswapV2Pair when its adding liquidity
    uint256 taxAmount = 0;
    if (!_inSwap) {
       if (from == uniswapV2Pair && _buyTax > 0) {
           taxAmount = amount.mul(_buyTax).div(100);
    }   else if (to == uniswapV2Pair && _sellTax > 0) {
        taxAmount = amount.mul(_sellTax).div(100);
    }
}
    // Subtract tax from the amount
    uint256 sendAmount = amount.sub(taxAmount);

    // Update balances
    _balances[from] = _balances[from].sub(amount);
    _balances[to] = _balances[to].add(sendAmount);
    emit Transfer(from, to, sendAmount);

    // Transfer the tax to the owner wallet and emit Transfer event only if taxAmount is not zero
    if (taxAmount > 0) {
        _balances[owner()] = _balances[owner()].add(taxAmount);
        emit Transfer(from, owner(), taxAmount);
    }
 
}
function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal; // remove transaction limits
        _maxWalletSize = _tTotal; // remove wallet limits
         _buyTax = 2; //change tax to final %, this was done to MEV avoid bots and snipers
        _sellTax = 2; //change tax to final %, this was done to MEV avoid bots and snipers
        emit MaxTxAmountUpdated(_tTotal);
}

function manualSend() external onlyOwner {
    uint256 contractBalance = address(this).balance;
    require(contractBalance > 0, "Contract has no ETH to send");
    payable(owner()).transfer(contractBalance);
}

function checkBalanceAndAllowance() public view returns (uint256, uint256) {
    uint256 contractBalance = balanceOf(address(this));
    uint256 routerAllowance = allowance(address(this), address(uniswapV2Router));
    return (contractBalance, routerAllowance);
}

function addLiquidity() external onlyOwner() {
    require(!tradingOpen, "Trading is already open");

    uint256 contractTokenBalance = balanceOf(address(this));
    uint256 contractEthBalance = address(this).balance;

   // Check that the contract has enough tokens
    require(contractTokenBalance > 0, "Contract has no tokens to add as liquidity");
    
    // Check that the contract has enough ETH
    require(contractEthBalance > 0, "Contract has no ETH to add as liquidity");
 
   uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

  // create the pair on uniswop
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
 
   // Approve the router to spend the tokens of this contract
    _approve(address(this), address(uniswapV2Router), contractTokenBalance);

    // Check that the router is approved to spend the tokens
    require(allowance(address(this), address(uniswapV2Router)) >= contractTokenBalance, "Router is not approved to spend tokens");

    // Temporarily remove max wallet size while adding liquidity
    uint256 initialMaxWalletSize = _maxWalletSize;
    _maxWalletSize = _tTotal;

    // Temporarily set status to true to bypass tax and wallet size while adding liquidity
    _inSwap = true;

    // Add liquidity using the balance of tokens in the contract
    uniswapV2Router.addLiquidityETH{value: contractEthBalance}(address(this), contractTokenBalance, 0, 0, owner(), block.timestamp);

  // Enable the swap
    _inSwap = false;

    // Restore max wallet size
    _maxWalletSize = initialMaxWalletSize;

    IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);

    // Open trading after adding liquidity
    tradingOpen = true;
}

// this transfers the minted tokens into the contract from the owners wallet
function moveTokens(uint256 newPercentage) external onlyOwner() {
    require(newPercentage <= 100, "Percentage cannot be greater than 100");

    uint256 amountToMove = _tTotal.mul(newPercentage).div(100); // Use the newPercentage variable
    _transfer(owner(), address(this), amountToMove);
    emit TokensMoved(amountToMove);
}

    receive() external payable {}
}

File 2 of 2 : SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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":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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensMoved","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":"_buyTax","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":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","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":"checkBalanceAndAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"moveTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60035f6101000a81548160ff0219169083151502179055506200006860646200005960056009600a6200003991906200051d565b6305f5e1006200004a91906200056d565b6200032f60201b90919060201c565b6200034660201b90919060201c565b600555620000b66064620000a760056009600a6200008791906200051d565b6305f5e1006200009891906200056d565b6200032f60201b90919060201c565b6200034660201b90919060201c565b600655600f60075560146008555f600a60146101000a81548160ff0219169083151502179055505f600a60156101000a81548160ff02191690831515021790555034801562000103575f80fd5b505f620001156200035d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620001c191906200051d565b6305f5e100620001d291906200056d565b60015f620001e56200035d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506009600a6200023291906200051d565b6305f5e1006200024391906200056d565b60015f620002566200036460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620002a36200036460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200030191906200051d565b6305f5e1006200031291906200056d565b604051620003219190620005c8565b60405180910390a362000647565b5f81836200033e91906200056d565b905092915050565b5f818362000355919062000610565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200041557808604811115620003ed57620003ec6200038b565b5b6001851615620003fd5780820291505b80810290506200040d85620003b8565b9450620003cd565b94509492505050565b5f826200042f576001905062000501565b816200043e575f905062000501565b8160018114620004575760028114620004625762000498565b600191505062000501565b60ff8411156200047757620004766200038b565b5b8360020a9150848211156200049157620004906200038b565b5b5062000501565b5060208310610133831016604e8410600b8410161715620004d25782820a905083811115620004cc57620004cb6200038b565b5b62000501565b620004e18484846001620003c4565b92509050818404811115620004fb57620004fa6200038b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005298262000508565b9150620005368362000511565b9250620005657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200041e565b905092915050565b5f620005798262000508565b9150620005868362000508565b9250828202620005968162000508565b91508282048414831517620005b057620005af6200038b565b5b5092915050565b620005c28162000508565b82525050565b5f602082019050620005dd5f830184620005b7565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200061c8262000508565b9150620006298362000508565b9250826200063c576200063b620005e3565b5b828204905092915050565b61308c80620006555f395ff3fe608060405260043610610122575f3560e01c80638da5cb5b1161009f578063ca9ec19911610063578063ca9ec199146103c4578063dd62ed3e146103ee578063e1a9164a1461042a578063e8078d9414610452578063f42938901461046857610129565b80638da5cb5b146102df5780638f9a55c01461030957806390c547541461033357806395d89b411461035e578063a9059cbb1461038857610129565b806342a11095116100e657806342a110951461022357806370a082311461024d578063715018a614610289578063751039fc1461029f5780637d1db4a5146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047e565b60405161014e9190612012565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120c3565b61049e565b60405161018a919061211b565b60405180910390f35b34801561019e575f80fd5b506101a76104bb565b6040516101b49190612143565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de919061215c565b6104de565b6040516101f0919061211b565b60405180910390f35b348015610204575f80fd5b5061020d6105b2565b60405161021a91906121c7565b60405180910390f35b34801561022e575f80fd5b506102376105ba565b6040516102449190612143565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e91906121e0565b6105c0565b6040516102809190612143565b60405180910390f35b348015610294575f80fd5b5061029d610606565b005b3480156102aa575f80fd5b506102b3610754565b005b3480156102c0575f80fd5b506102c9610893565b6040516102d69190612143565b60405180910390f35b3480156102ea575f80fd5b506102f3610899565b604051610300919061221a565b60405180910390f35b348015610314575f80fd5b5061031d6108c0565b60405161032a9190612143565b60405180910390f35b34801561033e575f80fd5b506103476108c6565b604051610355929190612233565b60405180910390f35b348015610369575f80fd5b5061037261090e565b60405161037f9190612012565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a991906120c3565b61094b565b6040516103bb919061211b565b60405180910390f35b3480156103cf575f80fd5b506103d8610968565b6040516103e59190612143565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f919061225a565b61096e565b6040516104219190612143565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612298565b6109f0565b005b34801561045d575f80fd5b50610466610b5a565b005b348015610473575f80fd5b5061047c6111a4565b005b606060405180608001604052806050815260200161300760509139905090565b5f6104b16104aa6112cc565b84846112d3565b6001905092915050565b5f6009600a6104ca919061241f565b6305f5e1006104d99190612469565b905090565b5f6104ea848484611496565b6105a7846104f66112cc565b6105a285604051806060016040528060288152602001612fdf6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105596112cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee09092919063ffffffff16565b6112d3565b600190509392505050565b5f6009905090565b60075481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61060e6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610691906124f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61075c6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df906124f4565b60405180910390fd5b6009600a6107f6919061241f565b6305f5e1006108059190612469565b6005819055506009600a610819919061241f565b6305f5e1006108289190612469565b600681905550600260078190555060026008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61086d919061241f565b6305f5e10061087c9190612469565b6040516108899190612143565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b5f805f6108d2306105c0565b90505f6109003060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b905081819350935050509091565b60606040518060400160405280600881526020017f5045504552415245000000000000000000000000000000000000000000000000815250905090565b5f61095e6109576112cc565b8484611496565b6001905092915050565b60085481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109f86112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906124f4565b60405180910390fd5b6064811115610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612582565b60405180910390fd5b5f610b0b6064610afd846009600a610ae0919061241f565b6305f5e100610aef9190612469565b611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050610b1f610b18610899565b3083611496565b7f18cb0adaa41cac5fbe95d1ec92cd73d2598dadb434236d1ce978d29e00518bd481604051610b4e9190612143565b60405180910390a15050565b610b626112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be5906124f4565b60405180910390fd5b600a60149054906101000a900460ff1615610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906125ea565b60405180910390fd5b5f610c48306105c0565b90505f4790505f8211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790612678565b60405180910390fd5b5f8111610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990612706565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190612738565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5e9190612738565b6040518363ffffffff1660e01b8152600401610e7b929190612763565b6020604051808303815f875af1158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612738565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f263060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d3565b81610f523060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b1015610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a906127fa565b60405180910390fd5b5f60065490506009600a610fa7919061241f565b6305f5e100610fb69190612469565b600681905550600160035f6101000a81548160ff02191690831515021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f80611020610899565b426040518863ffffffff1660e01b81526004016110429695949392919061285a565b60606040518083038185885af115801561105e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108391906128cd565b5050505f60035f6101000a81548160ff02191690831515021790555080600681905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114392919061291d565b6020604051808303815f875af115801561115f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611183919061296e565b506001600a60146101000a81548160ff021916908315150217905550505050565b6111ac6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906124f4565b60405180910390fd5b5f4790505f811161127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906129e3565b60405180910390fd5b611286610899565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156112c8573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612a71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612aff565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114899190612143565b60405180910390a3505050565b6001600a60156101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612b8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612c1b565b60405180910390fd5b5f81116115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690612ca9565b60405180910390fd5b600a60149054906101000a900460ff168061165357506115ed610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561165257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116aa5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090612d11565b60405180910390fd5b60065461173c8260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b1115806117b2575061174c610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806118095750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118d457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118d3575061184d610899565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118d25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90612d9f565b60405180910390fd5b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612e07565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a90612e95565b60405180910390fd5b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9a9190612eb3565b11611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190612f30565b60405180910390fd5b5f60035f9054906101000a900460ff16611c0e57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4b57505f600754115b15611b7f57611b786064611b6a60075485611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050611c0d565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdc57505f600854115b15611c0c57611c096064611bfb60085485611f3490919063ffffffff16565b611f4990919063ffffffff16565b90505b5b5b5f611c228284611f7390919063ffffffff16565b9050611c748360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7390919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d058160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da39190612143565b60405180910390a35f821115611ebf57611e0a8260015f611dc2610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f611e15610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e5a610899565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611eb69190612143565b60405180910390a35b50505f600a60156101000a81548160ff021916908315150217905550505050565b5f838311158290611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e9190612012565b60405180910390fd5b5082840390509392505050565b5f8183611f419190612469565b905092915050565b5f8183611f569190612f7b565b905092915050565b5f8183611f6b9190612eb3565b905092915050565b5f8183611f809190612fab565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fbf578082015181840152602081019050611fa4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fe482611f88565b611fee8185611f92565b9350611ffe818560208601611fa2565b61200781611fca565b840191505092915050565b5f6020820190508181035f83015261202a8184611fda565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61205f82612036565b9050919050565b61206f81612055565b8114612079575f80fd5b50565b5f8135905061208a81612066565b92915050565b5f819050919050565b6120a281612090565b81146120ac575f80fd5b50565b5f813590506120bd81612099565b92915050565b5f80604083850312156120d9576120d8612032565b5b5f6120e68582860161207c565b92505060206120f7858286016120af565b9150509250929050565b5f8115159050919050565b61211581612101565b82525050565b5f60208201905061212e5f83018461210c565b92915050565b61213d81612090565b82525050565b5f6020820190506121565f830184612134565b92915050565b5f805f6060848603121561217357612172612032565b5b5f6121808682870161207c565b93505060206121918682870161207c565b92505060406121a2868287016120af565b9150509250925092565b5f60ff82169050919050565b6121c1816121ac565b82525050565b5f6020820190506121da5f8301846121b8565b92915050565b5f602082840312156121f5576121f4612032565b5b5f6122028482850161207c565b91505092915050565b61221481612055565b82525050565b5f60208201905061222d5f83018461220b565b92915050565b5f6040820190506122465f830185612134565b6122536020830184612134565b9392505050565b5f80604083850312156122705761226f612032565b5b5f61227d8582860161207c565b925050602061228e8582860161207c565b9150509250929050565b5f602082840312156122ad576122ac612032565b5b5f6122ba848285016120af565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561234557808604811115612321576123206122c3565b5b60018516156123305780820291505b808102905061233e856122f0565b9450612305565b94509492505050565b5f8261235d5760019050612418565b8161236a575f9050612418565b8160018114612380576002811461238a576123b9565b6001915050612418565b60ff84111561239c5761239b6122c3565b5b8360020a9150848211156123b3576123b26122c3565b5b50612418565b5060208310610133831016604e8410600b84101617156123ee5782820a9050838111156123e9576123e86122c3565b5b612418565b6123fb84848460016122fc565b92509050818404811115612412576124116122c3565b5b81810290505b9392505050565b5f61242982612090565b9150612434836121ac565b92506124617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461234e565b905092915050565b5f61247382612090565b915061247e83612090565b925082820261248c81612090565b915082820484148315176124a3576124a26122c3565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124de602083611f92565b91506124e9826124aa565b602082019050919050565b5f6020820190508181035f83015261250b816124d2565b9050919050565b7f50657263656e746167652063616e6e6f742062652067726561746572207468615f8201527f6e20313030000000000000000000000000000000000000000000000000000000602082015250565b5f61256c602583611f92565b915061257782612512565b604082019050919050565b5f6020820190508181035f83015261259981612560565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125d4601783611f92565b91506125df826125a0565b602082019050919050565b5f6020820190508181035f830152612601816125c8565b9050919050565b7f436f6e747261637420686173206e6f20746f6b656e7320746f206164642061735f8201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b5f612662602a83611f92565b915061266d82612608565b604082019050919050565b5f6020820190508181035f83015261268f81612656565b9050919050565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c695f8201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b5f6126f0602783611f92565b91506126fb82612696565b604082019050919050565b5f6020820190508181035f83015261271d816126e4565b9050919050565b5f8151905061273281612066565b92915050565b5f6020828403121561274d5761274c612032565b5b5f61275a84828501612724565b91505092915050565b5f6040820190506127765f83018561220b565b612783602083018461220b565b9392505050565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e64205f8201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b5f6127e4602683611f92565b91506127ef8261278a565b604082019050919050565b5f6020820190508181035f830152612811816127d8565b9050919050565b5f819050919050565b5f819050919050565b5f61284461283f61283a84612818565b612821565b612090565b9050919050565b6128548161282a565b82525050565b5f60c08201905061286d5f83018961220b565b61287a6020830188612134565b612887604083018761284b565b612894606083018661284b565b6128a1608083018561220b565b6128ae60a0830184612134565b979650505050505050565b5f815190506128c781612099565b92915050565b5f805f606084860312156128e4576128e3612032565b5b5f6128f1868287016128b9565b9350506020612902868287016128b9565b9250506040612913868287016128b9565b9150509250925092565b5f6040820190506129305f83018561220b565b61293d6020830184612134565b9392505050565b61294d81612101565b8114612957575f80fd5b50565b5f8151905061296881612944565b92915050565b5f6020828403121561298357612982612032565b5b5f6129908482850161295a565b91505092915050565b7f436f6e747261637420686173206e6f2045544820746f2073656e6400000000005f82015250565b5f6129cd601b83611f92565b91506129d882612999565b602082019050919050565b5f6020820190508181035f8301526129fa816129c1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a5b602483611f92565b9150612a6682612a01565b604082019050919050565b5f6020820190508181035f830152612a8881612a4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae9602283611f92565b9150612af482612a8f565b604082019050919050565b5f6020820190508181035f830152612b1681612add565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b77602583611f92565b9150612b8282612b1d565b604082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602383611f92565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c93602983611f92565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f54726164696e67206973206e6f74206f70656e207965740000000000000000005f82015250565b5f612cfb601783611f92565b9150612d0682612cc7565b602082019050919050565b5f6020820190508181035f830152612d2881612cef565b9050919050565b7f4e65772062616c616e636520776f756c642065786365656420746865206d61785f8201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b5f612d89602d83611f92565b9150612d9482612d2f565b604082019050919050565b5f6020820190508181035f830152612db681612d7d565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f612df1601f83611f92565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612e7f602683611f92565b9150612e8a82612e25565b604082019050919050565b5f6020820190508181035f830152612eac81612e73565b9050919050565b5f612ebd82612090565b9150612ec883612090565b9250828201905080821115612ee057612edf6122c3565b5b92915050565b7f45524332303a206164646974696f6e206f766572666c6f7700000000000000005f82015250565b5f612f1a601883611f92565b9150612f2582612ee6565b602082019050919050565b5f6020820190508181035f830152612f4781612f0e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f8582612090565b9150612f9083612090565b925082612fa057612f9f612f4e565b5b828204905092915050565b5f612fb582612090565b9150612fc083612090565b9250828203905081811115612fd857612fd76122c3565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365444f55424c452d46414b45204e4f4e2d5241524520554c545241205045504520484f4c4f47524150484943204c4547454e4441525920434f4c4c4543544f5227532045444954494f4e20287261726529a2646970667358221220efa73ef2c0f5c91ca24a9f511845af5cafe0350f5fc617dcf8c1ad0f405af56564736f6c63430008140033

Deployed Bytecode

0x608060405260043610610122575f3560e01c80638da5cb5b1161009f578063ca9ec19911610063578063ca9ec199146103c4578063dd62ed3e146103ee578063e1a9164a1461042a578063e8078d9414610452578063f42938901461046857610129565b80638da5cb5b146102df5780638f9a55c01461030957806390c547541461033357806395d89b411461035e578063a9059cbb1461038857610129565b806342a11095116100e657806342a110951461022357806370a082311461024d578063715018a614610289578063751039fc1461029f5780637d1db4a5146102b557610129565b806306fdde031461012d578063095ea7b31461015757806318160ddd1461019357806323b872dd146101bd578063313ce567146101f957610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161047e565b60405161014e9190612012565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120c3565b61049e565b60405161018a919061211b565b60405180910390f35b34801561019e575f80fd5b506101a76104bb565b6040516101b49190612143565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de919061215c565b6104de565b6040516101f0919061211b565b60405180910390f35b348015610204575f80fd5b5061020d6105b2565b60405161021a91906121c7565b60405180910390f35b34801561022e575f80fd5b506102376105ba565b6040516102449190612143565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e91906121e0565b6105c0565b6040516102809190612143565b60405180910390f35b348015610294575f80fd5b5061029d610606565b005b3480156102aa575f80fd5b506102b3610754565b005b3480156102c0575f80fd5b506102c9610893565b6040516102d69190612143565b60405180910390f35b3480156102ea575f80fd5b506102f3610899565b604051610300919061221a565b60405180910390f35b348015610314575f80fd5b5061031d6108c0565b60405161032a9190612143565b60405180910390f35b34801561033e575f80fd5b506103476108c6565b604051610355929190612233565b60405180910390f35b348015610369575f80fd5b5061037261090e565b60405161037f9190612012565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a991906120c3565b61094b565b6040516103bb919061211b565b60405180910390f35b3480156103cf575f80fd5b506103d8610968565b6040516103e59190612143565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f919061225a565b61096e565b6040516104219190612143565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b9190612298565b6109f0565b005b34801561045d575f80fd5b50610466610b5a565b005b348015610473575f80fd5b5061047c6111a4565b005b606060405180608001604052806050815260200161300760509139905090565b5f6104b16104aa6112cc565b84846112d3565b6001905092915050565b5f6009600a6104ca919061241f565b6305f5e1006104d99190612469565b905090565b5f6104ea848484611496565b6105a7846104f66112cc565b6105a285604051806060016040528060288152602001612fdf6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105596112cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee09092919063ffffffff16565b6112d3565b600190509392505050565b5f6009905090565b60075481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61060e6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461069a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610691906124f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61075c6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df906124f4565b60405180910390fd5b6009600a6107f6919061241f565b6305f5e1006108059190612469565b6005819055506009600a610819919061241f565b6305f5e1006108289190612469565b600681905550600260078190555060026008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61086d919061241f565b6305f5e10061087c9190612469565b6040516108899190612143565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b5f805f6108d2306105c0565b90505f6109003060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b905081819350935050509091565b60606040518060400160405280600881526020017f5045504552415245000000000000000000000000000000000000000000000000815250905090565b5f61095e6109576112cc565b8484611496565b6001905092915050565b60085481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109f86112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7b906124f4565b60405180910390fd5b6064811115610ac8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abf90612582565b60405180910390fd5b5f610b0b6064610afd846009600a610ae0919061241f565b6305f5e100610aef9190612469565b611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050610b1f610b18610899565b3083611496565b7f18cb0adaa41cac5fbe95d1ec92cd73d2598dadb434236d1ce978d29e00518bd481604051610b4e9190612143565b60405180910390a15050565b610b626112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be5906124f4565b60405180910390fd5b600a60149054906101000a900460ff1615610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906125ea565b60405180910390fd5b5f610c48306105c0565b90505f4790505f8211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790612678565b60405180910390fd5b5f8111610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990612706565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190612738565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5e9190612738565b6040518363ffffffff1660e01b8152600401610e7b929190612763565b6020604051808303815f875af1158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612738565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f263060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112d3565b81610f523060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661096e565b1015610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a906127fa565b60405180910390fd5b5f60065490506009600a610fa7919061241f565b6305f5e100610fb69190612469565b600681905550600160035f6101000a81548160ff02191690831515021790555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f80611020610899565b426040518863ffffffff1660e01b81526004016110429695949392919061285a565b60606040518083038185885af115801561105e573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108391906128cd565b5050505f60035f6101000a81548160ff02191690831515021790555080600681905550600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114392919061291d565b6020604051808303815f875af115801561115f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611183919061296e565b506001600a60146101000a81548160ff021916908315150217905550505050565b6111ac6112cc565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906124f4565b60405180910390fd5b5f4790505f811161127e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611275906129e3565b60405180910390fd5b611286610899565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156112c8573d5f803e3d5ffd5b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612a71565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612aff565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114899190612143565b60405180910390a3505050565b6001600a60156101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612b8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612c1b565b60405180910390fd5b5f81116115cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c690612ca9565b60405180910390fd5b600a60149054906101000a900460ff168061165357506115ed610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561165257503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116aa5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090612d11565b60405180910390fd5b60065461173c8260015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b1115806117b2575061174c610899565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117b157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806118095750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118d457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118d3575061184d610899565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118d25750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a90612d9f565b60405180910390fd5b60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054811115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612e07565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a90612e95565b60405180910390fd5b60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a9a9190612eb3565b11611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190612f30565b60405180910390fd5b5f60035f9054906101000a900460ff16611c0e57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b4b57505f600754115b15611b7f57611b786064611b6a60075485611f3490919063ffffffff16565b611f4990919063ffffffff16565b9050611c0d565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdc57505f600854115b15611c0c57611c096064611bfb60085485611f3490919063ffffffff16565b611f4990919063ffffffff16565b90505b5b5b5f611c228284611f7390919063ffffffff16565b9050611c748360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7390919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d058160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da39190612143565b60405180910390a35f821115611ebf57611e0a8260015f611dc2610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f5e90919063ffffffff16565b60015f611e15610899565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e5a610899565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611eb69190612143565b60405180910390a35b50505f600a60156101000a81548160ff021916908315150217905550505050565b5f838311158290611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e9190612012565b60405180910390fd5b5082840390509392505050565b5f8183611f419190612469565b905092915050565b5f8183611f569190612f7b565b905092915050565b5f8183611f6b9190612eb3565b905092915050565b5f8183611f809190612fab565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fbf578082015181840152602081019050611fa4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fe482611f88565b611fee8185611f92565b9350611ffe818560208601611fa2565b61200781611fca565b840191505092915050565b5f6020820190508181035f83015261202a8184611fda565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61205f82612036565b9050919050565b61206f81612055565b8114612079575f80fd5b50565b5f8135905061208a81612066565b92915050565b5f819050919050565b6120a281612090565b81146120ac575f80fd5b50565b5f813590506120bd81612099565b92915050565b5f80604083850312156120d9576120d8612032565b5b5f6120e68582860161207c565b92505060206120f7858286016120af565b9150509250929050565b5f8115159050919050565b61211581612101565b82525050565b5f60208201905061212e5f83018461210c565b92915050565b61213d81612090565b82525050565b5f6020820190506121565f830184612134565b92915050565b5f805f6060848603121561217357612172612032565b5b5f6121808682870161207c565b93505060206121918682870161207c565b92505060406121a2868287016120af565b9150509250925092565b5f60ff82169050919050565b6121c1816121ac565b82525050565b5f6020820190506121da5f8301846121b8565b92915050565b5f602082840312156121f5576121f4612032565b5b5f6122028482850161207c565b91505092915050565b61221481612055565b82525050565b5f60208201905061222d5f83018461220b565b92915050565b5f6040820190506122465f830185612134565b6122536020830184612134565b9392505050565b5f80604083850312156122705761226f612032565b5b5f61227d8582860161207c565b925050602061228e8582860161207c565b9150509250929050565b5f602082840312156122ad576122ac612032565b5b5f6122ba848285016120af565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561234557808604811115612321576123206122c3565b5b60018516156123305780820291505b808102905061233e856122f0565b9450612305565b94509492505050565b5f8261235d5760019050612418565b8161236a575f9050612418565b8160018114612380576002811461238a576123b9565b6001915050612418565b60ff84111561239c5761239b6122c3565b5b8360020a9150848211156123b3576123b26122c3565b5b50612418565b5060208310610133831016604e8410600b84101617156123ee5782820a9050838111156123e9576123e86122c3565b5b612418565b6123fb84848460016122fc565b92509050818404811115612412576124116122c3565b5b81810290505b9392505050565b5f61242982612090565b9150612434836121ac565b92506124617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461234e565b905092915050565b5f61247382612090565b915061247e83612090565b925082820261248c81612090565b915082820484148315176124a3576124a26122c3565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6124de602083611f92565b91506124e9826124aa565b602082019050919050565b5f6020820190508181035f83015261250b816124d2565b9050919050565b7f50657263656e746167652063616e6e6f742062652067726561746572207468615f8201527f6e20313030000000000000000000000000000000000000000000000000000000602082015250565b5f61256c602583611f92565b915061257782612512565b604082019050919050565b5f6020820190508181035f83015261259981612560565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125d4601783611f92565b91506125df826125a0565b602082019050919050565b5f6020820190508181035f830152612601816125c8565b9050919050565b7f436f6e747261637420686173206e6f20746f6b656e7320746f206164642061735f8201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b5f612662602a83611f92565b915061266d82612608565b604082019050919050565b5f6020820190508181035f83015261268f81612656565b9050919050565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c695f8201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b5f6126f0602783611f92565b91506126fb82612696565b604082019050919050565b5f6020820190508181035f83015261271d816126e4565b9050919050565b5f8151905061273281612066565b92915050565b5f6020828403121561274d5761274c612032565b5b5f61275a84828501612724565b91505092915050565b5f6040820190506127765f83018561220b565b612783602083018461220b565b9392505050565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e64205f8201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b5f6127e4602683611f92565b91506127ef8261278a565b604082019050919050565b5f6020820190508181035f830152612811816127d8565b9050919050565b5f819050919050565b5f819050919050565b5f61284461283f61283a84612818565b612821565b612090565b9050919050565b6128548161282a565b82525050565b5f60c08201905061286d5f83018961220b565b61287a6020830188612134565b612887604083018761284b565b612894606083018661284b565b6128a1608083018561220b565b6128ae60a0830184612134565b979650505050505050565b5f815190506128c781612099565b92915050565b5f805f606084860312156128e4576128e3612032565b5b5f6128f1868287016128b9565b9350506020612902868287016128b9565b9250506040612913868287016128b9565b9150509250925092565b5f6040820190506129305f83018561220b565b61293d6020830184612134565b9392505050565b61294d81612101565b8114612957575f80fd5b50565b5f8151905061296881612944565b92915050565b5f6020828403121561298357612982612032565b5b5f6129908482850161295a565b91505092915050565b7f436f6e747261637420686173206e6f2045544820746f2073656e6400000000005f82015250565b5f6129cd601b83611f92565b91506129d882612999565b602082019050919050565b5f6020820190508181035f8301526129fa816129c1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a5b602483611f92565b9150612a6682612a01565b604082019050919050565b5f6020820190508181035f830152612a8881612a4f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ae9602283611f92565b9150612af482612a8f565b604082019050919050565b5f6020820190508181035f830152612b1681612add565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b77602583611f92565b9150612b8282612b1d565b604082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602383611f92565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c93602983611f92565b9150612c9e82612c39565b604082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b7f54726164696e67206973206e6f74206f70656e207965740000000000000000005f82015250565b5f612cfb601783611f92565b9150612d0682612cc7565b602082019050919050565b5f6020820190508181035f830152612d2881612cef565b9050919050565b7f4e65772062616c616e636520776f756c642065786365656420746865206d61785f8201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b5f612d89602d83611f92565b9150612d9482612d2f565b604082019050919050565b5f6020820190508181035f830152612db681612d7d565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f612df1601f83611f92565b9150612dfc82612dbd565b602082019050919050565b5f6020820190508181035f830152612e1e81612de5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612e7f602683611f92565b9150612e8a82612e25565b604082019050919050565b5f6020820190508181035f830152612eac81612e73565b9050919050565b5f612ebd82612090565b9150612ec883612090565b9250828201905080821115612ee057612edf6122c3565b5b92915050565b7f45524332303a206164646974696f6e206f766572666c6f7700000000000000005f82015250565b5f612f1a601883611f92565b9150612f2582612ee6565b602082019050919050565b5f6020820190508181035f830152612f4781612f0e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f8582612090565b9150612f9083612090565b925082612fa057612f9f612f4e565b5b828204905092915050565b5f612fb582612090565b9150612fc083612090565b9250828203905081811115612fd857612fd76122c3565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365444f55424c452d46414b45204e4f4e2d5241524520554c545241205045504520484f4c4f47524150484943204c4547454e4441525920434f4c4c4543544f5227532045444954494f4e20287261726529a2646970667358221220efa73ef2c0f5c91ca24a9f511845af5cafe0350f5fc617dcf8c1ad0f405af56564736f6c63430008140033

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.