ETH Price: $2,415.45 (-0.09%)
Gas: 2.94 Gwei

Contract

0x220D31642f5bcdce96659abf7B98238D551E0167
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve193314922024-02-29 6:49:11219 days ago1709189351IN
0x220D3164...D551E0167
0 ETH0.0029617662.81310094
Approve189949312024-01-13 2:16:23267 days ago1705112183IN
0x220D3164...D551E0167
0 ETH0.0006897414.63927646
Approve189949132024-01-13 2:12:47267 days ago1705111967IN
0x220D3164...D551E0167
0 ETH0.000749815.89370585
Approve189948922024-01-13 2:08:35267 days ago1705111715IN
0x220D3164...D551E0167
0 ETH0.0007327415.55199212
Approve189948892024-01-13 2:07:47267 days ago1705111667IN
0x220D3164...D551E0167
0 ETH0.0007846416.63229635
Approve189948872024-01-13 2:07:23267 days ago1705111643IN
0x220D3164...D551E0167
0 ETH0.0006781914.39411804
Approve189948612024-01-13 2:02:11267 days ago1705111331IN
0x220D3164...D551E0167
0 ETH0.0006622914.0567113
Approve189948602024-01-13 2:01:59267 days ago1705111319IN
0x220D3164...D551E0167
0 ETH0.0009012819.10471251
Approve189948342024-01-13 1:56:47267 days ago1705111007IN
0x220D3164...D551E0167
0 ETH0.0007006714.96665864
Approve189948222024-01-13 1:54:23267 days ago1705110863IN
0x220D3164...D551E0167
0 ETH0.0008566718.15923243
Approve189948102024-01-13 1:51:59267 days ago1705110719IN
0x220D3164...D551E0167
0 ETH0.0008486617.98926138
Approve189948042024-01-13 1:50:47267 days ago1705110647IN
0x220D3164...D551E0167
0 ETH0.0009033419.1484402
Approve189948022024-01-13 1:50:23267 days ago1705110623IN
0x220D3164...D551E0167
0 ETH0.0007556616.03844033
Approve189947892024-01-13 1:47:47267 days ago1705110467IN
0x220D3164...D551E0167
0 ETH0.0009072319.23096356
Approve189947852024-01-13 1:46:59267 days ago1705110419IN
0x220D3164...D551E0167
0 ETH0.0008410317.82764387
Approve189947812024-01-13 1:46:11267 days ago1705110371IN
0x220D3164...D551E0167
0 ETH0.0007222515.32939314
Approve189947802024-01-13 1:45:59267 days ago1705110359IN
0x220D3164...D551E0167
0 ETH0.0008599318.228216
Approve189947792024-01-13 1:45:47267 days ago1705110347IN
0x220D3164...D551E0167
0 ETH0.000967220.50208093
Approve189947782024-01-13 1:45:35267 days ago1705110335IN
0x220D3164...D551E0167
0 ETH0.0008567218.16015883
Approve189947782024-01-13 1:45:35267 days ago1705110335IN
0x220D3164...D551E0167
0 ETH0.0008567218.16015883
Approve189947772024-01-13 1:45:23267 days ago1705110323IN
0x220D3164...D551E0167
0 ETH0.0007474915.96672844
Approve189947742024-01-13 1:44:47267 days ago1705110287IN
0x220D3164...D551E0167
0 ETH0.0007803216.56184852
Approve189947732024-01-13 1:44:35267 days ago1705110275IN
0x220D3164...D551E0167
0 ETH0.0009295119.70317314
Approve189947712024-01-13 1:44:11267 days ago1705110251IN
0x220D3164...D551E0167
0 ETH0.0012066625.57795754
Approve189947712024-01-13 1:44:11267 days ago1705110251IN
0x220D3164...D551E0167
0 ETH0.0012066625.57795754
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
193314922024-02-29 6:49:11219 days ago1709189351
0x220D3164...D551E0167
0 ETH
193314922024-02-29 6:49:11219 days ago1709189351
0x220D3164...D551E0167
0 ETH
189949112024-01-13 2:12:23267 days ago1705111943
0x220D3164...D551E0167
0 ETH
189949112024-01-13 2:12:23267 days ago1705111943
0x220D3164...D551E0167
0 ETH
189949052024-01-13 2:11:11267 days ago1705111871
0x220D3164...D551E0167
0.04633658 ETH
189949052024-01-13 2:11:11267 days ago1705111871
0x220D3164...D551E0167
0.04633658 ETH
189949022024-01-13 2:10:35267 days ago1705111835
0x220D3164...D551E0167
0.05131909 ETH
189949022024-01-13 2:10:35267 days ago1705111835
0x220D3164...D551E0167
0.05131909 ETH
189949012024-01-13 2:10:23267 days ago1705111823
0x220D3164...D551E0167
0.04360302 ETH
189949012024-01-13 2:10:23267 days ago1705111823
0x220D3164...D551E0167
0.04360302 ETH
189949012024-01-13 2:10:23267 days ago1705111823
0x220D3164...D551E0167
0.05480531 ETH
189949012024-01-13 2:10:23267 days ago1705111823
0x220D3164...D551E0167
0.05480531 ETH
189949012024-01-13 2:10:23267 days ago1705111823
0x220D3164...D551E0167
0.05966622 ETH
189949012024-01-13 2:10:23267 days ago1705111823
0x220D3164...D551E0167
0.05966622 ETH
189948992024-01-13 2:09:59267 days ago1705111799
0x220D3164...D551E0167
0.02928111 ETH
189948992024-01-13 2:09:59267 days ago1705111799
0x220D3164...D551E0167
0.02928111 ETH
189948942024-01-13 2:08:59267 days ago1705111739
0x220D3164...D551E0167
0.06145217 ETH
189948942024-01-13 2:08:59267 days ago1705111739
0x220D3164...D551E0167
0.06145217 ETH
189948942024-01-13 2:08:59267 days ago1705111739
0x220D3164...D551E0167
0.03894388 ETH
189948942024-01-13 2:08:59267 days ago1705111739
0x220D3164...D551E0167
0.03894388 ETH
189948932024-01-13 2:08:47267 days ago1705111727
0x220D3164...D551E0167
0.02440505 ETH
189948932024-01-13 2:08:47267 days ago1705111727
0x220D3164...D551E0167
0.02440505 ETH
189948922024-01-13 2:08:35267 days ago1705111715
0x220D3164...D551E0167
0.01526299 ETH
189948922024-01-13 2:08:35267 days ago1705111715
0x220D3164...D551E0167
0.01526299 ETH
189948912024-01-13 2:08:11267 days ago1705111691
0x220D3164...D551E0167
0.07164716 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OrdiX

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : OrdiXV2.sol
/*
    https://ordix.io
    https://docs.ordix.io
    https://twitter.com/OrdiXProtocol
    https://t.me/ordixportal
    https://t.me/OrdiXBot
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

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

contract Ownable {
    error NotOwner();

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        if (_owner != msg.sender) revert NotOwner();
        _;
    }

    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 OrdiX is IERC20, Ownable {
    error TradingAlreadyOpen();
    error ZeroAddress();
    error ZeroAmount();
    error ZeroValue();
    error ZeroToken();
    error TaxTooHigh();
    error NotSelf();
    error Unauthorized();
    error SupplyExceeded();

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromLimits;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    uint256 private _firstBlock;

    uint256 private _initialBuyTax = 30;
    uint256 private _initialSellTax = 50;
    uint256 private _finalBuyTax = 15;
    uint256 private _finalSellTax = 20;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 25;
    uint256 private _preventSwapBefore = 50;
    uint256 private _buyCount = 0;

    uint8 private constant _DECIMALS = 9;
    uint256 private constant _TOTAL = 1000000000 * 10 ** _DECIMALS;
    string private constant _NAME = unicode"OrdiX";
    string private constant _SYMBOL = unicode"ORDIX";
    uint256 public maxTx = 20000000 * 10 ** _DECIMALS;
    uint256 public maxWallet = 20000000 * 10 ** _DECIMALS;
    uint256 public swapThreshold = 10000000 * 10 ** _DECIMALS;
    uint256 public maxTaxSwap = 10000000 * 10 ** _DECIMALS;

    IUniswapV2Router02 private constant _UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private _uniswapV2Pair;
    bool public lpAdded;
    bool private _inSwap = false;
    bool private _swapEnabled = false;

    event MaxTxAmountUpdated(uint256 maxTx);

    constructor() {
        _taxWallet = payable(msg.sender);
        _balances[msg.sender] = _TOTAL;

        _isExcludedFromLimits[tx.origin] = true;
        _isExcludedFromLimits[address(0)] = true;
        _isExcludedFromLimits[address(0xdead)] = true;
        _isExcludedFromLimits[address(this)] = true;
        _isExcludedFromLimits[address(_UNISWAP_V2_ROUTER)] = true;

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[tx.origin] = true;

        emit Transfer(address(0), msg.sender, _TOTAL);
    }

    receive() external payable {}

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        if (owner == address(0)) revert ZeroAddress();
        if (spender == address(0)) revert ZeroAddress();
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        if (from == address(0)) revert ZeroAddress();
        if (to == address(0)) revert ZeroAddress();
        if (amount == 0) revert ZeroAmount();

        require(!bots[from] && !bots[to], "bots");

        if (maxWallet != _TOTAL && !_isExcludedFromLimits[to]) {
            require(balanceOf(to) + amount <= maxWallet, "Exceeds maxWallet");
        }

        if (maxTx != _TOTAL && !_isExcludedFromLimits[from]) {
            require(amount <= maxTx, "Exceeds maxTx");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !_inSwap && contractTokenBalance >= swapThreshold && _swapEnabled && _buyCount > _preventSwapBefore
                && to == _uniswapV2Pair && !_isExcludedFromFee[from]
        ) {
            _swapTokensForEth(_min(amount, _min(contractTokenBalance, maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                _sendETHToFee(contractETHBalance);
            }
        }

        uint256 taxAmount = 0;
        if (!_inSwap && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            // sell
            if (to == _uniswapV2Pair) {
                taxAmount = (amount * ((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax)) / 100;
            }
            // buy
            else if (from == _uniswapV2Pair) {
                if (_firstBlock + 25 > block.number) {
                    require(!_isContract(to), "contract");
                }
                taxAmount = (amount * ((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax)) / 100;
                ++_buyCount;
            }
        }

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

    function removeLimits() external onlyOwner {
        maxTx = _TOTAL;
        maxWallet = _TOTAL;
        emit MaxTxAmountUpdated(_TOTAL);
    }

    function setBots(address[] memory bots_, bool isBot_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = isBot_;
        }
    }

    function openTrading(uint256 amount) external payable onlyOwner {
        if (lpAdded) revert TradingAlreadyOpen();
        if (msg.value == 0) revert ZeroValue();
        if (amount == 0) revert ZeroToken();
        _transfer(msg.sender, address(this), amount);
        _approve(address(this), address(_UNISWAP_V2_ROUTER), _TOTAL);

        _uniswapV2Pair =
            IUniswapV2Factory(_UNISWAP_V2_ROUTER.factory()).createPair(address(this), _UNISWAP_V2_ROUTER.WETH());
        _isExcludedFromLimits[_uniswapV2Pair] = true;

        _UNISWAP_V2_ROUTER.addLiquidityETH{value: address(this).balance}(
            address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp
        );
        IERC20(_uniswapV2Pair).approve(address(_UNISWAP_V2_ROUTER), type(uint256).max);
        _swapEnabled = true;
        lpAdded = true;
        _firstBlock = block.number;
    }

    function lowerTaxes(uint256 buyTax_, uint256 sellTax_) external onlyOwner {
        if (buyTax_ > _finalBuyTax) { revert TaxTooHigh(); }
        if (sellTax_ > _finalSellTax) { revert TaxTooHigh(); }

        _finalBuyTax = buyTax_;
        _finalSellTax = sellTax_;
    }

    struct Airdrop {
        uint256 amount;
        address addr;
    }

    function airdrop(Airdrop[] calldata arr) external onlyOwner {
        uint256 _totalSupply = totalSupply();
        uint256 _amount = 0;
        for (uint256 i = 0; i < arr.length; i++) {
            _amount += arr[i].amount;
            if (_totalSupply + _amount > _TOTAL) revert SupplyExceeded();
            uint256 _b = _balances[arr[i].addr];
            _balances[arr[i].addr] = _b + arr[i].amount;
        }
    }

    function clearStuck() external {
        (bool success,) = _taxWallet.call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckSelfToken() external {
        if (msg.sender != _taxWallet) { revert Unauthorized(); }
        _transfer(address(this), _taxWallet, balanceOf(address(this)));
    }

    function clearStuckToken(address token) external {
        if (token == address(this)) { revert NotSelf(); }
        IERC20(token).transfer(_taxWallet, IERC20(token).balanceOf(address(this)));
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

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

    function _isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        _inSwap = true;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _UNISWAP_V2_ROUTER.WETH();
        _approve(address(this), address(_UNISWAP_V2_ROUTER), tokenAmount);
        _UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount, 0, path, address(this), block.timestamp
        );
        _inSwap = false;
    }

    function _sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
}

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"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NotSelf","type":"error"},{"inputs":[],"name":"SupplyExceeded","type":"error"},{"inputs":[],"name":"TaxTooHigh","type":"error"},{"inputs":[],"name":"TradingAlreadyOpen","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"inputs":[],"name":"ZeroToken","type":"error"},{"inputs":[],"name":"ZeroValue","type":"error"},{"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":"maxTx","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":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"internalType":"struct OrdiX.Airdrop[]","name":"arr","type":"tuple[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckSelfToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax_","type":"uint256"},{"internalType":"uint256","name":"sellTax_","type":"uint256"}],"name":"lowerTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"isBot_","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}]

6080604052601e6008556032600955600f600a556014600b556014600c556019600d556032600e555f600f556009600a6200003b9190620006c2565b6301312d006200004c919062000712565b6010556009600a6200005f9190620006c2565b6301312d0062000070919062000712565b6011556009600a620000839190620006c2565b6298968062000093919062000712565b6012556009600a620000a69190620006c2565b62989680620000b6919062000712565b6013555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000f9575f80fd5b505f339050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001e89190620006c2565b633b9aca00620001f9919062000712565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620005029190620006c2565b633b9aca0062000513919062000712565b6040516200052291906200076d565b60405180910390a362000788565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005ba5780860481111562000592576200059162000530565b5b6001851615620005a25780820291505b8081029050620005b2856200055d565b945062000572565b94509492505050565b5f82620005d45760019050620006a6565b81620005e3575f9050620006a6565b8160018114620005fc576002811462000607576200063d565b6001915050620006a6565b60ff8411156200061c576200061b62000530565b5b8360020a91508482111562000636576200063562000530565b5b50620006a6565b5060208310610133831016604e8410600b8410161715620006775782820a90508381111562000671576200067062000530565b5b620006a6565b62000686848484600162000569565b92509050818404811115620006a0576200069f62000530565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006ce82620006ad565b9150620006db83620006b6565b92506200070a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c3565b905092915050565b5f6200071e82620006ad565b91506200072b83620006ad565b92508282026200073b81620006ad565b9150828204841483151762000755576200075462000530565b5b5092915050565b6200076781620006ad565b82525050565b5f602082019050620007825f8301846200075c565b92915050565b6133e080620007965f395ff3fe608060405260043610610169575f3560e01c8063751039fc116100d0578063a9059cbb11610089578063d163364911610063578063d1633649146104fc578063da2963ed14610518578063dd62ed3e1461052e578063f8b45b051461056a57610170565b8063a9059cbb1461046e578063af8deddb146104aa578063baeeeab1146104d457610170565b8063751039fc1461039e5780638da5cb5b146103b45780638de5c064146103de57806395d89b41146103f45780639be953b31461041e5780639c0db5f31461044657610170565b80633bbac579116101225780633bbac5791461029457806357d0a982146102d057806362997f8c146102f857806370a0823114610322578063715018a61461035e5780637437681e1461037457610170565b80630445b6671461017457806306fdde031461019e578063095ea7b3146101c857806318160ddd1461020457806323b872dd1461022e578063313ce5671461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610594565b6040516101959190612578565b60405180910390f35b3480156101a9575f80fd5b506101b261059a565b6040516101bf919061261b565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e991906126d0565b6105d7565b6040516101fb9190612728565b60405180910390f35b34801561020f575f80fd5b506102186105ed565b6040516102259190612578565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190612741565b610610565b6040516102619190612728565b60405180910390f35b348015610275575f80fd5b5061027e6106b5565b60405161028b91906127ac565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b591906127c5565b6106bd565b6040516102c79190612728565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f191906127f0565b61070f565b005b348015610303575f80fd5b5061030c61081d565b6040516103199190612578565b60405180910390f35b34801561032d575f80fd5b50610348600480360381019061034391906127c5565b610823565b6040516103559190612578565b60405180910390f35b348015610369575f80fd5b50610372610869565b005b34801561037f575f80fd5b506103886109a7565b6040516103959190612578565b60405180910390f35b3480156103a9575f80fd5b506103b26109ad565b005b3480156103bf575f80fd5b506103c8610acc565b6040516103d5919061283d565b60405180910390f35b3480156103e9575f80fd5b506103f2610af3565b005b3480156103ff575f80fd5b50610408610b88565b604051610415919061261b565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f91906127c5565b610bc5565b005b348015610451575f80fd5b5061046c600480360381019061046791906129c0565b610d41565b005b348015610479575f80fd5b50610494600480360381019061048f91906126d0565b610e50565b6040516104a19190612728565b60405180910390f35b3480156104b5575f80fd5b506104be610e66565b6040516104cb9190612728565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190612a73565b610e77565b005b61051660048036038101906105119190612abe565b6110b0565b005b348015610523575f80fd5b5061052c61161c565b005b348015610539575f80fd5b50610554600480360381019061054f9190612ae9565b6116d8565b6040516105619190612578565b60405180910390f35b348015610575575f80fd5b5061057e61175a565b60405161058b9190612578565b60405180910390f35b60125481565b60606040518060400160405280600581526020017f4f72646958000000000000000000000000000000000000000000000000000000815250905090565b5f6105e3338484611760565b6001905092915050565b5f6009600a6105fc9190612c83565b633b9aca0061060b9190612ccd565b905090565b5f61069f84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461069a9190612d0e565b611760565b6106aa848484611911565b600190509392505050565b5f6009905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610793576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a548211156107cf576040517faf1ee13400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b5481111561080b576040517faf1ee13400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a8190555080600b819055505050565b60135481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a31576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009600a610a3f9190612c83565b633b9aca00610a4e9190612ccd565b6010819055506009600a610a629190612c83565b633b9aca00610a719190612ccd565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610aa69190612c83565b633b9aca00610ab59190612ccd565b604051610ac29190612578565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610b3990612d6e565b5f6040518083038185875af1925050503d805f8114610b73576040519150601f19603f3d011682016040523d82523d5f602084013e610b78565b606091505b5050905080610b85575f80fd5b50565b60606040518060400160405280600581526020017f4f52444958000000000000000000000000000000000000000000000000000000815250905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c2a576040517f29c3b7ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ca1919061283d565b602060405180830381865afa158015610cbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce09190612d96565b6040518363ffffffff1660e01b8152600401610cfd929190612e1c565b6020604051808303815f875af1158015610d19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3d9190612e57565b5050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc5576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8251811015610e4b578160055f858481518110610de757610de6612e82565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610dc7565b505050565b5f610e5c338484611911565b6001905092915050565b60148054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efb576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610f046105ed565b90505f805b848490508110156110a957848482818110610f2757610f26612e82565b5b9050604002015f013582610f3b9190612eaf565b91506009600a610f4b9190612c83565b633b9aca00610f5a9190612ccd565b8284610f669190612eaf565b1115610f9e576040517f7d3d824900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015f878785818110610fb557610fb4612e82565b5b9050604002016020016020810190610fcd91906127c5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905085858381811061101c5761101b612e82565b5b9050604002015f0135816110309190612eaf565b60015f88888681811061104657611045612e82565b5b905060400201602001602081019061105e91906127c5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508080600101915050610f09565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611134576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60148054906101000a900460ff1615611179576040517f94215aac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f34036111b2576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81036111eb576040517fad1991f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111f6333083611911565b61123130737a250d5630b4cf539739df2c5dacb4c659f2488d6009600a61121d9190612c83565b633b9aca0061122c9190612ccd565b611760565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b29190612ef6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134f9190612ef6565b6040518363ffffffff1660e01b815260040161136c929190612f21565b6020604051808303815f875af1158015611388573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ac9190612ef6565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719473061149c30610823565b5f806114a6610acc565b426040518863ffffffff1660e01b81526004016114c896959493929190612f81565b60606040518083038185885af11580156114e4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115099190612fe0565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161159c929190613030565b6020604051808303815f875af11580156115b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115dc9190612e57565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055504360078190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116d63060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116d130610823565b611911565b565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361182a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119049190612578565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611976576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119db576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103611a14576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ab2575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906130a1565b60405180910390fd5b6009600a611aff9190612c83565b633b9aca00611b0e9190612ccd565b60115414158015611b66575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bc45760115481611b7884610823565b611b829190612eaf565b1115611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90613109565b60405180910390fd5b5b6009600a611bd29190612c83565b633b9aca00611be19190612ccd565b60105414158015611c39575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c8457601054811115611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90613171565b60405180910390fd5b5b5f611c8e30610823565b9050601460159054906101000a900460ff16158015611caf57506012548110155b8015611cc75750601460169054906101000a900460ff165b8015611cd65750600e54600f54115b8015611d2e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611d81575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dbb57611da3611d9e83611d998460135461228b565b61228b565b6122a3565b5f4790505f811115611db957611db8816124e7565b5b505b5f601460159054906101000a900460ff16158015611e20575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e73575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ffd5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f01576064600d54600f5411611ee157600954611ee5565b600b545b84611ef09190612ccd565b611efa91906131bc565b9050611ffc565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ffb57436019600754611f659190612eaf565b1115611fb557611f748461254f565b15611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613236565b60405180910390fd5b5b6064600c54600f5411611fca57600854611fce565b600a545b84611fd99190612ccd565b611fe391906131bc565b9050600f5f8154611ff390613254565b919050819055505b5b5b5f8111156120f5578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461204e9190612eaf565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ec9190612578565b60405180910390a35b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461213e9190612d0e565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550808360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c99190612eaf565b6121d39190612d0e565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661226f9190612d0e565b60405161227c9190612578565b60405180910390a35050505050565b5f818311612299578261229b565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122da576122d961285a565b5b6040519080825280602002602001820160405280156123085781602001602082028036833780820191505090505b50905030815f8151811061231f5761231e612e82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123da9190612ef6565b816001815181106123ee576123ed612e82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061244730737a250d5630b4cf539739df2c5dacb4c659f2488d84611760565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161249c959493929190613352565b5f604051808303815f87803b1580156124b3575f80fd5b505af11580156124c5573d5f803e3d5ffd5b505050505f601460156101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561254b573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f819050919050565b61257281612560565b82525050565b5f60208201905061258b5f830184612569565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125c85780820151818401526020810190506125ad565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ed82612591565b6125f7818561259b565b93506126078185602086016125ab565b612610816125d3565b840191505092915050565b5f6020820190508181035f83015261263381846125e3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126758261264c565b9050919050565b6126858161266b565b811461268f575f80fd5b50565b5f813590506126a08161267c565b92915050565b6126af81612560565b81146126b9575f80fd5b50565b5f813590506126ca816126a6565b92915050565b5f80604083850312156126e6576126e5612644565b5b5f6126f385828601612692565b9250506020612704858286016126bc565b9150509250929050565b5f8115159050919050565b6127228161270e565b82525050565b5f60208201905061273b5f830184612719565b92915050565b5f805f6060848603121561275857612757612644565b5b5f61276586828701612692565b935050602061277686828701612692565b9250506040612787868287016126bc565b9150509250925092565b5f60ff82169050919050565b6127a681612791565b82525050565b5f6020820190506127bf5f83018461279d565b92915050565b5f602082840312156127da576127d9612644565b5b5f6127e784828501612692565b91505092915050565b5f806040838503121561280657612805612644565b5b5f612813858286016126bc565b9250506020612824858286016126bc565b9150509250929050565b6128378161266b565b82525050565b5f6020820190506128505f83018461282e565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612890826125d3565b810181811067ffffffffffffffff821117156128af576128ae61285a565b5b80604052505050565b5f6128c161263b565b90506128cd8282612887565b919050565b5f67ffffffffffffffff8211156128ec576128eb61285a565b5b602082029050602081019050919050565b5f80fd5b5f61291361290e846128d2565b6128b8565b90508083825260208201905060208402830185811115612936576129356128fd565b5b835b8181101561295f578061294b8882612692565b845260208401935050602081019050612938565b5050509392505050565b5f82601f83011261297d5761297c612856565b5b813561298d848260208601612901565b91505092915050565b61299f8161270e565b81146129a9575f80fd5b50565b5f813590506129ba81612996565b92915050565b5f80604083850312156129d6576129d5612644565b5b5f83013567ffffffffffffffff8111156129f3576129f2612648565b5b6129ff85828601612969565b9250506020612a10858286016129ac565b9150509250929050565b5f80fd5b5f8083601f840112612a3357612a32612856565b5b8235905067ffffffffffffffff811115612a5057612a4f612a1a565b5b602083019150836040820283011115612a6c57612a6b6128fd565b5b9250929050565b5f8060208385031215612a8957612a88612644565b5b5f83013567ffffffffffffffff811115612aa657612aa5612648565b5b612ab285828601612a1e565b92509250509250929050565b5f60208284031215612ad357612ad2612644565b5b5f612ae0848285016126bc565b91505092915050565b5f8060408385031215612aff57612afe612644565b5b5f612b0c85828601612692565b9250506020612b1d85828601612692565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612ba957808604811115612b8557612b84612b27565b5b6001851615612b945780820291505b8081029050612ba285612b54565b9450612b69565b94509492505050565b5f82612bc15760019050612c7c565b81612bce575f9050612c7c565b8160018114612be45760028114612bee57612c1d565b6001915050612c7c565b60ff841115612c0057612bff612b27565b5b8360020a915084821115612c1757612c16612b27565b5b50612c7c565b5060208310610133831016604e8410600b8410161715612c525782820a905083811115612c4d57612c4c612b27565b5b612c7c565b612c5f8484846001612b60565b92509050818404811115612c7657612c75612b27565b5b81810290505b9392505050565b5f612c8d82612560565b9150612c9883612791565b9250612cc57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612bb2565b905092915050565b5f612cd782612560565b9150612ce283612560565b9250828202612cf081612560565b91508282048414831517612d0757612d06612b27565b5b5092915050565b5f612d1882612560565b9150612d2383612560565b9250828203905081811115612d3b57612d3a612b27565b5b92915050565b5f81905092915050565b50565b5f612d595f83612d41565b9150612d6482612d4b565b5f82019050919050565b5f612d7882612d4e565b9150819050919050565b5f81519050612d90816126a6565b92915050565b5f60208284031215612dab57612daa612644565b5b5f612db884828501612d82565b91505092915050565b5f819050919050565b5f612de4612ddf612dda8461264c565b612dc1565b61264c565b9050919050565b5f612df582612dca565b9050919050565b5f612e0682612deb565b9050919050565b612e1681612dfc565b82525050565b5f604082019050612e2f5f830185612e0d565b612e3c6020830184612569565b9392505050565b5f81519050612e5181612996565b92915050565b5f60208284031215612e6c57612e6b612644565b5b5f612e7984828501612e43565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612eb982612560565b9150612ec483612560565b9250828201905080821115612edc57612edb612b27565b5b92915050565b5f81519050612ef08161267c565b92915050565b5f60208284031215612f0b57612f0a612644565b5b5f612f1884828501612ee2565b91505092915050565b5f604082019050612f345f83018561282e565b612f41602083018461282e565b9392505050565b5f819050919050565b5f612f6b612f66612f6184612f48565b612dc1565b612560565b9050919050565b612f7b81612f51565b82525050565b5f60c082019050612f945f83018961282e565b612fa16020830188612569565b612fae6040830187612f72565b612fbb6060830186612f72565b612fc8608083018561282e565b612fd560a0830184612569565b979650505050505050565b5f805f60608486031215612ff757612ff6612644565b5b5f61300486828701612d82565b935050602061301586828701612d82565b925050604061302686828701612d82565b9150509250925092565b5f6040820190506130435f83018561282e565b6130506020830184612569565b9392505050565b7f626f7473000000000000000000000000000000000000000000000000000000005f82015250565b5f61308b60048361259b565b915061309682613057565b602082019050919050565b5f6020820190508181035f8301526130b88161307f565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f6130f360118361259b565b91506130fe826130bf565b602082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b7f45786365656473206d61785478000000000000000000000000000000000000005f82015250565b5f61315b600d8361259b565b915061316682613127565b602082019050919050565b5f6020820190508181035f8301526131888161314f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c682612560565b91506131d183612560565b9250826131e1576131e061318f565b5b828204905092915050565b7f636f6e74726163740000000000000000000000000000000000000000000000005f82015250565b5f61322060088361259b565b915061322b826131ec565b602082019050919050565b5f6020820190508181035f83015261324d81613214565b9050919050565b5f61325e82612560565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132905761328f612b27565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132cd8161266b565b82525050565b5f6132de83836132c4565b60208301905092915050565b5f602082019050919050565b5f6133008261329b565b61330a81856132a5565b9350613315836132b5565b805f5b8381101561334557815161332c88826132d3565b9750613337836132ea565b925050600181019050613318565b5085935050505092915050565b5f60a0820190506133655f830188612569565b6133726020830187612f72565b818103604083015261338481866132f6565b9050613393606083018561282e565b6133a06080830184612569565b969550505050505056fea264697066735822122017485e912f45e5e220aed05c85398c3fd3cdffad2cd3f121ee8c7291bfdd3b0164736f6c63430008170033

Deployed Bytecode

0x608060405260043610610169575f3560e01c8063751039fc116100d0578063a9059cbb11610089578063d163364911610063578063d1633649146104fc578063da2963ed14610518578063dd62ed3e1461052e578063f8b45b051461056a57610170565b8063a9059cbb1461046e578063af8deddb146104aa578063baeeeab1146104d457610170565b8063751039fc1461039e5780638da5cb5b146103b45780638de5c064146103de57806395d89b41146103f45780639be953b31461041e5780639c0db5f31461044657610170565b80633bbac579116101225780633bbac5791461029457806357d0a982146102d057806362997f8c146102f857806370a0823114610322578063715018a61461035e5780637437681e1461037457610170565b80630445b6671461017457806306fdde031461019e578063095ea7b3146101c857806318160ddd1461020457806323b872dd1461022e578063313ce5671461026a57610170565b3661017057005b5f80fd5b34801561017f575f80fd5b50610188610594565b6040516101959190612578565b60405180910390f35b3480156101a9575f80fd5b506101b261059a565b6040516101bf919061261b565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e991906126d0565b6105d7565b6040516101fb9190612728565b60405180910390f35b34801561020f575f80fd5b506102186105ed565b6040516102259190612578565b60405180910390f35b348015610239575f80fd5b50610254600480360381019061024f9190612741565b610610565b6040516102619190612728565b60405180910390f35b348015610275575f80fd5b5061027e6106b5565b60405161028b91906127ac565b60405180910390f35b34801561029f575f80fd5b506102ba60048036038101906102b591906127c5565b6106bd565b6040516102c79190612728565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f191906127f0565b61070f565b005b348015610303575f80fd5b5061030c61081d565b6040516103199190612578565b60405180910390f35b34801561032d575f80fd5b50610348600480360381019061034391906127c5565b610823565b6040516103559190612578565b60405180910390f35b348015610369575f80fd5b50610372610869565b005b34801561037f575f80fd5b506103886109a7565b6040516103959190612578565b60405180910390f35b3480156103a9575f80fd5b506103b26109ad565b005b3480156103bf575f80fd5b506103c8610acc565b6040516103d5919061283d565b60405180910390f35b3480156103e9575f80fd5b506103f2610af3565b005b3480156103ff575f80fd5b50610408610b88565b604051610415919061261b565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f91906127c5565b610bc5565b005b348015610451575f80fd5b5061046c600480360381019061046791906129c0565b610d41565b005b348015610479575f80fd5b50610494600480360381019061048f91906126d0565b610e50565b6040516104a19190612728565b60405180910390f35b3480156104b5575f80fd5b506104be610e66565b6040516104cb9190612728565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190612a73565b610e77565b005b61051660048036038101906105119190612abe565b6110b0565b005b348015610523575f80fd5b5061052c61161c565b005b348015610539575f80fd5b50610554600480360381019061054f9190612ae9565b6116d8565b6040516105619190612578565b60405180910390f35b348015610575575f80fd5b5061057e61175a565b60405161058b9190612578565b60405180910390f35b60125481565b60606040518060400160405280600581526020017f4f72646958000000000000000000000000000000000000000000000000000000815250905090565b5f6105e3338484611760565b6001905092915050565b5f6009600a6105fc9190612c83565b633b9aca0061060b9190612ccd565b905090565b5f61069f84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461069a9190612d0e565b611760565b6106aa848484611911565b600190509392505050565b5f6009905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610793576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a548211156107cf576040517faf1ee13400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b5481111561080b576040517faf1ee13400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600a8190555080600b819055505050565b60135481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a31576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009600a610a3f9190612c83565b633b9aca00610a4e9190612ccd565b6010819055506009600a610a629190612c83565b633b9aca00610a719190612ccd565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610aa69190612c83565b633b9aca00610ab59190612ccd565b604051610ac29190612578565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610b3990612d6e565b5f6040518083038185875af1925050503d805f8114610b73576040519150601f19603f3d011682016040523d82523d5f602084013e610b78565b606091505b5050905080610b85575f80fd5b50565b60606040518060400160405280600581526020017f4f52444958000000000000000000000000000000000000000000000000000000815250905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c2a576040517f29c3b7ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ca1919061283d565b602060405180830381865afa158015610cbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce09190612d96565b6040518363ffffffff1660e01b8152600401610cfd929190612e1c565b6020604051808303815f875af1158015610d19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3d9190612e57565b5050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc5576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8251811015610e4b578160055f858481518110610de757610de6612e82565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610dc7565b505050565b5f610e5c338484611911565b6001905092915050565b60148054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efb576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610f046105ed565b90505f805b848490508110156110a957848482818110610f2757610f26612e82565b5b9050604002015f013582610f3b9190612eaf565b91506009600a610f4b9190612c83565b633b9aca00610f5a9190612ccd565b8284610f669190612eaf565b1115610f9e576040517f7d3d824900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015f878785818110610fb557610fb4612e82565b5b9050604002016020016020810190610fcd91906127c5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905085858381811061101c5761101b612e82565b5b9050604002015f0135816110309190612eaf565b60015f88888681811061104657611045612e82565b5b905060400201602001602081019061105e91906127c5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550508080600101915050610f09565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611134576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60148054906101000a900460ff1615611179576040517f94215aac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f34036111b2576040517f7c946ed700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81036111eb576040517fad1991f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111f6333083611911565b61123130737a250d5630b4cf539739df2c5dacb4c659f2488d6009600a61121d9190612c83565b633b9aca0061122c9190612ccd565b611760565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b29190612ef6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134f9190612ef6565b6040518363ffffffff1660e01b815260040161136c929190612f21565b6020604051808303815f875af1158015611388573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ac9190612ef6565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719473061149c30610823565b5f806114a6610acc565b426040518863ffffffff1660e01b81526004016114c896959493929190612f81565b60606040518083038185885af11580156114e4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115099190612fe0565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161159c929190613030565b6020604051808303815f875af11580156115b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115dc9190612e57565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055504360078190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116d63060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166116d130610823565b611911565b565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361182a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119049190612578565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611976576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119db576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103611a14576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ab2575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906130a1565b60405180910390fd5b6009600a611aff9190612c83565b633b9aca00611b0e9190612ccd565b60115414158015611b66575060035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bc45760115481611b7884610823565b611b829190612eaf565b1115611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90613109565b60405180910390fd5b5b6009600a611bd29190612c83565b633b9aca00611be19190612ccd565b60105414158015611c39575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c8457601054811115611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a90613171565b60405180910390fd5b5b5f611c8e30610823565b9050601460159054906101000a900460ff16158015611caf57506012548110155b8015611cc75750601460169054906101000a900460ff165b8015611cd65750600e54600f54115b8015611d2e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611d81575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dbb57611da3611d9e83611d998460135461228b565b61228b565b6122a3565b5f4790505f811115611db957611db8816124e7565b5b505b5f601460159054906101000a900460ff16158015611e20575060045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e73575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ffd5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f01576064600d54600f5411611ee157600954611ee5565b600b545b84611ef09190612ccd565b611efa91906131bc565b9050611ffc565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611ffb57436019600754611f659190612eaf565b1115611fb557611f748461254f565b15611fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fab90613236565b60405180910390fd5b5b6064600c54600f5411611fca57600854611fce565b600a545b84611fd99190612ccd565b611fe391906131bc565b9050600f5f8154611ff390613254565b919050819055505b5b5b5f8111156120f5578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461204e9190612eaf565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ec9190612578565b60405180910390a35b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461213e9190612d0e565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550808360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121c99190612eaf565b6121d39190612d0e565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661226f9190612d0e565b60405161227c9190612578565b60405180910390a35050505050565b5f818311612299578261229b565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122da576122d961285a565b5b6040519080825280602002602001820160405280156123085781602001602082028036833780820191505090505b50905030815f8151811061231f5761231e612e82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123da9190612ef6565b816001815181106123ee576123ed612e82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061244730737a250d5630b4cf539739df2c5dacb4c659f2488d84611760565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161249c959493929190613352565b5f604051808303815f87803b1580156124b3575f80fd5b505af11580156124c5573d5f803e3d5ffd5b505050505f601460156101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561254b573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f819050919050565b61257281612560565b82525050565b5f60208201905061258b5f830184612569565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125c85780820151818401526020810190506125ad565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ed82612591565b6125f7818561259b565b93506126078185602086016125ab565b612610816125d3565b840191505092915050565b5f6020820190508181035f83015261263381846125e3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126758261264c565b9050919050565b6126858161266b565b811461268f575f80fd5b50565b5f813590506126a08161267c565b92915050565b6126af81612560565b81146126b9575f80fd5b50565b5f813590506126ca816126a6565b92915050565b5f80604083850312156126e6576126e5612644565b5b5f6126f385828601612692565b9250506020612704858286016126bc565b9150509250929050565b5f8115159050919050565b6127228161270e565b82525050565b5f60208201905061273b5f830184612719565b92915050565b5f805f6060848603121561275857612757612644565b5b5f61276586828701612692565b935050602061277686828701612692565b9250506040612787868287016126bc565b9150509250925092565b5f60ff82169050919050565b6127a681612791565b82525050565b5f6020820190506127bf5f83018461279d565b92915050565b5f602082840312156127da576127d9612644565b5b5f6127e784828501612692565b91505092915050565b5f806040838503121561280657612805612644565b5b5f612813858286016126bc565b9250506020612824858286016126bc565b9150509250929050565b6128378161266b565b82525050565b5f6020820190506128505f83018461282e565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612890826125d3565b810181811067ffffffffffffffff821117156128af576128ae61285a565b5b80604052505050565b5f6128c161263b565b90506128cd8282612887565b919050565b5f67ffffffffffffffff8211156128ec576128eb61285a565b5b602082029050602081019050919050565b5f80fd5b5f61291361290e846128d2565b6128b8565b90508083825260208201905060208402830185811115612936576129356128fd565b5b835b8181101561295f578061294b8882612692565b845260208401935050602081019050612938565b5050509392505050565b5f82601f83011261297d5761297c612856565b5b813561298d848260208601612901565b91505092915050565b61299f8161270e565b81146129a9575f80fd5b50565b5f813590506129ba81612996565b92915050565b5f80604083850312156129d6576129d5612644565b5b5f83013567ffffffffffffffff8111156129f3576129f2612648565b5b6129ff85828601612969565b9250506020612a10858286016129ac565b9150509250929050565b5f80fd5b5f8083601f840112612a3357612a32612856565b5b8235905067ffffffffffffffff811115612a5057612a4f612a1a565b5b602083019150836040820283011115612a6c57612a6b6128fd565b5b9250929050565b5f8060208385031215612a8957612a88612644565b5b5f83013567ffffffffffffffff811115612aa657612aa5612648565b5b612ab285828601612a1e565b92509250509250929050565b5f60208284031215612ad357612ad2612644565b5b5f612ae0848285016126bc565b91505092915050565b5f8060408385031215612aff57612afe612644565b5b5f612b0c85828601612692565b9250506020612b1d85828601612692565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612ba957808604811115612b8557612b84612b27565b5b6001851615612b945780820291505b8081029050612ba285612b54565b9450612b69565b94509492505050565b5f82612bc15760019050612c7c565b81612bce575f9050612c7c565b8160018114612be45760028114612bee57612c1d565b6001915050612c7c565b60ff841115612c0057612bff612b27565b5b8360020a915084821115612c1757612c16612b27565b5b50612c7c565b5060208310610133831016604e8410600b8410161715612c525782820a905083811115612c4d57612c4c612b27565b5b612c7c565b612c5f8484846001612b60565b92509050818404811115612c7657612c75612b27565b5b81810290505b9392505050565b5f612c8d82612560565b9150612c9883612791565b9250612cc57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612bb2565b905092915050565b5f612cd782612560565b9150612ce283612560565b9250828202612cf081612560565b91508282048414831517612d0757612d06612b27565b5b5092915050565b5f612d1882612560565b9150612d2383612560565b9250828203905081811115612d3b57612d3a612b27565b5b92915050565b5f81905092915050565b50565b5f612d595f83612d41565b9150612d6482612d4b565b5f82019050919050565b5f612d7882612d4e565b9150819050919050565b5f81519050612d90816126a6565b92915050565b5f60208284031215612dab57612daa612644565b5b5f612db884828501612d82565b91505092915050565b5f819050919050565b5f612de4612ddf612dda8461264c565b612dc1565b61264c565b9050919050565b5f612df582612dca565b9050919050565b5f612e0682612deb565b9050919050565b612e1681612dfc565b82525050565b5f604082019050612e2f5f830185612e0d565b612e3c6020830184612569565b9392505050565b5f81519050612e5181612996565b92915050565b5f60208284031215612e6c57612e6b612644565b5b5f612e7984828501612e43565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612eb982612560565b9150612ec483612560565b9250828201905080821115612edc57612edb612b27565b5b92915050565b5f81519050612ef08161267c565b92915050565b5f60208284031215612f0b57612f0a612644565b5b5f612f1884828501612ee2565b91505092915050565b5f604082019050612f345f83018561282e565b612f41602083018461282e565b9392505050565b5f819050919050565b5f612f6b612f66612f6184612f48565b612dc1565b612560565b9050919050565b612f7b81612f51565b82525050565b5f60c082019050612f945f83018961282e565b612fa16020830188612569565b612fae6040830187612f72565b612fbb6060830186612f72565b612fc8608083018561282e565b612fd560a0830184612569565b979650505050505050565b5f805f60608486031215612ff757612ff6612644565b5b5f61300486828701612d82565b935050602061301586828701612d82565b925050604061302686828701612d82565b9150509250925092565b5f6040820190506130435f83018561282e565b6130506020830184612569565b9392505050565b7f626f7473000000000000000000000000000000000000000000000000000000005f82015250565b5f61308b60048361259b565b915061309682613057565b602082019050919050565b5f6020820190508181035f8301526130b88161307f565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f6130f360118361259b565b91506130fe826130bf565b602082019050919050565b5f6020820190508181035f830152613120816130e7565b9050919050565b7f45786365656473206d61785478000000000000000000000000000000000000005f82015250565b5f61315b600d8361259b565b915061316682613127565b602082019050919050565b5f6020820190508181035f8301526131888161314f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c682612560565b91506131d183612560565b9250826131e1576131e061318f565b5b828204905092915050565b7f636f6e74726163740000000000000000000000000000000000000000000000005f82015250565b5f61322060088361259b565b915061322b826131ec565b602082019050919050565b5f6020820190508181035f83015261324d81613214565b9050919050565b5f61325e82612560565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132905761328f612b27565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132cd8161266b565b82525050565b5f6132de83836132c4565b60208301905092915050565b5f602082019050919050565b5f6133008261329b565b61330a81856132a5565b9350613315836132b5565b805f5b8381101561334557815161332c88826132d3565b9750613337836132ea565b925050600181019050613318565b5085935050505092915050565b5f60a0820190506133655f830188612569565b6133726020830187612f72565b818103604083015261338481866132f6565b9050613393606083018561282e565b6133a06080830184612569565b969550505050505056fea264697066735822122017485e912f45e5e220aed05c85398c3fd3cdffad2cd3f121ee8c7291bfdd3b0164736f6c63430008170033

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.