ETH Price: $3,294.32 (+0.66%)

Token

Enjoy life. that's what we're here... (HERE)
 

Overview

Max Total Supply

1,000,000,000 HERE

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 HERE

Value
$0.00
0x2839c4bd65ddd68a6cdbf58528eaf3e72fa88f83
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:
HERE

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

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

/*
Enjoy life… that’s what we’re here for.
https://medium.com/@enjoylifehere
*/

pragma solidity 0.8.16;

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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 HERE is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**8;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxTarget;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Enjoy life. that's what we're here for.";
    string private constant _symbol = "HERE";
    uint8 private constant _decimals = 8;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 public _maxTxAmount = _tTotal.mul(20).div(1000); 
    uint256 public _maxWalletSize = _tTotal.mul(30).div(1000);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=5;
        _finalTax=2;
        _reduceTaxCountdown=60;
        _reduceTaxTarget = _reduceTaxCountdown.div(2);
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<_reduceTaxTarget) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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


    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }

    }

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

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":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":"_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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"}]

608060405267016345785d8a00006000196200001c919062000604565b6000196200002b91906200066b565b6008556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff021916908315150217905550620000bd6103e8620000a9601467016345785d8a00006200045d60201b6200120e1790919060201c565b620004e060201b620012881790919060201c565b601355620000fe6103e8620000ea601e67016345785d8a00006200045d60201b6200120e1790919060201c565b620004e060201b620012881790919060201c565b6014553480156200010e57600080fd5b506000620001216200053260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cf6200053260201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620002266200053260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200027a6200053a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005600c819055506002600d81905550603c600f81905550620003d26002600f54620004e060201b620012881790919060201c565b600e81905550620003e86200053260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200044f9190620006b7565b60405180910390a3620008c3565b6000808303620004715760009050620004da565b60008284620004819190620006d4565b905082848262000492919062000735565b14620004d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004cc90620007f4565b60405180910390fd5b809150505b92915050565b60006200052a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200056360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620005ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005a491906200089f565b60405180910390fd5b5060008385620005be919062000735565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200061182620005cb565b91506200061e83620005cb565b925082620006315762000630620005d5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200067882620005cb565b91506200068583620005cb565b9250828203905081811115620006a0576200069f6200063c565b5b92915050565b620006b181620005cb565b82525050565b6000602082019050620006ce6000830184620006a6565b92915050565b6000620006e182620005cb565b9150620006ee83620005cb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200072a57620007296200063c565b5b828202905092915050565b60006200074282620005cb565b91506200074f83620005cb565b925082620007625762000761620005d5565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620007dc6021836200076d565b9150620007e9826200077e565b604082019050919050565b600060208201905081810360008301526200080f81620007cd565b9050919050565b600081519050919050565b60005b838110156200084157808201518184015260208101905062000824565b60008484015250505050565b6000601f19601f8301169050919050565b60006200086b8262000816565b6200087781856200076d565b93506200088981856020860162000821565b62000894816200084d565b840191505092915050565b60006020820190508181036000830152620008bb81846200085e565b905092915050565b61342080620008d36000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103aa578063c3c8cd80146103e7578063c9567bf9146103fe578063d34628cc14610415578063dd62ed3e1461043e5761012a565b8063751039fc146102e75780637d1db4a5146102fe5780638da5cb5b146103295780638f9a55c01461035457806395d89b411461037f5761012a565b806331c2d847116100e757806331c2d8471461022a5780635932ead1146102535780636fc3eaec1461027c57806370a0823114610293578063715018a6146102d05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461047b565b604051610151919061241f565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124e9565b61049b565b60405161018e9190612544565b60405180910390f35b3480156101a357600080fd5b506101ac6104b9565b6040516101b9919061256e565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612589565b6104c9565b6040516101f69190612544565b60405180910390f35b34801561020b57600080fd5b506102146105a2565b60405161022191906125f8565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c919061275b565b6105ab565b005b34801561025f57600080fd5b5061027a600480360381019061027591906127d0565b6106d5565b005b34801561028857600080fd5b50610291610787565b005b34801561029f57600080fd5b506102ba60048036038101906102b591906127fd565b6107f9565b6040516102c7919061256e565b60405180910390f35b3480156102dc57600080fd5b506102e561084a565b005b3480156102f357600080fd5b506102fc61099d565b005b34801561030a57600080fd5b50610313610a52565b604051610320919061256e565b60405180910390f35b34801561033557600080fd5b5061033e610a58565b60405161034b9190612839565b60405180910390f35b34801561036057600080fd5b50610369610a81565b604051610376919061256e565b60405180910390f35b34801561038b57600080fd5b50610394610a87565b6040516103a1919061241f565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc91906124e9565b610ac4565b6040516103de9190612544565b60405180910390f35b3480156103f357600080fd5b506103fc610ae2565b005b34801561040a57600080fd5b50610413610b5c565b005b34801561042157600080fd5b5061043c6004803603810190610437919061275b565b61105d565b005b34801561044a57600080fd5b5061046560048036038101906104609190612854565b611187565b604051610472919061256e565b60405180910390f35b60606040518060600160405280602781526020016133c460279139905090565b60006104af6104a86112d2565b84846112da565b6001905092915050565b600067016345785d8a0000905090565b60006104d68484846114a3565b610597846104e26112d2565b6105928560405180606001604052806028815260200161339c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105486112d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ea9092919063ffffffff16565b6112da565b600190509392505050565b60006008905090565b6105b36112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610640576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610637906128e0565b60405180910390fd5b60005b81518110156106d15760006006600084848151811061066557610664612900565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106c99061295e565b915050610643565b5050565b6106dd6112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610761906128e0565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107c86112d2565b73ffffffffffffffffffffffffffffffffffffffff16146107e857600080fd5b60004790506107f681611a4e565b50565b6000610843600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aba565b9050919050565b6108526112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d6906128e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109a56112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906128e0565b60405180910390fd5b67016345785d8a000060138190555067016345785d8a0000601481905550565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600481526020017f4845524500000000000000000000000000000000000000000000000000000000815250905090565b6000610ad8610ad16112d2565b84846114a3565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b236112d2565b73ffffffffffffffffffffffffffffffffffffffff1614610b4357600080fd5b6000610b4e306107f9565b9050610b5981611b28565b50565b610b646112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be8906128e0565b60405180910390fd5b601260149054906101000a900460ff1615610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c38906129f2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cd030601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006112da565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3f9190612a27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190612a27565b6040518363ffffffff1660e01b8152600401610de7929190612a54565b6020604051808303816000875af1158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190612a27565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eb3306107f9565b600080610ebe610a58565b426040518863ffffffff1660e01b8152600401610ee096959493929190612ac2565b60606040518083038185885af1158015610efe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f239190612b38565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611016929190612b8b565b6020604051808303816000875af1158015611035573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110599190612bc9565b5050565b6110656112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e9906128e0565b60405180910390fd5b60005b81518110156111835760016006600084848151811061111757611116612900565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061117b9061295e565b9150506110f5565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036112205760009050611282565b6000828461122e9190612bf6565b905082848261123d9190612c7f565b1461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127490612d22565b60405180910390fd5b809150505b92915050565b60006112ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611da1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612db4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612e46565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611496919061256e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612f6a565b60405180910390fd5b600081116115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90612ffc565b60405180910390fd5b6115cc610a58565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561163a575061160a610a58565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119c957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116e35750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116ec57600080fd5b6000600a819055506000600f541461170657600c5461170a565b600d545b600b81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117bb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118115750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118295750601260179054906101000a900460ff165b156118f057601354811115611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a90613068565b60405180910390fd5b60145481611880846107f9565b61188a9190613088565b11156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290613108565b60405180910390fd5b6000600f5411156118ef57600f60008154809291906118e990613128565b91905055505b5b60006118fb306107f9565b9050601260159054906101000a900460ff161580156119685750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119805750601260169054906101000a900460ff165b801561198c5750600081115b801561199b5750600e54600f54105b156119c3576119a981611b28565b600047905060008111156119c1576119c047611a4e565b5b505b506119da565b6000600a819055506000600b819055505b6119e5838383611e04565b505050565b6000838311158290611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a29919061241f565b60405180910390fd5b5060008385611a419190613151565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab6573d6000803e3d6000fd5b5050565b6000600854821115611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af8906131f7565b60405180910390fd5b6000611b0b611e14565b9050611b20818461128890919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b6057611b5f612618565b5b604051908082528060200260200182016040528015611b8e5781602001602082028036833780820191505090505b5090503081600081518110611ba657611ba5612900565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c719190612a27565b81600181518110611c8557611c84612900565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cec30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112da565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d509594939291906132d5565b600060405180830381600087803b158015611d6a57600080fd5b505af1158015611d7e573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60008083118290611de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddf919061241f565b60405180910390fd5b5060008385611df79190612c7f565b9050809150509392505050565b611e0f838383611e3f565b505050565b6000806000611e2161200a565b91509150611e38818361128890919063ffffffff16565b9250505090565b600080600080600080611e5187612069565b955095509550955095509550611eaf86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9081612179565b611f9a8483612236565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ff7919061256e565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a0000905061203e67016345785d8a000060085461128890919063ffffffff16565b82101561205c5760085467016345785d8a0000935093505050612065565b81819350935050505b9091565b60008060008060008060008060006120868a600a54600b54612270565b9250925092506000612096611e14565b905060008060006120a98e878787612306565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061211383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ea565b905092915050565b600080828461212a9190613088565b90508381101561216f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121669061337b565b60405180910390fd5b8091505092915050565b6000612183611e14565b9050600061219a828461120e90919063ffffffff16565b90506121ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61224b826008546120d190919063ffffffff16565b6008819055506122668160095461211b90919063ffffffff16565b6009819055505050565b60008060008061229c606461228e888a61120e90919063ffffffff16565b61128890919063ffffffff16565b905060006122c660646122b8888b61120e90919063ffffffff16565b61128890919063ffffffff16565b905060006122ef826122e1858c6120d190919063ffffffff16565b6120d190919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061231f858961120e90919063ffffffff16565b90506000612336868961120e90919063ffffffff16565b9050600061234d878961120e90919063ffffffff16565b905060006123768261236885876120d190919063ffffffff16565b6120d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c95780820151818401526020810190506123ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006123f18261238f565b6123fb818561239a565b935061240b8185602086016123ab565b612414816123d5565b840191505092915050565b6000602082019050818103600083015261243981846123e6565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248082612455565b9050919050565b61249081612475565b811461249b57600080fd5b50565b6000813590506124ad81612487565b92915050565b6000819050919050565b6124c6816124b3565b81146124d157600080fd5b50565b6000813590506124e3816124bd565b92915050565b60008060408385031215612500576124ff61244b565b5b600061250e8582860161249e565b925050602061251f858286016124d4565b9150509250929050565b60008115159050919050565b61253e81612529565b82525050565b60006020820190506125596000830184612535565b92915050565b612568816124b3565b82525050565b6000602082019050612583600083018461255f565b92915050565b6000806000606084860312156125a2576125a161244b565b5b60006125b08682870161249e565b93505060206125c18682870161249e565b92505060406125d2868287016124d4565b9150509250925092565b600060ff82169050919050565b6125f2816125dc565b82525050565b600060208201905061260d60008301846125e9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612650826123d5565b810181811067ffffffffffffffff8211171561266f5761266e612618565b5b80604052505050565b6000612682612441565b905061268e8282612647565b919050565b600067ffffffffffffffff8211156126ae576126ad612618565b5b602082029050602081019050919050565b600080fd5b60006126d76126d284612693565b612678565b905080838252602082019050602084028301858111156126fa576126f96126bf565b5b835b81811015612723578061270f888261249e565b8452602084019350506020810190506126fc565b5050509392505050565b600082601f83011261274257612741612613565b5b81356127528482602086016126c4565b91505092915050565b6000602082840312156127715761277061244b565b5b600082013567ffffffffffffffff81111561278f5761278e612450565b5b61279b8482850161272d565b91505092915050565b6127ad81612529565b81146127b857600080fd5b50565b6000813590506127ca816127a4565b92915050565b6000602082840312156127e6576127e561244b565b5b60006127f4848285016127bb565b91505092915050565b6000602082840312156128135761281261244b565b5b60006128218482850161249e565b91505092915050565b61283381612475565b82525050565b600060208201905061284e600083018461282a565b92915050565b6000806040838503121561286b5761286a61244b565b5b60006128798582860161249e565b925050602061288a8582860161249e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ca60208361239a565b91506128d582612894565b602082019050919050565b600060208201905081810360008301526128f9816128bd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612969826124b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299b5761299a61292f565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129dc60178361239a565b91506129e7826129a6565b602082019050919050565b60006020820190508181036000830152612a0b816129cf565b9050919050565b600081519050612a2181612487565b92915050565b600060208284031215612a3d57612a3c61244b565b5b6000612a4b84828501612a12565b91505092915050565b6000604082019050612a69600083018561282a565b612a76602083018461282a565b9392505050565b6000819050919050565b6000819050919050565b6000612aac612aa7612aa284612a7d565b612a87565b6124b3565b9050919050565b612abc81612a91565b82525050565b600060c082019050612ad7600083018961282a565b612ae4602083018861255f565b612af16040830187612ab3565b612afe6060830186612ab3565b612b0b608083018561282a565b612b1860a083018461255f565b979650505050505050565b600081519050612b32816124bd565b92915050565b600080600060608486031215612b5157612b5061244b565b5b6000612b5f86828701612b23565b9350506020612b7086828701612b23565b9250506040612b8186828701612b23565b9150509250925092565b6000604082019050612ba0600083018561282a565b612bad602083018461255f565b9392505050565b600081519050612bc3816127a4565b92915050565b600060208284031215612bdf57612bde61244b565b5b6000612bed84828501612bb4565b91505092915050565b6000612c01826124b3565b9150612c0c836124b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4557612c4461292f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c8a826124b3565b9150612c95836124b3565b925082612ca557612ca4612c50565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0c60218361239a565b9150612d1782612cb0565b604082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d9e60248361239a565b9150612da982612d42565b604082019050919050565b60006020820190508181036000830152612dcd81612d91565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3060228361239a565b9150612e3b82612dd4565b604082019050919050565b60006020820190508181036000830152612e5f81612e23565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec260258361239a565b9150612ecd82612e66565b604082019050919050565b60006020820190508181036000830152612ef181612eb5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5460238361239a565b9150612f5f82612ef8565b604082019050919050565b60006020820190508181036000830152612f8381612f47565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe660298361239a565b9150612ff182612f8a565b604082019050919050565b6000602082019050818103600083015261301581612fd9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061305260198361239a565b915061305d8261301c565b602082019050919050565b6000602082019050818103600083015261308181613045565b9050919050565b6000613093826124b3565b915061309e836124b3565b92508282019050808211156130b6576130b561292f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130f2601a8361239a565b91506130fd826130bc565b602082019050919050565b60006020820190508181036000830152613121816130e5565b9050919050565b6000613133826124b3565b9150600082036131465761314561292f565b5b600182039050919050565b600061315c826124b3565b9150613167836124b3565b925082820390508181111561317f5761317e61292f565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006131e1602a8361239a565b91506131ec82613185565b604082019050919050565b60006020820190508181036000830152613210816131d4565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61324c81612475565b82525050565b600061325e8383613243565b60208301905092915050565b6000602082019050919050565b600061328282613217565b61328c8185613222565b935061329783613233565b8060005b838110156132c85781516132af8882613252565b97506132ba8361326a565b92505060018101905061329b565b5085935050505092915050565b600060a0820190506132ea600083018861255f565b6132f76020830187612ab3565b81810360408301526133098186613277565b9050613318606083018561282a565b613325608083018461255f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613365601b8361239a565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365456e6a6f79206c6966652e207468617427732077686174207765277265206865726520666f722ea26469706673582212203664035ee6059eb2c307fdaba310babf9db8e8e5dcc21f857878ac3781378eed64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103aa578063c3c8cd80146103e7578063c9567bf9146103fe578063d34628cc14610415578063dd62ed3e1461043e5761012a565b8063751039fc146102e75780637d1db4a5146102fe5780638da5cb5b146103295780638f9a55c01461035457806395d89b411461037f5761012a565b806331c2d847116100e757806331c2d8471461022a5780635932ead1146102535780636fc3eaec1461027c57806370a0823114610293578063715018a6146102d05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461047b565b604051610151919061241f565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906124e9565b61049b565b60405161018e9190612544565b60405180910390f35b3480156101a357600080fd5b506101ac6104b9565b6040516101b9919061256e565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190612589565b6104c9565b6040516101f69190612544565b60405180910390f35b34801561020b57600080fd5b506102146105a2565b60405161022191906125f8565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c919061275b565b6105ab565b005b34801561025f57600080fd5b5061027a600480360381019061027591906127d0565b6106d5565b005b34801561028857600080fd5b50610291610787565b005b34801561029f57600080fd5b506102ba60048036038101906102b591906127fd565b6107f9565b6040516102c7919061256e565b60405180910390f35b3480156102dc57600080fd5b506102e561084a565b005b3480156102f357600080fd5b506102fc61099d565b005b34801561030a57600080fd5b50610313610a52565b604051610320919061256e565b60405180910390f35b34801561033557600080fd5b5061033e610a58565b60405161034b9190612839565b60405180910390f35b34801561036057600080fd5b50610369610a81565b604051610376919061256e565b60405180910390f35b34801561038b57600080fd5b50610394610a87565b6040516103a1919061241f565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc91906124e9565b610ac4565b6040516103de9190612544565b60405180910390f35b3480156103f357600080fd5b506103fc610ae2565b005b34801561040a57600080fd5b50610413610b5c565b005b34801561042157600080fd5b5061043c6004803603810190610437919061275b565b61105d565b005b34801561044a57600080fd5b5061046560048036038101906104609190612854565b611187565b604051610472919061256e565b60405180910390f35b60606040518060600160405280602781526020016133c460279139905090565b60006104af6104a86112d2565b84846112da565b6001905092915050565b600067016345785d8a0000905090565b60006104d68484846114a3565b610597846104e26112d2565b6105928560405180606001604052806028815260200161339c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105486112d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ea9092919063ffffffff16565b6112da565b600190509392505050565b60006008905090565b6105b36112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610640576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610637906128e0565b60405180910390fd5b60005b81518110156106d15760006006600084848151811061066557610664612900565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106c99061295e565b915050610643565b5050565b6106dd6112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610761906128e0565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107c86112d2565b73ffffffffffffffffffffffffffffffffffffffff16146107e857600080fd5b60004790506107f681611a4e565b50565b6000610843600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aba565b9050919050565b6108526112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d6906128e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109a56112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906128e0565b60405180910390fd5b67016345785d8a000060138190555067016345785d8a0000601481905550565b60135481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600481526020017f4845524500000000000000000000000000000000000000000000000000000000815250905090565b6000610ad8610ad16112d2565b84846114a3565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b236112d2565b73ffffffffffffffffffffffffffffffffffffffff1614610b4357600080fd5b6000610b4e306107f9565b9050610b5981611b28565b50565b610b646112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be8906128e0565b60405180910390fd5b601260149054906101000a900460ff1615610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c38906129f2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cd030601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006112da565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3f9190612a27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190612a27565b6040518363ffffffff1660e01b8152600401610de7929190612a54565b6020604051808303816000875af1158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190612a27565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eb3306107f9565b600080610ebe610a58565b426040518863ffffffff1660e01b8152600401610ee096959493929190612ac2565b60606040518083038185885af1158015610efe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f239190612b38565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611016929190612b8b565b6020604051808303816000875af1158015611035573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110599190612bc9565b5050565b6110656112d2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e9906128e0565b60405180910390fd5b60005b81518110156111835760016006600084848151811061111757611116612900565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061117b9061295e565b9150506110f5565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036112205760009050611282565b6000828461122e9190612bf6565b905082848261123d9190612c7f565b1461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127490612d22565b60405180910390fd5b809150505b92915050565b60006112ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611da1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612db4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af90612e46565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611496919061256e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890612f6a565b60405180910390fd5b600081116115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90612ffc565b60405180910390fd5b6115cc610a58565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561163a575061160a610a58565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119c957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116e35750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116ec57600080fd5b6000600a819055506000600f541461170657600c5461170a565b600d545b600b81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117bb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118115750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118295750601260179054906101000a900460ff165b156118f057601354811115611873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186a90613068565b60405180910390fd5b60145481611880846107f9565b61188a9190613088565b11156118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290613108565b60405180910390fd5b6000600f5411156118ef57600f60008154809291906118e990613128565b91905055505b5b60006118fb306107f9565b9050601260159054906101000a900460ff161580156119685750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119805750601260169054906101000a900460ff165b801561198c5750600081115b801561199b5750600e54600f54105b156119c3576119a981611b28565b600047905060008111156119c1576119c047611a4e565b5b505b506119da565b6000600a819055506000600b819055505b6119e5838383611e04565b505050565b6000838311158290611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a29919061241f565b60405180910390fd5b5060008385611a419190613151565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab6573d6000803e3d6000fd5b5050565b6000600854821115611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af8906131f7565b60405180910390fd5b6000611b0b611e14565b9050611b20818461128890919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b6057611b5f612618565b5b604051908082528060200260200182016040528015611b8e5781602001602082028036833780820191505090505b5090503081600081518110611ba657611ba5612900565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c719190612a27565b81600181518110611c8557611c84612900565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cec30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112da565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d509594939291906132d5565b600060405180830381600087803b158015611d6a57600080fd5b505af1158015611d7e573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60008083118290611de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddf919061241f565b60405180910390fd5b5060008385611df79190612c7f565b9050809150509392505050565b611e0f838383611e3f565b505050565b6000806000611e2161200a565b91509150611e38818361128890919063ffffffff16565b9250505090565b600080600080600080611e5187612069565b955095509550955095509550611eaf86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9081612179565b611f9a8483612236565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ff7919061256e565b60405180910390a3505050505050505050565b60008060006008549050600067016345785d8a0000905061203e67016345785d8a000060085461128890919063ffffffff16565b82101561205c5760085467016345785d8a0000935093505050612065565b81819350935050505b9091565b60008060008060008060008060006120868a600a54600b54612270565b9250925092506000612096611e14565b905060008060006120a98e878787612306565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061211383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ea565b905092915050565b600080828461212a9190613088565b90508381101561216f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121669061337b565b60405180910390fd5b8091505092915050565b6000612183611e14565b9050600061219a828461120e90919063ffffffff16565b90506121ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61224b826008546120d190919063ffffffff16565b6008819055506122668160095461211b90919063ffffffff16565b6009819055505050565b60008060008061229c606461228e888a61120e90919063ffffffff16565b61128890919063ffffffff16565b905060006122c660646122b8888b61120e90919063ffffffff16565b61128890919063ffffffff16565b905060006122ef826122e1858c6120d190919063ffffffff16565b6120d190919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061231f858961120e90919063ffffffff16565b90506000612336868961120e90919063ffffffff16565b9050600061234d878961120e90919063ffffffff16565b905060006123768261236885876120d190919063ffffffff16565b6120d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c95780820151818401526020810190506123ae565b60008484015250505050565b6000601f19601f8301169050919050565b60006123f18261238f565b6123fb818561239a565b935061240b8185602086016123ab565b612414816123d5565b840191505092915050565b6000602082019050818103600083015261243981846123e6565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248082612455565b9050919050565b61249081612475565b811461249b57600080fd5b50565b6000813590506124ad81612487565b92915050565b6000819050919050565b6124c6816124b3565b81146124d157600080fd5b50565b6000813590506124e3816124bd565b92915050565b60008060408385031215612500576124ff61244b565b5b600061250e8582860161249e565b925050602061251f858286016124d4565b9150509250929050565b60008115159050919050565b61253e81612529565b82525050565b60006020820190506125596000830184612535565b92915050565b612568816124b3565b82525050565b6000602082019050612583600083018461255f565b92915050565b6000806000606084860312156125a2576125a161244b565b5b60006125b08682870161249e565b93505060206125c18682870161249e565b92505060406125d2868287016124d4565b9150509250925092565b600060ff82169050919050565b6125f2816125dc565b82525050565b600060208201905061260d60008301846125e9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612650826123d5565b810181811067ffffffffffffffff8211171561266f5761266e612618565b5b80604052505050565b6000612682612441565b905061268e8282612647565b919050565b600067ffffffffffffffff8211156126ae576126ad612618565b5b602082029050602081019050919050565b600080fd5b60006126d76126d284612693565b612678565b905080838252602082019050602084028301858111156126fa576126f96126bf565b5b835b81811015612723578061270f888261249e565b8452602084019350506020810190506126fc565b5050509392505050565b600082601f83011261274257612741612613565b5b81356127528482602086016126c4565b91505092915050565b6000602082840312156127715761277061244b565b5b600082013567ffffffffffffffff81111561278f5761278e612450565b5b61279b8482850161272d565b91505092915050565b6127ad81612529565b81146127b857600080fd5b50565b6000813590506127ca816127a4565b92915050565b6000602082840312156127e6576127e561244b565b5b60006127f4848285016127bb565b91505092915050565b6000602082840312156128135761281261244b565b5b60006128218482850161249e565b91505092915050565b61283381612475565b82525050565b600060208201905061284e600083018461282a565b92915050565b6000806040838503121561286b5761286a61244b565b5b60006128798582860161249e565b925050602061288a8582860161249e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ca60208361239a565b91506128d582612894565b602082019050919050565b600060208201905081810360008301526128f9816128bd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612969826124b3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299b5761299a61292f565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129dc60178361239a565b91506129e7826129a6565b602082019050919050565b60006020820190508181036000830152612a0b816129cf565b9050919050565b600081519050612a2181612487565b92915050565b600060208284031215612a3d57612a3c61244b565b5b6000612a4b84828501612a12565b91505092915050565b6000604082019050612a69600083018561282a565b612a76602083018461282a565b9392505050565b6000819050919050565b6000819050919050565b6000612aac612aa7612aa284612a7d565b612a87565b6124b3565b9050919050565b612abc81612a91565b82525050565b600060c082019050612ad7600083018961282a565b612ae4602083018861255f565b612af16040830187612ab3565b612afe6060830186612ab3565b612b0b608083018561282a565b612b1860a083018461255f565b979650505050505050565b600081519050612b32816124bd565b92915050565b600080600060608486031215612b5157612b5061244b565b5b6000612b5f86828701612b23565b9350506020612b7086828701612b23565b9250506040612b8186828701612b23565b9150509250925092565b6000604082019050612ba0600083018561282a565b612bad602083018461255f565b9392505050565b600081519050612bc3816127a4565b92915050565b600060208284031215612bdf57612bde61244b565b5b6000612bed84828501612bb4565b91505092915050565b6000612c01826124b3565b9150612c0c836124b3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c4557612c4461292f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c8a826124b3565b9150612c95836124b3565b925082612ca557612ca4612c50565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d0c60218361239a565b9150612d1782612cb0565b604082019050919050565b60006020820190508181036000830152612d3b81612cff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d9e60248361239a565b9150612da982612d42565b604082019050919050565b60006020820190508181036000830152612dcd81612d91565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3060228361239a565b9150612e3b82612dd4565b604082019050919050565b60006020820190508181036000830152612e5f81612e23565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec260258361239a565b9150612ecd82612e66565b604082019050919050565b60006020820190508181036000830152612ef181612eb5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5460238361239a565b9150612f5f82612ef8565b604082019050919050565b60006020820190508181036000830152612f8381612f47565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe660298361239a565b9150612ff182612f8a565b604082019050919050565b6000602082019050818103600083015261301581612fd9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061305260198361239a565b915061305d8261301c565b602082019050919050565b6000602082019050818103600083015261308181613045565b9050919050565b6000613093826124b3565b915061309e836124b3565b92508282019050808211156130b6576130b561292f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130f2601a8361239a565b91506130fd826130bc565b602082019050919050565b60006020820190508181036000830152613121816130e5565b9050919050565b6000613133826124b3565b9150600082036131465761314561292f565b5b600182039050919050565b600061315c826124b3565b9150613167836124b3565b925082820390508181111561317f5761317e61292f565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006131e1602a8361239a565b91506131ec82613185565b604082019050919050565b60006020820190508181036000830152613210816131d4565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61324c81612475565b82525050565b600061325e8383613243565b60208301905092915050565b6000602082019050919050565b600061328282613217565b61328c8185613222565b935061329783613233565b8060005b838110156132c85781516132af8882613252565b97506132ba8361326a565b92505060018101905061329b565b5085935050505092915050565b600060a0820190506132ea600083018861255f565b6132f76020830187612ab3565b81810360408301526133098186613277565b9050613318606083018561282a565b613325608083018461255f565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613365601b8361239a565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365456e6a6f79206c6966652e207468617427732077686174207765277265206865726520666f722ea26469706673582212203664035ee6059eb2c307fdaba310babf9db8e8e5dcc21f857878ac3781378eed64736f6c63430008100033

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.