ETH Price: $2,427.16 (-1.90%)

Contract

0xf2c5780e2DDA407781c0C5ECCC9320D5988eA0A6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve208941882024-10-04 19:15:113 days ago1728069311IN
Decentra Ecosystem: DCE Token
0 ETH0.000174347.18649561
Approve208909722024-10-04 8:30:234 days ago1728030623IN
Decentra Ecosystem: DCE Token
0 ETH0.000208854.48720619
Approve208846822024-10-03 11:26:355 days ago1727954795IN
Decentra Ecosystem: DCE Token
0 ETH0.000284926.12158589
Approve208846672024-10-03 11:23:355 days ago1727954615IN
Decentra Ecosystem: DCE Token
0 ETH0.000239975.15597253
Transfer208766872024-10-02 8:42:116 days ago1727858531IN
Decentra Ecosystem: DCE Token
0 ETH0.000414825.62187077
Approve208599482024-09-30 0:41:478 days ago1727656907IN
Decentra Ecosystem: DCE Token
0 ETH0.00032487.02546781
Approve208588372024-09-29 20:58:358 days ago1727643515IN
Decentra Ecosystem: DCE Token
0 ETH0.000367017.93862501
Transfer208587762024-09-29 20:46:118 days ago1727642771IN
Decentra Ecosystem: DCE Token
0 ETH0.000402468.09961799
Approve208585362024-09-29 19:57:478 days ago1727639867IN
Decentra Ecosystem: DCE Token
0 ETH0.000325656.99663392
Approve208583022024-09-29 19:10:598 days ago1727637059IN
Decentra Ecosystem: DCE Token
0 ETH0.0004657510.07684889
Approve208582762024-09-29 19:05:478 days ago1727636747IN
Decentra Ecosystem: DCE Token
0 ETH0.000573612.32383021
Approve208582622024-09-29 19:02:598 days ago1727636579IN
Decentra Ecosystem: DCE Token
0 ETH0.000463299.9539432
Transfer208582372024-09-29 18:57:598 days ago1727636279IN
Decentra Ecosystem: DCE Token
0 ETH0.000493869.93670877
Transfer208582342024-09-29 18:57:238 days ago1727636243IN
Decentra Ecosystem: DCE Token
0 ETH0.00049439.94564203
Transfer208582322024-09-29 18:56:598 days ago1727636219IN
Decentra Ecosystem: DCE Token
0 ETH0.000477739.61224606
Transfer208582282024-09-29 18:55:598 days ago1727636159IN
Decentra Ecosystem: DCE Token
0 ETH0.000471749.49393613
Transfer208582222024-09-29 18:54:478 days ago1727636087IN
Decentra Ecosystem: DCE Token
0 ETH0.000472939.51558982
Approve208582212024-09-29 18:54:358 days ago1727636075IN
Decentra Ecosystem: DCE Token
0 ETH0.0004942310.69040646
Transfer208582192024-09-29 18:54:118 days ago1727636051IN
Decentra Ecosystem: DCE Token
0 ETH0.000490699.87295677
Transfer208582142024-09-29 18:52:598 days ago1727635979IN
Decentra Ecosystem: DCE Token
0 ETH0.0004971710.00333641
Approve208581992024-09-29 18:49:598 days ago1727635799IN
Decentra Ecosystem: DCE Token
0 ETH0.0004905510.53969945
Approve208577872024-09-29 17:27:358 days ago1727630855IN
Decentra Ecosystem: DCE Token
0 ETH0.000368967.92714712
Approve208577832024-09-29 17:26:478 days ago1727630807IN
Decentra Ecosystem: DCE Token
0 ETH0.000381668.2
Approve208575402024-09-29 16:38:118 days ago1727627891IN
Decentra Ecosystem: DCE Token
0 ETH0.000445639.57444129
Approve208574682024-09-29 16:23:478 days ago1727627027IN
Decentra Ecosystem: DCE Token
0 ETH0.0005431611.66988262
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
209067862024-10-06 13:23:592 days ago1728221039
Decentra Ecosystem: DCE Token
0.00330506 ETH
209067862024-10-06 13:23:592 days ago1728221039
Decentra Ecosystem: DCE Token
0.00330506 ETH
209067862024-10-06 13:23:592 days ago1728221039
Decentra Ecosystem: DCE Token
0.00041394 ETH
209067862024-10-06 13:23:592 days ago1728221039
Decentra Ecosystem: DCE Token
0.00041394 ETH
208940782024-10-04 18:52:593 days ago1728067979
Decentra Ecosystem: DCE Token
0.00332256 ETH
208940782024-10-04 18:52:593 days ago1728067979
Decentra Ecosystem: DCE Token
0.00332256 ETH
208940782024-10-04 18:52:593 days ago1728067979
Decentra Ecosystem: DCE Token
0.0004161 ETH
208940782024-10-04 18:52:593 days ago1728067979
Decentra Ecosystem: DCE Token
0.0004161 ETH
208928102024-10-04 14:38:594 days ago1728052739
Decentra Ecosystem: DCE Token
0.00117312 ETH
208928102024-10-04 14:38:594 days ago1728052739
Decentra Ecosystem: DCE Token
0.00117312 ETH
208928102024-10-04 14:38:594 days ago1728052739
Decentra Ecosystem: DCE Token
0.00014673 ETH
208928102024-10-04 14:38:594 days ago1728052739
Decentra Ecosystem: DCE Token
0.00014673 ETH
208909742024-10-04 8:30:474 days ago1728030647
Decentra Ecosystem: DCE Token
0.00091303 ETH
208909742024-10-04 8:30:474 days ago1728030647
Decentra Ecosystem: DCE Token
0.00091303 ETH
208909742024-10-04 8:30:474 days ago1728030647
Decentra Ecosystem: DCE Token
0.00011418 ETH
208909742024-10-04 8:30:474 days ago1728030647
Decentra Ecosystem: DCE Token
0.00011418 ETH
208846702024-10-03 11:24:115 days ago1727954651
Decentra Ecosystem: DCE Token
0.0050584 ETH
208846702024-10-03 11:24:115 days ago1727954651
Decentra Ecosystem: DCE Token
0.0050584 ETH
208846702024-10-03 11:24:115 days ago1727954651
Decentra Ecosystem: DCE Token
0.00063401 ETH
208846702024-10-03 11:24:115 days ago1727954651
Decentra Ecosystem: DCE Token
0.00063401 ETH
208684562024-10-01 5:08:477 days ago1727759327
Decentra Ecosystem: DCE Token
0.0124325 ETH
208684562024-10-01 5:08:477 days ago1727759327
Decentra Ecosystem: DCE Token
0.0124325 ETH
208684562024-10-01 5:08:477 days ago1727759327
Decentra Ecosystem: DCE Token
0.00156462 ETH
208684562024-10-01 5:08:477 days ago1727759327
Decentra Ecosystem: DCE Token
0.00156462 ETH
208588402024-09-29 20:59:118 days ago1727643551
Decentra Ecosystem: DCE Token
0.00118826 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DecentraEcosystem

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-31
*/

//SPDX-License-Identifier: MIT

/*

Decentra Ecosystem

    Decentra is a decentralized crypto multi-utility ecosystem. 
    Telegram Bots, Ai, DeFi Solutions, Revenue sharing.

Telegram Portal : https://t.me/DecentraERC20
Telegram Sniper Bot: https://t.me/DecentraSniperBot
X : https://x.com/DecentraERC20
Website : https://www.decentra.network/

*/

pragma solidity 0.8.19;

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

library Address {
    function sendValue(
        address payable recipient,
        uint256 amount
    ) internal returns (bool) {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

contract DecentraEcosystem is ERC20, Ownable {
    using Address for address payable;

IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    mapping(address => bool) private _isExcludedFromFees;

    address public marketingFeeReceiver;
    uint256 public swapTokensAtAmount;
    uint256 public tradingEnabledTime;

    bool private inSwapAndLiquify;
    bool public swapEnabled;

    uint256 public marketingFeeInitial;
    uint256 public liquidityFeeInitial;

    uint256 public marketingFeeAfter1Hour;
    uint256 public liquidityFeeAfter1Hour;

    uint256 public marketingFeeAfter2Hours;
    uint256 public liquidityFeeAfter2Hours;

    uint256 public marketingFeeAfter3Hours;
    uint256 public liquidityFeeAfter3Hours;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
    event MarketingFeeReceiverChanged(address marketingFeeReceiver);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 bnbReceived,
        uint256 tokensIntoLiqudity
    );
    event ToggleSwapping(bool swapEnabled);

    constructor() ERC20("Decentra Ecosystem", "DCE") {

        marketingFeeInitial = 18;
        liquidityFeeInitial = 2;

        marketingFeeAfter1Hour = 13;
        liquidityFeeAfter1Hour = 2;
        
        marketingFeeAfter2Hours = 9;
        liquidityFeeAfter2Hours = 1;
        
        marketingFeeAfter3Hours = 4;
        liquidityFeeAfter3Hours = 1;

        marketingFeeReceiver = 0xfA0f60045077bf8360e9Ba0C30Cb518B934273B4;

        //Excluding wallets from fees
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingFeeReceiver] = true;

        _mint(owner(), 1_000_000 * (10 ** decimals()));

        swapTokensAtAmount = totalSupply() / 5_000;

        swapEnabled = false;
    }

    receive() external payable {}

    function claimStuckTokens(address token) external onlyOwner {
        require(
            token != address(this),
            "Owner cannot claim contract's balance of its own tokens"
        );
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }

        IERC20(token).transfer(
            msg.sender,
            IERC20(token).balanceOf(address(this))
        );
    }

    function excludeFromFees(
        address account,
        bool excluded
    ) external onlyOwner {
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

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

    function changeFeeReceiver(
        address _marketingFeeReceiver
    ) external onlyOwner {
        require(
            _marketingFeeReceiver != address(0) &&
            _marketingFeeReceiver != address(0xdead),
            "Marketing Fee receiver cannot be the zero or dead address"
        );
        marketingFeeReceiver = _marketingFeeReceiver;

        emit MarketingFeeReceiverChanged(marketingFeeReceiver);
    }

    event TradingEnabled(bool tradingEnabled, uint256 tradingEnabledTime);

    bool public tradingEnabled;

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already enabled.");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingEnabled = true;
        swapEnabled = true;
        tradingEnabledTime = block.timestamp;

        emit TradingEnabled(tradingEnabled, tradingEnabledTime);
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address");
        require(to != address(0), "Transfer to the zero address");
        require(
            tradingEnabled 
                || _isExcludedFromFees[from] 
                || _isExcludedFromFees[to],
            "Trading not yet enabled!"
        );

        uint256 marketingFee = 0;
        uint256 liquidityFee = 0;

        if (block.timestamp >= tradingEnabledTime + 3 hours) {
            marketingFee = marketingFeeAfter3Hours;
            liquidityFee = liquidityFeeAfter3Hours;
        } else if (block.timestamp >= tradingEnabledTime + 2 hours) {
            marketingFee = marketingFeeAfter2Hours;
            liquidityFee = liquidityFeeAfter2Hours;
        } else if (block.timestamp >= tradingEnabledTime + 1 hours) {
            marketingFee = marketingFeeAfter1Hour;
            liquidityFee = liquidityFeeAfter1Hour;
        } else {
            marketingFee = marketingFeeInitial;
            liquidityFee = liquidityFeeInitial;
        }

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >= swapTokensAtAmount;

        if (overMinTokenBalance && !inSwapAndLiquify && to == uniswapV2Pair && swapEnabled && marketingFee>0 && liquidityFee >0) {
            inSwapAndLiquify = true;

            uint256 marketingShare = marketingFee;
            uint256 liquidityShare = liquidityFee;
            uint256 totalShare = marketingShare + liquidityShare;
            if (totalShare > 0) {
                if (liquidityShare > 0) {
                    uint256 liquidityTokens = (contractTokenBalance * liquidityShare) / totalShare;
                    swapAndLiquify(liquidityTokens);
                }

                if (marketingShare > 0) {
                    uint256 marketingTokens = (contractTokenBalance * marketingShare) / totalShare;
                    swapAndSendMarketing(marketingTokens);
                }
            }
            inSwapAndLiquify = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] && _isExcludedFromFees[to] && inSwapAndLiquify) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair || to == uniswapV2Pair && tradingEnabled) {
            _totalFees = marketingFee + liquidityFee;
        } else {
            _totalFees = 0;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(
            newAmount > totalSupply() / 1_000_000,
            "SwapTokensAtAmount must be greater than 0.0001% of total supply"
        );
        swapTokensAtAmount = newAmount;

        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function toggleSwapping(bool _swapEnabled) external onlyOwner {
        require(swapEnabled != _swapEnabled, "Currently at the same stage");
        swapEnabled = _swapEnabled;
        emit ToggleSwapping(swapEnabled);
    }
function swapAndLiquify(uint256 tokens) private {
        uint256 half = tokens / 2;
        uint256 otherHalf = tokens - half;

        uint256 initialBalance = address(this).balance;

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

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            half,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {}

        uint256 newBalance = address(this).balance - initialBalance;

        try uniswapV2Router.addLiquidityETH{value: newBalance}(
            address(this),
            otherHalf,
            0,
            0,
            address(0xdead),
            block.timestamp
        ) {} catch {}

        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function swapAndSendMarketing(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {}

        uint256 newBalance = address(this).balance - initialBalance;

        payable(marketingFeeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingFeeReceiver","type":"address"}],"name":"MarketingFeeReceiverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapEnabled","type":"bool"}],"name":"ToggleSwapping","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"tradingEnabledTime","type":"uint256"}],"name":"TradingEnabled","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeAfter1Hour","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeAfter2Hours","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeAfter3Hours","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeInitial","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeAfter1Hour","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeAfter2Hours","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeAfter3Hours","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeInitial","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwapping","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabledTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405180604001604052806012815260200171446563656e7472612045636f73797374656d60701b8152506040518060400160405280600381526020016244434560e81b81525081600390816200006a9190620003bd565b506004620000798282620003bd565b50505060006200008e6200022c60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506012600d8181556002600e819055600f91909155601055600960118190556001918290556004601355601482905580546001600160a01b03191673fa0f60045077bf8360e9ba0c30cb518b934273b417905560086000620001456005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054851660019081179091553084528284208054861682179055600954909116835291208054909216179055620001ff620001dc6005546001600160a01b031690565b620001ea6009600a6200059e565b620001f990620f4240620005b6565b62000230565b6113886200020c60025490565b620002189190620005d0565b600a55600c805461ff001916905562000609565b3390565b6001600160a01b0382166200028b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200029f9190620005f3565b90915550506001600160a01b03821660009081526020819052604081208054839290620002ce908490620005f3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200034357607f821691505b6020821081036200036457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003b857600081815260208120601f850160051c81016020861015620003935750805b601f850160051c820191505b81811015620003b4578281556001016200039f565b5050505b505050565b81516001600160401b03811115620003d957620003d962000318565b620003f181620003ea84546200032e565b846200036a565b602080601f831160018114620004295760008415620004105750858301515b600019600386901b1c1916600185901b178555620003b4565b600085815260208120601f198616915b828110156200045a5788860151825594840194600190910190840162000439565b5085821015620004795787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004e0578160001904821115620004c457620004c462000489565b80851615620004d257918102915b93841c9390800290620004a4565b509250929050565b600082620004f95750600162000598565b81620005085750600062000598565b81600181146200052157600281146200052c576200054c565b600191505062000598565b60ff84111562000540576200054062000489565b50506001821b62000598565b5060208310610133831016604e8410600b841016171562000571575081810a62000598565b6200057d83836200049f565b806000190482111562000594576200059462000489565b0290505b92915050565b6000620005af60ff841683620004e8565b9392505050565b808202811582820484141762000598576200059862000489565b600082620005ee57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000598576200059862000489565b6127ae80620006196000396000f3fe6080604052600436106102535760003560e01c8063715018a611610138578063afa4f3b2116100b0578063dd62ed3e1161007f578063e96fada211610064578063e96fada214610676578063f2fde38b14610696578063f9d0831a146106b657600080fd5b8063dd62ed3e1461061a578063e2f456051461066057600080fd5b8063afa4f3b2146105ae578063c0246668146105ce578063c14c6abc146105ee578063d2dd09941461060457600080fd5b806395d89b41116101075780639e6492d3116100ec5780639e6492d314610558578063a457c2d71461056e578063a9059cbb1461058e57600080fd5b806395d89b411461052d5780639a28fe371461054257600080fd5b8063715018a6146104c55780637c08b964146104da5780638a8c523c146104fa5780638da5cb5b1461050f57600080fd5b806349bd5a5e116101cb5780636ddd17131161019a5780636fd8fb7a1161017f5780636fd8fb7a14610463578063703b12be1461047957806370a082311461048f57600080fd5b80636ddd17131461042e5780636e4dc8bd1461044d57600080fd5b806349bd5a5e146103a55780634ada218b146103c55780634fbee193146103df57806359b1a7471461041857600080fd5b8063239be29a11610222578063313ce56711610207578063313ce56714610353578063395093511461036f57806349b087001461038f57600080fd5b8063239be29a1461031157806323b872dd1461033357600080fd5b806306fdde031461025f578063095ea7b31461028a5780631694505e146102ba57806318160ddd146102f257600080fd5b3661025a57005b600080fd5b34801561026b57600080fd5b506102746106d6565b60405161028191906123a0565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004612421565b610768565b6040519015158152602001610281565b3480156102c657600080fd5b506006546102da906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b3480156102fe57600080fd5b506002545b604051908152602001610281565b34801561031d57600080fd5b5061033161032c36600461245b565b61077f565b005b34801561033f57600080fd5b506102aa61034e36600461247f565b6108b5565b34801561035f57600080fd5b5060405160098152602001610281565b34801561037b57600080fd5b506102aa61038a366004612421565b610999565b34801561039b57600080fd5b50610303600d5481565b3480156103b157600080fd5b506007546102da906001600160a01b031681565b3480156103d157600080fd5b506015546102aa9060ff1681565b3480156103eb57600080fd5b506102aa6103fa3660046124c0565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561042457600080fd5b50610303600e5481565b34801561043a57600080fd5b50600c546102aa90610100900460ff1681565b34801561045957600080fd5b5061030360125481565b34801561046f57600080fd5b50610303600b5481565b34801561048557600080fd5b5061030360105481565b34801561049b57600080fd5b506103036104aa3660046124c0565b6001600160a01b031660009081526020819052604090205490565b3480156104d157600080fd5b506103316109d5565b3480156104e657600080fd5b506103316104f53660046124c0565b610a91565b34801561050657600080fd5b50610331610be6565b34801561051b57600080fd5b506005546001600160a01b03166102da565b34801561053957600080fd5b506102746110f8565b34801561054e57600080fd5b5061030360135481565b34801561056457600080fd5b5061030360145481565b34801561057a57600080fd5b506102aa610589366004612421565b611107565b34801561059a57600080fd5b506102aa6105a9366004612421565b6111b8565b3480156105ba57600080fd5b506103316105c93660046124dd565b6111c5565b3480156105da57600080fd5b506103316105e93660046124f6565b6112df565b3480156105fa57600080fd5b50610303600f5481565b34801561061057600080fd5b5061030360115481565b34801561062657600080fd5b5061030361063536600461252f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561066c57600080fd5b50610303600a5481565b34801561068257600080fd5b506009546102da906001600160a01b031681565b3480156106a257600080fd5b506103316106b13660046124c0565b6113b6565b3480156106c257600080fd5b506103316106d13660046124c0565b611500565b6060600380546106e59061255d565b80601f01602080910402602001604051908101604052809291908181526020018280546107119061255d565b801561075e5780601f106107335761010080835404028352916020019161075e565b820191906000526020600020905b81548152906001019060200180831161074157829003601f168201915b5050505050905090565b6000610775338484611709565b5060015b92915050565b6005546001600160a01b031633146107de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b801515600c60019054906101000a900460ff161515036108405760405162461bcd60e51b815260206004820152601b60248201527f43757272656e746c79206174207468652073616d65207374616765000000000060448201526064016107d5565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008315158102919091179182905560405160ff9190920416151581527f0b24deddd077e0149099adf20869b94ebb4b0898a1068e9af5e30529f596e532906020015b60405180910390a150565b6001600160a01b03831660009081526001602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461098357828110156109765760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016107d5565b6109838533858403611709565b61098e858585611861565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107759185906109d09086906125df565b611709565b6005546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6005546001600160a01b03163314610aeb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6001600160a01b03811615801590610b0e57506001600160a01b03811661dead14155b610b805760405162461bcd60e51b815260206004820152603960248201527f4d61726b6574696e67204665652072656365697665722063616e6e6f7420626560448201527f20746865207a65726f206f72206465616420616464726573730000000000000060648201526084016107d5565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fce24358e1d81b90be8bb8786b891404133aa63ffde0e56b69ccf25a5e3c4df06906020016108aa565b6005546001600160a01b03163314610c405760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b60155460ff1615610c935760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642e000000000000000060448201526064016107d5565b600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d009030907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611709565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7791906125f2565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd91906125f2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8691906125f2565b600780546001600160a01b039283167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556006541663f305d7194730610ee6816001600160a01b031660009081526020819052604090205490565b600080610efb6005546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610f7b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa0919061260f565b50506007546006546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303816000875af1158015611030573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611054919061263d565b50601580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905542600b8190556040517f3eb2d65e1de77434db1b2cb0645de0085059e6e514d7b9641fdc2978d8e40c40926110ee929015158252602082015260400190565b60405180910390a1565b6060600480546106e59061255d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016107d5565b6111ae3385858403611709565b5060019392505050565b6000610775338484611861565b6005546001600160a01b0316331461121f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b620f424061122c60025490565b611236919061265a565b81116112aa5760405162461bcd60e51b815260206004820152603f60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c790060648201526084016107d5565b600a8190556040518181527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145906020016108aa565b6005546001600160a01b031633146113395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6001600160a01b03821660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146114105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6001600160a01b03811661148c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107d5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461155a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b306001600160a01b038216036115d85760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e7300000000000000000060648201526084016107d5565b6001600160a01b0381166115f4576115f03347611c5d565b5050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561165b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167f9190612695565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f0919061263d565b50565b6001600160a01b0383166117845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b0382166118005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118b75760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016107d5565b6001600160a01b03821661190d5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016107d5565b60155460ff168061193657506001600160a01b03831660009081526008602052604090205460ff165b8061195957506001600160a01b03821660009081526008602052604090205460ff165b6119a55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107d5565b600080600b54612a306119b891906125df565b42106119cb575050601354601454611a18565b600b546119da90611c206125df565b42106119ed575050601154601254611a18565b600b546119fc90610e106125df565b4210611a0f575050600f54601054611a18565b5050600d54600e545b82600003611a3357611a2c85856000611d0c565b5050505050565b30600090815260208190526040902054600a5481108015908190611a5a5750600c5460ff16155b8015611a7357506007546001600160a01b038781169116145b8015611a865750600c54610100900460ff165b8015611a925750600084115b8015611a9e5750600083115b15611b6457600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905583836000611adc82846125df565b90508015611b38578115611b0e57600081611af784886126ae565b611b01919061265a565b9050611b0c81611f24565b505b8215611b3857600081611b2185886126ae565b611b2b919061265a565b9050611b36816121ce565b505b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505b6001600160a01b03871660009081526008602052604081205460ff168015611ba457506001600160a01b03871660009081526008602052604090205460ff165b8015611bb25750600c5460ff165b15611bbf57506000611c0f565b6007546001600160a01b0389811691161480611bf557506007546001600160a01b038881169116148015611bf5575060155460ff165b15611c0b57611c0484866125df565b9050611c0f565b5060005b8015611c485760006064611c2383896126ae565b611c2d919061265a565b9050611c3981886126c5565b9650611c46893083611d0c565b505b611c53888888611d0c565b5050505050505050565b600081471015611caf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107d5565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611cfc576040519150601f19603f3d011682016040523d82523d6000602084013e611d01565b606091505b509095945050505050565b6001600160a01b038316611d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b038216611e045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b03831660009081526020819052604090205481811015611e935760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611eca9084906125df565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f1691815260200190565b60405180910390a350505050565b6000611f3160028361265a565b90506000611f3f82846126c5565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611f7957611f796126d8565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200f91906125f2565b81600181518110612022576120226126d8565b6001600160a01b0392831660209182029290920101526006546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac94790612081908790600090869030904290600401612707565b600060405180830381600087803b15801561209b57600080fd5b505af19250505080156120ac575060015b5060006120b983476126c5565b6006546040517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201529192506001600160a01b03169063f305d71990839060c40160606040518083038185885af19350505050801561217c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526121799181019061260f565b60015b15612185575050505b60408051868152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1505050505050565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110612207576122076126d8565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015612279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229d91906125f2565b816001815181106122b0576122b06126d8565b6001600160a01b0392831660209182029290920101526006546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac9479061230f908690600090869030904290600401612707565b600060405180830381600087803b15801561232957600080fd5b505af192505050801561233a575060015b50600061234783476126c5565b600954909150612360906001600160a01b031682611c5d565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156123cd578581018301518582016040015282016123b1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b038116811461170657600080fd5b6000806040838503121561243457600080fd5b823561243f8161240c565b946020939093013593505050565b801515811461170657600080fd5b60006020828403121561246d57600080fd5b81356124788161244d565b9392505050565b60008060006060848603121561249457600080fd5b833561249f8161240c565b925060208401356124af8161240c565b929592945050506040919091013590565b6000602082840312156124d257600080fd5b81356124788161240c565b6000602082840312156124ef57600080fd5b5035919050565b6000806040838503121561250957600080fd5b82356125148161240c565b915060208301356125248161244d565b809150509250929050565b6000806040838503121561254257600080fd5b823561254d8161240c565b915060208301356125248161240c565b600181811c9082168061257157607f821691505b6020821081036125aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610779576107796125b0565b60006020828403121561260457600080fd5b81516124788161240c565b60008060006060848603121561262457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561264f57600080fd5b81516124788161244d565b600082612690577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156126a757600080fd5b5051919050565b8082028115828204841417610779576107796125b0565b81810381811115610779576107796125b0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127575784516001600160a01b031683529383019391830191600101612732565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122028d8e0602916a47c58d7ef2cc7245f8ed55ca59de97663c2bc747c581a8e2e9f64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102535760003560e01c8063715018a611610138578063afa4f3b2116100b0578063dd62ed3e1161007f578063e96fada211610064578063e96fada214610676578063f2fde38b14610696578063f9d0831a146106b657600080fd5b8063dd62ed3e1461061a578063e2f456051461066057600080fd5b8063afa4f3b2146105ae578063c0246668146105ce578063c14c6abc146105ee578063d2dd09941461060457600080fd5b806395d89b41116101075780639e6492d3116100ec5780639e6492d314610558578063a457c2d71461056e578063a9059cbb1461058e57600080fd5b806395d89b411461052d5780639a28fe371461054257600080fd5b8063715018a6146104c55780637c08b964146104da5780638a8c523c146104fa5780638da5cb5b1461050f57600080fd5b806349bd5a5e116101cb5780636ddd17131161019a5780636fd8fb7a1161017f5780636fd8fb7a14610463578063703b12be1461047957806370a082311461048f57600080fd5b80636ddd17131461042e5780636e4dc8bd1461044d57600080fd5b806349bd5a5e146103a55780634ada218b146103c55780634fbee193146103df57806359b1a7471461041857600080fd5b8063239be29a11610222578063313ce56711610207578063313ce56714610353578063395093511461036f57806349b087001461038f57600080fd5b8063239be29a1461031157806323b872dd1461033357600080fd5b806306fdde031461025f578063095ea7b31461028a5780631694505e146102ba57806318160ddd146102f257600080fd5b3661025a57005b600080fd5b34801561026b57600080fd5b506102746106d6565b60405161028191906123a0565b60405180910390f35b34801561029657600080fd5b506102aa6102a5366004612421565b610768565b6040519015158152602001610281565b3480156102c657600080fd5b506006546102da906001600160a01b031681565b6040516001600160a01b039091168152602001610281565b3480156102fe57600080fd5b506002545b604051908152602001610281565b34801561031d57600080fd5b5061033161032c36600461245b565b61077f565b005b34801561033f57600080fd5b506102aa61034e36600461247f565b6108b5565b34801561035f57600080fd5b5060405160098152602001610281565b34801561037b57600080fd5b506102aa61038a366004612421565b610999565b34801561039b57600080fd5b50610303600d5481565b3480156103b157600080fd5b506007546102da906001600160a01b031681565b3480156103d157600080fd5b506015546102aa9060ff1681565b3480156103eb57600080fd5b506102aa6103fa3660046124c0565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561042457600080fd5b50610303600e5481565b34801561043a57600080fd5b50600c546102aa90610100900460ff1681565b34801561045957600080fd5b5061030360125481565b34801561046f57600080fd5b50610303600b5481565b34801561048557600080fd5b5061030360105481565b34801561049b57600080fd5b506103036104aa3660046124c0565b6001600160a01b031660009081526020819052604090205490565b3480156104d157600080fd5b506103316109d5565b3480156104e657600080fd5b506103316104f53660046124c0565b610a91565b34801561050657600080fd5b50610331610be6565b34801561051b57600080fd5b506005546001600160a01b03166102da565b34801561053957600080fd5b506102746110f8565b34801561054e57600080fd5b5061030360135481565b34801561056457600080fd5b5061030360145481565b34801561057a57600080fd5b506102aa610589366004612421565b611107565b34801561059a57600080fd5b506102aa6105a9366004612421565b6111b8565b3480156105ba57600080fd5b506103316105c93660046124dd565b6111c5565b3480156105da57600080fd5b506103316105e93660046124f6565b6112df565b3480156105fa57600080fd5b50610303600f5481565b34801561061057600080fd5b5061030360115481565b34801561062657600080fd5b5061030361063536600461252f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561066c57600080fd5b50610303600a5481565b34801561068257600080fd5b506009546102da906001600160a01b031681565b3480156106a257600080fd5b506103316106b13660046124c0565b6113b6565b3480156106c257600080fd5b506103316106d13660046124c0565b611500565b6060600380546106e59061255d565b80601f01602080910402602001604051908101604052809291908181526020018280546107119061255d565b801561075e5780601f106107335761010080835404028352916020019161075e565b820191906000526020600020905b81548152906001019060200180831161074157829003601f168201915b5050505050905090565b6000610775338484611709565b5060015b92915050565b6005546001600160a01b031633146107de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b801515600c60019054906101000a900460ff161515036108405760405162461bcd60e51b815260206004820152601b60248201527f43757272656e746c79206174207468652073616d65207374616765000000000060448201526064016107d5565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101008315158102919091179182905560405160ff9190920416151581527f0b24deddd077e0149099adf20869b94ebb4b0898a1068e9af5e30529f596e532906020015b60405180910390a150565b6001600160a01b03831660009081526001602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461098357828110156109765760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016107d5565b6109838533858403611709565b61098e858585611861565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107759185906109d09086906125df565b611709565b6005546001600160a01b03163314610a2f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6005546001600160a01b03163314610aeb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6001600160a01b03811615801590610b0e57506001600160a01b03811661dead14155b610b805760405162461bcd60e51b815260206004820152603960248201527f4d61726b6574696e67204665652072656365697665722063616e6e6f7420626560448201527f20746865207a65726f206f72206465616420616464726573730000000000000060648201526084016107d5565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fce24358e1d81b90be8bb8786b891404133aa63ffde0e56b69ccf25a5e3c4df06906020016108aa565b6005546001600160a01b03163314610c405760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b60155460ff1615610c935760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642e000000000000000060448201526064016107d5565b600680547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d009030907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611709565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7791906125f2565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd91906125f2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8691906125f2565b600780546001600160a01b039283167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790556006541663f305d7194730610ee6816001600160a01b031660009081526020819052604090205490565b600080610efb6005546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610f7b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa0919061260f565b50506007546006546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303816000875af1158015611030573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611054919061263d565b50601580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001908117909155600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010017905542600b8190556040517f3eb2d65e1de77434db1b2cb0645de0085059e6e514d7b9641fdc2978d8e40c40926110ee929015158252602082015260400190565b60405180910390a1565b6060600480546106e59061255d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016107d5565b6111ae3385858403611709565b5060019392505050565b6000610775338484611861565b6005546001600160a01b0316331461121f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b620f424061122c60025490565b611236919061265a565b81116112aa5760405162461bcd60e51b815260206004820152603f60248201527f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460448201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c790060648201526084016107d5565b600a8190556040518181527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145906020016108aa565b6005546001600160a01b031633146113395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6001600160a01b03821660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146114105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b6001600160a01b03811661148c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107d5565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461155a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107d5565b306001600160a01b038216036115d85760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e7300000000000000000060648201526084016107d5565b6001600160a01b0381166115f4576115f03347611c5d565b5050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561165b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167f9190612695565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f0919061263d565b50565b6001600160a01b0383166117845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b0382166118005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118b75760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016107d5565b6001600160a01b03821661190d5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016107d5565b60155460ff168061193657506001600160a01b03831660009081526008602052604090205460ff165b8061195957506001600160a01b03821660009081526008602052604090205460ff165b6119a55760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107d5565b600080600b54612a306119b891906125df565b42106119cb575050601354601454611a18565b600b546119da90611c206125df565b42106119ed575050601154601254611a18565b600b546119fc90610e106125df565b4210611a0f575050600f54601054611a18565b5050600d54600e545b82600003611a3357611a2c85856000611d0c565b5050505050565b30600090815260208190526040902054600a5481108015908190611a5a5750600c5460ff16155b8015611a7357506007546001600160a01b038781169116145b8015611a865750600c54610100900460ff165b8015611a925750600084115b8015611a9e5750600083115b15611b6457600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905583836000611adc82846125df565b90508015611b38578115611b0e57600081611af784886126ae565b611b01919061265a565b9050611b0c81611f24565b505b8215611b3857600081611b2185886126ae565b611b2b919061265a565b9050611b36816121ce565b505b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505b6001600160a01b03871660009081526008602052604081205460ff168015611ba457506001600160a01b03871660009081526008602052604090205460ff165b8015611bb25750600c5460ff165b15611bbf57506000611c0f565b6007546001600160a01b0389811691161480611bf557506007546001600160a01b038881169116148015611bf5575060155460ff165b15611c0b57611c0484866125df565b9050611c0f565b5060005b8015611c485760006064611c2383896126ae565b611c2d919061265a565b9050611c3981886126c5565b9650611c46893083611d0c565b505b611c53888888611d0c565b5050505050505050565b600081471015611caf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107d5565b6000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114611cfc576040519150601f19603f3d011682016040523d82523d6000602084013e611d01565b606091505b509095945050505050565b6001600160a01b038316611d885760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b038216611e045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b03831660009081526020819052604090205481811015611e935760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016107d5565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611eca9084906125df565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f1691815260200190565b60405180910390a350505050565b6000611f3160028361265a565b90506000611f3f82846126c5565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611f7957611f796126d8565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200f91906125f2565b81600181518110612022576120226126d8565b6001600160a01b0392831660209182029290920101526006546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac94790612081908790600090869030904290600401612707565b600060405180830381600087803b15801561209b57600080fd5b505af19250505080156120ac575060015b5060006120b983476126c5565b6006546040517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201529192506001600160a01b03169063f305d71990839060c40160606040518083038185885af19350505050801561217c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526121799181019061260f565b60015b15612185575050505b60408051868152602081018390529081018590527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1505050505050565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110612207576122076126d8565b6001600160a01b03928316602091820292909201810191909152600654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015612279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229d91906125f2565b816001815181106122b0576122b06126d8565b6001600160a01b0392831660209182029290920101526006546040517f791ac94700000000000000000000000000000000000000000000000000000000815291169063791ac9479061230f908690600090869030904290600401612707565b600060405180830381600087803b15801561232957600080fd5b505af192505050801561233a575060015b50600061234783476126c5565b600954909150612360906001600160a01b031682611c5d565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b600060208083528351808285015260005b818110156123cd578581018301518582016040015282016123b1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b6001600160a01b038116811461170657600080fd5b6000806040838503121561243457600080fd5b823561243f8161240c565b946020939093013593505050565b801515811461170657600080fd5b60006020828403121561246d57600080fd5b81356124788161244d565b9392505050565b60008060006060848603121561249457600080fd5b833561249f8161240c565b925060208401356124af8161240c565b929592945050506040919091013590565b6000602082840312156124d257600080fd5b81356124788161240c565b6000602082840312156124ef57600080fd5b5035919050565b6000806040838503121561250957600080fd5b82356125148161240c565b915060208301356125248161244d565b809150509250929050565b6000806040838503121561254257600080fd5b823561254d8161240c565b915060208301356125248161240c565b600181811c9082168061257157607f821691505b6020821081036125aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610779576107796125b0565b60006020828403121561260457600080fd5b81516124788161240c565b60008060006060848603121561262457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561264f57600080fd5b81516124788161244d565b600082612690577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156126a757600080fd5b5051919050565b8082028115828204841417610779576107796125b0565b81810381811115610779576107796125b0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127575784516001600160a01b031683529383019391830191600101612732565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122028d8e0602916a47c58d7ef2cc7245f8ed55ca59de97663c2bc747c581a8e2e9f64736f6c63430008130033

Deployed Bytecode Sourcemap

8612:9411:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4218:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5193:194;;;;;;;;;;-1:-1:-1;5193:194:0;;;;;:::i;:::-;;:::i;:::-;;;1270:14:1;;1263:22;1245:41;;1233:2;1218:18;5193:194:0;1105:187:1;8702:41:0;;;;;;;;;;-1:-1:-1;8702:41:0;;;;-1:-1:-1;;;;;8702:41:0;;;;;;-1:-1:-1;;;;;1486:55:1;;;1468:74;;1456:2;1441:18;8702:41:0;1297:251:1;4534:108:0;;;;;;;;;;-1:-1:-1;4622:12:0;;4534:108;;;1699:25:1;;;1687:2;1672:18;4534:108:0;1553:177:1;16203:228:0;;;;;;;;;;-1:-1:-1;16203:228:0;;;;;:::i;:::-;;:::i;:::-;;5395:622;;;;;;;;;;-1:-1:-1;5395:622:0;;;;;:::i;:::-;;:::i;4438:92::-;;;;;;;;;;-1:-1:-1;4438:92:0;;4521:1;2707:36:1;;2695:2;2680:18;4438:92:0;2565:184:1;6025:290:0;;;;;;;;;;-1:-1:-1;6025:290:0;;;;;:::i;:::-;;:::i;9040:34::-;;;;;;;;;;;;;;;;8750:28;;;;;;;;;;-1:-1:-1;8750:28:0;;;;-1:-1:-1;;;;;8750:28:0;;;12096:26;;;;;;;;;;-1:-1:-1;12096:26:0;;;;;;;;11443:126;;;;;;;;;;-1:-1:-1;11443:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;11533:28:0;11509:4;11533:28;;;:19;:28;;;;;;;;;11443:126;9081:34;;;;;;;;;;;;;;;;9008:23;;;;;;;;;;-1:-1:-1;9008:23:0;;;;;;;;;;;9259:38;;;;;;;;;;;;;;;;8930:33;;;;;;;;;;;;;;;;9168:37;;;;;;;;;;;;;;;;4650:143;;;;;;;;;;-1:-1:-1;4650:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4767:18:0;4740:7;4767:18;;;;;;;;;;;;4650:143;3370:148;;;;;;;;;;;;;:::i;11577:433::-;;;;;;;;;;-1:-1:-1;11577:433:0;;;;;:::i;:::-;;:::i;12131:804::-;;;;;;;;;;;;;:::i;3156:79::-;;;;;;;;;;-1:-1:-1;3221:6:0;;-1:-1:-1;;;;;3221:6:0;3156:79;;4326:104;;;;;;;;;;;;;:::i;9306:38::-;;;;;;;;;;;;;;;;9351;;;;;;;;;;;;;;;;6323:475;;;;;;;;;;-1:-1:-1;6323:475:0;;;;;:::i;:::-;;:::i;4801:200::-;;;;;;;;;;-1:-1:-1;4801:200:0;;;;;:::i;:::-;;:::i;15853:342::-;;;;;;;;;;-1:-1:-1;15853:342:0;;;;;:::i;:::-;;:::i;11224:211::-;;;;;;;;;;-1:-1:-1;11224:211:0;;;;;:::i;:::-;;:::i;9124:37::-;;;;;;;;;;;;;;;;9214:38;;;;;;;;;;;;;;;;5009:176;;;;;;;;;;-1:-1:-1;5009:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;5150:18:0;;;5123:7;5150:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5009:176;8890:33;;;;;;;;;;;;;;;;8848:35;;;;;;;;;;-1:-1:-1;8848:35:0;;;;-1:-1:-1;;;;;8848:35:0;;;3526:281;;;;;;;;;;-1:-1:-1;3526:281:0;;;;;:::i;:::-;;:::i;10749:467::-;;;;;;;;;;-1:-1:-1;10749:467:0;;;;;:::i;:::-;;:::i;4218:100::-;4272:13;4305:5;4298:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4218:100;:::o;5193:194::-;5301:4;5318:39;2778:10;5341:7;5350:6;5318:8;:39::i;:::-;-1:-1:-1;5375:4:0;5193:194;;;;;:::o;16203:228::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;;;;;;;;;16299:12:::1;16284:27;;:11;;;;;;;;;;;:27;;::::0;16276:67:::1;;;::::0;-1:-1:-1;;;16276:67:0;;5207:2:1;16276:67:0::1;::::0;::::1;5189:21:1::0;5246:2;5226:18;;;5219:30;5285:29;5265:18;;;5258:57;5332:18;;16276:67:0::1;5005:351:1::0;16276:67:0::1;16354:11;:26:::0;;;::::1;;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;16396:27:::1;::::0;16354:26:::1;16411:11:::0;;;::::1;;1270:14:1::0;1263:22;1245:41;;16396:27:0::1;::::0;1233:2:1;1218:18;16396:27:0::1;;;;;;;;16203:228:::0;:::o;5395:622::-;-1:-1:-1;;;;;5579:19:0;;5535:4;5579:19;;;:11;:19;;;;;;;;2778:10;5579:33;;;;;;;;5647:17;5627:37;;5623:314;;5727:6;5707:16;:26;;5681:128;;;;-1:-1:-1;;;5681:128:0;;5563:2:1;5681:128:0;;;5545:21:1;5602:2;5582:18;;;5575:30;5641:34;5621:18;;;5614:62;5712:10;5692:18;;;5685:38;5740:19;;5681:128:0;5361:404:1;5681:128:0;5853:57;5862:6;2778:10;5903:6;5884:16;:25;5853:8;:57::i;:::-;5949:36;5959:6;5967:9;5978:6;5949:9;:36::i;:::-;-1:-1:-1;6005:4:0;;5395:622;-1:-1:-1;;;;5395:622:0:o;6025:290::-;2778:10;6138:4;6227:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6227:34:0;;;;;;;;;;6138:4;;6155:130;;6205:7;;6227:47;;6264:10;;6227:47;:::i;:::-;6155:8;:130::i;3370:148::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;3461:6:::1;::::0;3440:40:::1;::::0;3477:1:::1;::::0;-1:-1:-1;;;;;3461:6:0::1;::::0;3440:40:::1;::::0;3477:1;;3440:40:::1;3491:6;:19:::0;;;::::1;::::0;;3370:148::o;11577:433::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;-1:-1:-1;;;;;11703:35:0;::::1;::::0;;::::1;::::0;:92:::1;;-1:-1:-1::0;;;;;;11755:40:0;::::1;11788:6;11755:40;;11703:92;11681:199;;;::::0;-1:-1:-1;;;11681:199:0;;6291:2:1;11681:199:0::1;::::0;::::1;6273:21:1::0;6330:2;6310:18;;;6303:30;6369:34;6349:18;;;6342:62;6440:27;6420:18;;;6413:55;6485:19;;11681:199:0::1;6089:421:1::0;11681:199:0::1;11891:20;:44:::0;;;::::1;-1:-1:-1::0;;;;;11891:44:0;::::1;::::0;;::::1;::::0;;;11953:49:::1;::::0;1468:74:1;;;11953:49:0::1;::::0;1456:2:1;1441:18;11953:49:0::1;1297:251:1::0;12131:804:0;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;12195:14:::1;::::0;::::1;;12194:15;12186:52;;;::::0;-1:-1:-1;;;12186:52:0;;6717:2:1;12186:52:0::1;::::0;::::1;6699:21:1::0;6756:2;6736:18;;;6729:30;6795:26;6775:18;;;6768:54;6839:18;;12186:52:0::1;6515:348:1::0;12186:52:0::1;12249:15;:80:::0;;;::::1;12286:42;12249:80:::0;;::::1;::::0;;;12340:68:::1;::::0;12357:4:::1;::::0;12390:17:::1;12340:8;:68::i;:::-;12453:15;;;;;;;;;-1:-1:-1::0;;;;;12453:15:0::1;-1:-1:-1::0;;;;;12453:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12435:55:0::1;;12499:4;12506:15;;;;;;;;;-1:-1:-1::0;;;;;12506:15:0::1;-1:-1:-1::0;;;;;12506:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12435:94;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;7377:15:1;;;12435:94:0::1;::::0;::::1;7359:34:1::0;7429:15;;7409:18;;;7402:43;7271:18;;12435:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12419:13;:110:::0;;-1:-1:-1;;;;;12419:110:0;;::::1;::::0;;;::::1;;::::0;;12540:15:::1;::::0;::::1;:31;12579:21;12610:4;12616:24;12610:4:::0;-1:-1:-1;;;;;4767:18:0;4740:7;4767:18;;;;;;;;;;;;4650:143;12616:24:::1;12641:1;12643::::0;12645:7:::1;3221:6:::0;;-1:-1:-1;;;;;3221:6:0;;3156:79;12645:7:::1;12540:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;7838:15:1;;;12540:129:0::1;::::0;::::1;7820:34:1::0;7870:18;;;7863:34;;;;7913:18;;;7906:34;;;;7956:18;;;7949:34;8020:15;;;7999:19;;;7992:44;12653:15:0::1;8052:19:1::0;;;8045:35;7731:19;;12540:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12687:13:0::1;::::0;12718:15:::1;::::0;12680:71:::1;::::0;;;;-1:-1:-1;;;;;12718:15:0;;::::1;12680:71;::::0;::::1;8576:74:1::0;12736:14:0::1;8666:18:1::0;;;8659:34;12687:13:0;::::1;::::0;-1:-1:-1;12680:29:0::1;::::0;8549:18:1;;12680:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12762:14:0::1;:21:::0;;;::::1;12779:4;12762:21:::0;;::::1;::::0;;;12794:11:::1;:18:::0;;;::::1;12762:21;12794:18;::::0;;12844:15:::1;12823:18;:36:::0;;;12877:50:::1;::::0;::::1;::::0;::::1;::::0;12779:4;9147:14:1;9140:22;9122:41;;9194:2;9179:18;;9172:34;9110:2;9095:18;;8954:258;12877:50:0::1;;;;;;;;12131:804::o:0;4326:104::-;4382:13;4415:7;4408:14;;;;;:::i;6323:475::-;2778:10;6441:4;6485:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6485:34:0;;;;;;;;;;6552:35;;;;6530:122;;;;-1:-1:-1;;;6530:122:0;;9419:2:1;6530:122:0;;;9401:21:1;9458:2;9438:18;;;9431:30;9497:34;9477:18;;;9470:62;9568:7;9548:18;;;9541:35;9593:19;;6530:122:0;9217:401:1;6530:122:0;6688:67;2778:10;6711:7;6739:15;6720:16;:34;6688:8;:67::i;:::-;-1:-1:-1;6786:4:0;;6323:475;-1:-1:-1;;;6323:475:0:o;4801:200::-;4912:4;4929:42;2778:10;4953:9;4964:6;4929:9;:42::i;15853:342::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;15983:9:::1;15967:13;4622:12:::0;;;4534:108;15967:13:::1;:25;;;;:::i;:::-;15955:9;:37;15933:150;;;::::0;-1:-1:-1;;;15933:150:0;;10104:2:1;15933:150:0::1;::::0;::::1;10086:21:1::0;10143:2;10123:18;;;10116:30;10182:34;10162:18;;;10155:62;10253:33;10233:18;;;10226:61;10304:19;;15933:150:0::1;9902:427:1::0;15933:150:0::1;16094:18;:30:::0;;;16142:45:::1;::::0;1699:25:1;;;16142:45:0::1;::::0;1687:2:1;1672:18;16142:45:0::1;1553:177:1::0;11224:211:0;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;-1:-1:-1;;;;;11336:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;11393:34;;1245:41:1;;;11393:34:0::1;::::0;1218:18:1;11393:34:0::1;;;;;;;11224:211:::0;;:::o;3526:281::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;-1:-1:-1;;;;;3629:22:0;::::1;3607:110;;;::::0;-1:-1:-1;;;3607:110:0;;10536:2:1;3607:110:0::1;::::0;::::1;10518:21:1::0;10575:2;10555:18;;;10548:30;10614:34;10594:18;;;10587:62;10685:8;10665:18;;;10658:36;10711:19;;3607:110:0::1;10334:402:1::0;3607:110:0::1;3754:6;::::0;3733:38:::1;::::0;-1:-1:-1;;;;;3733:38:0;;::::1;::::0;3754:6:::1;::::0;3733:38:::1;::::0;3754:6:::1;::::0;3733:38:::1;3782:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;3782:17:0;;;::::1;::::0;;;::::1;::::0;;3526:281::o;10749:467::-;3283:6;;-1:-1:-1;;;;;3283:6:0;2778:10;3283:22;3275:67;;;;-1:-1:-1;;;3275:67:0;;4846:2:1;3275:67:0;;;4828:21:1;;;4865:18;;;4858:30;4924:34;4904:18;;;4897:62;4976:18;;3275:67:0;4644:356:1;3275:67:0;10859:4:::1;-1:-1:-1::0;;;;;10842:22:0;::::1;::::0;10820:127:::1;;;::::0;-1:-1:-1;;;10820:127:0;;10943:2:1;10820:127:0::1;::::0;::::1;10925:21:1::0;10982:2;10962:18;;;10955:30;11021:34;11001:18;;;10994:62;11092:25;11072:18;;;11065:53;11135:19;;10820:127:0::1;10741:419:1::0;10820:127:0::1;-1:-1:-1::0;;;;;10962:21:0;::::1;10958:127;;11000:52;11008:10;11030:21;11000:29;:52::i;:::-;;10749:467:::0;:::o;10958:127::-:1;11159:38;::::0;;;;11191:4:::1;11159:38;::::0;::::1;1468:74:1::0;-1:-1:-1;;;;;11097:22:0;::::1;::::0;::::1;::::0;11134:10:::1;::::0;11097:22;;11159:23:::1;::::0;1441:18:1;;11159:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11097:111;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;8594:55:1;;;11097:111:0::1;::::0;::::1;8576:74:1::0;8666:18;;;8659:34;8549:18;;11097:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3353:1::-;10749:467:::0;:::o;8225:380::-;-1:-1:-1;;;;;8361:19:0;;8353:68;;;;-1:-1:-1;;;8353:68:0;;11556:2:1;8353:68:0;;;11538:21:1;11595:2;11575:18;;;11568:30;11634:34;11614:18;;;11607:62;11705:6;11685:18;;;11678:34;11729:19;;8353:68:0;11354:400:1;8353:68:0;-1:-1:-1;;;;;8440:21:0;;8432:68;;;;-1:-1:-1;;;8432:68:0;;11961:2:1;8432:68:0;;;11943:21:1;12000:2;11980:18;;;11973:30;12039:34;12019:18;;;12012:62;12110:4;12090:18;;;12083:32;12132:19;;8432:68:0;11759:398:1;8432:68:0;-1:-1:-1;;;;;8513:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8565:32;;1699:25:1;;;8565:32:0;;1672:18:1;8565:32:0;;;;;;;8225:380;;;:::o;12941:2904::-;-1:-1:-1;;;;;13073:18:0;;13065:61;;;;-1:-1:-1;;;13065:61:0;;12364:2:1;13065:61:0;;;12346:21:1;12403:2;12383:18;;;12376:30;12442:32;12422:18;;;12415:60;12492:18;;13065:61:0;12162:354:1;13065:61:0;-1:-1:-1;;;;;13145:16:0;;13137:57;;;;-1:-1:-1;;;13137:57:0;;12723:2:1;13137:57:0;;;12705:21:1;12762:2;12742:18;;;12735:30;12801;12781:18;;;12774:58;12849:18;;13137:57:0;12521:352:1;13137:57:0;13227:14;;;;;:61;;-1:-1:-1;;;;;;13263:25:0;;;;;;:19;:25;;;;;;;;13227:61;:106;;;-1:-1:-1;;;;;;13310:23:0;;;;;;:19;:23;;;;;;;;13227:106;13205:180;;;;-1:-1:-1;;;13205:180:0;;13080:2:1;13205:180:0;;;13062:21:1;13119:2;13099:18;;;13092:30;13158:26;13138:18;;;13131:54;13202:18;;13205:180:0;12878:348:1;13205:180:0;13398:20;13433;13493:18;;13514:7;13493:28;;;;:::i;:::-;13474:15;:47;13470:639;;-1:-1:-1;;13553:23:0;;13606;;13470:639;;;13670:18;;:28;;13691:7;13670:28;:::i;:::-;13651:15;:47;13647:462;;-1:-1:-1;;13730:23:0;;13783;;13647:462;;;13847:18;;:28;;13868:7;13847:28;:::i;:::-;13828:15;:47;13824:285;;-1:-1:-1;;13907:22:0;;13959;;13824:285;;;-1:-1:-1;;14029:19:0;;14078;;13824:285;14125:6;14135:1;14125:11;14121:93;;14153:28;14169:4;14175:2;14179:1;14153:15;:28::i;:::-;14196:7;;12941:2904;;;:::o;14121:93::-;14275:4;14226:28;4767:18;;;;;;;;;;;14343;;14319:42;;;;;;;14378:40;;-1:-1:-1;14402:16:0;;;;14401:17;14378:40;:63;;;;-1:-1:-1;14428:13:0;;-1:-1:-1;;;;;14422:19:0;;;14428:13;;14422:19;14378:63;:78;;;;-1:-1:-1;14445:11:0;;;;;;;14378:78;:96;;;;;14473:1;14460:12;:14;14378:96;:115;;;;;14492:1;14478:12;:15;14378:115;14374:875;;;14510:16;:23;;;;14529:4;14510:23;;;14575:12;14627;14510:16;14675:31;14627:12;14575;14675:31;:::i;:::-;14654:52;-1:-1:-1;14725:14:0;;14721:478;;14764:18;;14760:199;;14807:23;14875:10;14834:37;14857:14;14834:20;:37;:::i;:::-;14833:52;;;;:::i;:::-;14807:78;;14908:31;14923:15;14908:14;:31::i;:::-;14784:175;14760:199;14983:18;;14979:205;;15026:23;15094:10;15053:37;15076:14;15053:20;:37;:::i;:::-;15052:52;;;;:::i;:::-;15026:78;;15127:37;15148:15;15127:20;:37::i;:::-;15003:181;14979:205;-1:-1:-1;;15213:16:0;:24;;;;;;-1:-1:-1;14374:875:0;-1:-1:-1;;;;;15294:25:0;;15261:18;15294:25;;;:19;:25;;;;;;;;:52;;;;-1:-1:-1;;;;;;15323:23:0;;;;;;:19;:23;;;;;;;;15294:52;:72;;;;-1:-1:-1;15350:16:0;;;;15294:72;15290:307;;;-1:-1:-1;15396:1:0;15290:307;;;15427:13;;-1:-1:-1;;;;;15419:21:0;;;15427:13;;15419:21;;:62;;-1:-1:-1;15450:13:0;;-1:-1:-1;;;;;15444:19:0;;;15450:13;;15444:19;:37;;;;-1:-1:-1;15467:14:0;;;;15444:37;15415:182;;;15511:27;15526:12;15511;:27;:::i;:::-;15498:40;;15415:182;;;-1:-1:-1;15584:1:0;15415:182;15613:14;;15609:183;;15644:12;15683:3;15660:19;15669:10;15660:6;:19;:::i;:::-;15659:27;;;;:::i;:::-;15644:42;-1:-1:-1;15710:13:0;15644:42;15710:6;:13;:::i;:::-;15701:22;;15738:42;15754:4;15768;15775;15738:15;:42::i;:::-;15629:163;15609:183;15804:33;15820:4;15826:2;15830:6;15804:15;:33::i;:::-;13054:2791;;;;;12941:2904;;;:::o;2309:349::-;2414:4;2478:6;2453:21;:31;;2431:110;;;;-1:-1:-1;;;2431:110:0;;13739:2:1;2431:110:0;;;13721:21:1;13778:2;13758:18;;;13751:30;13817:31;13797:18;;;13790:59;13866:18;;2431:110:0;13537:353:1;2431:110:0;2555:12;2573:9;-1:-1:-1;;;;;2573:14:0;2595:6;2573:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2554:52:0;;2309:349;-1:-1:-1;;;;;2309:349:0:o;6806:651::-;-1:-1:-1;;;;;6946:20:0;;6938:70;;;;-1:-1:-1;;;6938:70:0;;14307:2:1;6938:70:0;;;14289:21:1;14346:2;14326:18;;;14319:30;14385:34;14365:18;;;14358:62;14456:7;14436:18;;;14429:35;14481:19;;6938:70:0;14105:401:1;6938:70:0;-1:-1:-1;;;;;7027:23:0;;7019:71;;;;-1:-1:-1;;;7019:71:0;;14713:2:1;7019:71:0;;;14695:21:1;14752:2;14732:18;;;14725:30;14791:34;14771:18;;;14764:62;14862:5;14842:18;;;14835:33;14885:19;;7019:71:0;14511:399:1;7019:71:0;-1:-1:-1;;;;;7127:17:0;;7103:21;7127:17;;;;;;;;;;;7177:23;;;;7155:111;;;;-1:-1:-1;;;7155:111:0;;15117:2:1;7155:111:0;;;15099:21:1;15156:2;15136:18;;;15129:30;15195:34;15175:18;;;15168:62;15266:8;15246:18;;;15239:36;15292:19;;7155:111:0;14915:402:1;7155:111:0;-1:-1:-1;;;;;7302:17:0;;;:9;:17;;;;;;;;;;;7322:22;;;7302:42;;7366:20;;;;;;;;:30;;7338:6;;7302:9;7366:30;;7338:6;;7366:30;:::i;:::-;;;;;;;;7431:9;-1:-1:-1;;;;;7414:35:0;7423:6;-1:-1:-1;;;;;7414:35:0;;7442:6;7414:35;;;;1699:25:1;;1687:2;1672:18;;1553:177;7414:35:0;;;;;;;;6927:530;6806:651;;;:::o;16433:908::-;16492:12;16507:10;16516:1;16507:6;:10;:::i;:::-;16492:25;-1:-1:-1;16528:17:0;16548:13;16492:25;16548:6;:13;:::i;:::-;16657:16;;;16671:1;16657:16;;;;;;;;16528:33;;-1:-1:-1;16599:21:0;;16574:22;;16657:16;;;;;;;;;;-1:-1:-1;16657:16:0;16633:40;;16702:4;16684;16689:1;16684:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16684:23:0;;;:7;;;;;;;;;;:23;;;;16728:15;;:22;;;;;;;;:15;;;;;:20;;:22;;;;;16684:7;;16728:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16718:4;16723:1;16718:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16718:32:0;;;:7;;;;;;;;;:32;16767:15;;:189;;;;;:15;;;:66;;:189;;16848:4;;16767:15;;16883:4;;16910;;16930:15;;16767:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16763:205;16980:18;17001:38;17025:14;17001:21;:38;:::i;:::-;17056:15;;:205;;;;;17129:4;17056:205;;;7820:34:1;7870:18;;;7863:34;;;17056:15:0;7913:18:1;;;7906:34;;;7956:18;;;7949:34;17213:6:0;7999:19:1;;;7992:44;17235:15:0;8052:19:1;;;8045:35;16980:59:0;;-1:-1:-1;;;;;;17056:15:0;;:31;;16980:59;;7731:19:1;;17056:205:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17056:205:0;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17052:221;;;;;;;17290:43;;;16933:25:1;;;16989:2;16974:18;;16967:34;;;17017:18;;;17010:34;;;17290:43:0;;16921:2:1;16906:18;17290:43:0;;;;;;;16481:860;;;;;16433:908;:::o;17349:671::-;17502:16;;;17516:1;17502:16;;;;;;;;17444:21;;17419:22;;17502:16;17516:1;17502:16;;;;;;;;;;-1:-1:-1;17502:16:0;17478:40;;17547:4;17529;17534:1;17529:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17529:23:0;;;:7;;;;;;;;;;:23;;;;17573:15;;:22;;;;;;;;:15;;;;;:20;;:22;;;;;17529:7;;17573:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17563:4;17568:1;17563:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17563:32:0;;;:7;;;;;;;;;:32;17612:15;;:196;;;;;:15;;;:66;;:196;;17693:11;;17612:15;;17735:4;;17762;;17782:15;;17612:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17608:212;17832:18;17853:38;17877:14;17853:21;:38;:::i;:::-;17912:20;;17832:59;;-1:-1:-1;17904:51:0;;-1:-1:-1;;;;;17912:20:0;17832:59;17904:39;:51::i;:::-;-1:-1:-1;17973:39:0;;;17229:25:1;;;17285:2;17270:18;;17263:34;;;17973:39:0;;17202:18:1;17973:39:0;;;;;;;17408:612;;;17349:671;:::o;14:607: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;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;-1:-1:-1;;;;;705:5:1;701:54;694:5;691:65;681:93;;770:1;767;760:12;785:315;853:6;861;914:2;902:9;893:7;889:23;885:32;882:52;;;930:1;927;920:12;882:52;969:9;956:23;988:31;1013:5;988:31;:::i;:::-;1038:5;1090:2;1075:18;;;;1062:32;;-1:-1:-1;;;785:315:1:o;1735:118::-;1821:5;1814:13;1807:21;1800:5;1797:32;1787:60;;1843:1;1840;1833:12;1858:241;1914:6;1967:2;1955:9;1946:7;1942:23;1938:32;1935:52;;;1983:1;1980;1973:12;1935:52;2022:9;2009:23;2041:28;2063:5;2041:28;:::i;:::-;2088:5;1858:241;-1:-1:-1;;;1858:241:1:o;2104:456::-;2181:6;2189;2197;2250:2;2238:9;2229:7;2225:23;2221:32;2218:52;;;2266:1;2263;2256:12;2218:52;2305:9;2292:23;2324:31;2349:5;2324:31;:::i;:::-;2374:5;-1:-1:-1;2431:2:1;2416:18;;2403:32;2444:33;2403:32;2444:33;:::i;:::-;2104:456;;2496:7;;-1:-1:-1;;;2550:2:1;2535:18;;;;2522:32;;2104:456::o;2985:247::-;3044:6;3097:2;3085:9;3076:7;3072:23;3068:32;3065:52;;;3113:1;3110;3103:12;3065:52;3152:9;3139:23;3171:31;3196:5;3171:31;:::i;3237:180::-;3296:6;3349:2;3337:9;3328:7;3324:23;3320:32;3317:52;;;3365:1;3362;3355:12;3317:52;-1:-1:-1;3388:23:1;;3237:180;-1:-1:-1;3237:180:1:o;3422:382::-;3487:6;3495;3548:2;3536:9;3527:7;3523:23;3519:32;3516:52;;;3564:1;3561;3554:12;3516:52;3603:9;3590:23;3622:31;3647:5;3622:31;:::i;:::-;3672:5;-1:-1:-1;3729:2:1;3714:18;;3701:32;3742:30;3701:32;3742:30;:::i;:::-;3791:7;3781:17;;;3422:382;;;;;:::o;3809:388::-;3877:6;3885;3938:2;3926:9;3917:7;3913:23;3909:32;3906:52;;;3954:1;3951;3944:12;3906:52;3993:9;3980:23;4012:31;4037:5;4012:31;:::i;:::-;4062:5;-1:-1:-1;4119:2:1;4104:18;;4091:32;4132:33;4091:32;4132:33;:::i;4202:437::-;4281:1;4277:12;;;;4324;;;4345:61;;4399:4;4391:6;4387:17;4377:27;;4345:61;4452:2;4444:6;4441:14;4421:18;4418:38;4415:218;;4489:77;4486:1;4479:88;4590:4;4587:1;4580:15;4618:4;4615:1;4608:15;4415:218;;4202:437;;;:::o;5770:184::-;5822:77;5819:1;5812:88;5919:4;5916:1;5909:15;5943:4;5940:1;5933:15;5959:125;6024:9;;;6045:10;;;6042:36;;;6058:18;;:::i;6868:251::-;6938:6;6991:2;6979:9;6970:7;6966:23;6962:32;6959:52;;;7007:1;7004;6997:12;6959:52;7039:9;7033:16;7058:31;7083:5;7058:31;:::i;8091:306::-;8179:6;8187;8195;8248:2;8236:9;8227:7;8223:23;8219:32;8216:52;;;8264:1;8261;8254:12;8216:52;8293:9;8287:16;8277:26;;8343:2;8332:9;8328:18;8322:25;8312:35;;8387:2;8376:9;8372:18;8366:25;8356:35;;8091:306;;;;;:::o;8704:245::-;8771:6;8824:2;8812:9;8803:7;8799:23;8795:32;8792:52;;;8840:1;8837;8830:12;8792:52;8872:9;8866:16;8891:28;8913:5;8891:28;:::i;9623:274::-;9663:1;9689;9679:189;;9724:77;9721:1;9714:88;9825:4;9822:1;9815:15;9853:4;9850:1;9843:15;9679:189;-1:-1:-1;9882:9:1;;9623:274::o;11165:184::-;11235:6;11288:2;11276:9;11267:7;11263:23;11259:32;11256:52;;;11304:1;11301;11294:12;11256:52;-1:-1:-1;11327:16:1;;11165:184;-1:-1:-1;11165:184:1:o;13231:168::-;13304:9;;;13335;;13352:15;;;13346:22;;13332:37;13322:71;;13373:18;;:::i;13404:128::-;13471:9;;;13492:11;;;13489:37;;;13506:18;;:::i;15511:184::-;15563:77;15560:1;15553:88;15660:4;15657:1;15650:15;15684:4;15681:1;15674:15;15700:1026;15962:4;16010:3;15999:9;15995:19;16041:6;16030:9;16023:25;16067:2;16105:6;16100:2;16089:9;16085:18;16078:34;16148:3;16143:2;16132:9;16128:18;16121:31;16172:6;16207;16201:13;16238:6;16230;16223:22;16276:3;16265:9;16261:19;16254:26;;16315:2;16307:6;16303:15;16289:29;;16336:1;16346:218;16360:6;16357:1;16354:13;16346:218;;;16425:13;;-1:-1:-1;;;;;16421:62:1;16409:75;;16539:15;;;;16504:12;;;;16382:1;16375:9;16346:218;;;-1:-1:-1;;;;;;;16620:55:1;;;;16615:2;16600:18;;16593:83;-1:-1:-1;;;16707:3:1;16692:19;16685:35;16581:3;15700:1026;-1:-1:-1;;;15700:1026:1:o

Swarm Source

ipfs://28d8e0602916a47c58d7ef2cc7245f8ed55ca59de97663c2bc747c581a8e2e9f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Decentra focuses on democratizing access to decentralized apps, rendering them inclusive for users of diverse backgrounds and technical proficiencies.

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.