ETH Price: $3,325.71 (-3.19%)

Contract

0xB58d239F50a285DDeD64C3d91BeFfdB829364138
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188026612023-12-17 2:04:11396 days ago1702778651IN
0xB58d239F...829364138
0 ETH0.0015555933.42052033
Approve185756072023-11-15 6:48:11428 days ago1700030891IN
0xB58d239F...829364138
0 ETH0.0011639325.00618145
Transfer185755882023-11-15 6:44:11428 days ago1700030651IN
0xB58d239F...829364138
0 ETH0.0012910722.09149425
Approve185329072023-11-09 7:30:35434 days ago1699515035IN
0xB58d239F...829364138
0 ETH0.0014000330.07845589
Approve185146492023-11-06 18:13:23437 days ago1699294403IN
0xB58d239F...829364138
0 ETH0.0016714236.1140149
Approve185051352023-11-05 10:12:47438 days ago1699179167IN
0xB58d239F...829364138
0 ETH0.0006948914.92926502
Approve184237672023-10-25 0:43:35449 days ago1698194615IN
0xB58d239F...829364138
0 ETH0.0006665814.40278645
Approve184234922023-10-24 23:48:35449 days ago1698191315IN
0xB58d239F...829364138
0 ETH0.000432717.83458579
Approve184216502023-10-24 17:37:23450 days ago1698169043IN
0xB58d239F...829364138
0 ETH0.0012340726.6435959
Approve184063242023-10-22 14:06:47452 days ago1697983607IN
0xB58d239F...829364138
0 ETH0.0005531311.88356404
Transfer184063212023-10-22 14:06:11452 days ago1697983571IN
0xB58d239F...829364138
0 ETH0.0007129812.1949201
Approve183530842023-10-15 3:26:23459 days ago1697340383IN
0xB58d239F...829364138
0 ETH0.000255065.47977088
Approve183505572023-10-14 18:58:47460 days ago1697309927IN
0xB58d239F...829364138
0 ETH0.000274855.90511222
Approve183504942023-10-14 18:45:47460 days ago1697309147IN
0xB58d239F...829364138
0 ETH0.000156645.36343453
Approve183504312023-10-14 18:33:11460 days ago1697308391IN
0xB58d239F...829364138
0 ETH0.000294716.33177528
Approve183497922023-10-14 16:24:23460 days ago1697300663IN
0xB58d239F...829364138
0 ETH0.000255295.51186194
Approve183485952023-10-14 12:23:11460 days ago1697286191IN
0xB58d239F...829364138
0 ETH0.000251615.40563951
Approve183467002023-10-14 6:00:23460 days ago1697263223IN
0xB58d239F...829364138
0 ETH0.000262275.66678681
Approve183458452023-10-14 3:08:23460 days ago1697252903IN
0xB58d239F...829364138
0 ETH0.000450269.67344191
Approve183445412023-10-13 22:46:59460 days ago1697237219IN
0xB58d239F...829364138
0 ETH0.000284736.152086
Approve183442522023-10-13 21:48:35460 days ago1697233715IN
0xB58d239F...829364138
0 ETH0.000330417.14095255
Approve183439392023-10-13 20:45:23460 days ago1697229923IN
0xB58d239F...829364138
0 ETH0.000328367.09497908
Approve183438432023-10-13 20:25:59460 days ago1697228759IN
0xB58d239F...829364138
0 ETH0.000420379.0314263
Approve183434822023-10-13 19:12:59460 days ago1697224379IN
0xB58d239F...829364138
0 ETH0.000342367.39921442
Approve183425412023-10-13 16:04:11461 days ago1697213051IN
0xB58d239F...829364138
0 ETH0.0010106221.71247086
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
185756202023-11-15 6:50:47428 days ago1700031047
0xB58d239F...829364138
0.00171847 ETH
185756202023-11-15 6:50:47428 days ago1700031047
0xB58d239F...829364138
0.00085923 ETH
185756202023-11-15 6:50:47428 days ago1700031047
0xB58d239F...829364138
0.00085923 ETH
185756202023-11-15 6:50:47428 days ago1700031047
0xB58d239F...829364138
0.00343694 ETH
185329092023-11-09 7:30:59434 days ago1699515059
0xB58d239F...829364138
0.00173848 ETH
185329092023-11-09 7:30:59434 days ago1699515059
0xB58d239F...829364138
0.00086924 ETH
185329092023-11-09 7:30:59434 days ago1699515059
0xB58d239F...829364138
0.00086924 ETH
185329092023-11-09 7:30:59434 days ago1699515059
0xB58d239F...829364138
0.00347696 ETH
185146542023-11-06 18:14:23437 days ago1699294463
0xB58d239F...829364138
0.00178339 ETH
185146542023-11-06 18:14:23437 days ago1699294463
0xB58d239F...829364138
0.00089169 ETH
185146542023-11-06 18:14:23437 days ago1699294463
0xB58d239F...829364138
0.00089169 ETH
185146542023-11-06 18:14:23437 days ago1699294463
0xB58d239F...829364138
0.00356679 ETH
185051372023-11-05 10:13:11438 days ago1699179191
0xB58d239F...829364138
0.0017931 ETH
185051372023-11-05 10:13:11438 days ago1699179191
0xB58d239F...829364138
0.00089655 ETH
185051372023-11-05 10:13:11438 days ago1699179191
0xB58d239F...829364138
0.00089655 ETH
185051372023-11-05 10:13:11438 days ago1699179191
0xB58d239F...829364138
0.0035862 ETH
184985952023-11-04 12:12:47439 days ago1699099967
0xB58d239F...829364138
0.00180813 ETH
184985952023-11-04 12:12:47439 days ago1699099967
0xB58d239F...829364138
0.00090406 ETH
184985952023-11-04 12:12:47439 days ago1699099967
0xB58d239F...829364138
0.00090406 ETH
184985952023-11-04 12:12:47439 days ago1699099967
0xB58d239F...829364138
0.00361627 ETH
184237852023-10-25 0:47:11449 days ago1698194831
0xB58d239F...829364138
0.00181996 ETH
184237852023-10-25 0:47:11449 days ago1698194831
0xB58d239F...829364138
0.00090998 ETH
184237852023-10-25 0:47:11449 days ago1698194831
0xB58d239F...829364138
0.00090998 ETH
184237852023-10-25 0:47:11449 days ago1698194831
0xB58d239F...829364138
0.00363993 ETH
184063282023-10-22 14:07:35452 days ago1697983655
0xB58d239F...829364138
0.00143074 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZxFuturesBot

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-08
*/

/**
    0xFutures
    Website: 0xFutures.trade
    Twitter: twitter.com/0xFutures_
    Telegram: https://t.me/ZeroFutures
    Bot: https://t.me/ZeroFutures_bot
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

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

contract ZxFuturesBot is Ownable {
    string private constant _name = unicode"0xFutures Bot";
    string private constant _symbol = unicode"0xFutures";
    uint256 private constant _totalSupply = 10_000_000 * 1e18;

    uint256 public maxTransactionAmount = 100_000 * 1e18;
    uint256 public maxWallet = 100_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private revWallet = 0xefd2F827308C82eec2a2C0e76948EA25eaC9b232;
    address private treasuryWallet = 0xb34e379eD7E3189908f921462d72c13299cd76F6;
    address private teamWallet = 0xFEC39FdECad7d09eFCa975b9f2849a90839ca0f4;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 50;
    uint8 public sellTotalFees = 50;

    uint8 public revFee = 50;
    uint8 public treasuryFee = 25;
    uint8 public teamFee = 25;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0x07910882e64CAA8B86bf3525f289A97FF7327434;
        launched = true;
        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);

        _balances[msg.sender] = 3_330_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[treasuryWallet] = 6_380_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[airdropWallet] = 120_000 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[address(this)] = 170_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return 18;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

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

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 50, "Buy fees must be less than or equal to 5%");
        require(_sellTotalFees <= 50, "Sell fees must be less than or equal to 5%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function unleashThe0xFutures() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        require(isContract(newAddress) == false, "Address cannot be contract");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unleashThe0xFutures","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269152d02c7e14af680000060015569152d02c7e14af68000006002556127106a084595161401484a00000060026200003d9190620006e4565b6200004991906200070e565b600355600480546001600160a01b031990811673efd2f827308c82eec2a2c0e76948ea25eac9b232179091556005805490911673b34e379ed7e3189908f921462d72c13299cd76f6179055600680547a01001919323232fec39fdecad7d09efca975b9f2849a90839ca0f4600161ff0160c81b0319909116179055348015620000d0575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000131573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015791906200072e565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001dd91906200072e565b6001600160a01b031660808190525f908152600b60205260409020805460ff191660011790556006805460ff60d81b1916600160d81b1790557307910882e64caa8b86bf3525f289a97ff732743462000249620002415f546001600160a01b031690565b6001620004b3565b62000256306001620004b3565b6200026561dead6001620004b3565b6006546200027e906001600160a01b03166001620004b3565b60045462000297906001600160a01b03166001620004b3565b600554620002b0906001600160a01b03166001620004b3565b620002ce620002c65f546001600160a01b031690565b60016200053a565b620002ef737a250d5630b4cf539739df2c5dacb4c659f2488d60016200053a565b620002fc3060016200053a565b6200030b61dead60016200053a565b6080516200031b9060016200053a565b60065462000334906001600160a01b031660016200053a565b6004546200034d906001600160a01b031660016200053a565b60055462000366906001600160a01b031660016200053a565b335f8181526007602090815260408083206a02c127a96667d9dd4000009081905590519081525f8051602062002eeb833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206a0547047e36bf483b8000009055925490911680825282822054925190925f8051602062002eeb83398151915291620003fd91815260200190565b60405180910390a36001600160a01b0381165f818152600760209081526040808320691969368974c05b0000009081905590519081525f8051602062002eeb833981519152910160405180910390a3305f8181526007602090815260408083206923ffb7ed6565d64000009081905590519081525f8051602062002eeb833981519152910160405180910390a3620004ac30737a250d5630b4cf539739df2c5dacb4c659f2488d5f19620005bd565b506200075d565b33620004c65f546001600160a01b031690565b6001600160a01b031614620005105760405162461bcd60e51b815260206004820181905260248201525f8051602062002ecb83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b336200054d5f546001600160a01b031690565b6001600160a01b031614620005935760405162461bcd60e51b815260206004820181905260248201525f8051602062002ecb833981519152604482015260640162000507565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620006215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000507565b6001600160a01b038216620006845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000507565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80820281158282048414176200070857634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200072957634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200073f575f80fd5b81516001600160a01b038116811462000756575f80fd5b9392505050565b60805161274e6200077d5f395f81816103c401526111a3015261274e5ff3fe608060405260043610610220575f3560e01c806374010ece1161011e578063adfa29e5116100a8578063d85ba0631161006d578063d85ba063146106b0578063dd62ed3e146106d0578063e2f4560514610714578063e710794714610729578063f8b45b0514610748575f80fd5b8063adfa29e51461061d578063c8c8ebe41461063c578063cc32d17614610651578063d201b01e14610671578063d7c94efd14610690575f80fd5b806385ecafd7116100ee57806385ecafd71461055b5780638da5cb5b1461059257806395d89b41146105ae5780639a7a23d6146105df578063a9059cbb146105fe575f80fd5b806374010ece146104ea578063751039fc146105095780637cb332bb1461051d578063809d458d1461053c575f80fd5b80633cf93386116101aa5780636402511e1161016f5780636402511e1461044457806366650dae146104635780636a486a8e1461048257806370a08231146104a2578063715018a6146104d6575f80fd5b80633cf93386146103ab57806349bd5a5e146103b35780634a62bb65146103e65780634fcd244614610406578063590ffdce14610425575f80fd5b806321d37e39116101f057806321d37e391461030757806323b872dd1461033957806327a14fc214610358578063313ce567146103795780633c090c461461038c575f80fd5b806306fdde031461022b578063095ea7b3146102725780631694505e146102a157806318160ddd146102e0575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5060408051808201909152600d81526c0c1e119d5d1d5c995cc8109bdd609a1b60208201525b60405161026991906121b4565b60405180910390f35b34801561027d575f80fd5b5061029161028c36600461221a565b61075d565b6040519015158152602001610269565b3480156102ac575f80fd5b506102c8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610269565b3480156102eb575f80fd5b506a084595161401484a0000005b604051908152602001610269565b348015610312575f80fd5b5060065461032790600160b01b900460ff1681565b60405160ff9091168152602001610269565b348015610344575f80fd5b50610291610353366004612242565b610773565b348015610363575f80fd5b5061037761037236600461227b565b610827565b005b348015610384575f80fd5b506012610327565b348015610397575f80fd5b506103776103a63660046122a2565b61090a565b610377610a12565b3480156103be575f80fd5b506102c87f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f1575f80fd5b5060065461029190600160d01b900460ff1681565b348015610411575f80fd5b506103776104203660046122e2565b610b48565b348015610430575f80fd5b5061037761043f366004612313565b610c81565b34801561044f575f80fd5b5061037761045e36600461227b565b610ce3565b34801561046e575f80fd5b5061037761047d366004612313565b610e40565b34801561048d575f80fd5b5060065461032790600160a81b900460ff1681565b3480156104ad575f80fd5b506102f96104bc36600461234c565b6001600160a01b03165f9081526007602052604090205490565b3480156104e1575f80fd5b50610377610ea2565b3480156104f5575f80fd5b5061037761050436600461227b565b610eeb565b348015610514575f80fd5b50610377610fd3565b348015610528575f80fd5b5061037761053736600461234c565b61101a565b348015610547575f80fd5b5061037761055636600461234c565b6110e9565b348015610566575f80fd5b5061029161057536600461234c565b6001600160a01b03165f9081526009602052604090205460ff1690565b34801561059d575f80fd5b505f546001600160a01b03166102c8565b3480156105b9575f80fd5b5060408051808201909152600981526830784675747572657360b81b602082015261025c565b3480156105ea575f80fd5b506103776105f9366004612313565b611169565b348015610609575f80fd5b5061029161061836600461221a565b61124c565b348015610628575f80fd5b5061037761063736600461234c565b611258565b348015610647575f80fd5b506102f960015481565b34801561065c575f80fd5b5060065461032790600160b81b900460ff1681565b34801561067c575f80fd5b5061037761068b36600461234c565b6112d8565b34801561069b575f80fd5b5060065461032790600160c01b900460ff1681565b3480156106bb575f80fd5b5060065461032790600160a01b900460ff1681565b3480156106db575f80fd5b506102f96106ea36600461236c565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561071f575f80fd5b506102f960035481565b348015610734575f80fd5b50610377610743366004612464565b6113ef565b348015610753575f80fd5b506102f960025481565b5f610769338484611629565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461081157828110156108045760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108118533858403611629565b61081c85858561174c565b506001949350505050565b336108395f546001600160a01b031690565b6001600160a01b03161461085f5760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e86108816a084595161401484a0000006001612567565b61088b919061257e565b610895919061257e565b8110156108f25760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016107fb565b61090481670de0b6b3a7640000612567565b60025550565b3361091c5f546001600160a01b031690565b6001600160a01b0316146109425760405162461bcd60e51b81526004016107fb9061251e565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109a39391810482169290041661259d565b6109ad919061259d565b60ff16606414610a0d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107fb565b505050565b33610a245f546001600160a01b031690565b6001600160a01b031614610a4a5760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff1615610a975760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610b23573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0d91906125b6565b33610b5a5f546001600160a01b031690565b6001600160a01b031614610b805760405162461bcd60e51b81526004016107fb9061251e565b60328260ff161115610be65760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20352560b81b60648201526084016107fb565b60328160ff161115610c4d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20352560b01b60648201526084016107fb565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610c935f546001600160a01b031690565b6001600160a01b031614610cb95760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610cf55f546001600160a01b031690565b6001600160a01b031614610d1b5760405162461bcd60e51b81526004016107fb9061251e565b620186a0610d356a084595161401484a0000006001612567565b610d3f919061257e565b811015610dac5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107fb565b6103e8610dc56a084595161401484a0000006005612567565b610dcf919061257e565b811115610e3b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107fb565b600355565b33610e525f546001600160a01b031690565b6001600160a01b031614610e785760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610eb45f546001600160a01b031690565b6001600160a01b031614610eda5760405162461bcd60e51b81526004016107fb9061251e565b5f80546001600160a01b0319169055565b33610efd5f546001600160a01b031690565b6001600160a01b031614610f235760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e8610f456a084595161401484a0000006001612567565b610f4f919061257e565b610f59919061257e565b811015610fbb5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016107fb565b610fcd81670de0b6b3a7640000612567565b60015550565b33610fe55f546001600160a01b031690565b6001600160a01b03161461100b5760405162461bcd60e51b81526004016107fb9061251e565b6006805460ff60d01b19169055565b3361102c5f546001600160a01b031690565b6001600160a01b0316146110525760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166110785760405162461bcd60e51b81526004016107fb906125e1565b803b156110c75760405162461bcd60e51b815260206004820152601a60248201527f416464726573732063616e6e6f7420626520636f6e747261637400000000000060448201526064016107fb565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110fb5f546001600160a01b031690565b6001600160a01b0316146111215760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166111475760405162461bcd60e51b81526004016107fb906125e1565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3361117b5f546001600160a01b031690565b6001600160a01b0316146111a15760405162461bcd60e51b81526004016107fb9061251e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036112225760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107fb565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f61076933848461174c565b3361126a5f546001600160a01b031690565b6001600160a01b0316146112905760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166112b65760405162461bcd60e51b81526004016107fb906125e1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112ea5f546001600160a01b031690565b6001600160a01b0316146113105760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166113585760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107fb565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146113a1576040519150601f19603f3d011682016040523d82523d5f602084013e6113a6565b606091505b50509050806113eb5760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107fb565b5050565b336114015f546001600160a01b031690565b6001600160a01b0316146114275760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff16156114745760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b5f5b8251811015610a0d5781818151811061149157611491612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156114db5760405162461bcd60e51b81526004016107fb90612625565b8181815181106114ed576114ed612611565b602002602001015160075f85848151811061150a5761150a612611565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461153f919061266b565b9250508190555081818151811061155857611558612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254611591919061267e565b925050819055508281815181106115aa576115aa612611565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106115f8576115f8612611565b602002602001015160405161160f91815260200190565b60405180910390a38061162181612691565b915050611476565b6001600160a01b03831661168b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fb565b6001600160a01b0382166116ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fb565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117b05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fb565b6001600160a01b0382166118125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fb565b5f81116118735760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fb565b600654600160d81b900460ff161580156118c757505f546001600160a01b038481169116148015906118ae57506001600160a01b0383163014155b80156118c757505f546001600160a01b03838116911614155b1561190a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107fb565b600654600160d01b900460ff1615611bcb575f546001600160a01b0384811691161480159061194657505f546001600160a01b03838116911614155b801561195a57506001600160a01b03821615155b801561197157506001600160a01b03821661dead14155b80156119875750600654600160c81b900460ff16155b15611bcb576001600160a01b0383165f908152600b602052604090205460ff1680156119cb57506001600160a01b0382165f908152600a602052604090205460ff16155b15611a9e57600154811115611a305760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107fb565b6002546001600160a01b0383165f90815260076020526040902054611a55908361266b565b1115611a995760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b611bcb565b6001600160a01b0382165f908152600b602052604090205460ff168015611add57506001600160a01b0383165f908152600a602052604090205460ff16155b15611b4357600154811115611a995760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107fb565b6001600160a01b0382165f908152600a602052604090205460ff16611bcb576002546001600160a01b0383165f90815260076020526040902054611b87908361266b565b1115611bcb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b600354305f90815260076020526040902054108015908190611bf75750600654600160c81b900460ff16155b8015611c1b57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611c3f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c6357506001600160a01b0383165f9081526009602052604090205460ff16155b15611c91576006805460ff60c81b1916600160c81b179055611c83611ec5565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611cdd57506001600160a01b0384165f9081526009602052604090205460ff165b15611ce557505f5b6001600160a01b0385165f9081526007602052604090205483811015611d1d5760405162461bcd60e51b81526004016107fb90612625565b5f8215611e53576001600160a01b0386165f908152600b602052604090205460ff168015611d565750600654600160a81b900460ff1615155b15611d87576006546103e890611d7690600160a81b900460ff1687612567565b611d80919061257e565b9050611de6565b6001600160a01b0387165f908152600b602052604090205460ff168015611db95750600654600160a01b900460ff1615155b15611de6576006546103e890611dd990600160a01b900460ff1687612567565b611de3919061257e565b90505b8015611e53576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eb49089815260200190565b60405180910390a350505050505050565b6003545f611ed4826014612567565b305f908152600760205260409020541115611efa57600354611ef7906014612567565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f2d57611f2d612611565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611f7557611f75612611565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611fcc9086905f908690309042906004016126a9565b5f604051808303815f87803b158015611fe3575f80fd5b505af1158015611ff5573d5f803e3d5ffd5b5047925050811590506121ae576006545f9060649061201e90600160b01b900460ff1684612567565b612028919061257e565b6006549091505f9060649061204790600160c01b900460ff1685612567565b612051919061257e565b90505f8161205f848661267e565b612069919061267e565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146120b4576040519150601f19603f3d011682016040523d82523d5f602084013e6120b9565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f8114612106576040519150601f19603f3d011682016040523d82523d5f602084013e61210b565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612158576040519150601f19603f3d011682016040523d82523d5f602084013e61215d565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f6020808352835180828501525f5b818110156121df578581018301518582016040015282016121c3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612215575f80fd5b919050565b5f806040838503121561222b575f80fd5b612234836121ff565b946020939093013593505050565b5f805f60608486031215612254575f80fd5b61225d846121ff565b925061226b602085016121ff565b9150604084013590509250925092565b5f6020828403121561228b575f80fd5b5035919050565b803560ff81168114612215575f80fd5b5f805f606084860312156122b4575f80fd5b6122bd84612292565b92506122cb60208501612292565b91506122d960408501612292565b90509250925092565b5f80604083850312156122f3575f80fd5b6122fc83612292565b915061230a60208401612292565b90509250929050565b5f8060408385031215612324575f80fd5b61232d836121ff565b915060208301358015158114612341575f80fd5b809150509250929050565b5f6020828403121561235c575f80fd5b612365826121ff565b9392505050565b5f806040838503121561237d575f80fd5b612386836121ff565b915061230a602084016121ff565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156123d1576123d1612394565b604052919050565b5f67ffffffffffffffff8211156123f2576123f2612394565b5060051b60200190565b5f82601f83011261240b575f80fd5b8135602061242061241b836123d9565b6123a8565b82815260059290921b8401810191818101908684111561243e575f80fd5b8286015b848110156124595780358352918301918301612442565b509695505050505050565b5f8060408385031215612475575f80fd5b823567ffffffffffffffff8082111561248c575f80fd5b818501915085601f83011261249f575f80fd5b813560206124af61241b836123d9565b82815260059290921b840181019181810190898411156124cd575f80fd5b948201945b838610156124f2576124e3866121ff565b825294820194908201906124d2565b96505086013592505080821115612507575f80fd5b50612514858286016123fc565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076d5761076d612553565b5f8261259857634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561076d5761076d612553565b5f805f606084860312156125c8575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561076d5761076d612553565b8181038181111561076d5761076d612553565b5f600182016126a2576126a2612553565b5060010190565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126f75784516001600160a01b0316835293830193918301916001016126d2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220614346de168a7bf8733a65b39758ed11732d6e6b3896d3cf1bf2bdd4aa2345b864736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610220575f3560e01c806374010ece1161011e578063adfa29e5116100a8578063d85ba0631161006d578063d85ba063146106b0578063dd62ed3e146106d0578063e2f4560514610714578063e710794714610729578063f8b45b0514610748575f80fd5b8063adfa29e51461061d578063c8c8ebe41461063c578063cc32d17614610651578063d201b01e14610671578063d7c94efd14610690575f80fd5b806385ecafd7116100ee57806385ecafd71461055b5780638da5cb5b1461059257806395d89b41146105ae5780639a7a23d6146105df578063a9059cbb146105fe575f80fd5b806374010ece146104ea578063751039fc146105095780637cb332bb1461051d578063809d458d1461053c575f80fd5b80633cf93386116101aa5780636402511e1161016f5780636402511e1461044457806366650dae146104635780636a486a8e1461048257806370a08231146104a2578063715018a6146104d6575f80fd5b80633cf93386146103ab57806349bd5a5e146103b35780634a62bb65146103e65780634fcd244614610406578063590ffdce14610425575f80fd5b806321d37e39116101f057806321d37e391461030757806323b872dd1461033957806327a14fc214610358578063313ce567146103795780633c090c461461038c575f80fd5b806306fdde031461022b578063095ea7b3146102725780631694505e146102a157806318160ddd146102e0575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5060408051808201909152600d81526c0c1e119d5d1d5c995cc8109bdd609a1b60208201525b60405161026991906121b4565b60405180910390f35b34801561027d575f80fd5b5061029161028c36600461221a565b61075d565b6040519015158152602001610269565b3480156102ac575f80fd5b506102c8737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610269565b3480156102eb575f80fd5b506a084595161401484a0000005b604051908152602001610269565b348015610312575f80fd5b5060065461032790600160b01b900460ff1681565b60405160ff9091168152602001610269565b348015610344575f80fd5b50610291610353366004612242565b610773565b348015610363575f80fd5b5061037761037236600461227b565b610827565b005b348015610384575f80fd5b506012610327565b348015610397575f80fd5b506103776103a63660046122a2565b61090a565b610377610a12565b3480156103be575f80fd5b506102c87f000000000000000000000000126144e59afa9f39f9bedbee765e6f5d42ff391a81565b3480156103f1575f80fd5b5060065461029190600160d01b900460ff1681565b348015610411575f80fd5b506103776104203660046122e2565b610b48565b348015610430575f80fd5b5061037761043f366004612313565b610c81565b34801561044f575f80fd5b5061037761045e36600461227b565b610ce3565b34801561046e575f80fd5b5061037761047d366004612313565b610e40565b34801561048d575f80fd5b5060065461032790600160a81b900460ff1681565b3480156104ad575f80fd5b506102f96104bc36600461234c565b6001600160a01b03165f9081526007602052604090205490565b3480156104e1575f80fd5b50610377610ea2565b3480156104f5575f80fd5b5061037761050436600461227b565b610eeb565b348015610514575f80fd5b50610377610fd3565b348015610528575f80fd5b5061037761053736600461234c565b61101a565b348015610547575f80fd5b5061037761055636600461234c565b6110e9565b348015610566575f80fd5b5061029161057536600461234c565b6001600160a01b03165f9081526009602052604090205460ff1690565b34801561059d575f80fd5b505f546001600160a01b03166102c8565b3480156105b9575f80fd5b5060408051808201909152600981526830784675747572657360b81b602082015261025c565b3480156105ea575f80fd5b506103776105f9366004612313565b611169565b348015610609575f80fd5b5061029161061836600461221a565b61124c565b348015610628575f80fd5b5061037761063736600461234c565b611258565b348015610647575f80fd5b506102f960015481565b34801561065c575f80fd5b5060065461032790600160b81b900460ff1681565b34801561067c575f80fd5b5061037761068b36600461234c565b6112d8565b34801561069b575f80fd5b5060065461032790600160c01b900460ff1681565b3480156106bb575f80fd5b5060065461032790600160a01b900460ff1681565b3480156106db575f80fd5b506102f96106ea36600461236c565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561071f575f80fd5b506102f960035481565b348015610734575f80fd5b50610377610743366004612464565b6113ef565b348015610753575f80fd5b506102f960025481565b5f610769338484611629565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461081157828110156108045760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108118533858403611629565b61081c85858561174c565b506001949350505050565b336108395f546001600160a01b031690565b6001600160a01b03161461085f5760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e86108816a084595161401484a0000006001612567565b61088b919061257e565b610895919061257e565b8110156108f25760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b60648201526084016107fb565b61090481670de0b6b3a7640000612567565b60025550565b3361091c5f546001600160a01b031690565b6001600160a01b0316146109425760405162461bcd60e51b81526004016107fb9061251e565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109a39391810482169290041661259d565b6109ad919061259d565b60ff16606414610a0d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b60648201526084016107fb565b505050565b33610a245f546001600160a01b031690565b6001600160a01b031614610a4a5760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff1615610a975760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af1158015610b23573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0d91906125b6565b33610b5a5f546001600160a01b031690565b6001600160a01b031614610b805760405162461bcd60e51b81526004016107fb9061251e565b60328260ff161115610be65760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20352560b81b60648201526084016107fb565b60328160ff161115610c4d5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20352560b01b60648201526084016107fb565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610c935f546001600160a01b031690565b6001600160a01b031614610cb95760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610cf55f546001600160a01b031690565b6001600160a01b031614610d1b5760405162461bcd60e51b81526004016107fb9061251e565b620186a0610d356a084595161401484a0000006001612567565b610d3f919061257e565b811015610dac5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b60648201526084016107fb565b6103e8610dc56a084595161401484a0000006005612567565b610dcf919061257e565b811115610e3b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b60648201526084016107fb565b600355565b33610e525f546001600160a01b031690565b6001600160a01b031614610e785760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610eb45f546001600160a01b031690565b6001600160a01b031614610eda5760405162461bcd60e51b81526004016107fb9061251e565b5f80546001600160a01b0319169055565b33610efd5f546001600160a01b031690565b6001600160a01b031614610f235760405162461bcd60e51b81526004016107fb9061251e565b670de0b6b3a76400006103e8610f456a084595161401484a0000006001612567565b610f4f919061257e565b610f59919061257e565b811015610fbb5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b60648201526084016107fb565b610fcd81670de0b6b3a7640000612567565b60015550565b33610fe55f546001600160a01b031690565b6001600160a01b03161461100b5760405162461bcd60e51b81526004016107fb9061251e565b6006805460ff60d01b19169055565b3361102c5f546001600160a01b031690565b6001600160a01b0316146110525760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166110785760405162461bcd60e51b81526004016107fb906125e1565b803b156110c75760405162461bcd60e51b815260206004820152601a60248201527f416464726573732063616e6e6f7420626520636f6e747261637400000000000060448201526064016107fb565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336110fb5f546001600160a01b031690565b6001600160a01b0316146111215760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166111475760405162461bcd60e51b81526004016107fb906125e1565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b3361117b5f546001600160a01b031690565b6001600160a01b0316146111a15760405162461bcd60e51b81526004016107fb9061251e565b7f000000000000000000000000126144e59afa9f39f9bedbee765e6f5d42ff391a6001600160a01b0316826001600160a01b0316036112225760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f76656400000000000060448201526064016107fb565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f61076933848461174c565b3361126a5f546001600160a01b031690565b6001600160a01b0316146112905760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166112b65760405162461bcd60e51b81526004016107fb906125e1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112ea5f546001600160a01b031690565b6001600160a01b0316146113105760405162461bcd60e51b81526004016107fb9061251e565b6001600160a01b0381166113585760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016107fb565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f81146113a1576040519150601f19603f3d011682016040523d82523d5f602084013e6113a6565b606091505b50509050806113eb5760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b60448201526064016107fb565b5050565b336114015f546001600160a01b031690565b6001600160a01b0316146114275760405162461bcd60e51b81526004016107fb9061251e565b600654600160d81b900460ff16156114745760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b60448201526064016107fb565b5f5b8251811015610a0d5781818151811061149157611491612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156114db5760405162461bcd60e51b81526004016107fb90612625565b8181815181106114ed576114ed612611565b602002602001015160075f85848151811061150a5761150a612611565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461153f919061266b565b9250508190555081818151811061155857611558612611565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f828254611591919061267e565b925050819055508281815181106115aa576115aa612611565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106115f8576115f8612611565b602002602001015160405161160f91815260200190565b60405180910390a38061162181612691565b915050611476565b6001600160a01b03831661168b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fb565b6001600160a01b0382166116ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fb565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117b05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107fb565b6001600160a01b0382166118125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107fb565b5f81116118735760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fb565b600654600160d81b900460ff161580156118c757505f546001600160a01b038481169116148015906118ae57506001600160a01b0383163014155b80156118c757505f546001600160a01b03838116911614155b1561190a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107fb565b600654600160d01b900460ff1615611bcb575f546001600160a01b0384811691161480159061194657505f546001600160a01b03838116911614155b801561195a57506001600160a01b03821615155b801561197157506001600160a01b03821661dead14155b80156119875750600654600160c81b900460ff16155b15611bcb576001600160a01b0383165f908152600b602052604090205460ff1680156119cb57506001600160a01b0382165f908152600a602052604090205460ff16155b15611a9e57600154811115611a305760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b60648201526084016107fb565b6002546001600160a01b0383165f90815260076020526040902054611a55908361266b565b1115611a995760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b611bcb565b6001600160a01b0382165f908152600b602052604090205460ff168015611add57506001600160a01b0383165f908152600a602052604090205460ff16155b15611b4357600154811115611a995760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b60648201526084016107fb565b6001600160a01b0382165f908152600a602052604090205460ff16611bcb576002546001600160a01b0383165f90815260076020526040902054611b87908361266b565b1115611bcb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fb565b600354305f90815260076020526040902054108015908190611bf75750600654600160c81b900460ff16155b8015611c1b57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611c3f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611c6357506001600160a01b0383165f9081526009602052604090205460ff16155b15611c91576006805460ff60c81b1916600160c81b179055611c83611ec5565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611cdd57506001600160a01b0384165f9081526009602052604090205460ff165b15611ce557505f5b6001600160a01b0385165f9081526007602052604090205483811015611d1d5760405162461bcd60e51b81526004016107fb90612625565b5f8215611e53576001600160a01b0386165f908152600b602052604090205460ff168015611d565750600654600160a81b900460ff1615155b15611d87576006546103e890611d7690600160a81b900460ff1687612567565b611d80919061257e565b9050611de6565b6001600160a01b0387165f908152600b602052604090205460ff168015611db95750600654600160a01b900460ff1615155b15611de6576006546103e890611dd990600160a01b900460ff1687612567565b611de3919061257e565b90505b8015611e53576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611eb49089815260200190565b60405180910390a350505050505050565b6003545f611ed4826014612567565b305f908152600760205260409020541115611efa57600354611ef7906014612567565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f2d57611f2d612611565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611f7557611f75612611565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611fcc9086905f908690309042906004016126a9565b5f604051808303815f87803b158015611fe3575f80fd5b505af1158015611ff5573d5f803e3d5ffd5b5047925050811590506121ae576006545f9060649061201e90600160b01b900460ff1684612567565b612028919061257e565b6006549091505f9060649061204790600160c01b900460ff1685612567565b612051919061257e565b90505f8161205f848661267e565b612069919061267e565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146120b4576040519150601f19603f3d011682016040523d82523d5f602084013e6120b9565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f8114612106576040519150601f19603f3d011682016040523d82523d5f602084013e61210b565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612158576040519150601f19603f3d011682016040523d82523d5f602084013e61215d565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f6020808352835180828501525f5b818110156121df578581018301518582016040015282016121c3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114612215575f80fd5b919050565b5f806040838503121561222b575f80fd5b612234836121ff565b946020939093013593505050565b5f805f60608486031215612254575f80fd5b61225d846121ff565b925061226b602085016121ff565b9150604084013590509250925092565b5f6020828403121561228b575f80fd5b5035919050565b803560ff81168114612215575f80fd5b5f805f606084860312156122b4575f80fd5b6122bd84612292565b92506122cb60208501612292565b91506122d960408501612292565b90509250925092565b5f80604083850312156122f3575f80fd5b6122fc83612292565b915061230a60208401612292565b90509250929050565b5f8060408385031215612324575f80fd5b61232d836121ff565b915060208301358015158114612341575f80fd5b809150509250929050565b5f6020828403121561235c575f80fd5b612365826121ff565b9392505050565b5f806040838503121561237d575f80fd5b612386836121ff565b915061230a602084016121ff565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156123d1576123d1612394565b604052919050565b5f67ffffffffffffffff8211156123f2576123f2612394565b5060051b60200190565b5f82601f83011261240b575f80fd5b8135602061242061241b836123d9565b6123a8565b82815260059290921b8401810191818101908684111561243e575f80fd5b8286015b848110156124595780358352918301918301612442565b509695505050505050565b5f8060408385031215612475575f80fd5b823567ffffffffffffffff8082111561248c575f80fd5b818501915085601f83011261249f575f80fd5b813560206124af61241b836123d9565b82815260059290921b840181019181810190898411156124cd575f80fd5b948201945b838610156124f2576124e3866121ff565b825294820194908201906124d2565b96505086013592505080821115612507575f80fd5b50612514858286016123fc565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761076d5761076d612553565b5f8261259857634e487b7160e01b5f52601260045260245ffd5b500490565b60ff818116838216019081111561076d5761076d612553565b5f805f606084860312156125c8575f80fd5b8351925060208401519150604084015190509250925092565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b8082018082111561076d5761076d612553565b8181038181111561076d5761076d612553565b5f600182016126a2576126a2612553565b5060010190565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126f75784516001600160a01b0316835293830193918301916001016126d2565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220614346de168a7bf8733a65b39758ed11732d6e6b3896d3cf1bf2bdd4aa2345b864736f6c63430008150033

Deployed Bytecode Sourcemap

1916:13298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:83;;;;;;;;;;-1:-1:-1;5472:5:0;;;;;;;;;;;;-1:-1:-1;;;5472:5:0;;;;5402:83;;;;;;;:::i;:::-;;;;;;;;6031:152;;;;;;;;;;-1:-1:-1;6031:152:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;6031:152:0;1004:187:1;3507:115:0;;;;;;;;;;;;3579:42;3507:115;;;;;-1:-1:-1;;;;;1386:32:1;;;1368:51;;1356:2;1341:18;3507:115:0;1196:229:1;5672:91:0;;;;;;;;;;-1:-1:-1;2116:17:0;5672:91;;;1576:25:1;;;1564:2;1549:18;5672:91:0;1430:177:1;2717:24:0;;;;;;;;;;-1:-1:-1;2717:24:0;;;;-1:-1:-1;;;2717:24:0;;;;;;;;;1784:4:1;1772:17;;;1754:36;;1742:2;1727:18;2717:24:0;1612:184:1;6702:520:0;;;;;;;;;;-1:-1:-1;6702:520:0;;;;;:::i;:::-;;:::i;12650:235::-;;;;;;;;;;-1:-1:-1;12650:235:0;;;;;:::i;:::-;;:::i;:::-;;5588:76;;;;;;;;;;-1:-1:-1;5654:2:0;5588:76;;10007:300;;;;;;;;;;-1:-1:-1;10007:300:0;;;;;:::i;:::-;;:::i;11470:340::-;;;:::i;3629:38::-;;;;;;;;;;;;;;;2846:33;;;;;;;;;;-1:-1:-1;2846:33:0;;;;-1:-1:-1;;;2846:33:0;;;;;;10315:337;;;;;;;;;;-1:-1:-1;10315:337:0;;;;;:::i;:::-;;:::i;10660:136::-;;;;;;;;;;-1:-1:-1;10660:136:0;;;;;:::i;:::-;;:::i;12037:361::-;;;;;;;;;;-1:-1:-1;12037:361:0;;;;;:::i;:::-;;:::i;10804:158::-;;;;;;;;;;-1:-1:-1;10804:158:0;;;;;:::i;:::-;;:::i;2677:31::-;;;;;;;;;;-1:-1:-1;2677:31:0;;;;-1:-1:-1;;;2677:31:0;;;;;;5771:110;;;;;;;;;;-1:-1:-1;5771:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;5855:18:0;5828:7;5855:18;;;:9;:18;;;;;;;5771:110;613:92;;;;;;;;;;;;;:::i;12406:236::-;;;;;;;;;;-1:-1:-1;12406:236:0;;;;;:::i;:::-;;:::i;9915:84::-;;;;;;;;;;;;;:::i;13269:258::-;;;;;;;;;;-1:-1:-1;13269:258:0;;;;;:::i;:::-;;:::i;13076:185::-;;;;;;;;;;-1:-1:-1;13076:185:0;;;;;:::i;:::-;;:::i;13535:123::-;;;;;;;;;;-1:-1:-1;13535:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;13622:28:0;13598:4;13622:28;;;:19;:28;;;;;;;;;13535:123;392:87;;;;;;;;;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;465:6:0;392:87;;5493;;;;;;;;;;-1:-1:-1;5565:7:0;;;;;;;;;;;;-1:-1:-1;;;5565:7:0;;;;5493:87;;11818:211;;;;;;;;;;-1:-1:-1;11818:211:0;;;;;:::i;:::-;;:::i;6536:158::-;;;;;;;;;;-1:-1:-1;6536:158:0;;;;;:::i;:::-;;:::i;12893:175::-;;;;;;;;;;-1:-1:-1;12893:175:0;;;;;:::i;:::-;;:::i;2142:52::-;;;;;;;;;;;;;;;;2748:29;;;;;;;;;;-1:-1:-1;2748:29:0;;;;-1:-1:-1;;;2748:29:0;;;;;;13666:247;;;;;;;;;;-1:-1:-1;13666:247:0;;;;;:::i;:::-;;:::i;2784:25::-;;;;;;;;;;-1:-1:-1;2784:25:0;;;;-1:-1:-1;;;2784:25:0;;;;;;2640:30;;;;;;;;;;-1:-1:-1;2640:30:0;;;;-1:-1:-1;;;2640:30:0;;;;;;5889:134;;;;;;;;;;-1:-1:-1;5889:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;5988:18:0;;;5961:7;5988:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5889:134;2249:62;;;;;;;;;;;;;;;;10970:492;;;;;;;;;;-1:-1:-1;10970:492:0;;;;;:::i;:::-;;:::i;2201:41::-;;;;;;;;;;;;;;;;6031:152;6099:4;6116:37;6125:10;6137:7;6146:6;6116:8;:37::i;:::-;-1:-1:-1;6171:4:0;6031:152;;;;;:::o;6702:520::-;-1:-1:-1;;;;;6837:19:0;;6793:4;6837:19;;;:11;:19;;;;;;;;6857:10;6837:31;;;;;;;;-1:-1:-1;;6883:37:0;;6879:263;;6965:6;6945:16;:26;;6937:79;;;;-1:-1:-1;;;6937:79:0;;6700:2:1;6937:79:0;;;6682:21:1;6739:2;6719:18;;;6712:30;6778:34;6758:18;;;6751:62;-1:-1:-1;;;6829:18:1;;;6822:38;6877:19;;6937:79:0;;;;;;;;;7060:55;7069:6;7077:10;7108:6;7089:16;:25;7060:8;:55::i;:::-;7154:36;7164:6;7172:9;7183:6;7154:9;:36::i;:::-;-1:-1:-1;7210:4:0;;6702:520;-1:-1:-1;;;;6702:520:0:o;12650:235::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;12785:4:::1;12777;12756:17;2116::::0;12772:1:::1;12756:17;:::i;:::-;12755:26;;;;:::i;:::-;12754:35;;;;:::i;:::-;12738:12;:51;;12730:101;;;::::0;-1:-1:-1;;;12730:101:0;;7997:2:1;12730:101:0::1;::::0;::::1;7979:21:1::0;8036:2;8016:18;;;8009:30;8075:34;8055:18;;;8048:62;-1:-1:-1;;;8126:18:1;;;8119:35;8171:19;;12730:101:0::1;7795:401:1::0;12730:101:0::1;12854:23;:12:::0;12870:6:::1;12854:23;:::i;:::-;12842:9;:35:::0;-1:-1:-1;12650:235:0:o;10007:300::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;10117:6:::1;:16:::0;;-1:-1:-1;;;;10144:26:0;-1:-1:-1;;;10117:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;10144:26:0;;;;;-1:-1:-1;;;10144:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;10181:18:0::1;-1:-1:-1::0;;;10181:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10242:7;::::1;::::0;::::1;::::0;10219:20:::1;::::0;10228:11;;::::1;::::0;::::1;::::0;10219:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;10218:39;;10254:3;10218:39;10210:89;;;::::0;-1:-1:-1;;;10210:89:0;;8556:2:1;10210:89:0::1;::::0;::::1;8538:21:1::0;8595:2;8575:18;;;8568:30;8634:34;8614:18;;;8607:62;-1:-1:-1;;;8685:18:1;;;8678:35;8730:19;;10210:89:0::1;8354:401:1::0;10210:89:0::1;10007:300:::0;;;:::o;11470:340::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;11548:8:::1;::::0;-1:-1:-1;;;11548:8:0;::::1;;;11547:9;11539:38;;;::::0;-1:-1:-1;;;11539:38:0;;8962:2:1;11539:38:0::1;::::0;::::1;8944:21:1::0;9001:2;8981:18;;;8974:30;-1:-1:-1;;;9020:18:1;;;9013:46;9076:18;;11539:38:0::1;8760:340:1::0;11539:38:0::1;11660:4;11680:24;::::0;;;:9:::1;:24;::::0;;;;;;11751:10:::1;::::0;11588:214;;-1:-1:-1;;;11588:214:0;;::::1;::::0;::::1;9446:34:1::0;;;;9496:18;;;9489:34;9539:18;;;9532:34;;;9582:18;;;9575:34;;;;-1:-1:-1;;;;;11751:10:0::1;9625:19:1::0;;;9618:44;11776:15:0::1;9678:19:1::0;;;9671:35;3579:42:0::1;::::0;11588:31:::1;::::0;11627:9:::1;::::0;9380:19:1;;11588:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10315:337::-:0;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;10430:2:::1;10413:13;:19;;;;10405:73;;;::::0;-1:-1:-1;;;10405:73:0;;10230:2:1;10405:73:0::1;::::0;::::1;10212:21:1::0;10269:2;10249:18;;;10242:30;10308:34;10288:18;;;10281:62;-1:-1:-1;;;10359:18:1;;;10352:39;10408:19;;10405:73:0::1;10028:405:1::0;10405:73:0::1;10515:2;10497:14;:20;;;;10489:75;;;::::0;-1:-1:-1;;;10489:75:0;;10640:2:1;10489:75:0::1;::::0;::::1;10622:21:1::0;10679:2;10659:18;;;10652:30;10718:34;10698:18;;;10691:62;-1:-1:-1;;;10769:18:1;;;10762:40;10819:19;;10489:75:0::1;10438:406:1::0;10489:75:0::1;10575:12;:28:::0;;-1:-1:-1;;;;10614:30:0;-1:-1:-1;;;10575:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;10614:30:0;;-1:-1:-1;;;10614:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;10315:337::o;10660:136::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10749:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;10749:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10660:136::o;12037:361::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;12162:6:::1;12141:17;2116::::0;12157:1:::1;12141:17;:::i;:::-;12140:28;;;;:::i;:::-;12123:13;:45;;12115:111;;;::::0;-1:-1:-1;;;12115:111:0;;11051:2:1;12115:111:0::1;::::0;::::1;11033:21:1::0;11090:2;11070:18;;;11063:30;11129:34;11109:18;;;11102:62;-1:-1:-1;;;11180:18:1;;;11173:51;11241:19;;12115:111:0::1;10849:417:1::0;12115:111:0::1;12284:4;12263:17;2116::::0;12279:1:::1;12263:17;:::i;:::-;12262:26;;;;:::i;:::-;12245:13;:43;;12237:108;;;::::0;-1:-1:-1;;;12237:108:0;;11473:2:1;12237:108:0::1;::::0;::::1;11455:21:1::0;11512:2;11492:18;;;11485:30;11551:34;11531:18;;;11524:62;-1:-1:-1;;;11602:18:1;;;11595:50;11662:19;;12237:108:0::1;11271:416:1::0;12237:108:0::1;12356:18;:34:::0;12037:361::o;10804:158::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10903:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;10903:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10804:158::o;613:92::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;695:1:::1;678:19:::0;;-1:-1:-1;;;;;;678:19:0::1;::::0;;613:92::o;12406:236::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;12530:4:::1;12522;12501:17;2116::::0;12517:1:::1;12501:17;:::i;:::-;12500:26;;;;:::i;:::-;12499:35;;;;:::i;:::-;12487:8;:47;;12479:102;;;::::0;-1:-1:-1;;;12479:102:0;;11894:2:1;12479:102:0::1;::::0;::::1;11876:21:1::0;11933:2;11913:18;;;11906:30;11972:34;11952:18;;;11945:62;-1:-1:-1;;;12023:18:1;;;12016:40;12073:19;;12479:102:0::1;11692:406:1::0;12479:102:0::1;12615:19;:8:::0;12627:6:::1;12615:19;:::i;:::-;12592:20;:42:::0;-1:-1:-1;12406:236:0:o;9915:84::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;9969:14:::1;:22:::0;;-1:-1:-1;;;;9969:22:0::1;::::0;;9915:84::o;13269:258::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13353:24:0;::::1;13345:59;;;;-1:-1:-1::0;;;13345:59:0::1;;;;;;;:::i;:::-;14034:17:::0;;14070:8;13415:70:::1;;;::::0;-1:-1:-1;;;13415:70:0;;12656:2:1;13415:70:0::1;::::0;::::1;12638:21:1::0;12695:2;12675:18;;;12668:30;12734:28;12714:18;;;12707:56;12780:18;;13415:70:0::1;12454:350:1::0;13415:70:0::1;13496:10;:23:::0;;-1:-1:-1;;;;;;13496:23:0::1;-1:-1:-1::0;;;;;13496:23:0;;;::::1;::::0;;;::::1;::::0;;13269:258::o;13076:185::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13164:24:0;::::1;13156:59;;;;-1:-1:-1::0;;;13156:59:0::1;;;;;;;:::i;:::-;13226:14;:27:::0;;-1:-1:-1;;;;;;13226:27:0::1;-1:-1:-1::0;;;;;13226:27:0;;;::::1;::::0;;;::::1;::::0;;13076:185::o;11818:211::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;11927:13:::1;-1:-1:-1::0;;;;;11919:21:0::1;:4;-1:-1:-1::0;;;;;11919:21:0::1;::::0;11911:60:::1;;;::::0;-1:-1:-1;;;11911:60:0;;13011:2:1;11911:60:0::1;::::0;::::1;12993:21:1::0;13050:2;13030:18;;;13023:30;13089:28;13069:18;;;13062:56;13135:18;;11911:60:0::1;12809:350:1::0;11911:60:0::1;-1:-1:-1::0;;;;;11982:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;11982:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11818:211::o;6536:158::-;6607:4;6624:40;6634:10;6646:9;6657:6;6624:9;:40::i;12893:175::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12976:24:0;::::1;12968:59;;;;-1:-1:-1::0;;;12968:59:0::1;;;;;;;:::i;:::-;13038:9;:22:::0;;-1:-1:-1;;;;;;13038:22:0::1;-1:-1:-1::0;;;;;13038:22:0;;;::::1;::::0;;;::::1;::::0;;12893:175::o;13666:247::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13744:18:0;::::1;13736:46;;;::::0;-1:-1:-1;;;13736:46:0;;13366:2:1;13736:46:0::1;::::0;::::1;13348:21:1::0;13405:2;13385:18;;;13378:30;-1:-1:-1;;;13424:18:1;;;13417:45;13479:18;;13736:46:0::1;13164:339:1::0;13736:46:0::1;13796:12;13814:4;-1:-1:-1::0;;;;;13814:9:0::1;13831:21;13814:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13795:62;;;13876:7;13868:37;;;::::0;-1:-1:-1;;;13868:37:0;;13920:2:1;13868:37:0::1;::::0;::::1;13902:21:1::0;13959:2;13939:18;;;13932:30;-1:-1:-1;;;13978:18:1;;;13971:47;14035:18;;13868:37:0::1;13718:341:1::0;13868:37:0::1;13725:188;13666:247:::0;:::o;10970:492::-;538:10;527:7;438;465:6;-1:-1:-1;;;;;465:6:0;;392:87;527:7;-1:-1:-1;;;;;527:21:0;;519:66;;;;-1:-1:-1;;;519:66:0;;;;;;;:::i;:::-;11087:8:::1;::::0;-1:-1:-1;;;11087:8:0;::::1;;;11086:9;11078:38;;;::::0;-1:-1:-1;;;11078:38:0;;8962:2:1;11078:38:0::1;::::0;::::1;8944:21:1::0;9001:2;8981:18;;;8974:30;-1:-1:-1;;;9020:18:1;;;9013:46;9076:18;;11078:38:0::1;8760:340:1::0;11078:38:0::1;11132:9;11127:328;11151:9;:16;11147:1;:20;11127:328;;;11222:7;11230:1;11222:10;;;;;;;;:::i;:::-;;;;;;;11197:9;:21;11207:10;-1:-1:-1::0;;;;;11197:21:0::1;-1:-1:-1::0;;;;;11197:21:0::1;;;;;;;;;;;;;:35;;11189:86;;;;-1:-1:-1::0;;;11189:86:0::1;;;;;;;:::i;:::-;11317:7;11325:1;11317:10;;;;;;;;:::i;:::-;;;;;;;11290:9;:23;11300:9;11310:1;11300:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11290:23:0::1;-1:-1:-1::0;;;;;11290:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;11367:7;11375:1;11367:10;;;;;;;;:::i;:::-;;;;;;;11342:9;:21;11352:10;-1:-1:-1::0;;;;;11342:21:0::1;-1:-1:-1::0;;;;;11342:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;11418:9;11428:1;11418:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;11397:46:0::1;11406:10;-1:-1:-1::0;;;;;11397:46:0::1;;11432:7;11440:1;11432:10;;;;;;;;:::i;:::-;;;;;;;11397:46;;;;1576:25:1::0;;1564:2;1549:18;;1430:177;11397:46:0::1;;;;;;;;11169:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11127:328;;6191:337:::0;-1:-1:-1;;;;;6284:19:0;;6276:68;;;;-1:-1:-1;;;6276:68:0;;15208:2:1;6276:68:0;;;15190:21:1;15247:2;15227:18;;;15220:30;15286:34;15266:18;;;15259:62;-1:-1:-1;;;15337:18:1;;;15330:34;15381:19;;6276:68:0;15006:400:1;6276:68:0;-1:-1:-1;;;;;6363:21:0;;6355:68;;;;-1:-1:-1;;;6355:68:0;;15613:2:1;6355:68:0;;;15595:21:1;15652:2;15632:18;;;15625:30;15691:34;15671:18;;;15664:62;-1:-1:-1;;;15742:18:1;;;15735:32;15784:19;;6355:68:0;15411:398:1;6355:68:0;-1:-1:-1;;;;;6436:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6488:32;;1576:25:1;;;6488:32:0;;1549:18:1;6488:32:0;;;;;;;6191:337;;;:::o;7230:2677::-;-1:-1:-1;;;;;7318:18:0;;7310:68;;;;-1:-1:-1;;;7310:68:0;;16016:2:1;7310:68:0;;;15998:21:1;16055:2;16035:18;;;16028:30;16094:34;16074:18;;;16067:62;-1:-1:-1;;;16145:18:1;;;16138:35;16190:19;;7310:68:0;15814:401:1;7310:68:0;-1:-1:-1;;;;;7397:16:0;;7389:64;;;;-1:-1:-1;;;7389:64:0;;16422:2:1;7389:64:0;;;16404:21:1;16461:2;16441:18;;;16434:30;16500:34;16480:18;;;16473:62;-1:-1:-1;;;16551:18:1;;;16544:33;16594:19;;7389:64:0;16220:399:1;7389:64:0;7481:1;7472:6;:10;7464:64;;;;-1:-1:-1;;;7464:64:0;;16826:2:1;7464:64:0;;;16808:21:1;16865:2;16845:18;;;16838:30;16904:34;16884:18;;;16877:62;-1:-1:-1;;;16955:18:1;;;16948:39;17004:19;;7464:64:0;16624:405:1;7464:64:0;7546:8;;-1:-1:-1;;;7546:8:0;;;;7545:9;:72;;;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;7559:15:0;;;465:6;;7559:15;;;;:40;;-1:-1:-1;;;;;;7578:21:0;;7594:4;7578:21;;7559:40;:57;;;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;7603:13:0;;;465:6;;7603:13;;7559:57;7541:134;;;7634:29;;-1:-1:-1;;;7634:29:0;;17236:2:1;7634:29:0;;;17218:21:1;17275:2;17255:18;;;17248:30;-1:-1:-1;;;17294:18:1;;;17287:49;17353:18;;7634:29:0;17034:343:1;7541:134:0;7691:14;;-1:-1:-1;;;7691:14:0;;;;7687:830;;;438:7;465:6;-1:-1:-1;;;;;7726:15:0;;;465:6;;7726:15;;;;:32;;-1:-1:-1;438:7:0;465:6;-1:-1:-1;;;;;7745:13:0;;;465:6;;7745:13;;7726:32;:52;;;;-1:-1:-1;;;;;;7762:16:0;;;;7726:52;:77;;;;-1:-1:-1;;;;;;7782:21:0;;7796:6;7782:21;;7726:77;:90;;;;-1:-1:-1;7808:8:0;;-1:-1:-1;;;7808:8:0;;;;7807:9;7726:90;7722:784;;;-1:-1:-1;;;;;7841:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;7877:35:0;;;;;;:31;:35;;;;;;;;7876:36;7841:71;7837:654;;;7955:20;;7945:6;:30;;7937:80;;;;-1:-1:-1;;;7937:80:0;;17584:2:1;7937:80:0;;;17566:21:1;17623:2;17603:18;;;17596:30;17662:34;17642:18;;;17635:62;-1:-1:-1;;;17713:18:1;;;17706:35;17758:19;;7937:80:0;17382:401:1;7937:80:0;8074:9;;-1:-1:-1;;;;;5855:18:0;;5828:7;5855:18;;;:9;:18;;;;;;8048:22;;:6;:22;:::i;:::-;:35;;8040:67;;;;-1:-1:-1;;;8040:67:0;;17990:2:1;8040:67:0;;;17972:21:1;18029:2;18009:18;;;18002:30;-1:-1:-1;;;18048:18:1;;;18041:49;18107:18;;8040:67:0;17788:343:1;8040:67:0;7837:654;;;-1:-1:-1;;;;;8137:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;8171:37:0;;;;;;:31;:37;;;;;;;;8170:38;8137:71;8133:358;;;8251:20;;8241:6;:30;;8233:80;;;;-1:-1:-1;;;8233:80:0;;18338:2:1;8233:80:0;;;18320:21:1;18377:2;18357:18;;;18350:30;18416:34;18396:18;;;18389:62;-1:-1:-1;;;18467:18:1;;;18460:36;18513:19;;8233:80:0;18136:402:1;8133:358:0;-1:-1:-1;;;;;8344:35:0;;;;;;:31;:35;;;;;;;;8339:152;;8438:9;;-1:-1:-1;;;;;5855:18:0;;5828:7;5855:18;;;:9;:18;;;;;;8412:22;;:6;:22;:::i;:::-;:35;;8404:67;;;;-1:-1:-1;;;8404:67:0;;17990:2:1;8404:67:0;;;17972:21:1;18029:2;18009:18;;;18002:30;-1:-1:-1;;;18048:18:1;;;18041:49;18107:18;;8404:67:0;17788:343:1;8404:67:0;8572:18;;8562:4;8529:12;5855:18;;;:9;:18;;;;;;-1:-1:-1;8544:46:0;;;;;8607:20;;-1:-1:-1;8619:8:0;;-1:-1:-1;;;8619:8:0;;;;8618:9;8607:20;:56;;;;-1:-1:-1;;;;;;8632:31:0;;;;;;:25;:31;;;;;;;;8631:32;8607:56;:86;;;;-1:-1:-1;;;;;;8668:25:0;;;;;;:19;:25;;;;;;;;8667:26;8607:86;:114;;;;-1:-1:-1;;;;;;8698:23:0;;;;;;:19;:23;;;;;;;;8697:24;8607:114;8603:218;;;8738:8;:15;;-1:-1:-1;;;;8738:15:0;-1:-1:-1;;;8738:15:0;;;8768:10;:8;:10::i;:::-;8793:8;:16;;-1:-1:-1;;;;8793:16:0;;;8603:218;8849:8;;-1:-1:-1;;;;;8874:25:0;;8833:12;8874:25;;;:19;:25;;;;;;8849:8;-1:-1:-1;;;8849:8:0;;;;;8848:9;;8874:25;;:52;;-1:-1:-1;;;;;;8903:23:0;;;;;;:19;:23;;;;;;;;8874:52;8870:100;;;-1:-1:-1;8953:5:0;8870:100;-1:-1:-1;;;;;9006:15:0;;8982:21;9006:15;;;:9;:15;;;;;;9040:23;;;;9032:74;;;;-1:-1:-1;;;9032:74:0;;;;;;;:::i;:::-;9119:12;9150:7;9146:602;;;-1:-1:-1;;;;;9178:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;9211:13:0;;-1:-1:-1;;;9211:13:0;;;;:17;;9178:50;9174:264;;;9266:13;;9283:4;;9257:22;;-1:-1:-1;;;9266:13:0;;;;9257:6;:22;:::i;:::-;9256:31;;;;:::i;:::-;9249:38;;9174:264;;;-1:-1:-1;;;;;9313:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;9348:12:0;;-1:-1:-1;;;9348:12:0;;;;:16;;9313:51;9309:129;;;9402:12;;9418:4;;9393:21;;-1:-1:-1;;;9402:12:0;;;;9393:6;:21;:::i;:::-;9392:30;;;;:::i;:::-;9385:37;;9309:129;9458:8;;9454:283;;-1:-1:-1;;;;;9565:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;9629:4;9611:24;;;;;;;:32;;;;;;9686:35;1576:25:1;;;9529:13:0;;;;;9629:4;;9565:15;9686:35;;1549:18:1;9686:35:0;;;;;;;9454:283;-1:-1:-1;;;;;9783:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;9823:13;;;;;;;;;;:23;;;;;;9873:26;;;;;;9802:6;1576:25:1;;1564:2;1549:18;;1430:177;9873:26:0;;;;;;;;7299:2608;;;;7230:2677;;;:::o;14094:1117::-;14157:18;;14133:21;14242:23;14157:18;14263:2;14242:23;:::i;:::-;14233:4;5828:7;5855:18;;;:9;:18;;;;;;14215:50;14211:122;;;14298:18;;:23;;14319:2;14298:23;:::i;:::-;14282:39;;14211:122;14369:16;;;14383:1;14369:16;;;;;;;;14345:21;;14369:16;;;;;;;;;;-1:-1:-1;14369:16:0;14345:40;;14414:4;14396;14401:1;14396:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;14396:23:0;;;-1:-1:-1;;;;;14396:23:0;;;;;2589:42;14430:4;14435:1;14430:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14430:14:0;;;:7;;;;;;;;;;;:14;14457:122;;-1:-1:-1;;;14457:122:0;;3579:42;;14457:66;;:122;;14524:13;;14539:1;;14542:4;;14556;;14563:15;;14457:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14613:21:0;;-1:-1:-1;;14649:14:0;;;-1:-1:-1;14645:559:0;;14714:6;;14680:17;;14724:3;;14701:19;;-1:-1:-1;;;14714:6:0;;;;14701:10;:19;:::i;:::-;14700:27;;;;:::i;:::-;14777:7;;14680:47;;-1:-1:-1;14742:18:0;;14788:3;;14764:20;;-1:-1:-1;;;14777:7:0;;;;14764:10;:20;:::i;:::-;14763:28;;;;:::i;:::-;14742:49;-1:-1:-1;14806:22:0;14742:49;14831:22;14844:9;14831:10;:22;:::i;:::-;:35;;;;:::i;:::-;14905:10;;14897:47;;14806:60;;-1:-1:-1;;;;;;14905:10:0;;14929;;14897:47;;;;14929:10;14905;14897:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14981:14:0;;14973:55;;14883:61;;-1:-1:-1;;;;;;14981:14:0;;15009;;14973:55;;;;15009:14;14981;14973:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15065:9:0;;15057:45;;14959:69;;-1:-1:-1;;;;;;15065:9:0;;15088;;15057:45;;;;15088:9;15065;15057:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15124:68:0;;;19759:25:1;;;19815:2;19800:18;;19793:34;;;19843:18;;;19836:34;;;19901:2;19886:18;;19879:34;;;15043:59:0;;-1:-1:-1;15124:68:0;;19746:3:1;19731:19;15124:68:0;;;;;;;14665:539;;;14645:559;14122:1089;;;;14094:1117::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1801:328::-;1878:6;1886;1894;1947:2;1935:9;1926:7;1922:23;1918:32;1915:52;;;1963:1;1960;1953:12;1915:52;1986:29;2005:9;1986:29;:::i;:::-;1976:39;;2034:38;2068:2;2057:9;2053:18;2034:38;:::i;:::-;2024:48;;2119:2;2108:9;2104:18;2091:32;2081:42;;1801:328;;;;;:::o;2134:180::-;2193:6;2246:2;2234:9;2225:7;2221:23;2217:32;2214:52;;;2262:1;2259;2252:12;2214:52;-1:-1:-1;2285:23:1;;2134:180;-1:-1:-1;2134:180:1:o;2319:156::-;2385:20;;2445:4;2434:16;;2424:27;;2414:55;;2465:1;2462;2455:12;2480:322;2551:6;2559;2567;2620:2;2608:9;2599:7;2595:23;2591:32;2588:52;;;2636:1;2633;2626:12;2588:52;2659:27;2676:9;2659:27;:::i;:::-;2649:37;;2705:36;2737:2;2726:9;2722:18;2705:36;:::i;:::-;2695:46;;2760:36;2792:2;2781:9;2777:18;2760:36;:::i;:::-;2750:46;;2480:322;;;;;:::o;3015:252::-;3079:6;3087;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;3179:27;3196:9;3179:27;:::i;:::-;3169:37;;3225:36;3257:2;3246:9;3242:18;3225:36;:::i;:::-;3215:46;;3015:252;;;;;:::o;3272:347::-;3337:6;3345;3398:2;3386:9;3377:7;3373:23;3369:32;3366:52;;;3414:1;3411;3404:12;3366:52;3437:29;3456:9;3437:29;:::i;:::-;3427:39;;3516:2;3505:9;3501:18;3488:32;3563:5;3556:13;3549:21;3542:5;3539:32;3529:60;;3585:1;3582;3575:12;3529:60;3608:5;3598:15;;;3272:347;;;;;:::o;3624:186::-;3683:6;3736:2;3724:9;3715:7;3711:23;3707:32;3704:52;;;3752:1;3749;3742:12;3704:52;3775:29;3794:9;3775:29;:::i;:::-;3765:39;3624:186;-1:-1:-1;;;3624:186:1:o;3815:260::-;3883:6;3891;3944:2;3932:9;3923:7;3919:23;3915:32;3912:52;;;3960:1;3957;3950:12;3912:52;3983:29;4002:9;3983:29;:::i;:::-;3973:39;;4031:38;4065:2;4054:9;4050:18;4031:38;:::i;4080:127::-;4141:10;4136:3;4132:20;4129:1;4122:31;4172:4;4169:1;4162:15;4196:4;4193:1;4186:15;4212:275;4283:2;4277:9;4348:2;4329:13;;-1:-1:-1;;4325:27:1;4313:40;;4383:18;4368:34;;4404:22;;;4365:62;4362:88;;;4430:18;;:::i;:::-;4466:2;4459:22;4212:275;;-1:-1:-1;4212:275:1:o;4492:183::-;4552:4;4585:18;4577:6;4574:30;4571:56;;;4607:18;;:::i;:::-;-1:-1:-1;4652:1:1;4648:14;4664:4;4644:25;;4492:183::o;4680:662::-;4734:5;4787:3;4780:4;4772:6;4768:17;4764:27;4754:55;;4805:1;4802;4795:12;4754:55;4841:6;4828:20;4867:4;4891:60;4907:43;4947:2;4907:43;:::i;:::-;4891:60;:::i;:::-;4985:15;;;5071:1;5067:10;;;;5055:23;;5051:32;;;5016:12;;;;5095:15;;;5092:35;;;5123:1;5120;5113:12;5092:35;5159:2;5151:6;5147:15;5171:142;5187:6;5182:3;5179:15;5171:142;;;5253:17;;5241:30;;5291:12;;;;5204;;5171:142;;;-1:-1:-1;5331:5:1;4680:662;-1:-1:-1;;;;;;4680:662:1:o;5347:1146::-;5465:6;5473;5526:2;5514:9;5505:7;5501:23;5497:32;5494:52;;;5542:1;5539;5532:12;5494:52;5582:9;5569:23;5611:18;5652:2;5644:6;5641:14;5638:34;;;5668:1;5665;5658:12;5638:34;5706:6;5695:9;5691:22;5681:32;;5751:7;5744:4;5740:2;5736:13;5732:27;5722:55;;5773:1;5770;5763:12;5722:55;5809:2;5796:16;5831:4;5855:60;5871:43;5911:2;5871:43;:::i;5855:60::-;5949:15;;;6031:1;6027:10;;;;6019:19;;6015:28;;;5980:12;;;;6055:19;;;6052:39;;;6087:1;6084;6077:12;6052:39;6111:11;;;;6131:148;6147:6;6142:3;6139:15;6131:148;;;6213:23;6232:3;6213:23;:::i;:::-;6201:36;;6164:12;;;;6257;;;;6131:148;;;6298:5;-1:-1:-1;;6341:18:1;;6328:32;;-1:-1:-1;;6372:16:1;;;6369:36;;;6401:1;6398;6391:12;6369:36;;6424:63;6479:7;6468:8;6457:9;6453:24;6424:63;:::i;:::-;6414:73;;;5347:1146;;;;;:::o;6907:356::-;7109:2;7091:21;;;7128:18;;;7121:30;7187:34;7182:2;7167:18;;7160:62;7254:2;7239:18;;6907:356::o;7268:127::-;7329:10;7324:3;7320:20;7317:1;7310:31;7360:4;7357:1;7350:15;7384:4;7381:1;7374:15;7400:168;7473:9;;;7504;;7521:15;;;7515:22;;7501:37;7491:71;;7542:18;;:::i;7573:217::-;7613:1;7639;7629:132;;7683:10;7678:3;7674:20;7671:1;7664:31;7718:4;7715:1;7708:15;7746:4;7743:1;7736:15;7629:132;-1:-1:-1;7775:9:1;;7573:217::o;8201:148::-;8289:4;8268:12;;;8282;;;8264:31;;8307:13;;8304:39;;;8323:18;;:::i;9717:306::-;9805:6;9813;9821;9874:2;9862:9;9853:7;9849:23;9845:32;9842:52;;;9890:1;9887;9880:12;9842:52;9919:9;9913:16;9903:26;;9969:2;9958:9;9954:18;9948:25;9938:35;;10013:2;10002:9;9998:18;9992:25;9982:35;;9717:306;;;;;:::o;12103:346::-;12305:2;12287:21;;;12344:2;12324:18;;;12317:30;-1:-1:-1;;;12378:2:1;12363:18;;12356:52;12440:2;12425:18;;12103:346::o;14064:127::-;14125:10;14120:3;14116:20;14113:1;14106:31;14156:4;14153:1;14146:15;14180:4;14177:1;14170:15;14196:402;14398:2;14380:21;;;14437:2;14417:18;;;14410:30;14476:34;14471:2;14456:18;;14449:62;-1:-1:-1;;;14542:2:1;14527:18;;14520:36;14588:3;14573:19;;14196:402::o;14603:125::-;14668:9;;;14689:10;;;14686:36;;;14702:18;;:::i;14733:128::-;14800:9;;;14821:11;;;14818:37;;;14835:18;;:::i;14866:135::-;14905:3;14926:17;;;14923:43;;14946:18;;:::i;:::-;-1:-1:-1;14993:1:1;14982:13;;14866:135::o;18543:980::-;18805:4;18853:3;18842:9;18838:19;18884:6;18873:9;18866:25;18910:2;18948:6;18943:2;18932:9;18928:18;18921:34;18991:3;18986:2;18975:9;18971:18;18964:31;19015:6;19050;19044:13;19081:6;19073;19066:22;19119:3;19108:9;19104:19;19097:26;;19158:2;19150:6;19146:15;19132:29;;19179:1;19189:195;19203:6;19200:1;19197:13;19189:195;;;19268:13;;-1:-1:-1;;;;;19264:39:1;19252:52;;19359:15;;;;19324:12;;;;19300:1;19218:9;19189:195;;;-1:-1:-1;;;;;;;19440:32:1;;;;19435:2;19420:18;;19413:60;-1:-1:-1;;;19504:3:1;19489:19;19482:35;19401:3;18543:980;-1:-1:-1;;;18543:980:1:o

Swarm Source

ipfs://614346de168a7bf8733a65b39758ed11732d6e6b3896d3cf1bf2bdd4aa2345b8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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