ETH Price: $2,387.14 (-3.32%)
 

Overview

Max Total Supply

1,000,000,000 PEIPEI2

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
177,617.955511573798319707 PEIPEI2

Value
$0.00
0x3bc97136aecee5325208df4634d03a1c59dfd7c4
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:
PeiPei2

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

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

pragma solidity 0.8.20;

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract PeiPei2 is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint8 private constant _decimals = 18;
    uint256 private constant _supply = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"PeiPei2";
    string private constant _symbol = unicode"PEIPEI2";
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 public _taxBuy = 98;
    uint256 public _taxSell = 98;

    uint256 public _maxTxAmount = (10 * _supply) / 100;
    uint256 public _maxWalletSize = (10 * _supply) / 100;
    uint256 public _maxTaxSwap = (1 * _supply) / 100;
    uint256 public _taxSwapThreshold = (1 * _supply) / 100;

    uint256 private _preventSwapBefore = 25;
    uint256 private _buyCount = 0;

    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    mapping(address => bool) private bots;
    mapping(address => bool) private excluders;
    address payable private _receiver;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool private inSwap = false;
    bool private tradingOpen = false;

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _receiver = payable(0xC80187eD1F86F4192755998f4535F73459106126);
        _balances[_msgSender()] = _supply;
        excluders[owner()] = true;
        excluders[address(this)] = true;
        excluders[_receiver] = true;

        emit Transfer(address(0), _msgSender(), _supply);
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (excluders[from] || excluders[to]) {
            taxAmount = 0;
        } else {
            require(!bots[from] && !bots[to], "Address was banned");
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                taxAmount = amount.mul(_taxBuy).div(100);
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul(_taxSell).div(100);
            }

            uint256 balance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                tradingOpen &&
                balance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(balance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        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 removeLimit() external onlyOwner {
        _maxTxAmount = _supply;
        _maxWalletSize = _supply;
    }

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

    function setIn(address[] memory a) external onlyOwner {
        for (uint8 i = 0; i < a.length; i++) {
            excluders[a[i]] = true;
        }
    }

    function removeOut(address _address) external onlyOwner {
        excluders[_address] = false;
    }

    function reduceFee(uint256 _buy, uint256 _sell) external onlyOwner {
        _taxBuy = _buy;
        _taxSell = _sell;
    }

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

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _supply);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        tradingOpen = true;
    }

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

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

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

    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"_taxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSell","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":"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":"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":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"a","type":"address[]"}],"name":"setIn","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"}]

60806040526062600355606260045560646012600a6200002091906200065d565b633b9aca00620000319190620006ad565b600a6200003f9190620006ad565b6200004b919062000724565b60055560646012600a6200006091906200065d565b633b9aca00620000719190620006ad565b600a6200007f9190620006ad565b6200008b919062000724565b60065560646012600a620000a091906200065d565b633b9aca00620000b19190620006ad565b6001620000bf9190620006ad565b620000cb919062000724565b60075560646012600a620000e091906200065d565b633b9aca00620000f19190620006ad565b6001620000ff9190620006ad565b6200010b919062000724565b60085560196009555f600a555f600b555f600c555f601160146101000a81548160ff0219169083151502179055505f601160156101000a81548160ff0219169083151502179055503480156200015f575f80fd5b505f620001716200049d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073c80187ed1f86f4192755998f4535f73459106126600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200027191906200065d565b633b9aca00620002829190620006ad565b60015f620002956200049d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600e5f620002e7620004a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004116200049d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200046f91906200065d565b633b9aca00620004809190620006ad565b6040516200048f91906200076c565b60405180910390a362000787565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000555578086048111156200052d576200052c620004cb565b5b60018516156200053d5780820291505b80810290506200054d85620004f8565b94506200050d565b94509492505050565b5f826200056f576001905062000641565b816200057e575f905062000641565b8160018114620005975760028114620005a257620005d8565b600191505062000641565b60ff841115620005b757620005b6620004cb565b5b8360020a915084821115620005d157620005d0620004cb565b5b5062000641565b5060208310610133831016604e8410600b8410161715620006125782820a9050838111156200060c576200060b620004cb565b5b62000641565b62000621848484600162000504565b925090508184048111156200063b576200063a620004cb565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006698262000648565b9150620006768362000651565b9250620006a57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200055e565b905092915050565b5f620006b98262000648565b9150620006c68362000648565b9250828202620006d68162000648565b91508282048414831517620006f057620006ef620004cb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007308262000648565b91506200073d8362000648565b92508262000750576200074f620006f7565b5b828204905092915050565b620007668162000648565b82525050565b5f602082019050620007815f8301846200075b565b92915050565b61355b80620007955f395ff3fe608060405260043610610169575f3560e01c8063715018a6116100d0578063a4fbec3311610089578063bf474bed11610063578063bf474bed146104ea578063c9567bf914610514578063d34628cc1461052a578063dd62ed3e1461055257610170565b8063a4fbec331461045c578063a9059cbb14610486578063b0ce7b19146104c257610170565b8063715018a614610376578063723333561461038c5780637d1db4a5146103b45780638da5cb5b146103de5780638f9a55c01461040857806395d89b411461043257610170565b806331c2d8471161012257806331c2d847146102945780634597c5fe146102bc57806346e519ed146102e657806351bc3c851461030e578063622565891461032457806370a082311461033a57610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da57806318160ddd1461020457806323b872dd1461022e578063313ce5671461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861058e565b6040516101959190612527565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf91906125e5565b6105cb565b6040516101d1919061263d565b60405180910390f35b3480156101e5575f80fd5b506101ee6105e8565b6040516101fb9190612665565b60405180910390f35b34801561020f575f80fd5b506102186105ee565b6040516102259190612665565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f919061267e565b610611565b604051610261919061263d565b60405180910390f35b348015610275575f80fd5b5061027e6106e5565b60405161028b91906126e9565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b59190612842565b6106ed565b005b3480156102c7575f80fd5b506102d0610811565b6040516102dd9190612665565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190612889565b610817565b005b348015610319575f80fd5b50610322610902565b005b34801561032f575f80fd5b50610338610999565b005b348015610345575f80fd5b50610360600480360381019061035b9190612889565b610a75565b60405161036d9190612665565b60405180910390f35b348015610381575f80fd5b5061038a610abb565b005b348015610397575f80fd5b506103b260048036038101906103ad91906128b4565b610c09565b005b3480156103bf575f80fd5b506103c8610caf565b6040516103d59190612665565b60405180910390f35b3480156103e9575f80fd5b506103f2610cb5565b6040516103ff9190612901565b60405180910390f35b348015610413575f80fd5b5061041c610cdc565b6040516104299190612665565b60405180910390f35b34801561043d575f80fd5b50610446610ce2565b6040516104539190612527565b60405180910390f35b348015610467575f80fd5b50610470610d1f565b60405161047d9190612665565b60405180910390f35b348015610491575f80fd5b506104ac60048036038101906104a791906125e5565b610d25565b6040516104b9919061263d565b60405180910390f35b3480156104cd575f80fd5b506104e860048036038101906104e39190612842565b610d42565b005b3480156104f5575f80fd5b506104fe610e6d565b60405161050b9190612665565b60405180910390f35b34801561051f575f80fd5b50610528610e73565b005b348015610535575f80fd5b50610550600480360381019061054b9190612842565b6112c2565b005b34801561055d575f80fd5b506105786004803603810190610573919061291a565b6113e7565b6040516105859190612665565b60405180910390f35b60606040518060400160405280600781526020017f5065695065693200000000000000000000000000000000000000000000000000815250905090565b5f6105de6105d7611469565b8484611470565b6001905092915050565b60075481565b5f6012600a6105fd9190612ab4565b633b9aca0061060c9190612afe565b905090565b5f61061d848484611633565b6106da84610629611469565b6106d5856040518060600160405280602881526020016134fe6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61068c611469565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f6b9092919063ffffffff16565b611470565b600190509392505050565b5f6012905090565b6106f5611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077890612b89565b60405180910390fd5b5f5b815181101561080d575f600d5f8484815181106107a3576107a2612ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061080590612bd4565b915050610783565b5050565b60035481565b61081f611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a290612b89565b60405180910390fd5b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610942611469565b73ffffffffffffffffffffffffffffffffffffffff1614610961575f80fd5b5f61096b30610a75565b90505f81111561097f5761097e81611fcd565b5b5f4790505f8111156109955761099481612256565b5b5050565b6109a1611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612b89565b60405180910390fd5b6012600a610a3b9190612ab4565b633b9aca00610a4a9190612afe565b6005819055506012600a610a5e9190612ab4565b633b9aca00610a6d9190612afe565b600681905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ac3611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690612b89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c11611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612b89565b60405180910390fd5b81600381905550806004819055505050565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600781526020017f5045495045493200000000000000000000000000000000000000000000000000815250905090565b60045481565b5f610d38610d31611469565b8484611633565b6001905092915050565b610d4a611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90612b89565b60405180910390fd5b5f5b81518160ff161015610e69576001600e5f848460ff1681518110610dff57610dfe612ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610e6190612c1b565b915050610dd8565b5050565b60085481565b610e7b611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612b89565b60405180910390fd5b601160159054906101000a900460ff1615610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90612c8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ff33060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610fdf9190612ab4565b633b9aca00610fee9190612afe565b611470565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110819190612cbf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611107573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112b9190612cbf565b6040518363ffffffff1660e01b8152600401611148929190612cea565b6020604051808303815f875af1158015611164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111889190612cbf565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611264929190612d11565b6020604051808303815f875af1158015611280573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a49190612d62565b506001601160156101000a81548160ff021916908315150217905550565b6112ca611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90612b89565b60405180910390fd5b5f5b81518110156113e3576001600d5f84848151811061137957611378612ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806113db90612bd4565b915050611358565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590612dfd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390612e8b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116269190612665565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890612f19565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612fa7565b60405180910390fd5b5f8111611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890613035565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806117ed5750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156117fa575f9050611cbb565b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118985750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce9061309d565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611980575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a64576005548211156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613105565b60405180910390fd5b600654826119d785610a75565b6119e19190613123565b1115611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a19906131a0565b60405180910390fd5b611a4a6064611a3c600354856122be90919063ffffffff16565b61233590919063ffffffff16565b9050600a5f815480929190611a5e90612bd4565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aec57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b6157600554821115611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90613105565b60405180910390fd5b611b5e6064611b50600454856122be90919063ffffffff16565b61233590919063ffffffff16565b90505b5f611b6b30610a75565b9050601160149054906101000a900460ff16158015611bd6575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bee5750601160159054906101000a900460ff165b8015611bfb575060085481115b8015611c0a5750600954600a54115b15611cb957600c54431115611c21575f600b819055505b6003600b5410611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90613208565b60405180910390fd5b611c83611c7e84611c798460075461237e565b61237e565b611fcd565b5f4790505f811115611c9957611c9847612256565b5b600b5f815480929190611cab90612bd4565b919050555043600c81905550505b505b5f811115611dba57611d138160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461239690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db19190612665565b60405180910390a35b611e0a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123f390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ead611e6182846123f390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461239690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f5084866123f390919063ffffffff16565b604051611f5d9190612665565b60405180910390a350505050565b5f838311158290611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa99190612527565b60405180910390fd5b505f8385611fc09190613226565b9050809150509392505050565b6001601160146101000a81548160ff0219169083151502179055505f81031561223957601160159054906101000a900460ff1615612239575f600267ffffffffffffffff81111561202157612020612706565b5b60405190808252806020026020018201604052801561204f5781602001602082028036833780820191505090505b50905030815f8151811061206657612065612ba7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612cbf565b8160018151811061214257612141612ba7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a83060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611470565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161220a959493929190613352565b5f604051808303815f87803b158015612221575f80fd5b505af1158015612233573d5f803e3d5ffd5b50505050505b5f601160146101000a81548160ff02191690831515021790555050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122ba573d5f803e3d5ffd5b5050565b5f8083036122ce575f905061232f565b5f82846122db9190612afe565b90508284826122ea91906133d7565b1461232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232190613477565b60405180910390fd5b809150505b92915050565b5f61237683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243c565b905092915050565b5f81831161238c578261238e565b815b905092915050565b5f8082846123a49190613123565b9050838110156123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e0906134df565b60405180910390fd5b8091505092915050565b5f61243483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f6b565b905092915050565b5f8083118290612482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124799190612527565b60405180910390fd5b505f838561249091906133d7565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124d45780820151818401526020810190506124b9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124f98261249d565b61250381856124a7565b93506125138185602086016124b7565b61251c816124df565b840191505092915050565b5f6020820190508181035f83015261253f81846124ef565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61258182612558565b9050919050565b61259181612577565b811461259b575f80fd5b50565b5f813590506125ac81612588565b92915050565b5f819050919050565b6125c4816125b2565b81146125ce575f80fd5b50565b5f813590506125df816125bb565b92915050565b5f80604083850312156125fb576125fa612550565b5b5f6126088582860161259e565b9250506020612619858286016125d1565b9150509250929050565b5f8115159050919050565b61263781612623565b82525050565b5f6020820190506126505f83018461262e565b92915050565b61265f816125b2565b82525050565b5f6020820190506126785f830184612656565b92915050565b5f805f6060848603121561269557612694612550565b5b5f6126a28682870161259e565b93505060206126b38682870161259e565b92505060406126c4868287016125d1565b9150509250925092565b5f60ff82169050919050565b6126e3816126ce565b82525050565b5f6020820190506126fc5f8301846126da565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61273c826124df565b810181811067ffffffffffffffff8211171561275b5761275a612706565b5b80604052505050565b5f61276d612547565b90506127798282612733565b919050565b5f67ffffffffffffffff82111561279857612797612706565b5b602082029050602081019050919050565b5f80fd5b5f6127bf6127ba8461277e565b612764565b905080838252602082019050602084028301858111156127e2576127e16127a9565b5b835b8181101561280b57806127f7888261259e565b8452602084019350506020810190506127e4565b5050509392505050565b5f82601f83011261282957612828612702565b5b81356128398482602086016127ad565b91505092915050565b5f6020828403121561285757612856612550565b5b5f82013567ffffffffffffffff81111561287457612873612554565b5b61288084828501612815565b91505092915050565b5f6020828403121561289e5761289d612550565b5b5f6128ab8482850161259e565b91505092915050565b5f80604083850312156128ca576128c9612550565b5b5f6128d7858286016125d1565b92505060206128e8858286016125d1565b9150509250929050565b6128fb81612577565b82525050565b5f6020820190506129145f8301846128f2565b92915050565b5f80604083850312156129305761292f612550565b5b5f61293d8582860161259e565b925050602061294e8582860161259e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129da578086048111156129b6576129b5612958565b5b60018516156129c55780820291505b80810290506129d385612985565b945061299a565b94509492505050565b5f826129f25760019050612aad565b816129ff575f9050612aad565b8160018114612a155760028114612a1f57612a4e565b6001915050612aad565b60ff841115612a3157612a30612958565b5b8360020a915084821115612a4857612a47612958565b5b50612aad565b5060208310610133831016604e8410600b8410161715612a835782820a905083811115612a7e57612a7d612958565b5b612aad565b612a908484846001612991565b92509050818404811115612aa757612aa6612958565b5b81810290505b9392505050565b5f612abe826125b2565b9150612ac9836126ce565b9250612af67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129e3565b905092915050565b5f612b08826125b2565b9150612b13836125b2565b9250828202612b21816125b2565b91508282048414831517612b3857612b37612958565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b736020836124a7565b9150612b7e82612b3f565b602082019050919050565b5f6020820190508181035f830152612ba081612b67565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612bde826125b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c1057612c0f612958565b5b600182019050919050565b5f612c25826126ce565b915060ff8203612c3857612c37612958565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c776017836124a7565b9150612c8282612c43565b602082019050919050565b5f6020820190508181035f830152612ca481612c6b565b9050919050565b5f81519050612cb981612588565b92915050565b5f60208284031215612cd457612cd3612550565b5b5f612ce184828501612cab565b91505092915050565b5f604082019050612cfd5f8301856128f2565b612d0a60208301846128f2565b9392505050565b5f604082019050612d245f8301856128f2565b612d316020830184612656565b9392505050565b612d4181612623565b8114612d4b575f80fd5b50565b5f81519050612d5c81612d38565b92915050565b5f60208284031215612d7757612d76612550565b5b5f612d8484828501612d4e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612de76024836124a7565b9150612df282612d8d565b604082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e756022836124a7565b9150612e8082612e1b565b604082019050919050565b5f6020820190508181035f830152612ea281612e69565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f036025836124a7565b9150612f0e82612ea9565b604082019050919050565b5f6020820190508181035f830152612f3081612ef7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f916023836124a7565b9150612f9c82612f37565b604082019050919050565b5f6020820190508181035f830152612fbe81612f85565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61301f6029836124a7565b915061302a82612fc5565b604082019050919050565b5f6020820190508181035f83015261304c81613013565b9050919050565b7f41646472657373207761732062616e6e656400000000000000000000000000005f82015250565b5f6130876012836124a7565b915061309282613053565b602082019050919050565b5f6020820190508181035f8301526130b48161307b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130ef6019836124a7565b91506130fa826130bb565b602082019050919050565b5f6020820190508181035f83015261311c816130e3565b9050919050565b5f61312d826125b2565b9150613138836125b2565b92508282019050808211156131505761314f612958565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61318a601a836124a7565b915061319582613156565b602082019050919050565b5f6020820190508181035f8301526131b78161317e565b9050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131f26017836124a7565b91506131fd826131be565b602082019050919050565b5f6020820190508181035f83015261321f816131e6565b9050919050565b5f613230826125b2565b915061323b836125b2565b925082820390508181111561325357613252612958565b5b92915050565b5f819050919050565b5f819050919050565b5f61328561328061327b84613259565b613262565b6125b2565b9050919050565b6132958161326b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132cd81612577565b82525050565b5f6132de83836132c4565b60208301905092915050565b5f602082019050919050565b5f6133008261329b565b61330a81856132a5565b9350613315836132b5565b805f5b8381101561334557815161332c88826132d3565b9750613337836132ea565b925050600181019050613318565b5085935050505092915050565b5f60a0820190506133655f830188612656565b613372602083018761328c565b818103604083015261338481866132f6565b905061339360608301856128f2565b6133a06080830184612656565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133e1826125b2565b91506133ec836125b2565b9250826133fc576133fb6133aa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134616021836124a7565b915061346c82613407565b604082019050919050565b5f6020820190508181035f83015261348e81613455565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134c9601b836124a7565b91506134d482613495565b602082019050919050565b5f6020820190508181035f8301526134f6816134bd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d345245f8c25e82b5238b3b7a599d08a3d43064947af6aaae949ab1da31880364736f6c63430008140033

Deployed Bytecode

0x608060405260043610610169575f3560e01c8063715018a6116100d0578063a4fbec3311610089578063bf474bed11610063578063bf474bed146104ea578063c9567bf914610514578063d34628cc1461052a578063dd62ed3e1461055257610170565b8063a4fbec331461045c578063a9059cbb14610486578063b0ce7b19146104c257610170565b8063715018a614610376578063723333561461038c5780637d1db4a5146103b45780638da5cb5b146103de5780638f9a55c01461040857806395d89b411461043257610170565b806331c2d8471161012257806331c2d847146102945780634597c5fe146102bc57806346e519ed146102e657806351bc3c851461030e578063622565891461032457806370a082311461033a57610170565b806306fdde0314610174578063095ea7b31461019e5780630faee56f146101da57806318160ddd1461020457806323b872dd1461022e578063313ce5671461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b5061018861058e565b6040516101959190612527565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf91906125e5565b6105cb565b6040516101d1919061263d565b60405180910390f35b3480156101e5575f80fd5b506101ee6105e8565b6040516101fb9190612665565b60405180910390f35b34801561020f575f80fd5b506102186105ee565b6040516102259190612665565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f919061267e565b610611565b604051610261919061263d565b60405180910390f35b348015610275575f80fd5b5061027e6106e5565b60405161028b91906126e9565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b59190612842565b6106ed565b005b3480156102c7575f80fd5b506102d0610811565b6040516102dd9190612665565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190612889565b610817565b005b348015610319575f80fd5b50610322610902565b005b34801561032f575f80fd5b50610338610999565b005b348015610345575f80fd5b50610360600480360381019061035b9190612889565b610a75565b60405161036d9190612665565b60405180910390f35b348015610381575f80fd5b5061038a610abb565b005b348015610397575f80fd5b506103b260048036038101906103ad91906128b4565b610c09565b005b3480156103bf575f80fd5b506103c8610caf565b6040516103d59190612665565b60405180910390f35b3480156103e9575f80fd5b506103f2610cb5565b6040516103ff9190612901565b60405180910390f35b348015610413575f80fd5b5061041c610cdc565b6040516104299190612665565b60405180910390f35b34801561043d575f80fd5b50610446610ce2565b6040516104539190612527565b60405180910390f35b348015610467575f80fd5b50610470610d1f565b60405161047d9190612665565b60405180910390f35b348015610491575f80fd5b506104ac60048036038101906104a791906125e5565b610d25565b6040516104b9919061263d565b60405180910390f35b3480156104cd575f80fd5b506104e860048036038101906104e39190612842565b610d42565b005b3480156104f5575f80fd5b506104fe610e6d565b60405161050b9190612665565b60405180910390f35b34801561051f575f80fd5b50610528610e73565b005b348015610535575f80fd5b50610550600480360381019061054b9190612842565b6112c2565b005b34801561055d575f80fd5b506105786004803603810190610573919061291a565b6113e7565b6040516105859190612665565b60405180910390f35b60606040518060400160405280600781526020017f5065695065693200000000000000000000000000000000000000000000000000815250905090565b5f6105de6105d7611469565b8484611470565b6001905092915050565b60075481565b5f6012600a6105fd9190612ab4565b633b9aca0061060c9190612afe565b905090565b5f61061d848484611633565b6106da84610629611469565b6106d5856040518060600160405280602881526020016134fe6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61068c611469565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f6b9092919063ffffffff16565b611470565b600190509392505050565b5f6012905090565b6106f5611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077890612b89565b60405180910390fd5b5f5b815181101561080d575f600d5f8484815181106107a3576107a2612ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061080590612bd4565b915050610783565b5050565b60035481565b61081f611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a290612b89565b60405180910390fd5b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610942611469565b73ffffffffffffffffffffffffffffffffffffffff1614610961575f80fd5b5f61096b30610a75565b90505f81111561097f5761097e81611fcd565b5b5f4790505f8111156109955761099481612256565b5b5050565b6109a1611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612b89565b60405180910390fd5b6012600a610a3b9190612ab4565b633b9aca00610a4a9190612afe565b6005819055506012600a610a5e9190612ab4565b633b9aca00610a6d9190612afe565b600681905550565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ac3611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690612b89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c11611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612b89565b60405180910390fd5b81600381905550806004819055505050565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600781526020017f5045495045493200000000000000000000000000000000000000000000000000815250905090565b60045481565b5f610d38610d31611469565b8484611633565b6001905092915050565b610d4a611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90612b89565b60405180910390fd5b5f5b81518160ff161015610e69576001600e5f848460ff1681518110610dff57610dfe612ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610e6190612c1b565b915050610dd8565b5050565b60085481565b610e7b611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90612b89565b60405180910390fd5b601160159054906101000a900460ff1615610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90612c8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ff33060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610fdf9190612ab4565b633b9aca00610fee9190612afe565b611470565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110819190612cbf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611107573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112b9190612cbf565b6040518363ffffffff1660e01b8152600401611148929190612cea565b6020604051808303815f875af1158015611164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111889190612cbf565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611264929190612d11565b6020604051808303815f875af1158015611280573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a49190612d62565b506001601160156101000a81548160ff021916908315150217905550565b6112ca611469565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d90612b89565b60405180910390fd5b5f5b81518110156113e3576001600d5f84848151811061137957611378612ba7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806113db90612bd4565b915050611358565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590612dfd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390612e8b565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116269190612665565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890612f19565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612fa7565b60405180910390fd5b5f8111611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890613035565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806117ed5750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156117fa575f9050611cbb565b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118985750600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce9061309d565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611980575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a64576005548211156119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613105565b60405180910390fd5b600654826119d785610a75565b6119e19190613123565b1115611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a19906131a0565b60405180910390fd5b611a4a6064611a3c600354856122be90919063ffffffff16565b61233590919063ffffffff16565b9050600a5f815480929190611a5e90612bd4565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aec57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b6157600554821115611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90613105565b60405180910390fd5b611b5e6064611b50600454856122be90919063ffffffff16565b61233590919063ffffffff16565b90505b5f611b6b30610a75565b9050601160149054906101000a900460ff16158015611bd6575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bee5750601160159054906101000a900460ff165b8015611bfb575060085481115b8015611c0a5750600954600a54115b15611cb957600c54431115611c21575f600b819055505b6003600b5410611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90613208565b60405180910390fd5b611c83611c7e84611c798460075461237e565b61237e565b611fcd565b5f4790505f811115611c9957611c9847612256565b5b600b5f815480929190611cab90612bd4565b919050555043600c81905550505b505b5f811115611dba57611d138160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461239690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611db19190612665565b60405180910390a35b611e0a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123f390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ead611e6182846123f390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461239690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f5084866123f390919063ffffffff16565b604051611f5d9190612665565b60405180910390a350505050565b5f838311158290611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa99190612527565b60405180910390fd5b505f8385611fc09190613226565b9050809150509392505050565b6001601160146101000a81548160ff0219169083151502179055505f81031561223957601160159054906101000a900460ff1615612239575f600267ffffffffffffffff81111561202157612020612706565b5b60405190808252806020026020018201604052801561204f5781602001602082028036833780820191505090505b50905030815f8151811061206657612065612ba7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612cbf565b8160018151811061214257612141612ba7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a83060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611470565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161220a959493929190613352565b5f604051808303815f87803b158015612221575f80fd5b505af1158015612233573d5f803e3d5ffd5b50505050505b5f601160146101000a81548160ff02191690831515021790555050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122ba573d5f803e3d5ffd5b5050565b5f8083036122ce575f905061232f565b5f82846122db9190612afe565b90508284826122ea91906133d7565b1461232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232190613477565b60405180910390fd5b809150505b92915050565b5f61237683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061243c565b905092915050565b5f81831161238c578261238e565b815b905092915050565b5f8082846123a49190613123565b9050838110156123e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e0906134df565b60405180910390fd5b8091505092915050565b5f61243483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f6b565b905092915050565b5f8083118290612482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124799190612527565b60405180910390fd5b505f838561249091906133d7565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124d45780820151818401526020810190506124b9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124f98261249d565b61250381856124a7565b93506125138185602086016124b7565b61251c816124df565b840191505092915050565b5f6020820190508181035f83015261253f81846124ef565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61258182612558565b9050919050565b61259181612577565b811461259b575f80fd5b50565b5f813590506125ac81612588565b92915050565b5f819050919050565b6125c4816125b2565b81146125ce575f80fd5b50565b5f813590506125df816125bb565b92915050565b5f80604083850312156125fb576125fa612550565b5b5f6126088582860161259e565b9250506020612619858286016125d1565b9150509250929050565b5f8115159050919050565b61263781612623565b82525050565b5f6020820190506126505f83018461262e565b92915050565b61265f816125b2565b82525050565b5f6020820190506126785f830184612656565b92915050565b5f805f6060848603121561269557612694612550565b5b5f6126a28682870161259e565b93505060206126b38682870161259e565b92505060406126c4868287016125d1565b9150509250925092565b5f60ff82169050919050565b6126e3816126ce565b82525050565b5f6020820190506126fc5f8301846126da565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61273c826124df565b810181811067ffffffffffffffff8211171561275b5761275a612706565b5b80604052505050565b5f61276d612547565b90506127798282612733565b919050565b5f67ffffffffffffffff82111561279857612797612706565b5b602082029050602081019050919050565b5f80fd5b5f6127bf6127ba8461277e565b612764565b905080838252602082019050602084028301858111156127e2576127e16127a9565b5b835b8181101561280b57806127f7888261259e565b8452602084019350506020810190506127e4565b5050509392505050565b5f82601f83011261282957612828612702565b5b81356128398482602086016127ad565b91505092915050565b5f6020828403121561285757612856612550565b5b5f82013567ffffffffffffffff81111561287457612873612554565b5b61288084828501612815565b91505092915050565b5f6020828403121561289e5761289d612550565b5b5f6128ab8482850161259e565b91505092915050565b5f80604083850312156128ca576128c9612550565b5b5f6128d7858286016125d1565b92505060206128e8858286016125d1565b9150509250929050565b6128fb81612577565b82525050565b5f6020820190506129145f8301846128f2565b92915050565b5f80604083850312156129305761292f612550565b5b5f61293d8582860161259e565b925050602061294e8582860161259e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129da578086048111156129b6576129b5612958565b5b60018516156129c55780820291505b80810290506129d385612985565b945061299a565b94509492505050565b5f826129f25760019050612aad565b816129ff575f9050612aad565b8160018114612a155760028114612a1f57612a4e565b6001915050612aad565b60ff841115612a3157612a30612958565b5b8360020a915084821115612a4857612a47612958565b5b50612aad565b5060208310610133831016604e8410600b8410161715612a835782820a905083811115612a7e57612a7d612958565b5b612aad565b612a908484846001612991565b92509050818404811115612aa757612aa6612958565b5b81810290505b9392505050565b5f612abe826125b2565b9150612ac9836126ce565b9250612af67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129e3565b905092915050565b5f612b08826125b2565b9150612b13836125b2565b9250828202612b21816125b2565b91508282048414831517612b3857612b37612958565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b736020836124a7565b9150612b7e82612b3f565b602082019050919050565b5f6020820190508181035f830152612ba081612b67565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612bde826125b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c1057612c0f612958565b5b600182019050919050565b5f612c25826126ce565b915060ff8203612c3857612c37612958565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c776017836124a7565b9150612c8282612c43565b602082019050919050565b5f6020820190508181035f830152612ca481612c6b565b9050919050565b5f81519050612cb981612588565b92915050565b5f60208284031215612cd457612cd3612550565b5b5f612ce184828501612cab565b91505092915050565b5f604082019050612cfd5f8301856128f2565b612d0a60208301846128f2565b9392505050565b5f604082019050612d245f8301856128f2565b612d316020830184612656565b9392505050565b612d4181612623565b8114612d4b575f80fd5b50565b5f81519050612d5c81612d38565b92915050565b5f60208284031215612d7757612d76612550565b5b5f612d8484828501612d4e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612de76024836124a7565b9150612df282612d8d565b604082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e756022836124a7565b9150612e8082612e1b565b604082019050919050565b5f6020820190508181035f830152612ea281612e69565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f036025836124a7565b9150612f0e82612ea9565b604082019050919050565b5f6020820190508181035f830152612f3081612ef7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f916023836124a7565b9150612f9c82612f37565b604082019050919050565b5f6020820190508181035f830152612fbe81612f85565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61301f6029836124a7565b915061302a82612fc5565b604082019050919050565b5f6020820190508181035f83015261304c81613013565b9050919050565b7f41646472657373207761732062616e6e656400000000000000000000000000005f82015250565b5f6130876012836124a7565b915061309282613053565b602082019050919050565b5f6020820190508181035f8301526130b48161307b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130ef6019836124a7565b91506130fa826130bb565b602082019050919050565b5f6020820190508181035f83015261311c816130e3565b9050919050565b5f61312d826125b2565b9150613138836125b2565b92508282019050808211156131505761314f612958565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61318a601a836124a7565b915061319582613156565b602082019050919050565b5f6020820190508181035f8301526131b78161317e565b9050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131f26017836124a7565b91506131fd826131be565b602082019050919050565b5f6020820190508181035f83015261321f816131e6565b9050919050565b5f613230826125b2565b915061323b836125b2565b925082820390508181111561325357613252612958565b5b92915050565b5f819050919050565b5f819050919050565b5f61328561328061327b84613259565b613262565b6125b2565b9050919050565b6132958161326b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132cd81612577565b82525050565b5f6132de83836132c4565b60208301905092915050565b5f602082019050919050565b5f6133008261329b565b61330a81856132a5565b9350613315836132b5565b805f5b8381101561334557815161332c88826132d3565b9750613337836132ea565b925050600181019050613318565b5085935050505092915050565b5f60a0820190506133655f830188612656565b613372602083018761328c565b818103604083015261338481866132f6565b905061339360608301856128f2565b6133a06080830184612656565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133e1826125b2565b91506133ec836125b2565b9250826133fc576133fb6133aa565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6134616021836124a7565b915061346c82613407565b604082019050919050565b5f6020820190508181035f83015261348e81613455565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6134c9601b836124a7565b91506134d482613495565b602082019050919050565b5f6020820190508181035f8301526134f6816134bd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205d345245f8c25e82b5238b3b7a599d08a3d43064947af6aaae949ab1da31880364736f6c63430008140033

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.