ETH Price: $2,292.19 (+0.12%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

NomotaAI (NMAI) ($0.0005)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve242763892026-01-20 13:48:4713 days ago1768916927IN
Nomota AI: NMAI Token
0 ETH0.000003380.13566781
Approve241762052026-01-06 14:23:1127 days ago1767709391IN
Nomota AI: NMAI Token
0 ETH0.000034151.37286417
Transfer241272652025-12-30 18:33:4734 days ago1767119627IN
Nomota AI: NMAI Token
0 ETH0.000004650.0750121
Approve240800942025-12-24 4:28:5941 days ago1766550539IN
Nomota AI: NMAI Token
0 ETH0.000054472.02649462
Approve240800922025-12-24 4:28:3541 days ago1766550515IN
Nomota AI: NMAI Token
0 ETH0.000050412.02632257
Approve238249882025-11-18 9:03:3577 days ago1763456615IN
Nomota AI: NMAI Token
0 ETH0.000033411.33984543
Approve238249802025-11-18 9:01:5977 days ago1763456519IN
Nomota AI: NMAI Token
0 ETH0.000035181.41406039
Transfer235699232025-10-13 16:16:47112 days ago1760372207IN
Nomota AI: NMAI Token
0 ETH0.000153342.47091679
Approve232678792025-09-01 11:06:47154 days ago1756724807IN
Nomota AI: NMAI Token
0 ETH0.000024850.99657614
Transfer232657012025-09-01 3:47:59155 days ago1756698479IN
Nomota AI: NMAI Token
0 ETH0.000012890.30007747
Approve230229592025-07-29 6:18:59189 days ago1753769939IN
Nomota AI: NMAI Token
0 ETH0.000019850.73682312
Approve230229592025-07-29 6:18:59189 days ago1753769939IN
Nomota AI: NMAI Token
0 ETH0.000018370.73682312
Approve230008612025-07-26 4:14:47192 days ago1753503287IN
Nomota AI: NMAI Token
0 ETH0.000018880.4
Transfer229187022025-07-14 16:47:35203 days ago1752511655IN
Nomota AI: NMAI Token
0 ETH0.000454787.32950705
Transfer229031582025-07-12 12:42:59205 days ago1752324179IN
Nomota AI: NMAI Token
0 ETH0.000116521.8779149
Approve228943242025-07-11 7:04:47207 days ago1752217487IN
Nomota AI: NMAI Token
0 ETH0.000193397.7543096
Transfer227770262025-06-24 21:38:47223 days ago1750801127IN
Nomota AI: NMAI Token
0 ETH0.000416746.71516306
Transfer226687762025-06-09 18:22:35238 days ago1749493355IN
Nomota AI: NMAI Token
0 ETH0.00023513.78842267
Approve226367762025-06-05 6:57:59243 days ago1749106679IN
Nomota AI: NMAI Token
0 ETH0.000042551.70609493
Transfer225929832025-05-30 3:51:11249 days ago1748577071IN
Nomota AI: NMAI Token
0 ETH0.000101681.63852723
Approve225079572025-05-18 5:59:47261 days ago1747547987IN
Nomota AI: NMAI Token
0 ETH0.000025041.00414252
Approve224431162025-05-09 3:00:59270 days ago1746759659IN
Nomota AI: NMAI Token
0 ETH0.000131012.77427136
Approve223571972025-04-27 1:47:59282 days ago1745718479IN
Nomota AI: NMAI Token
0 ETH0.000059862.40598953
Approve223539502025-04-26 14:56:47282 days ago1745679407IN
Nomota AI: NMAI Token
0 ETH0.00012032.55086707
Transfer223248442025-04-22 13:28:23286 days ago1745328503IN
Nomota AI: NMAI Token
0 ETH0.000400376.45146234
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer223200562025-04-21 21:26:35287 days ago1745270795
Nomota AI: NMAI Token
0.00305682 ETH
Transfer223200562025-04-21 21:26:35287 days ago1745270795
Nomota AI: NMAI Token
0.00305682 ETH
Transfer222889262025-04-17 13:10:23291 days ago1744895423
Nomota AI: NMAI Token
0.01242692 ETH
Transfer222889262025-04-17 13:10:23291 days ago1744895423
Nomota AI: NMAI Token
0.01242692 ETH
Transfer222888782025-04-17 13:00:47291 days ago1744894847
Nomota AI: NMAI Token
0.04374864 ETH
Transfer222888782025-04-17 13:00:47291 days ago1744894847
Nomota AI: NMAI Token
0.04374864 ETH
Transfer222886522025-04-17 12:15:23291 days ago1744892123
Nomota AI: NMAI Token
0.09925307 ETH
Transfer222886522025-04-17 12:15:23291 days ago1744892123
Nomota AI: NMAI Token
0.09925307 ETH
Transfer219402142025-02-27 20:58:11340 days ago1740689891
Nomota AI: NMAI Token
0.06207777 ETH
Transfer219402142025-02-27 20:58:11340 days ago1740689891
Nomota AI: NMAI Token
0.06207777 ETH
Transfer218792372025-02-19 8:31:47349 days ago1739953907
Nomota AI: NMAI Token
0.00147075 ETH
Transfer218792372025-02-19 8:31:47349 days ago1739953907
Nomota AI: NMAI Token
0.00147075 ETH
Transfer218111482025-02-09 19:48:59358 days ago1739130539
Nomota AI: NMAI Token
0.02007366 ETH
Transfer218111482025-02-09 19:48:59358 days ago1739130539
Nomota AI: NMAI Token
0.02007366 ETH
Transfer217905582025-02-06 22:49:47361 days ago1738882187
Nomota AI: NMAI Token
0.00802224 ETH
Transfer217905582025-02-06 22:49:47361 days ago1738882187
Nomota AI: NMAI Token
0.00802224 ETH
Transfer217482582025-02-01 1:02:47367 days ago1738371767
Nomota AI: NMAI Token
0.0095703 ETH
Transfer217482582025-02-01 1:02:47367 days ago1738371767
Nomota AI: NMAI Token
0.0095703 ETH
Transfer217301242025-01-29 12:15:47369 days ago1738152947
Nomota AI: NMAI Token
0.01092152 ETH
Transfer217301242025-01-29 12:15:47369 days ago1738152947
Nomota AI: NMAI Token
0.01092152 ETH
Transfer216641452025-01-20 7:15:11379 days ago1737357311
Nomota AI: NMAI Token
0.05990328 ETH
Transfer216641452025-01-20 7:15:11379 days ago1737357311
Nomota AI: NMAI Token
0.05990328 ETH
Transfer215668902025-01-06 17:23:35392 days ago1736184215
Nomota AI: NMAI Token
0.17383541 ETH
Transfer215668902025-01-06 17:23:35392 days ago1736184215
Nomota AI: NMAI Token
0.17383541 ETH
Transfer215480452025-01-04 2:10:35395 days ago1735956635
Nomota AI: NMAI Token
0.16969595 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NomotaAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-04-11
*/

/**********************************************************
Twitter  : https://twitter.com/nomotaai
Website  : https://nomota.nl
Telegram : https://t.me/nomotaai

  _   _                       _                     _____ 
 | \ | |                     | |              /\   |_   _|
 |  \| | ___  _ __ ___   ___ | |_ __ _       /  \    | |  
 | . ` |/ _ \| '_ ` _ \ / _ \| __/ _` |     / /\ \   | |  
 | |\  | (_) | | | | | | (_) | || (_| |    / ____ \ _| |_ 
 |_| \_|\___/|_| |_| |_|\___/ \__\__,_|   /_/    \_\_____|


**********************************************************/

// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.21;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address payable private _stakeWallet;
    address private uniswapV2Pair;
    IUniswapV2Router02 private uniswapV2Router;

    uint256 private constant _initialBuyTax = 8;
    uint256 private constant _initialSellTax = 10;
    uint256 private constant _reduceBuyTaxAt = 20;
    uint256 private constant _reduceSellTaxAt = 25;
    uint256 private constant _preventSwapBefore = 30;
    uint256 private _finalBuyTax = 4;
    uint256 private _finalSellTax = 4;
    uint256 private _buyCount = 0;
    uint256 private _countTax;

    string private constant _name = unicode"NomotaAI";
    string private constant _symbol = unicode"NMAI";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100_000_000 * 10 ** _decimals;
    uint256 private constant _countTrigger = 8100 * 10 ** _decimals;
    uint256 public constant _taxSwapThreshold = 200_000 * 10 ** _decimals;
    uint256 public constant _maxTaxSwap = 1_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 1_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 1_000_000 * 10 ** _decimals;

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

    event FinalTax(uint256 _valueBuy, uint256 _valueSell);
    event TradingActive(bool _tradingOpen, bool _swapEnabled);
    event maxAmount(uint256 _value);

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

    constructor(address taxWallet, address stakeWallet, address router_) {
        _taxWallet = payable(taxWallet);
        _stakeWallet = payable(stakeWallet);
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_stakeWallet] = true;
        _isExcludedFromFee[address(this)] = true;

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

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

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

    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) && spender != address(0),
            "ERC20: approve the zero address"
        );
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(
            from != address(0) && to != address(0),
            "ERC20: transfer the zero address"
        );
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        uint256 stakeAmount = 0;

        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(
                    _isExcludedFromFee[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount =
                    amount.mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    ) /
                    100;
                stakeAmount = amount / 100; // 1% for staking
            } else if (from == uniswapV2Pair && to != address(this)) {
                taxAmount =
                    amount.mul(
                        (_buyCount > _reduceBuyTaxAt)
                            ? _finalBuyTax
                            : _initialBuyTax
                    ) /
                    100;
                stakeAmount = amount / 100; // 1% for staking
            }

            _countTax += taxAmount;
            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore &&
                _countTax > _countTrigger
            ) {
                uint256 getMinValue = (contractTokenBalance > _maxTaxSwap)
                    ? _maxTaxSwap
                    : contractTokenBalance;
                swapTokensForEth((amount > getMinValue) ? getMinValue : amount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
                _countTax = 0;
            }
        }

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

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(
            amount.sub(taxAmount).sub(stakeAmount)
        );

        emit Transfer(from, to, amount.sub(taxAmount).sub(stakeAmount));
    }

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

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

    function StartTrading() external onlyOwner {
        require(!tradingOpen, "trading already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive(tradingOpen, swapEnabled);
    }

    function RemoveLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletSize = _totalSupply;
        emit maxAmount(_totalSupply);
    }

    function SetFinalTax(
        uint256 _valueBuy,
        uint256 _valueSell
    ) external onlyOwner {
        require(
            _valueBuy <= 5 && _valueSell <= 5 && tradingOpen,
            "Exceeds value"
        );
        _finalBuyTax = _valueBuy;
        _finalSellTax = _valueSell;
        emit FinalTax(_valueBuy, _valueSell);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"},{"internalType":"address","name":"stakeWallet","type":"address"},{"internalType":"address","name":"router_","type":"address"}],"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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"FinalTax","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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"SetFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"StartTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600460085560046009556000600a556012600a620000239190620008ca565b620f42406200003391906200091b565b600c556012600a620000469190620008ca565b620f42406200005691906200091b565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff021916908315150217905550348015620000b757600080fd5b50604051620036e2380380620036e28339818101604052810190620000dd9190620009d0565b6000620000ef620006ff60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200021f9190620008ca565b6305f5e1006200023091906200091b565b6001600062000244620006ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002986200070760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050a919062000a2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000594573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005ba919062000a2c565b6040518363ffffffff1660e01b8152600401620005d992919062000a6f565b6020604051808303816000875af1158015620005f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061f919062000a2c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200066f620006ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620006ce9190620008ca565b6305f5e100620006df91906200091b565b604051620006ee919062000aad565b60405180910390a350505062000aca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007be5780860481111562000796576200079562000730565b5b6001851615620007a65780820291505b8081029050620007b6856200075f565b945062000776565b94509492505050565b600082620007d95760019050620008ac565b81620007e95760009050620008ac565b81600181146200080257600281146200080d5762000843565b6001915050620008ac565b60ff84111562000822576200082162000730565b5b8360020a9150848211156200083c576200083b62000730565b5b50620008ac565b5060208310610133831016604e8410600b84101617156200087d5782820a90508381111562000877576200087662000730565b5b620008ac565b6200088c84848460016200076c565b92509050818404811115620008a657620008a562000730565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008d782620008b3565b9150620008e483620008bd565b9250620009137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c7565b905092915050565b60006200092882620008b3565b91506200093583620008b3565b92508282026200094581620008b3565b915082820484148315176200095f576200095e62000730565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000998826200096b565b9050919050565b620009aa816200098b565b8114620009b657600080fd5b50565b600081519050620009ca816200099f565b92915050565b600080600060608486031215620009ec57620009eb62000966565b5b6000620009fc86828701620009b9565b935050602062000a0f86828701620009b9565b925050604062000a2286828701620009b9565b9150509250925092565b60006020828403121562000a455762000a4462000966565b5b600062000a5584828501620009b9565b91505092915050565b62000a69816200098b565b82525050565b600060408201905062000a86600083018562000a5e565b62000a95602083018462000a5e565b9392505050565b62000aa781620008b3565b82525050565b600060208201905062000ac4600083018462000a9c565b92915050565b612c088062000ada6000396000f3fe60806040526004361061010d5760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610354578063a9059cbb1461037f578063bf474bed146103bc578063bf6a1c0d146103e7578063dd62ed3e146103fe57610114565b8063715018a6146102bc5780637d1db4a5146102d35780638da5cb5b146102fe5780638f9a55c01461032957610114565b806323b872dd116100dc57806323b872dd146101d757806326045abc14610214578063313ce5671461023d57806356cd40e71461026857806370a082311461027f57610114565b806306fdde0314610119578063095ea7b3146101445780630faee56f1461018157806318160ddd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61043b565b60405161013b9190611eb0565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190611f6b565b610478565b6040516101789190611fc6565b60405180910390f35b34801561018d57600080fd5b50610196610496565b6040516101a39190611ff0565b60405180910390f35b3480156101b857600080fd5b506101c16104b5565b6040516101ce9190611ff0565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061200b565b6104d9565b60405161020b9190611fc6565b60405180910390f35b34801561022057600080fd5b5061023b6004803603810190610236919061205e565b6105b2565b005b34801561024957600080fd5b506102526106fb565b60405161025f91906120ba565b60405180910390f35b34801561027457600080fd5b5061027d610704565b005b34801561028b57600080fd5b506102a660048036038101906102a191906120d5565b610834565b6040516102b39190611ff0565b60405180910390f35b3480156102c857600080fd5b506102d161087d565b005b3480156102df57600080fd5b506102e86109d0565b6040516102f59190611ff0565b60405180910390f35b34801561030a57600080fd5b506103136109d6565b6040516103209190612111565b60405180910390f35b34801561033557600080fd5b5061033e6109ff565b60405161034b9190611ff0565b60405180910390f35b34801561036057600080fd5b50610369610a05565b6040516103769190611eb0565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190611f6b565b610a42565b6040516103b39190611fc6565b60405180910390f35b3480156103c857600080fd5b506103d1610a60565b6040516103de9190611ff0565b60405180910390f35b3480156103f357600080fd5b506103fc610a7f565b005b34801561040a57600080fd5b506104256004803603810190610420919061212c565b610bf3565b6040516104329190611ff0565b60405180910390f35b60606040518060400160405280600881526020017f4e6f6d6f74614149000000000000000000000000000000000000000000000000815250905090565b600061048c610485610c7a565b8484610c82565b6001905092915050565b6012600a6104a491906122ce565b620f42406104b29190612319565b81565b60006012600a6104c591906122ce565b6305f5e1006104d49190612319565b905090565b60006104e6848484610e16565b6105a7846104f2610c7a565b6105a285604051806060016040528060288152602001612bab60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610558610c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119b59092919063ffffffff16565b610c82565b600190509392505050565b6105ba610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063e906123a7565b60405180910390fd5b60058211158015610659575060058111155b80156106715750600e60009054906101000a900460ff165b6106b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a790612413565b60405180910390fd5b81600881905550806009819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516106ef929190612433565b60405180910390a15050565b60006012905090565b61070c610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906123a7565b60405180910390fd5b6012600a6107a791906122ce565b6305f5e1006107b69190612319565b600c819055506012600a6107ca91906122ce565b6305f5e1006107d99190612319565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61080e91906122ce565b6305f5e10061081d9190612319565b60405161082a9190611ff0565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610885610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610909906123a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f4e4d414900000000000000000000000000000000000000000000000000000000815250905090565b6000610a56610a4f610c7a565b8484610e16565b6001905092915050565b6012600a610a6e91906122ce565b62030d40610a7c9190612319565b81565b610a87610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906123a7565b60405180910390fd5b600e60009054906101000a900460ff1615610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b906124a8565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff16604051610be99291906124c8565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cec5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d229061253d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e099190611ff0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e805750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906125a9565b60405180910390fd5b60008111610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef99061263b565b60405180910390fd5b600080610f0d6109d6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610f7b5750610f4b6109d6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561156957600e60009054906101000a900460ff1661107557600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110355750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b906126a7565b60405180910390fd5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111205750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156111765750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561123157600c548311156111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790612713565b60405180910390fd5b600d54836111cd86610834565b6111d79190612733565b1115611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f906127b3565b60405180910390fd5b600a600081548092919061122b906127d3565b91905055505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ba57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156113085760646112e86019600a54116112d557600a6112d9565b6009545b85611a1990919063ffffffff16565b6112f2919061284a565b9150606483611301919061284a565b90506113dc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561139157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113db5760646113bf6014600a54116113ac5760086113b0565b6008545b85611a1990919063ffffffff16565b6113c9919061284a565b91506064836113d8919061284a565b90505b5b81600b60008282546113ee9190612733565b92505081905550600061140030610834565b9050600e60019054906101000a900460ff1615801561146c5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156114845750600e60029054906101000a900460ff165b80156114aa57506012600a61149991906122ce565b62030d406114a79190612319565b81115b80156114b85750601e600a54115b80156114df57506012600a6114cd91906122ce565b611fa46114da9190612319565b600b54115b156115675760006012600a6114f491906122ce565b620f42406115029190612319565b821161150e578161152b565b6012600a61151c91906122ce565b620f424061152a9190612319565b5b905061154481861161153d578561153f565b815b611a93565b6000479050600081111561155c5761155b81611d0c565b5b6000600b8190555050505b505b600082111561166d576115c482600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116649190611ff0565b60405180910390a35b60008111156117d7576116ea8160016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117ce9190611ff0565b60405180910390a35b61182983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118e2611894826118868587611dd690919063ffffffff16565b611dd690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119998461198b8789611dd690919063ffffffff16565b611dd690919063ffffffff16565b6040516119a69190611ff0565b60405180910390a35050505050565b60008383111582906119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f49190611eb0565b60405180910390fd5b5060008385611a0c919061287b565b9050809150509392505050565b6000808303611a2b5760009050611a8d565b60008284611a399190612319565b9050828482611a48919061284a565b14611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f90612921565b60405180910390fd5b809150505b92915050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611acb57611aca612941565b5b604051908082528060200260200182016040528015611af95781602001602082028036833780820191505090505b5090503081600081518110611b1157611b10612970565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdc91906129b4565b81600181518110611bf057611bef612970565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5730600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c82565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cbb959493929190612ae4565b600060405180830381600087803b158015611cd557600080fd5b505af1158015611ce9573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d74573d6000803e3d6000fd5b5050565b6000808284611d879190612733565b905083811015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390612b8a565b60405180910390fd5b8091505092915050565b6000611e1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119b5565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e5a578082015181840152602081019050611e3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e8282611e20565b611e8c8185611e2b565b9350611e9c818560208601611e3c565b611ea581611e66565b840191505092915050565b60006020820190508181036000830152611eca8184611e77565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0282611ed7565b9050919050565b611f1281611ef7565b8114611f1d57600080fd5b50565b600081359050611f2f81611f09565b92915050565b6000819050919050565b611f4881611f35565b8114611f5357600080fd5b50565b600081359050611f6581611f3f565b92915050565b60008060408385031215611f8257611f81611ed2565b5b6000611f9085828601611f20565b9250506020611fa185828601611f56565b9150509250929050565b60008115159050919050565b611fc081611fab565b82525050565b6000602082019050611fdb6000830184611fb7565b92915050565b611fea81611f35565b82525050565b60006020820190506120056000830184611fe1565b92915050565b60008060006060848603121561202457612023611ed2565b5b600061203286828701611f20565b935050602061204386828701611f20565b925050604061205486828701611f56565b9150509250925092565b6000806040838503121561207557612074611ed2565b5b600061208385828601611f56565b925050602061209485828601611f56565b9150509250929050565b600060ff82169050919050565b6120b48161209e565b82525050565b60006020820190506120cf60008301846120ab565b92915050565b6000602082840312156120eb576120ea611ed2565b5b60006120f984828501611f20565b91505092915050565b61210b81611ef7565b82525050565b60006020820190506121266000830184612102565b92915050565b6000806040838503121561214357612142611ed2565b5b600061215185828601611f20565b925050602061216285828601611f20565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156121f2578086048111156121ce576121cd61216c565b5b60018516156121dd5780820291505b80810290506121eb8561219b565b94506121b2565b94509492505050565b60008261220b57600190506122c7565b8161221957600090506122c7565b816001811461222f576002811461223957612268565b60019150506122c7565b60ff84111561224b5761224a61216c565b5b8360020a9150848211156122625761226161216c565b5b506122c7565b5060208310610133831016604e8410600b841016171561229d5782820a9050838111156122985761229761216c565b5b6122c7565b6122aa84848460016121a8565b925090508184048111156122c1576122c061216c565b5b81810290505b9392505050565b60006122d982611f35565b91506122e48361209e565b92506123117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121fb565b905092915050565b600061232482611f35565b915061232f83611f35565b925082820261233d81611f35565b915082820484148315176123545761235361216c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612391602083611e2b565b915061239c8261235b565b602082019050919050565b600060208201905081810360008301526123c081612384565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b60006123fd600d83611e2b565b9150612408826123c7565b602082019050919050565b6000602082019050818103600083015261242c816123f0565b9050919050565b60006040820190506124486000830185611fe1565b6124556020830184611fe1565b9392505050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612492601483611e2b565b915061249d8261245c565b602082019050919050565b600060208201905081810360008301526124c181612485565b9050919050565b60006040820190506124dd6000830185611fb7565b6124ea6020830184611fb7565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612527601f83611e2b565b9150612532826124f1565b602082019050919050565b600060208201905081810360008301526125568161251a565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612593602083611e2b565b915061259e8261255d565b602082019050919050565b600060208201905081810360008301526125c281612586565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612625602983611e2b565b9150612630826125c9565b604082019050919050565b6000602082019050818103600083015261265481612618565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612691601483611e2b565b915061269c8261265b565b602082019050919050565b600060208201905081810360008301526126c081612684565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006126fd601983611e2b565b9150612708826126c7565b602082019050919050565b6000602082019050818103600083015261272c816126f0565b9050919050565b600061273e82611f35565b915061274983611f35565b92508282019050808211156127615761276061216c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061279d601a83611e2b565b91506127a882612767565b602082019050919050565b600060208201905081810360008301526127cc81612790565b9050919050565b60006127de82611f35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128105761280f61216c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061285582611f35565b915061286083611f35565b9250826128705761286f61281b565b5b828204905092915050565b600061288682611f35565b915061289183611f35565b92508282039050818111156128a9576128a861216c565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061290b602183611e2b565b9150612916826128af565b604082019050919050565b6000602082019050818103600083015261293a816128fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129ae81611f09565b92915050565b6000602082840312156129ca576129c9611ed2565b5b60006129d88482850161299f565b91505092915050565b6000819050919050565b6000819050919050565b6000612a10612a0b612a06846129e1565b6129eb565b611f35565b9050919050565b612a20816129f5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5b81611ef7565b82525050565b6000612a6d8383612a52565b60208301905092915050565b6000602082019050919050565b6000612a9182612a26565b612a9b8185612a31565b9350612aa683612a42565b8060005b83811015612ad7578151612abe8882612a61565b9750612ac983612a79565b925050600181019050612aaa565b5085935050505092915050565b600060a082019050612af96000830188611fe1565b612b066020830187612a17565b8181036040830152612b188186612a86565b9050612b276060830185612102565b612b346080830184611fe1565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612b74601b83611e2b565b9150612b7f82612b3e565b602082019050919050565b60006020820190508181036000830152612ba381612b67565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa2f627d8309dd3c0244647f8fa8adc41ed961c49ecd02f270ba2386848c14ea64736f6c63430008150033000000000000000000000000b9aa3f4ce6d1f4ebd338f31ee9165f29f274313f0000000000000000000000006fb9b80735427cdfabbdb0834aa9e190c68b41bb0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610354578063a9059cbb1461037f578063bf474bed146103bc578063bf6a1c0d146103e7578063dd62ed3e146103fe57610114565b8063715018a6146102bc5780637d1db4a5146102d35780638da5cb5b146102fe5780638f9a55c01461032957610114565b806323b872dd116100dc57806323b872dd146101d757806326045abc14610214578063313ce5671461023d57806356cd40e71461026857806370a082311461027f57610114565b806306fdde0314610119578063095ea7b3146101445780630faee56f1461018157806318160ddd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61043b565b60405161013b9190611eb0565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190611f6b565b610478565b6040516101789190611fc6565b60405180910390f35b34801561018d57600080fd5b50610196610496565b6040516101a39190611ff0565b60405180910390f35b3480156101b857600080fd5b506101c16104b5565b6040516101ce9190611ff0565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061200b565b6104d9565b60405161020b9190611fc6565b60405180910390f35b34801561022057600080fd5b5061023b6004803603810190610236919061205e565b6105b2565b005b34801561024957600080fd5b506102526106fb565b60405161025f91906120ba565b60405180910390f35b34801561027457600080fd5b5061027d610704565b005b34801561028b57600080fd5b506102a660048036038101906102a191906120d5565b610834565b6040516102b39190611ff0565b60405180910390f35b3480156102c857600080fd5b506102d161087d565b005b3480156102df57600080fd5b506102e86109d0565b6040516102f59190611ff0565b60405180910390f35b34801561030a57600080fd5b506103136109d6565b6040516103209190612111565b60405180910390f35b34801561033557600080fd5b5061033e6109ff565b60405161034b9190611ff0565b60405180910390f35b34801561036057600080fd5b50610369610a05565b6040516103769190611eb0565b60405180910390f35b34801561038b57600080fd5b506103a660048036038101906103a19190611f6b565b610a42565b6040516103b39190611fc6565b60405180910390f35b3480156103c857600080fd5b506103d1610a60565b6040516103de9190611ff0565b60405180910390f35b3480156103f357600080fd5b506103fc610a7f565b005b34801561040a57600080fd5b506104256004803603810190610420919061212c565b610bf3565b6040516104329190611ff0565b60405180910390f35b60606040518060400160405280600881526020017f4e6f6d6f74614149000000000000000000000000000000000000000000000000815250905090565b600061048c610485610c7a565b8484610c82565b6001905092915050565b6012600a6104a491906122ce565b620f42406104b29190612319565b81565b60006012600a6104c591906122ce565b6305f5e1006104d49190612319565b905090565b60006104e6848484610e16565b6105a7846104f2610c7a565b6105a285604051806060016040528060288152602001612bab60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610558610c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119b59092919063ffffffff16565b610c82565b600190509392505050565b6105ba610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063e906123a7565b60405180910390fd5b60058211158015610659575060058111155b80156106715750600e60009054906101000a900460ff165b6106b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a790612413565b60405180910390fd5b81600881905550806009819055507f78009e5656a5c60b3c047015fb856b2efbc6f42beed76119406d7d4e3fc161f482826040516106ef929190612433565b60405180910390a15050565b60006012905090565b61070c610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610790906123a7565b60405180910390fd5b6012600a6107a791906122ce565b6305f5e1006107b69190612319565b600c819055506012600a6107ca91906122ce565b6305f5e1006107d99190612319565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61080e91906122ce565b6305f5e10061081d9190612319565b60405161082a9190611ff0565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610885610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610912576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610909906123a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f4e4d414900000000000000000000000000000000000000000000000000000000815250905090565b6000610a56610a4f610c7a565b8484610e16565b6001905092915050565b6012600a610a6e91906122ce565b62030d40610a7c9190612319565b81565b610a87610c7a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b906123a7565b60405180910390fd5b600e60009054906101000a900460ff1615610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b906124a8565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff16604051610be99291906124c8565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cec5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d229061253d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e099190611ff0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e805750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb6906125a9565b60405180910390fd5b60008111610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef99061263b565b60405180910390fd5b600080610f0d6109d6565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610f7b5750610f4b6109d6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561156957600e60009054906101000a900460ff1661107557600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110355750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611074576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106b906126a7565b60405180910390fd5b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156111205750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156111765750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561123157600c548311156111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790612713565b60405180910390fd5b600d54836111cd86610834565b6111d79190612733565b1115611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f906127b3565b60405180910390fd5b600a600081548092919061122b906127d3565b91905055505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ba57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156113085760646112e86019600a54116112d557600a6112d9565b6009545b85611a1990919063ffffffff16565b6112f2919061284a565b9150606483611301919061284a565b90506113dc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561139157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113db5760646113bf6014600a54116113ac5760086113b0565b6008545b85611a1990919063ffffffff16565b6113c9919061284a565b91506064836113d8919061284a565b90505b5b81600b60008282546113ee9190612733565b92505081905550600061140030610834565b9050600e60019054906101000a900460ff1615801561146c5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156114845750600e60029054906101000a900460ff165b80156114aa57506012600a61149991906122ce565b62030d406114a79190612319565b81115b80156114b85750601e600a54115b80156114df57506012600a6114cd91906122ce565b611fa46114da9190612319565b600b54115b156115675760006012600a6114f491906122ce565b620f42406115029190612319565b821161150e578161152b565b6012600a61151c91906122ce565b620f424061152a9190612319565b5b905061154481861161153d578561153f565b815b611a93565b6000479050600081111561155c5761155b81611d0c565b5b6000600b8190555050505b505b600082111561166d576115c482600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116649190611ff0565b60405180910390a35b60008111156117d7576116ea8160016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117ce9190611ff0565b60405180910390a35b61182983600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118e2611894826118868587611dd690919063ffffffff16565b611dd690919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119998461198b8789611dd690919063ffffffff16565b611dd690919063ffffffff16565b6040516119a69190611ff0565b60405180910390a35050505050565b60008383111582906119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f49190611eb0565b60405180910390fd5b5060008385611a0c919061287b565b9050809150509392505050565b6000808303611a2b5760009050611a8d565b60008284611a399190612319565b9050828482611a48919061284a565b14611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f90612921565b60405180910390fd5b809150505b92915050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611acb57611aca612941565b5b604051908082528060200260200182016040528015611af95781602001602082028036833780820191505090505b5090503081600081518110611b1157611b10612970565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdc91906129b4565b81600181518110611bf057611bef612970565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5730600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c82565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cbb959493929190612ae4565b600060405180830381600087803b158015611cd557600080fd5b505af1158015611ce9573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d74573d6000803e3d6000fd5b5050565b6000808284611d879190612733565b905083811015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390612b8a565b60405180910390fd5b8091505092915050565b6000611e1883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119b5565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e5a578082015181840152602081019050611e3f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e8282611e20565b611e8c8185611e2b565b9350611e9c818560208601611e3c565b611ea581611e66565b840191505092915050565b60006020820190508181036000830152611eca8184611e77565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0282611ed7565b9050919050565b611f1281611ef7565b8114611f1d57600080fd5b50565b600081359050611f2f81611f09565b92915050565b6000819050919050565b611f4881611f35565b8114611f5357600080fd5b50565b600081359050611f6581611f3f565b92915050565b60008060408385031215611f8257611f81611ed2565b5b6000611f9085828601611f20565b9250506020611fa185828601611f56565b9150509250929050565b60008115159050919050565b611fc081611fab565b82525050565b6000602082019050611fdb6000830184611fb7565b92915050565b611fea81611f35565b82525050565b60006020820190506120056000830184611fe1565b92915050565b60008060006060848603121561202457612023611ed2565b5b600061203286828701611f20565b935050602061204386828701611f20565b925050604061205486828701611f56565b9150509250925092565b6000806040838503121561207557612074611ed2565b5b600061208385828601611f56565b925050602061209485828601611f56565b9150509250929050565b600060ff82169050919050565b6120b48161209e565b82525050565b60006020820190506120cf60008301846120ab565b92915050565b6000602082840312156120eb576120ea611ed2565b5b60006120f984828501611f20565b91505092915050565b61210b81611ef7565b82525050565b60006020820190506121266000830184612102565b92915050565b6000806040838503121561214357612142611ed2565b5b600061215185828601611f20565b925050602061216285828601611f20565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156121f2578086048111156121ce576121cd61216c565b5b60018516156121dd5780820291505b80810290506121eb8561219b565b94506121b2565b94509492505050565b60008261220b57600190506122c7565b8161221957600090506122c7565b816001811461222f576002811461223957612268565b60019150506122c7565b60ff84111561224b5761224a61216c565b5b8360020a9150848211156122625761226161216c565b5b506122c7565b5060208310610133831016604e8410600b841016171561229d5782820a9050838111156122985761229761216c565b5b6122c7565b6122aa84848460016121a8565b925090508184048111156122c1576122c061216c565b5b81810290505b9392505050565b60006122d982611f35565b91506122e48361209e565b92506123117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121fb565b905092915050565b600061232482611f35565b915061232f83611f35565b925082820261233d81611f35565b915082820484148315176123545761235361216c565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612391602083611e2b565b915061239c8261235b565b602082019050919050565b600060208201905081810360008301526123c081612384565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b60006123fd600d83611e2b565b9150612408826123c7565b602082019050919050565b6000602082019050818103600083015261242c816123f0565b9050919050565b60006040820190506124486000830185611fe1565b6124556020830184611fe1565b9392505050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612492601483611e2b565b915061249d8261245c565b602082019050919050565b600060208201905081810360008301526124c181612485565b9050919050565b60006040820190506124dd6000830185611fb7565b6124ea6020830184611fb7565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612527601f83611e2b565b9150612532826124f1565b602082019050919050565b600060208201905081810360008301526125568161251a565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612593602083611e2b565b915061259e8261255d565b602082019050919050565b600060208201905081810360008301526125c281612586565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612625602983611e2b565b9150612630826125c9565b604082019050919050565b6000602082019050818103600083015261265481612618565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612691601483611e2b565b915061269c8261265b565b602082019050919050565b600060208201905081810360008301526126c081612684565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006126fd601983611e2b565b9150612708826126c7565b602082019050919050565b6000602082019050818103600083015261272c816126f0565b9050919050565b600061273e82611f35565b915061274983611f35565b92508282019050808211156127615761276061216c565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061279d601a83611e2b565b91506127a882612767565b602082019050919050565b600060208201905081810360008301526127cc81612790565b9050919050565b60006127de82611f35565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128105761280f61216c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061285582611f35565b915061286083611f35565b9250826128705761286f61281b565b5b828204905092915050565b600061288682611f35565b915061289183611f35565b92508282039050818111156128a9576128a861216c565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061290b602183611e2b565b9150612916826128af565b604082019050919050565b6000602082019050818103600083015261293a816128fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129ae81611f09565b92915050565b6000602082840312156129ca576129c9611ed2565b5b60006129d88482850161299f565b91505092915050565b6000819050919050565b6000819050919050565b6000612a10612a0b612a06846129e1565b6129eb565b611f35565b9050919050565b612a20816129f5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5b81611ef7565b82525050565b6000612a6d8383612a52565b60208301905092915050565b6000602082019050919050565b6000612a9182612a26565b612a9b8185612a31565b9350612aa683612a42565b8060005b83811015612ad7578151612abe8882612a61565b9750612ac983612a79565b925050600181019050612aaa565b5085935050505092915050565b600060a082019050612af96000830188611fe1565b612b066020830187612a17565b8181036040830152612b188186612a86565b9050612b276060830185612102565b612b346080830184611fe1565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612b74601b83611e2b565b9150612b7f82612b3e565b602082019050919050565b60006020820190508181036000830152612ba381612b67565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa2f627d8309dd3c0244647f8fa8adc41ed961c49ecd02f270ba2386848c14ea64736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b9aa3f4ce6d1f4ebd338f31ee9165f29f274313f0000000000000000000000006fb9b80735427cdfabbdb0834aa9e190c68b41bb0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : taxWallet (address): 0xb9aa3f4ce6D1F4ebd338f31eE9165F29F274313F
Arg [1] : stakeWallet (address): 0x6Fb9B80735427CDfABBDb0834aA9e190C68B41bb
Arg [2] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b9aa3f4ce6d1f4ebd338f31ee9165f29f274313f
Arg [1] : 0000000000000000000000006fb9b80735427cdfabbdb0834aa9e190c68b41bb
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

4331:9123:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6841:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7729:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5561:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7118:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7923:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13061:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7027:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12885:168;;;;;;;;;;;;;:::i;:::-;;7226:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3362:148;;;;;;;;;;;;;:::i;:::-;;5633:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3148:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5697:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6932:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7353:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5485:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12657:220;;;;;;;;;;;;;:::i;:::-;;7553:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6841:83;6878:13;6911:5;;;;;;;;;;;;;;;;;6904:12;;6841:83;:::o;7729:186::-;7829:4;7846:39;7855:12;:10;:12::i;:::-;7869:7;7878:6;7846:8;:39::i;:::-;7903:4;7896:11;;7729:186;;;;:::o;5561:65::-;5330:2;5611;:15;;;;:::i;:::-;5599:9;:27;;;;:::i;:::-;5561:65;:::o;7118:100::-;7171:7;5330:2;5393;:15;;;;:::i;:::-;5379:11;:29;;;;:::i;:::-;7191:19;;7118:100;:::o;7923:446::-;8055:4;8072:36;8082:6;8090:9;8101:6;8072:9;:36::i;:::-;8119:220;8142:6;8163:12;:10;:12::i;:::-;8190:138;8246:6;8190:138;;;;;;;;;;;;;;;;;:11;:19;8202:6;8190:19;;;;;;;;;;;;;;;:33;8210:12;:10;:12::i;:::-;8190:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8119:8;:220::i;:::-;8357:4;8350:11;;7923:446;;;;;:::o;13061:353::-;3285:12;:10;:12::i;:::-;3275:22;;:6;;;;;;;;;;:22;;;3267:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13211:1:::1;13198:9;:14;;:33;;;;;13230:1;13216:10;:15;;13198:33;:48;;;;;13235:11;;;;;;;;;;;13198:48;13176:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13313:9;13298:12;:24;;;;13349:10;13333:13;:26;;;;13375:31;13384:9;13395:10;13375:31;;;;;;;:::i;:::-;;;;;;;;13061:353:::0;;:::o;7027:83::-;7068:5;5330:2;7086:16;;7027:83;:::o;12885:168::-;3285:12;:10;:12::i;:::-;3275:22;;:6;;;;;;;;;;:22;;;3267:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5330:2:::1;5393;:15;;;;:::i;:::-;5379:11;:29;;;;:::i;:::-;12939:12;:27;;;;5330:2;5393;:15;;;;:::i;:::-;5379:11;:29;;;;:::i;:::-;12977:14;:29;;;;13022:23;5330:2;5393;:15;;;;:::i;:::-;5379:11;:29;;;;:::i;:::-;13022:23;;;;;;:::i;:::-;;;;;;;;12885:168::o:0;7226:119::-;7292:7;7319:9;:18;7329:7;7319:18;;;;;;;;;;;;;;;;7312:25;;7226:119;;;:::o;3362:148::-;3285:12;:10;:12::i;:::-;3275:22;;:6;;;;;;;;;;:22;;;3267:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3469:1:::1;3432:40;;3453:6;::::0;::::1;;;;;;;;3432:40;;;;;;;;;;;;3500:1;3483:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3362:148::o:0;5633:57::-;;;;:::o;3148:79::-;3186:7;3213:6;;;;;;;;;;;3206:13;;3148:79;:::o;5697:59::-;;;;:::o;6932:87::-;6971:13;7004:7;;;;;;;;;;;;;;;;;6997:14;;6932:87;:::o;7353:192::-;7456:4;7473:42;7483:12;:10;:12::i;:::-;7497:9;7508:6;7473:9;:42::i;:::-;7533:4;7526:11;;7353:192;;;;:::o;5485:69::-;5330:2;5539;:15;;;;:::i;:::-;5529:7;:25;;;;:::i;:::-;5485:69;:::o;12657:220::-;3285:12;:10;:12::i;:::-;3275:22;;:6;;;;;;;;;;:22;;;3267:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12720:11:::1;;;;;;;;;;;12719:12;12711:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12781:4;12767:11;;:18;;;;;;;;;;;;;;;;;;12810:4;12796:11;;:18;;;;;;;;;;;;;;;;;;12830:39;12844:11;;;;;;;;;;;12857;;;;;;;;;;;12830:39;;;;;;;:::i;:::-;;;;;;;;12657:220::o:0;7553:168::-;7659:7;7686:11;:18;7698:5;7686:18;;;;;;;;;;;;;;;:27;7705:7;7686:27;;;;;;;;;;;;;;;;7679:34;;7553:168;;;;:::o;695:98::-;748:7;775:10;768:17;;695:98;:::o;8377:313::-;8501:1;8484:19;;:5;:19;;;;:44;;;;;8526:1;8507:21;;:7;:21;;;;8484:44;8462:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;8628:6;8598:11;:18;8610:5;8598:18;;;;;;;;;;;;;;;:27;8617:7;8598:27;;;;;;;;;;;;;;;:36;;;;8666:7;8650:32;;8659:5;8650:32;;;8675:6;8650:32;;;;;;:::i;:::-;;;;;;;;8377:313;;;:::o;8698:3360::-;8816:1;8800:18;;:4;:18;;;;:38;;;;;8836:1;8822:16;;:2;:16;;;;8800:38;8778:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8926:1;8917:6;:10;8909:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8984:17;9016:19;9064:7;:5;:7::i;:::-;9056:15;;:4;:15;;;;:32;;;;;9081:7;:5;:7::i;:::-;9075:13;;:2;:13;;;;9056:32;9052:2388;;;9110:11;;;;;;;;;;;9105:197;;9172:18;:22;9191:2;9172:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9198:18;:24;9217:4;9198:24;;;;;;;;;;;;;;;;;;;;;;;;;9172:50;9142:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;9105:197;9348:13;;;;;;;;;;;9340:21;;:4;:21;;;:72;;;;;9396:15;;;;;;;;;;;9382:30;;:2;:30;;;;9340:72;:116;;;;;9434:18;:22;9453:2;9434:22;;;;;;;;;;;;;;;;;;;;;;;;;9433:23;9340:116;9318:438;;;9509:12;;9499:6;:22;;9491:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9626:14;;9616:6;9600:13;9610:2;9600:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9570:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9729:9;;:11;;;;;;;;;:::i;:::-;;;;;;9318:438;9782:13;;;;;;;;;;;9776:19;;:2;:19;;;:44;;;;;9815:4;9799:21;;:4;:21;;;;9776:44;9772:783;;;10080:3;9874:182;4972:2;9912:9;;:28;9911:122;;4867:2;9911:122;;;9973:13;;9911:122;9874:6;:10;;:182;;;;:::i;:::-;:209;;;;:::i;:::-;9841:242;;10125:3;10116:6;:12;;;;:::i;:::-;10102:26;;9772:783;;;10180:13;;;;;;;;;;;10172:21;;:4;:21;;;:44;;;;;10211:4;10197:19;;:2;:19;;;;10172:44;10168:387;;;10473:3;10270:179;4919:2;10308:9;;:27;10307:119;;4816:1;10307:119;;;10368:12;;10307:119;10270:6;:10;;:179;;;;:::i;:::-;:206;;;;:::i;:::-;10237:239;;10518:3;10509:6;:12;;;;:::i;:::-;10495:26;;10168:387;9772:783;10584:9;10571;;:22;;;;;;;:::i;:::-;;;;;;;;10608:28;10639:24;10657:4;10639:9;:24::i;:::-;10608:55;;10701:6;;;;;;;;;;;10700:7;:47;;;;;10734:13;;;;;;;;;;;10728:19;;:2;:19;;;10700:47;:79;;;;;10768:11;;;;;;;;;;;10700:79;:140;;;;;5330:2;5539;:15;;;;:::i;:::-;5529:7;:25;;;;:::i;:::-;10800:20;:40;10700:140;:191;;;;;5027:2;10861:9;;:30;10700:191;:237;;;;;5330:2;5463;:15;;;;:::i;:::-;5456:4;:22;;;;:::i;:::-;10912:9;;:25;10700:237;10678:751;;;10972:19;5330:2;5611;:15;;;;:::i;:::-;5599:9;:27;;;;:::i;:::-;10995:20;:34;10994:115;;11089:20;10994:115;;;5330:2;5611;:15;;;;:::i;:::-;5599:9;:27;;;;:::i;:::-;10994:115;10972:137;;11128:63;11155:11;11146:6;:20;11145:45;;11184:6;11145:45;;;11170:11;11145:45;11128:16;:63::i;:::-;11210:26;11239:21;11210:50;;11304:1;11283:18;:22;11279:103;;;11330:32;11343:18;11330:12;:32::i;:::-;11279:103;11412:1;11400:9;:13;;;;10953:476;;10678:751;9090:2350;9052:2388;11468:1;11456:9;:13;11452:172;;;11513:39;11542:9;11513;:24;11531:4;11513:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11486:9;:24;11504:4;11486:24;;;;;;;;;;;;;;;:66;;;;11595:4;11572:40;;11581:4;11572:40;;;11602:9;11572:40;;;;;;:::i;:::-;;;;;;;;11452:172;11652:1;11638:11;:15;11634:175;;;11696:40;11724:11;11696:9;:23;11706:12;;;;;;;;;;;11696:23;;;;;;;;;;;;;;;;:27;;:40;;;;:::i;:::-;11670:9;:23;11680:12;;;;;;;;;;;11670:23;;;;;;;;;;;;;;;:66;;;;11771:12;;;;;;;;;;;11756:41;;11765:4;11756:41;;;11785:11;11756:41;;;;;;:::i;:::-;;;;;;;;11634:175;11839:27;11859:6;11839:9;:15;11849:4;11839:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11821:9;:15;11831:4;11821:15;;;;;;;;;;;;;;;:45;;;;11893:81;11925:38;11951:11;11925:21;11936:9;11925:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;11893:9;:13;11903:2;11893:13;;;;;;;;;;;;;;;;:17;;:81;;;;:::i;:::-;11877:9;:13;11887:2;11877:13;;;;;;;;;;;;;;;:97;;;;12007:2;11992:58;;12001:4;11992:58;;;12011:38;12037:11;12011:21;12022:9;12011:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;11992:58;;;;;;:::i;:::-;;;;;;;;8767:3291;;8698:3360;;;:::o;1950:224::-;2070:7;2103:1;2098;:6;;2106:12;2090:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2130:9;2146:1;2142;:5;;;;:::i;:::-;2130:17;;2165:1;2158:8;;;1950:224;;;;;:::o;2182:246::-;2240:7;2269:1;2264;:6;2260:47;;2294:1;2287:8;;;;2260:47;2317:9;2333:1;2329;:5;;;;:::i;:::-;2317:17;;2362:1;2357;2353;:5;;;;:::i;:::-;:10;2345:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2419:1;2412:8;;;2182:246;;;;;:::o;12166:483::-;6086:4;6077:6;;:13;;;;;;;;;;;;;;;;;;12244:21:::1;12282:1;12268:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12244:40;;12313:4;12295;12300:1;12295:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12339:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12329:4;12334:1;12329:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12372:62;12389:4;12404:15;;;;;;;;;;;12422:11;12372:8;:62::i;:::-;12445:15;;;;;;;;;;;:66;;;12526:11;12552:1;12568:4;12595;12615:15;12445:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12233:416;6122:5:::0;6113:6;;:14;;;;;;;;;;;;;;;;;;12166:483;:::o;12066:92::-;12123:10;;;;;;;;;;;:19;;:27;12143:6;12123:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12066:92;:::o;1619:179::-;1677:7;1697:9;1713:1;1709;:5;;;;:::i;:::-;1697:17;;1738:1;1733;:6;;1725:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1789:1;1782:8;;;1619:179;;;;:::o;1806:136::-;1864:7;1891:43;1895:1;1898;1891:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1884:50;;1806:136;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:474::-;4491:6;4499;4548:2;4536:9;4527:7;4523:23;4519:32;4516:119;;;4554:79;;:::i;:::-;4516:119;4674:1;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4645:117;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4423:474;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:163::-;10555:15;10551:1;10543:6;10539:14;10532:39;10415:163;:::o;10584:366::-;10726:3;10747:67;10811:2;10806:3;10747:67;:::i;:::-;10740:74;;10823:93;10912:3;10823:93;:::i;:::-;10941:2;10936:3;10932:12;10925:19;;10584:366;;;:::o;10956:419::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11209:9;11203:4;11199:20;11195:1;11184:9;11180:17;11173:47;11237:131;11363:4;11237:131;:::i;:::-;11229:139;;10956:419;;;:::o;11381:332::-;11502:4;11540:2;11529:9;11525:18;11517:26;;11553:71;11621:1;11610:9;11606:17;11597:6;11553:71;:::i;:::-;11634:72;11702:2;11691:9;11687:18;11678:6;11634:72;:::i;:::-;11381:332;;;;;:::o;11719:170::-;11859:22;11855:1;11847:6;11843:14;11836:46;11719:170;:::o;11895:366::-;12037:3;12058:67;12122:2;12117:3;12058:67;:::i;:::-;12051:74;;12134:93;12223:3;12134:93;:::i;:::-;12252:2;12247:3;12243:12;12236:19;;11895:366;;;:::o;12267:419::-;12433:4;12471:2;12460:9;12456:18;12448:26;;12520:9;12514:4;12510:20;12506:1;12495:9;12491:17;12484:47;12548:131;12674:4;12548:131;:::i;:::-;12540:139;;12267:419;;;:::o;12692:308::-;12801:4;12839:2;12828:9;12824:18;12816:26;;12852:65;12914:1;12903:9;12899:17;12890:6;12852:65;:::i;:::-;12927:66;12989:2;12978:9;12974:18;12965:6;12927:66;:::i;:::-;12692:308;;;;;:::o;13006:181::-;13146:33;13142:1;13134:6;13130:14;13123:57;13006:181;:::o;13193:366::-;13335:3;13356:67;13420:2;13415:3;13356:67;:::i;:::-;13349:74;;13432:93;13521:3;13432:93;:::i;:::-;13550:2;13545:3;13541:12;13534:19;;13193:366;;;:::o;13565:419::-;13731:4;13769:2;13758:9;13754:18;13746:26;;13818:9;13812:4;13808:20;13804:1;13793:9;13789:17;13782:47;13846:131;13972:4;13846:131;:::i;:::-;13838:139;;13565:419;;;:::o;13990:182::-;14130:34;14126:1;14118:6;14114:14;14107:58;13990:182;:::o;14178:366::-;14320:3;14341:67;14405:2;14400:3;14341:67;:::i;:::-;14334:74;;14417:93;14506:3;14417:93;:::i;:::-;14535:2;14530:3;14526:12;14519:19;;14178:366;;;:::o;14550:419::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:131;14957:4;14831:131;:::i;:::-;14823:139;;14550:419;;;:::o;14975:228::-;15115:34;15111:1;15103:6;15099:14;15092:58;15184:11;15179:2;15171:6;15167:15;15160:36;14975:228;:::o;15209:366::-;15351:3;15372:67;15436:2;15431:3;15372:67;:::i;:::-;15365:74;;15448:93;15537:3;15448:93;:::i;:::-;15566:2;15561:3;15557:12;15550:19;;15209:366;;;:::o;15581:419::-;15747:4;15785:2;15774:9;15770:18;15762:26;;15834:9;15828:4;15824:20;15820:1;15809:9;15805:17;15798:47;15862:131;15988:4;15862:131;:::i;:::-;15854:139;;15581:419;;;:::o;16006:170::-;16146:22;16142:1;16134:6;16130:14;16123:46;16006:170;:::o;16182:366::-;16324:3;16345:67;16409:2;16404:3;16345:67;:::i;:::-;16338:74;;16421:93;16510:3;16421:93;:::i;:::-;16539:2;16534:3;16530:12;16523:19;;16182:366;;;:::o;16554:419::-;16720:4;16758:2;16747:9;16743:18;16735:26;;16807:9;16801:4;16797:20;16793:1;16782:9;16778:17;16771:47;16835:131;16961:4;16835:131;:::i;:::-;16827:139;;16554:419;;;:::o;16979:175::-;17119:27;17115:1;17107:6;17103:14;17096:51;16979:175;:::o;17160:366::-;17302:3;17323:67;17387:2;17382:3;17323:67;:::i;:::-;17316:74;;17399:93;17488:3;17399:93;:::i;:::-;17517:2;17512:3;17508:12;17501:19;;17160:366;;;:::o;17532:419::-;17698:4;17736:2;17725:9;17721:18;17713:26;;17785:9;17779:4;17775:20;17771:1;17760:9;17756:17;17749:47;17813:131;17939:4;17813:131;:::i;:::-;17805:139;;17532:419;;;:::o;17957:191::-;17997:3;18016:20;18034:1;18016:20;:::i;:::-;18011:25;;18050:20;18068:1;18050:20;:::i;:::-;18045:25;;18093:1;18090;18086:9;18079:16;;18114:3;18111:1;18108:10;18105:36;;;18121:18;;:::i;:::-;18105:36;17957:191;;;;:::o;18154:176::-;18294:28;18290:1;18282:6;18278:14;18271:52;18154:176;:::o;18336:366::-;18478:3;18499:67;18563:2;18558:3;18499:67;:::i;:::-;18492:74;;18575:93;18664:3;18575:93;:::i;:::-;18693:2;18688:3;18684:12;18677:19;;18336:366;;;:::o;18708:419::-;18874:4;18912:2;18901:9;18897:18;18889:26;;18961:9;18955:4;18951:20;18947:1;18936:9;18932:17;18925:47;18989:131;19115:4;18989:131;:::i;:::-;18981:139;;18708:419;;;:::o;19133:233::-;19172:3;19195:24;19213:5;19195:24;:::i;:::-;19186:33;;19241:66;19234:5;19231:77;19228:103;;19311:18;;:::i;:::-;19228:103;19358:1;19351:5;19347:13;19340:20;;19133:233;;;:::o;19372:180::-;19420:77;19417:1;19410:88;19517:4;19514:1;19507:15;19541:4;19538:1;19531:15;19558:185;19598:1;19615:20;19633:1;19615:20;:::i;:::-;19610:25;;19649:20;19667:1;19649:20;:::i;:::-;19644:25;;19688:1;19678:35;;19693:18;;:::i;:::-;19678:35;19735:1;19732;19728:9;19723:14;;19558:185;;;;:::o;19749:194::-;19789:4;19809:20;19827:1;19809:20;:::i;:::-;19804:25;;19843:20;19861:1;19843:20;:::i;:::-;19838:25;;19887:1;19884;19880:9;19872:17;;19911:1;19905:4;19902:11;19899:37;;;19916:18;;:::i;:::-;19899:37;19749:194;;;;:::o;19949:220::-;20089:34;20085:1;20077:6;20073:14;20066:58;20158:3;20153:2;20145:6;20141:15;20134:28;19949:220;:::o;20175:366::-;20317:3;20338:67;20402:2;20397:3;20338:67;:::i;:::-;20331:74;;20414:93;20503:3;20414:93;:::i;:::-;20532:2;20527:3;20523:12;20516:19;;20175:366;;;:::o;20547:419::-;20713:4;20751:2;20740:9;20736:18;20728:26;;20800:9;20794:4;20790:20;20786:1;20775:9;20771:17;20764:47;20828:131;20954:4;20828:131;:::i;:::-;20820:139;;20547:419;;;:::o;20972:180::-;21020:77;21017:1;21010:88;21117:4;21114:1;21107:15;21141:4;21138:1;21131:15;21158:180;21206:77;21203:1;21196:88;21303:4;21300:1;21293:15;21327:4;21324:1;21317:15;21344:143;21401:5;21432:6;21426:13;21417:22;;21448:33;21475:5;21448:33;:::i;:::-;21344:143;;;;:::o;21493:351::-;21563:6;21612:2;21600:9;21591:7;21587:23;21583:32;21580:119;;;21618:79;;:::i;:::-;21580:119;21738:1;21763:64;21819:7;21810:6;21799:9;21795:22;21763:64;:::i;:::-;21753:74;;21709:128;21493:351;;;;:::o;21850:85::-;21895:7;21924:5;21913:16;;21850:85;;;:::o;21941:60::-;21969:3;21990:5;21983:12;;21941:60;;;:::o;22007:158::-;22065:9;22098:61;22116:42;22125:32;22151:5;22125:32;:::i;:::-;22116:42;:::i;:::-;22098:61;:::i;:::-;22085:74;;22007:158;;;:::o;22171:147::-;22266:45;22305:5;22266:45;:::i;:::-;22261:3;22254:58;22171:147;;:::o;22324:114::-;22391:6;22425:5;22419:12;22409:22;;22324:114;;;:::o;22444:184::-;22543:11;22577:6;22572:3;22565:19;22617:4;22612:3;22608:14;22593:29;;22444:184;;;;:::o;22634:132::-;22701:4;22724:3;22716:11;;22754:4;22749:3;22745:14;22737:22;;22634:132;;;:::o;22772:108::-;22849:24;22867:5;22849:24;:::i;:::-;22844:3;22837:37;22772:108;;:::o;22886:179::-;22955:10;22976:46;23018:3;23010:6;22976:46;:::i;:::-;23054:4;23049:3;23045:14;23031:28;;22886:179;;;;:::o;23071:113::-;23141:4;23173;23168:3;23164:14;23156:22;;23071:113;;;:::o;23220:732::-;23339:3;23368:54;23416:5;23368:54;:::i;:::-;23438:86;23517:6;23512:3;23438:86;:::i;:::-;23431:93;;23548:56;23598:5;23548:56;:::i;:::-;23627:7;23658:1;23643:284;23668:6;23665:1;23662:13;23643:284;;;23744:6;23738:13;23771:63;23830:3;23815:13;23771:63;:::i;:::-;23764:70;;23857:60;23910:6;23857:60;:::i;:::-;23847:70;;23703:224;23690:1;23687;23683:9;23678:14;;23643:284;;;23647:14;23943:3;23936:10;;23344:608;;;23220:732;;;;:::o;23958:831::-;24221:4;24259:3;24248:9;24244:19;24236:27;;24273:71;24341:1;24330:9;24326:17;24317:6;24273:71;:::i;:::-;24354:80;24430:2;24419:9;24415:18;24406:6;24354:80;:::i;:::-;24481:9;24475:4;24471:20;24466:2;24455:9;24451:18;24444:48;24509:108;24612:4;24603:6;24509:108;:::i;:::-;24501:116;;24627:72;24695:2;24684:9;24680:18;24671:6;24627:72;:::i;:::-;24709:73;24777:3;24766:9;24762:19;24753:6;24709:73;:::i;:::-;23958:831;;;;;;;;:::o;24795:177::-;24935:29;24931:1;24923:6;24919:14;24912:53;24795:177;:::o;24978:366::-;25120:3;25141:67;25205:2;25200:3;25141:67;:::i;:::-;25134:74;;25217:93;25306:3;25217:93;:::i;:::-;25335:2;25330:3;25326:12;25319:19;;24978:366;;;:::o;25350:419::-;25516:4;25554:2;25543:9;25539:18;25531:26;;25603:9;25597:4;25593:20;25589:1;25578:9;25574:17;25567:47;25631:131;25757:4;25631:131;:::i;:::-;25623:139;;25350:419;;;:::o

Swarm Source

ipfs://fa2f627d8309dd3c0244647f8fa8adc41ed961c49ecd02f270ba2386848c14ea

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

OVERVIEW

Nomota AI - where technology meets creativity. Chatbot, image, voice and music generation + CPU/GPU marketplace.

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.