ETH Price: $2,125.32 (+3.97%)
Gas: 0.3 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve144135422022-03-19 0:11:541474 days ago1647648714IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0020269643.49235995
Approve143955462022-03-16 4:49:011477 days ago1647406141IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0010801423.17665796
Approve143955432022-03-16 4:48:231477 days ago1647406103IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0010588622.72004212
Approve143955262022-03-16 4:45:191477 days ago1647405919IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0012979427.84987443
Approve143955212022-03-16 4:44:081477 days ago1647405848IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0014920532.01489708
Approve143954722022-03-16 4:34:251477 days ago1647405265IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0013722729.4447858
Approve143954622022-03-16 4:30:551477 days ago1647405055IN
0xc197A1d1...5AFb8DfCe
0 ETH0.000966220.73189526
Approve143954562022-03-16 4:30:061477 days ago1647405006IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0010631322.81159668
Approve143954322022-03-16 4:25:581477 days ago1647404758IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0011539224.75974638
Approve143954162022-03-16 4:23:491477 days ago1647404629IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0015226132.6705389
Approve143954112022-03-16 4:23:081477 days ago1647404588IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0016939736.34741527
Approve143954052022-03-16 4:21:541477 days ago1647404514IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0020363143.6931544
Approve143954042022-03-16 4:21:281477 days ago1647404488IN
0xc197A1d1...5AFb8DfCe
0 ETH0.001957642.00428345
Approve143953952022-03-16 4:18:011477 days ago1647404281IN
0xc197A1d1...5AFb8DfCe
0 ETH0.001588634.08659245
Set Max Wallet A...143953862022-03-16 4:15:281477 days ago1647404128IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0009605632.97392184
Approve143953832022-03-16 4:14:331477 days ago1647404073IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0015776833.85216626
Approve143953822022-03-16 4:14:141477 days ago1647404054IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0017699937.97867404
Approve143953772022-03-16 4:12:521477 days ago1647403972IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0015381533.0039933
Approve143953732022-03-16 4:12:141477 days ago1647403934IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0016886136.23251881
Approve143953682022-03-16 4:10:511477 days ago1647403851IN
0xc197A1d1...5AFb8DfCe
0 ETH0.001533932.91284832
Approve143953652022-03-16 4:10:351477 days ago1647403835IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0018849940.44623493
Approve143953642022-03-16 4:10:231477 days ago1647403823IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0018525939.75108679
Approve143953532022-03-16 4:07:301477 days ago1647403650IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0021604446.35651489
Approve143953522022-03-16 4:07:101477 days ago1647403630IN
0xc197A1d1...5AFb8DfCe
0 ETH0.0021488546.10790073
Approve143953502022-03-16 4:06:111477 days ago1647403571IN
0xc197A1d1...5AFb8DfCe
0 ETH0.001848939.67187305
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-144144862022-03-19 3:40:461474 days ago1647661246
0xc197A1d1...5AFb8DfCe
0.00495603 ETH
-144144862022-03-19 3:40:461474 days ago1647661246
0xc197A1d1...5AFb8DfCe
0.000826 ETH
-144144862022-03-19 3:40:461474 days ago1647661246
0xc197A1d1...5AFb8DfCe
0.00206501 ETH
-144144862022-03-19 3:40:461474 days ago1647661246
0xc197A1d1...5AFb8DfCe
0.00619504 ETH
-143978182022-03-16 13:20:341477 days ago1647436834
0xc197A1d1...5AFb8DfCe
0.00225275 ETH
-143978182022-03-16 13:20:341477 days ago1647436834
0xc197A1d1...5AFb8DfCe
0.00037467 ETH
-143978182022-03-16 13:20:341477 days ago1647436834
0xc197A1d1...5AFb8DfCe
0.00093904 ETH
-143978182022-03-16 13:20:341477 days ago1647436834
0xc197A1d1...5AFb8DfCe
0.00281712 ETH
-143970272022-03-16 10:22:421477 days ago1647426162
0xc197A1d1...5AFb8DfCe
0.0023182 ETH
-143970272022-03-16 10:22:421477 days ago1647426162
0xc197A1d1...5AFb8DfCe
0.00038556 ETH
-143970272022-03-16 10:22:421477 days ago1647426162
0xc197A1d1...5AFb8DfCe
0.00096631 ETH
-143970272022-03-16 10:22:421477 days ago1647426162
0xc197A1d1...5AFb8DfCe
0.00289895 ETH
-143958692022-03-16 5:59:301477 days ago1647410370
0xc197A1d1...5AFb8DfCe
0.00342871 ETH
-143958692022-03-16 5:59:301477 days ago1647410370
0xc197A1d1...5AFb8DfCe
0.00057071 ETH
-143958692022-03-16 5:59:301477 days ago1647410370
0xc197A1d1...5AFb8DfCe
0.00142899 ETH
-143958692022-03-16 5:59:301477 days ago1647410370
0xc197A1d1...5AFb8DfCe
0.00428699 ETH
-143957662022-03-16 5:36:251477 days ago1647408985
0xc197A1d1...5AFb8DfCe
0.00447849 ETH
-143957662022-03-16 5:36:251477 days ago1647408985
0xc197A1d1...5AFb8DfCe
0.00074596 ETH
-143957662022-03-16 5:36:251477 days ago1647408985
0xc197A1d1...5AFb8DfCe
0.00186626 ETH
-143957662022-03-16 5:36:251477 days ago1647408985
0xc197A1d1...5AFb8DfCe
0.0055988 ETH
-143957652022-03-16 5:36:181477 days ago1647408978
0xc197A1d1...5AFb8DfCe
0.00627936 ETH
-143957652022-03-16 5:36:181477 days ago1647408978
0xc197A1d1...5AFb8DfCe
0.00104714 ETH
-143957652022-03-16 5:36:181477 days ago1647408978
0xc197A1d1...5AFb8DfCe
0.00261611 ETH
-143957652022-03-16 5:36:181477 days ago1647408978
0xc197A1d1...5AFb8DfCe
0.00784833 ETH
-143955972022-03-16 4:58:591477 days ago1647406739
0xc197A1d1...5AFb8DfCe
0.00181206 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
ElonaVerse

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2022-03-16
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.12;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

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

    IUniswapV2Router02 private uniswapV2Router;

    mapping (address => uint) private cooldown;

    mapping (address => uint256) private _rOwned;

    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;

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

    string private constant _name = "ElonaVerse";
    string private constant _symbol = "ELONAVERSE";

    uint8 private constant _decimals = 9;

    uint256 private constant _tTotal = 1e15 * (10**_decimals);
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private tradingActiveBlock = 0;
    uint256 private blocksToBlacklist = 5;
    uint256 private _buyProjectFee = 2;
    uint256 private _previousBuyProjectFee = _buyProjectFee;
    uint256 private _buyLiquidityFee = 2;
    uint256 private _previousBuyLiquidityFee = _buyLiquidityFee;
    uint256 private _buyDevelopmentFee = 2;
    uint256 private _previousBuyDevelopmentFee = _buyDevelopmentFee;
    uint256 private _sellProjectFee = 4;
    uint256 private _previousSellProjectFee = _sellProjectFee;
    uint256 private _sellLiquidityFee = 4;
    uint256 private _previousSellLiquidityFee = _sellLiquidityFee;
    uint256 private _sellDevelopmentFee = 4;
    uint256 private _previousSellDevelopmentFee = _sellDevelopmentFee;
    uint256 private tokensForProject;
    uint256 private tokensForLiquidity;
    uint256 private tokensForDevelopment;
    uint256 private swapTokensAtAmount = 0;

    address payable private _projectWallet;
    address payable private _liquidityWallet;
    address private uniswapV2Pair;
    
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor (address projectWallet, address liquidityWallet) {
        _projectWallet = payable(projectWallet);
        _liquidityWallet = payable(liquidityWallet);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_projectWallet] = true;
        _isExcludedFromFee[_liquidityWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            if (cooldownEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                    require(cooldown[tx.origin] < block.number - 1 && cooldown[to] < block.number - 1, "_transfer:: Transfer Delay enabled.  Try again later.");
                    cooldown[tx.origin] = block.number;
                    cooldown[to] = block.number;
                }
            }

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from]) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

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

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

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

        _tokenTransfer(from,to,amount,takeFee, shouldSwap);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForProject + tokensForDevelopment;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        uint256 ethForProject = ethBalance.mul(tokensForProject).div(totalTokensToSwap);
        uint256 ethForDevelopment = ethBalance.mul(tokensForDevelopment).div(totalTokensToSwap);
        
        
        uint256 ethForLiquidity = ethBalance - ethForProject - ethForDevelopment;
        
        
        tokensForLiquidity = 0;
        tokensForProject = 0;
        tokensForDevelopment = 0;
        
        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, tokensForLiquidity);
        }
        
        
        (success,) = address(_projectWallet).call{value: address(this).balance}("");
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _liquidityWallet,
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _projectWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        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);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e12 * (10**_decimals);
        _maxSellAmount = 3e12 * (10**_decimals);
        _maxWalletAmount = 2e13 * (10**_decimals);
        swapTokensAtAmount = 3e11 * (10**_decimals);
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        require(maxBuy >= 1e11 * (10**_decimals), "Max buy amount cannot be lower than 0.01% total supply.");
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        require(maxSell >= 1e11 * (10**_decimals), "Max sell amount cannot be lower than 0.01% total supply.");
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        require(maxToken >= 1e12 * (10**_decimals), "Max wallet amount cannot be lower than 0.1% total supply.");
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e11 * (10**_decimals), "Swap amount cannot be lower than 0.01% total supply.");
        require(newAmount <= 5e12 * (10**_decimals), "Swap amount cannot be higher than 0.5% total supply.");
        swapTokensAtAmount = newAmount;
    }

    function setProjectWallet(address projectWallet) public onlyOwner() {
        require(projectWallet != address(0), "projectWallet address cannot be 0");
        _isExcludedFromFee[_projectWallet] = false;
        _projectWallet = payable(projectWallet);
        _isExcludedFromFee[_projectWallet] = true;
    }

    function setLiquidityWallet(address liquidityWallet) public onlyOwner() {
        require(liquidityWallet != address(0), "liquidityWallet address cannot be 0");
        _isExcludedFromFee[_liquidityWallet] = false;
        _liquidityWallet = payable(liquidityWallet);
        _isExcludedFromFee[_liquidityWallet] = true;
    }

    function setExcludedFromFees(address[] memory accounts, bool exempt) public onlyOwner {
        for (uint i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = exempt;
        }
    }
    
    function setBots(address[] memory accounts, bool exempt) public onlyOwner {
        for (uint i = 0; i < accounts.length; i++) {
            bots[accounts[i]] = exempt;
        }
    }

    function setBuyFee(uint256 buyProjectFee, uint256 buyLiquidityFee, uint256 buyDevelopmentFee) external onlyOwner {
        require(buyProjectFee + buyLiquidityFee + buyDevelopmentFee <= 30, "Must keep buy taxes below 30%");
        _buyProjectFee = buyProjectFee;
        _buyLiquidityFee = buyLiquidityFee;
        _buyDevelopmentFee = buyDevelopmentFee;
    }

    function setSellFee(uint256 sellProjectFee, uint256 sellLiquidityFee, uint256 sellDevelopmentFee) external onlyOwner {
        require(sellProjectFee + sellLiquidityFee + sellDevelopmentFee <= 30, "Must keep sell taxes below 30%");
        _sellProjectFee = sellProjectFee;
        _sellLiquidityFee = sellLiquidityFee;
        _sellDevelopmentFee = sellDevelopmentFee;
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyProjectFee == 0 && _buyLiquidityFee == 0 && _buyDevelopmentFee == 0 && _sellProjectFee == 0 && _sellLiquidityFee == 0 && _sellDevelopmentFee == 0) return;
        
        _previousBuyProjectFee = _buyProjectFee;
        _previousBuyLiquidityFee = _buyLiquidityFee;
        _previousBuyDevelopmentFee = _buyDevelopmentFee;
        _previousSellProjectFee = _sellProjectFee;
        _previousSellLiquidityFee = _sellLiquidityFee;
        _previousSellDevelopmentFee = _sellDevelopmentFee;
        
        _buyProjectFee = 0;
        _buyLiquidityFee = 0;
        _buyDevelopmentFee = 0;
        _sellProjectFee = 0;
        _sellLiquidityFee = 0;
        _sellDevelopmentFee = 0;
    }
    
    function restoreAllFee() private {
        _buyProjectFee = _previousBuyProjectFee;
        _buyLiquidityFee = _previousBuyLiquidityFee;
        _buyDevelopmentFee = _previousBuyDevelopmentFee;
        _sellProjectFee = _previousSellProjectFee;
        _sellLiquidityFee = _previousSellLiquidityFee;
        _sellDevelopmentFee = _previousSellDevelopmentFee;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 _totalFees;
        uint256 pjctFee;
        uint256 liqFee;
        uint256 devFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            _totalFees = 99;
            pjctFee = 33;
            liqFee = 33;
            devFee = 33;
        } else {
            _totalFees = _getTotalFees(isSell);
            if (isSell) {
                pjctFee = _sellProjectFee;
                liqFee = _sellLiquidityFee;
                devFee = _sellDevelopmentFee;
            } else {
                pjctFee = _buyProjectFee;
                liqFee = _buyLiquidityFee;
                devFee = _buyDevelopmentFee;
            }
        }

        uint256 fees = amount.mul(_totalFees).div(100);
        tokensForProject += fees * pjctFee / _totalFees;
        tokensForLiquidity += fees * liqFee / _totalFees;
        tokensForDevelopment += fees * devFee / _totalFees;
            
        if(fees > 0) {
            _transferStandard(sender, address(this), fees);
        }
            
        return amount -= fees;
    }

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function _getTotalFees(bool isSell) private view returns(uint256) {
        if (isSell) {
            return _sellProjectFee + _sellLiquidityFee + _sellDevelopmentFee;
        }
        return _buyProjectFee + _buyLiquidityFee + _buyDevelopmentFee;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"projectWallet","type":"address"},{"internalType":"address","name":"liquidityWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyProjectFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"buyDevelopmentFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"projectWallet","type":"address"}],"name":"setProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellProjectFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"sellDevelopmentFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008805464ffffff000019169055620000206009600a62000378565b620000339066038d7ea4c6800062000390565b6009556009600a62000046919062000378565b620000599066038d7ea4c6800062000390565b600a556009600a6200006c919062000378565b6200007f9066038d7ea4c6800062000390565b600b556000600c556005600d556002600e55600e54600f55600260105560105460115560026012556012546013556004601455601454601555600460165560165460175560046018556018546019556000601d55348015620000e057600080fd5b5060405162002e5c38038062002e5c8339810160408190526200010391620003cf565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601e80546001600160a01b038085166001600160a01b031992831617909255601f805492841692909116919091179055620001826009600a62000378565b620001959066038d7ea4c6800062000390565b3360008181526004602090815260408083209490945581546001600160a01b03908116835260069091528382208054600160ff1991821681179092553084528584208054821683179055601e54831684528584208054821683179055601f5490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002376009600a62000378565b6200024a9066038d7ea4c6800062000390565b60405190815260200160405180910390a3505062000407565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002ba5781600019048211156200029e576200029e62000263565b80851615620002ac57918102915b93841c93908002906200027e565b509250929050565b600082620002d35750600162000372565b81620002e25750600062000372565b8160018114620002fb5760028114620003065762000326565b600191505062000372565b60ff8411156200031a576200031a62000263565b50506001821b62000372565b5060208310610133831016604e8410600b84101617156200034b575081810a62000372565b62000357838362000279565b80600019048211156200036e576200036e62000263565b0290505b92915050565b60006200038960ff841683620002c2565b9392505050565b6000816000190483118215151615620003ad57620003ad62000263565b500290565b80516001600160a01b0381168114620003ca57600080fd5b919050565b60008060408385031215620003e357600080fd5b620003ee83620003b2565b9150620003fe60208401620003b2565b90509250929050565b612a4580620004176000396000f3fe6080604052600436106101bb5760003560e01c80638a780447116100ec578063c9567bf91161008a578063e6f7ef4d11610064578063e6f7ef4d14610528578063e99c9d0914610548578063f34eb0b814610568578063f5648a4f1461058857600080fd5b8063c9567bf9146104ad578063dd62ed3e146104c2578063e01af92c1461050857600080fd5b80639c0db5f3116100c65780639c0db5f314610438578063a9059cbb14610458578063afa4f3b214610478578063c3c8cd801461049857600080fd5b80638a780447146103bd5780638da5cb5b146103dd57806395d89b411461040557600080fd5b806327a14fc2116101595780635932ead1116101335780635932ead11461033d5780636fc3eaec1461035d57806370a0823114610372578063715018a6146103a857600080fd5b806327a14fc2146102e1578063296f0a0c14610301578063313ce5671461032157600080fd5b806318160ddd1161019557806318160ddd1461025e5780631d865c301461028157806323b872dd146102a157806325519cf2146102c157600080fd5b806306fdde03146101c7578063095ea7b31461020c578063105222f91461023c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600a815269456c6f6e61566572736560b01b60208201525b604051610203919061244f565b60405180910390f35b34801561021857600080fd5b5061022c6102273660046124c9565b61059d565b6040519015158152602001610203565b34801561024857600080fd5b5061025c610257366004612524565b6105b4565b005b34801561026a57600080fd5b50610273610653565b604051908152602001610203565b34801561028d57600080fd5b5061025c61029c3660046125fb565b610677565b3480156102ad57600080fd5b5061022c6102bc366004612627565b610714565b3480156102cd57600080fd5b5061025c6102dc3660046125fb565b61077d565b3480156102ed57600080fd5b5061025c6102fc366004612668565b61081a565b34801561030d57600080fd5b5061025c61031c366004612681565b6108d9565b34801561032d57600080fd5b5060405160098152602001610203565b34801561034957600080fd5b5061025c61035836600461269e565b6109b5565b34801561036957600080fd5b5061025c6109ff565b34801561037e57600080fd5b5061027361038d366004612681565b6001600160a01b031660009081526004602052604090205490565b3480156103b457600080fd5b5061025c610a36565b3480156103c957600080fd5b5061025c6103d8366004612681565b610aaa565b3480156103e957600080fd5b506000546040516001600160a01b039091168152602001610203565b34801561041157600080fd5b5060408051808201909152600a815269454c4f4e41564552534560b01b60208201526101f6565b34801561044457600080fd5b5061025c610453366004612524565b610b84565b34801561046457600080fd5b5061022c6104733660046124c9565b610c15565b34801561048457600080fd5b5061025c610493366004612668565b610c22565b3480156104a457600080fd5b5061025c610d60565b3480156104b957600080fd5b5061025c610da3565b3480156104ce57600080fd5b506102736104dd3660046126bb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561051457600080fd5b5061025c61052336600461269e565b611196565b34801561053457600080fd5b5061025c610543366004612668565b6111de565b34801561055457600080fd5b5061025c610563366004612668565b61120d565b34801561057457600080fd5b5061025c610583366004612668565b6112cc565b34801561059457600080fd5b5061025c61138b565b60006105aa338484611402565b5060015b92915050565b6000546001600160a01b031633146105e75760405162461bcd60e51b81526004016105de906126f4565b60405180910390fd5b60005b825181101561064e57816006600085848151811061060a5761060a612729565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064681612755565b9150506105ea565b505050565b60006106616009600a612854565b6106729066038d7ea4c68000612863565b905090565b6000546001600160a01b031633146106a15760405162461bcd60e51b81526004016105de906126f4565b601e816106ae8486612882565b6106b89190612882565b11156107065760405162461bcd60e51b815260206004820152601e60248201527f4d757374206b6565702073656c6c2074617865732062656c6f7720333025000060448201526064016105de565b601492909255601655601855565b6000610721848484611527565b610773843361076e856040518060600160405280602881526020016129e8602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611b5f565b611402565b5060019392505050565b6000546001600160a01b031633146107a75760405162461bcd60e51b81526004016105de906126f4565b601e816107b48486612882565b6107be9190612882565b111561080c5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f772033302500000060448201526064016105de565b600e92909255601055601255565b6000546001600160a01b031633146108445760405162461bcd60e51b81526004016105de906126f4565b6108506009600a612854565b61085f9064e8d4a51000612863565b8110156108d45760405162461bcd60e51b815260206004820152603960248201527f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c6f776560448201527f72207468616e20302e312520746f74616c20737570706c792e0000000000000060648201526084016105de565b600b55565b6000546001600160a01b031633146109035760405162461bcd60e51b81526004016105de906126f4565b6001600160a01b0381166109655760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b60648201526084016105de565b601f80546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146109df5760405162461bcd60e51b81526004016105de906126f4565b600880549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b03163314610a295760405162461bcd60e51b81526004016105de906126f4565b47610a3381611b99565b50565b6000546001600160a01b03163314610a605760405162461bcd60e51b81526004016105de906126f4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ad45760405162461bcd60e51b81526004016105de906126f4565b6001600160a01b038116610b345760405162461bcd60e51b815260206004820152602160248201527f70726f6a65637457616c6c657420616464726573732063616e6e6f74206265206044820152600360fc1b60648201526084016105de565b601e80546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b03163314610bae5760405162461bcd60e51b81526004016105de906126f4565b60005b825181101561064e578160076000858481518110610bd157610bd1612729565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c0d81612755565b915050610bb1565b60006105aa338484611527565b6000546001600160a01b03163314610c4c5760405162461bcd60e51b81526004016105de906126f4565b610c586009600a612854565b610c679064174876e800612863565b811015610cd35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e604482015273101817181892903a37ba30b61039bab838363c9760611b60648201526084016105de565b610cdf6009600a612854565b610cef9065048c27395000612863565b811115610d5b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016105de565b601d55565b6000546001600160a01b03163314610d8a5760405162461bcd60e51b81526004016105de906126f4565b30600090815260046020526040902054610a3381611bd3565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016105de906126f4565b60085460ff1615610e205760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105de565b600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e6b3082610e5a6009600a612854565b61076e9066038d7ea4c68000612863565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061289a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3e919061289a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf919061289a565b602080546001600160a01b039283166001600160a01b03199091161790556002541663f305d7194730610ff7816001600160a01b031660009081526004602052604090205490565b60008061100c6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161102e969594939291906128b7565b60606040518083038185885af115801561104c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061107191906128f2565b50506008805464ffff0000001916640101000000179055506110956009600a612854565b6110a59065048c27395000612863565b60099081556110b590600a612854565b6110c5906502ba7def3000612863565b600a9081556110d690600990612854565b6110e6906512309ce54000612863565b600b556110f56009600a612854565b611104906445d964b800612863565b601d556008805460ff1916600117905543600c5560205460025460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801561116e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111929190612920565b5050565b6000546001600160a01b031633146111c05760405162461bcd60e51b81526004016105de906126f4565b6008805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b031633146112085760405162461bcd60e51b81526004016105de906126f4565b600d55565b6000546001600160a01b031633146112375760405162461bcd60e51b81526004016105de906126f4565b6112436009600a612854565b6112529064174876e800612863565b8110156112c75760405162461bcd60e51b815260206004820152603860248201527f4d61782073656c6c20616d6f756e742063616e6e6f74206265206c6f7765722060448201527f7468616e20302e30312520746f74616c20737570706c792e000000000000000060648201526084016105de565b600a55565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016105de906126f4565b6113026009600a612854565b6113119064174876e800612863565b8110156113865760405162461bcd60e51b815260206004820152603760248201527f4d61782062757920616d6f756e742063616e6e6f74206265206c6f776572207460448201527f68616e20302e30312520746f74616c20737570706c792e00000000000000000060648201526084016105de565b600955565b6000546001600160a01b031633146113b55760405162461bcd60e51b81526004016105de906126f4565b604051600090339047908381818185875af1925050503d80600081146113f7576040519150601f19603f3d011682016040523d82523d6000602084013e6113fc565b606091505b50505050565b6001600160a01b0383166114645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105de565b6001600160a01b0382166114c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105de565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661158b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105de565b6001600160a01b0382166115ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105de565b6000811161164f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105de565b6000806116646000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561169357506000546001600160a01b03858116911614155b80156116a757506001600160a01b03841615155b80156116be57506001600160a01b03841661dead14155b80156116d25750600854610100900460ff16155b15611a40576001600160a01b03851660009081526007602052604090205460ff1615801561171957506001600160a01b03841660009081526007602052604090205460ff16155b61172257600080fd5b600854640100000000900460ff161561183e576002546001600160a01b0385811691161480159061176157506020546001600160a01b03858116911614155b1561183e5761177160014361293d565b326000908152600360205260409020541080156117af575061179460014361293d565b6001600160a01b038516600090815260036020526040902054105b6118195760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016105de565b3260009081526003602052604080822043908190556001600160a01b03871683529120555b602054600192506001600160a01b03868116911614801561186d57506002546001600160a01b03858116911614155b801561189257506001600160a01b03841660009081526006602052604090205460ff16155b15611982576009548311156118fb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b60648201526084016105de565b600b548361191e866001600160a01b031660009081526004602052604090205490565b6119289190612882565b11156119825760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016105de565b6020546001600160a01b0385811691161480156119ad57506002546001600160a01b03868116911614155b80156119d257506001600160a01b03851660009081526006602052604090205460ff16155b15611a4057600a54831115611a3c5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b60648201526084016105de565b5060015b6001600160a01b03851660009081526006602052604090205460ff1680611a7f57506001600160a01b03841660009081526006602052604090205460ff165b15611a8957600091505b3060009081526004602052604081205490506000601d5482118015611aab5750825b9050808015611ac357506008546301000000900460ff165b8015611ad75750600854610100900460ff16155b8015611afc57506001600160a01b03871660009081526006602052604090205460ff16155b8015611b2157506001600160a01b03861660009081526006602052604090205460ff16155b15611b49576008805461ff001916610100179055611b3d611d4a565b6008805461ff00191690555b611b568787878787611f34565b50505050505050565b60008184841115611b835760405162461bcd60e51b81526004016105de919061244f565b506000611b90848661293d565b95945050505050565b601e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611192573d6000803e3d6000fd5b6008805462ff00001916620100001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1957611c19612729565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c96919061289a565b81600181518110611ca957611ca9612729565b6001600160a01b039283166020918202929092010152600254611ccf9130911684611402565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d08908590600090869030904290600401612954565b600060405180830381600087803b158015611d2257600080fd5b505af1158015611d36573d6000803e3d6000fd5b50506008805462ff00001916905550505050565b3060009081526004602052604081205490506000601c54601a54601b54611d719190612882565b611d7b9190612882565b90506000821580611d8a575081155b15611d9457505050565b601d54611da290600a612863565b831115611dba57601d54611db790600a612863565b92505b6000600283601b5486611dcd9190612863565b611dd791906129c5565b611de191906129c5565b90506000611def8583611f94565b905047611dfb82611bd3565b6000611e074783611f94565b90506000611e2a87611e24601a5485611fdd90919063ffffffff16565b9061205c565b90506000611e4788611e24601c5486611fdd90919063ffffffff16565b9050600081611e56848661293d565b611e60919061293d565b6000601b819055601a819055601c5590508615801590611e805750600081115b15611ed357611e8f878261209e565b601b54604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b601e546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611f20576040519150601f19603f3d011682016040523d82523d6000602084013e611f25565b606091505b50505050505050505050505050565b81611f4657611f41612139565b611f54565b611f518584836121c1565b92505b611f5f8585856122e4565b81611f8d57611f8d600f54600e55601154601055601354601255601554601455601754601655601954601855565b5050505050565b6000611fd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b5f565b9392505050565b600082611fec575060006105ae565b6000611ff88385612863565b90508261200585836129c5565b14611fd65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105de565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061238a565b6002546120b69030906001600160a01b031684611402565b600254601f5460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926120f692309289926000928392169042906004016128b7565b60606040518083038185885af1158015612114573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f8d91906128f2565b600e541580156121495750601054155b80156121555750601254155b80156121615750601454155b801561216d5750601654155b80156121795750601854155b1561218057565b600e8054600f556010805460115560128054601355601480546015556016805460175560188054601955600095869055938590559184905583905582905555565b600080600080600043600d54600c546121da9190612882565b106121f15750606392506021915081905080612226565b6121fa866123b8565b9350851561221657601454925060165491506018549050612226565b600e549250601054915060125490505b60006122376064611e248a88611fdd565b9050846122448583612863565b61224e91906129c5565b601a600082825461225f9190612882565b909155508590506122708483612863565b61227a91906129c5565b601b600082825461228b9190612882565b9091555085905061229c8383612863565b6122a691906129c5565b601c60008282546122b79190612882565b909155505080156122cd576122cd8930836122e4565b6122d7818961293d565b9998505050505050505050565b6001600160a01b0383166000908152600460205260409020546123079082611f94565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461233690826123f0565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061151a9085815260200190565b600081836123ab5760405162461bcd60e51b81526004016105de919061244f565b506000611b9084866129c5565b600081156123dd576018546016546014546123d39190612882565b6105ae9190612882565b601254601054600e546123d39190612882565b6000806123fd8385612882565b905083811015611fd65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105de565b600060208083528351808285015260005b8181101561247c57858101830151858201604001528201612460565b8181111561248e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a3357600080fd5b80356124c4816124a4565b919050565b600080604083850312156124dc57600080fd5b82356124e7816124a4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610a3357600080fd5b80356124c48161250b565b6000806040838503121561253757600080fd5b823567ffffffffffffffff8082111561254f57600080fd5b818501915085601f83011261256357600080fd5b8135602082821115612577576125776124f5565b8160051b604051601f19603f8301168101818110868211171561259c5761259c6124f5565b6040529283528183019350848101820192898411156125ba57600080fd5b948201945b838610156125df576125d0866124b9565b855294820194938201936125bf565b96506125ee9050878201612519565b9450505050509250929050565b60008060006060848603121561261057600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561263c57600080fd5b8335612647816124a4565b92506020840135612657816124a4565b929592945050506040919091013590565b60006020828403121561267a57600080fd5b5035919050565b60006020828403121561269357600080fd5b8135611fd6816124a4565b6000602082840312156126b057600080fd5b8135611fd68161250b565b600080604083850312156126ce57600080fd5b82356126d9816124a4565b915060208301356126e9816124a4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156127695761276961273f565b5060010190565b600181815b808511156127ab5781600019048211156127915761279161273f565b8085161561279e57918102915b93841c9390800290612775565b509250929050565b6000826127c2575060016105ae565b816127cf575060006105ae565b81600181146127e557600281146127ef5761280b565b60019150506105ae565b60ff8411156128005761280061273f565b50506001821b6105ae565b5060208310610133831016604e8410600b841016171561282e575081810a6105ae565b6128388383612770565b806000190482111561284c5761284c61273f565b029392505050565b6000611fd660ff8416836127b3565b600081600019048311821515161561287d5761287d61273f565b500290565b600082198211156128955761289561273f565b500190565b6000602082840312156128ac57600080fd5b8151611fd6816124a4565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561290757600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561293257600080fd5b8151611fd68161250b565b60008282101561294f5761294f61273f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129a45784516001600160a01b03168352938301939183019160010161297f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826129e257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d42c457b1004b3dd141ec216a420a8eec1d204304c8eb3b8f822512e60b6a8e464736f6c634300080c003300000000000000000000000040a3a0266a216425e37dc618f759a9fc11c7f545000000000000000000000000ab82c312ea7cfa22cdab94561d288ee00317dac5

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638a780447116100ec578063c9567bf91161008a578063e6f7ef4d11610064578063e6f7ef4d14610528578063e99c9d0914610548578063f34eb0b814610568578063f5648a4f1461058857600080fd5b8063c9567bf9146104ad578063dd62ed3e146104c2578063e01af92c1461050857600080fd5b80639c0db5f3116100c65780639c0db5f314610438578063a9059cbb14610458578063afa4f3b214610478578063c3c8cd801461049857600080fd5b80638a780447146103bd5780638da5cb5b146103dd57806395d89b411461040557600080fd5b806327a14fc2116101595780635932ead1116101335780635932ead11461033d5780636fc3eaec1461035d57806370a0823114610372578063715018a6146103a857600080fd5b806327a14fc2146102e1578063296f0a0c14610301578063313ce5671461032157600080fd5b806318160ddd1161019557806318160ddd1461025e5780631d865c301461028157806323b872dd146102a157806325519cf2146102c157600080fd5b806306fdde03146101c7578063095ea7b31461020c578063105222f91461023c57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600a815269456c6f6e61566572736560b01b60208201525b604051610203919061244f565b60405180910390f35b34801561021857600080fd5b5061022c6102273660046124c9565b61059d565b6040519015158152602001610203565b34801561024857600080fd5b5061025c610257366004612524565b6105b4565b005b34801561026a57600080fd5b50610273610653565b604051908152602001610203565b34801561028d57600080fd5b5061025c61029c3660046125fb565b610677565b3480156102ad57600080fd5b5061022c6102bc366004612627565b610714565b3480156102cd57600080fd5b5061025c6102dc3660046125fb565b61077d565b3480156102ed57600080fd5b5061025c6102fc366004612668565b61081a565b34801561030d57600080fd5b5061025c61031c366004612681565b6108d9565b34801561032d57600080fd5b5060405160098152602001610203565b34801561034957600080fd5b5061025c61035836600461269e565b6109b5565b34801561036957600080fd5b5061025c6109ff565b34801561037e57600080fd5b5061027361038d366004612681565b6001600160a01b031660009081526004602052604090205490565b3480156103b457600080fd5b5061025c610a36565b3480156103c957600080fd5b5061025c6103d8366004612681565b610aaa565b3480156103e957600080fd5b506000546040516001600160a01b039091168152602001610203565b34801561041157600080fd5b5060408051808201909152600a815269454c4f4e41564552534560b01b60208201526101f6565b34801561044457600080fd5b5061025c610453366004612524565b610b84565b34801561046457600080fd5b5061022c6104733660046124c9565b610c15565b34801561048457600080fd5b5061025c610493366004612668565b610c22565b3480156104a457600080fd5b5061025c610d60565b3480156104b957600080fd5b5061025c610da3565b3480156104ce57600080fd5b506102736104dd3660046126bb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561051457600080fd5b5061025c61052336600461269e565b611196565b34801561053457600080fd5b5061025c610543366004612668565b6111de565b34801561055457600080fd5b5061025c610563366004612668565b61120d565b34801561057457600080fd5b5061025c610583366004612668565b6112cc565b34801561059457600080fd5b5061025c61138b565b60006105aa338484611402565b5060015b92915050565b6000546001600160a01b031633146105e75760405162461bcd60e51b81526004016105de906126f4565b60405180910390fd5b60005b825181101561064e57816006600085848151811061060a5761060a612729565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064681612755565b9150506105ea565b505050565b60006106616009600a612854565b6106729066038d7ea4c68000612863565b905090565b6000546001600160a01b031633146106a15760405162461bcd60e51b81526004016105de906126f4565b601e816106ae8486612882565b6106b89190612882565b11156107065760405162461bcd60e51b815260206004820152601e60248201527f4d757374206b6565702073656c6c2074617865732062656c6f7720333025000060448201526064016105de565b601492909255601655601855565b6000610721848484611527565b610773843361076e856040518060600160405280602881526020016129e8602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611b5f565b611402565b5060019392505050565b6000546001600160a01b031633146107a75760405162461bcd60e51b81526004016105de906126f4565b601e816107b48486612882565b6107be9190612882565b111561080c5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f772033302500000060448201526064016105de565b600e92909255601055601255565b6000546001600160a01b031633146108445760405162461bcd60e51b81526004016105de906126f4565b6108506009600a612854565b61085f9064e8d4a51000612863565b8110156108d45760405162461bcd60e51b815260206004820152603960248201527f4d61782077616c6c657420616d6f756e742063616e6e6f74206265206c6f776560448201527f72207468616e20302e312520746f74616c20737570706c792e0000000000000060648201526084016105de565b600b55565b6000546001600160a01b031633146109035760405162461bcd60e51b81526004016105de906126f4565b6001600160a01b0381166109655760405162461bcd60e51b815260206004820152602360248201527f6c697175696469747957616c6c657420616464726573732063616e6e6f74206260448201526206520360ec1b60648201526084016105de565b601f80546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b031633146109df5760405162461bcd60e51b81526004016105de906126f4565b600880549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b03163314610a295760405162461bcd60e51b81526004016105de906126f4565b47610a3381611b99565b50565b6000546001600160a01b03163314610a605760405162461bcd60e51b81526004016105de906126f4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ad45760405162461bcd60e51b81526004016105de906126f4565b6001600160a01b038116610b345760405162461bcd60e51b815260206004820152602160248201527f70726f6a65637457616c6c657420616464726573732063616e6e6f74206265206044820152600360fc1b60648201526084016105de565b601e80546001600160a01b03908116600090815260066020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b6000546001600160a01b03163314610bae5760405162461bcd60e51b81526004016105de906126f4565b60005b825181101561064e578160076000858481518110610bd157610bd1612729565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c0d81612755565b915050610bb1565b60006105aa338484611527565b6000546001600160a01b03163314610c4c5760405162461bcd60e51b81526004016105de906126f4565b610c586009600a612854565b610c679064174876e800612863565b811015610cd35760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e604482015273101817181892903a37ba30b61039bab838363c9760611b60648201526084016105de565b610cdf6009600a612854565b610cef9065048c27395000612863565b811115610d5b5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016105de565b601d55565b6000546001600160a01b03163314610d8a5760405162461bcd60e51b81526004016105de906126f4565b30600090815260046020526040902054610a3381611bd3565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b81526004016105de906126f4565b60085460ff1615610e205760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105de565b600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610e6b3082610e5a6009600a612854565b61076e9066038d7ea4c68000612863565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061289a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3e919061289a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf919061289a565b602080546001600160a01b039283166001600160a01b03199091161790556002541663f305d7194730610ff7816001600160a01b031660009081526004602052604090205490565b60008061100c6000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161102e969594939291906128b7565b60606040518083038185885af115801561104c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061107191906128f2565b50506008805464ffff0000001916640101000000179055506110956009600a612854565b6110a59065048c27395000612863565b60099081556110b590600a612854565b6110c5906502ba7def3000612863565b600a9081556110d690600990612854565b6110e6906512309ce54000612863565b600b556110f56009600a612854565b611104906445d964b800612863565b601d556008805460ff1916600117905543600c5560205460025460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801561116e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111929190612920565b5050565b6000546001600160a01b031633146111c05760405162461bcd60e51b81526004016105de906126f4565b6008805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b031633146112085760405162461bcd60e51b81526004016105de906126f4565b600d55565b6000546001600160a01b031633146112375760405162461bcd60e51b81526004016105de906126f4565b6112436009600a612854565b6112529064174876e800612863565b8110156112c75760405162461bcd60e51b815260206004820152603860248201527f4d61782073656c6c20616d6f756e742063616e6e6f74206265206c6f7765722060448201527f7468616e20302e30312520746f74616c20737570706c792e000000000000000060648201526084016105de565b600a55565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016105de906126f4565b6113026009600a612854565b6113119064174876e800612863565b8110156113865760405162461bcd60e51b815260206004820152603760248201527f4d61782062757920616d6f756e742063616e6e6f74206265206c6f776572207460448201527f68616e20302e30312520746f74616c20737570706c792e00000000000000000060648201526084016105de565b600955565b6000546001600160a01b031633146113b55760405162461bcd60e51b81526004016105de906126f4565b604051600090339047908381818185875af1925050503d80600081146113f7576040519150601f19603f3d011682016040523d82523d6000602084013e6113fc565b606091505b50505050565b6001600160a01b0383166114645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105de565b6001600160a01b0382166114c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105de565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661158b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105de565b6001600160a01b0382166115ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105de565b6000811161164f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105de565b6000806116646000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561169357506000546001600160a01b03858116911614155b80156116a757506001600160a01b03841615155b80156116be57506001600160a01b03841661dead14155b80156116d25750600854610100900460ff16155b15611a40576001600160a01b03851660009081526007602052604090205460ff1615801561171957506001600160a01b03841660009081526007602052604090205460ff16155b61172257600080fd5b600854640100000000900460ff161561183e576002546001600160a01b0385811691161480159061176157506020546001600160a01b03858116911614155b1561183e5761177160014361293d565b326000908152600360205260409020541080156117af575061179460014361293d565b6001600160a01b038516600090815260036020526040902054105b6118195760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016105de565b3260009081526003602052604080822043908190556001600160a01b03871683529120555b602054600192506001600160a01b03868116911614801561186d57506002546001600160a01b03858116911614155b801561189257506001600160a01b03841660009081526006602052604090205460ff16155b15611982576009548311156118fb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178426044820152683abca0b6b7bab73a1760b91b60648201526084016105de565b600b548361191e866001600160a01b031660009081526004602052604090205490565b6119289190612882565b11156119825760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b60648201526084016105de565b6020546001600160a01b0385811691161480156119ad57506002546001600160a01b03868116911614155b80156119d257506001600160a01b03851660009081526006602052604090205460ff16155b15611a4057600a54831115611a3c5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785360448201526932b63620b6b7bab73a1760b11b60648201526084016105de565b5060015b6001600160a01b03851660009081526006602052604090205460ff1680611a7f57506001600160a01b03841660009081526006602052604090205460ff165b15611a8957600091505b3060009081526004602052604081205490506000601d5482118015611aab5750825b9050808015611ac357506008546301000000900460ff165b8015611ad75750600854610100900460ff16155b8015611afc57506001600160a01b03871660009081526006602052604090205460ff16155b8015611b2157506001600160a01b03861660009081526006602052604090205460ff16155b15611b49576008805461ff001916610100179055611b3d611d4a565b6008805461ff00191690555b611b568787878787611f34565b50505050505050565b60008184841115611b835760405162461bcd60e51b81526004016105de919061244f565b506000611b90848661293d565b95945050505050565b601e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611192573d6000803e3d6000fd5b6008805462ff00001916620100001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611c1957611c19612729565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c96919061289a565b81600181518110611ca957611ca9612729565b6001600160a01b039283166020918202929092010152600254611ccf9130911684611402565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d08908590600090869030904290600401612954565b600060405180830381600087803b158015611d2257600080fd5b505af1158015611d36573d6000803e3d6000fd5b50506008805462ff00001916905550505050565b3060009081526004602052604081205490506000601c54601a54601b54611d719190612882565b611d7b9190612882565b90506000821580611d8a575081155b15611d9457505050565b601d54611da290600a612863565b831115611dba57601d54611db790600a612863565b92505b6000600283601b5486611dcd9190612863565b611dd791906129c5565b611de191906129c5565b90506000611def8583611f94565b905047611dfb82611bd3565b6000611e074783611f94565b90506000611e2a87611e24601a5485611fdd90919063ffffffff16565b9061205c565b90506000611e4788611e24601c5486611fdd90919063ffffffff16565b9050600081611e56848661293d565b611e60919061293d565b6000601b819055601a819055601c5590508615801590611e805750600081115b15611ed357611e8f878261209e565b601b54604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b601e546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611f20576040519150601f19603f3d011682016040523d82523d6000602084013e611f25565b606091505b50505050505050505050505050565b81611f4657611f41612139565b611f54565b611f518584836121c1565b92505b611f5f8585856122e4565b81611f8d57611f8d600f54600e55601154601055601354601255601554601455601754601655601954601855565b5050505050565b6000611fd683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b5f565b9392505050565b600082611fec575060006105ae565b6000611ff88385612863565b90508261200585836129c5565b14611fd65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105de565b6000611fd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061238a565b6002546120b69030906001600160a01b031684611402565b600254601f5460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926120f692309289926000928392169042906004016128b7565b60606040518083038185885af1158015612114573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f8d91906128f2565b600e541580156121495750601054155b80156121555750601254155b80156121615750601454155b801561216d5750601654155b80156121795750601854155b1561218057565b600e8054600f556010805460115560128054601355601480546015556016805460175560188054601955600095869055938590559184905583905582905555565b600080600080600043600d54600c546121da9190612882565b106121f15750606392506021915081905080612226565b6121fa866123b8565b9350851561221657601454925060165491506018549050612226565b600e549250601054915060125490505b60006122376064611e248a88611fdd565b9050846122448583612863565b61224e91906129c5565b601a600082825461225f9190612882565b909155508590506122708483612863565b61227a91906129c5565b601b600082825461228b9190612882565b9091555085905061229c8383612863565b6122a691906129c5565b601c60008282546122b79190612882565b909155505080156122cd576122cd8930836122e4565b6122d7818961293d565b9998505050505050505050565b6001600160a01b0383166000908152600460205260409020546123079082611f94565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461233690826123f0565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061151a9085815260200190565b600081836123ab5760405162461bcd60e51b81526004016105de919061244f565b506000611b9084866129c5565b600081156123dd576018546016546014546123d39190612882565b6105ae9190612882565b601254601054600e546123d39190612882565b6000806123fd8385612882565b905083811015611fd65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105de565b600060208083528351808285015260005b8181101561247c57858101830151858201604001528201612460565b8181111561248e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610a3357600080fd5b80356124c4816124a4565b919050565b600080604083850312156124dc57600080fd5b82356124e7816124a4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610a3357600080fd5b80356124c48161250b565b6000806040838503121561253757600080fd5b823567ffffffffffffffff8082111561254f57600080fd5b818501915085601f83011261256357600080fd5b8135602082821115612577576125776124f5565b8160051b604051601f19603f8301168101818110868211171561259c5761259c6124f5565b6040529283528183019350848101820192898411156125ba57600080fd5b948201945b838610156125df576125d0866124b9565b855294820194938201936125bf565b96506125ee9050878201612519565b9450505050509250929050565b60008060006060848603121561261057600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561263c57600080fd5b8335612647816124a4565b92506020840135612657816124a4565b929592945050506040919091013590565b60006020828403121561267a57600080fd5b5035919050565b60006020828403121561269357600080fd5b8135611fd6816124a4565b6000602082840312156126b057600080fd5b8135611fd68161250b565b600080604083850312156126ce57600080fd5b82356126d9816124a4565b915060208301356126e9816124a4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156127695761276961273f565b5060010190565b600181815b808511156127ab5781600019048211156127915761279161273f565b8085161561279e57918102915b93841c9390800290612775565b509250929050565b6000826127c2575060016105ae565b816127cf575060006105ae565b81600181146127e557600281146127ef5761280b565b60019150506105ae565b60ff8411156128005761280061273f565b50506001821b6105ae565b5060208310610133831016604e8410600b841016171561282e575081810a6105ae565b6128388383612770565b806000190482111561284c5761284c61273f565b029392505050565b6000611fd660ff8416836127b3565b600081600019048311821515161561287d5761287d61273f565b500290565b600082198211156128955761289561273f565b500190565b6000602082840312156128ac57600080fd5b8151611fd6816124a4565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561290757600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561293257600080fd5b8151611fd68161250b565b60008282101561294f5761294f61273f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129a45784516001600160a01b03168352938301939183019160010161297f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826129e257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d42c457b1004b3dd141ec216a420a8eec1d204304c8eb3b8f822512e60b6a8e464736f6c634300080c0033

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

00000000000000000000000040a3a0266a216425e37dc618f759a9fc11c7f545000000000000000000000000ab82c312ea7cfa22cdab94561d288ee00317dac5

-----Decoded View---------------
Arg [0] : projectWallet (address): 0x40a3A0266a216425e37dC618F759A9fc11C7f545
Arg [1] : liquidityWallet (address): 0xaB82c312Ea7cfA22CDab94561D288Ee00317DAc5

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000040a3a0266a216425e37dc618f759a9fc11c7f545
Arg [1] : 000000000000000000000000ab82c312ea7cfa22cdab94561d288ee00317dac5


Deployed Bytecode Sourcemap

3520:17208:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6231:83;;;;;;;;;;-1:-1:-1;6301:5:0;;;;;;;;;;;;-1:-1:-1;;;6301:5:0;;;;6231:83;;;;;;;:::i;:::-;;;;;;;;7062:161;;;;;;;;;;-1:-1:-1;7062:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7062:161:0;1211:187:1;15616:214:0;;;;;;;;;;-1:-1:-1;15616:214:0;;;;;:::i;:::-;;:::i;:::-;;6508:95;;;;;;;;;;;;;:::i;:::-;;;3133:25:1;;;3121:2;3106:18;6508:95:0;2987:177:1;16412:380:0;;;;;;;;;;-1:-1:-1;16412:380:0;;;;;:::i;:::-;;:::i;7231:313::-;;;;;;;;;;-1:-1:-1;7231:313:0;;;;;:::i;:::-;;:::i;16038:366::-;;;;;;;;;;-1:-1:-1;16038:366:0;;;;;:::i;:::-;;:::i;14372:224::-;;;;;;;;;;-1:-1:-1;14372:224:0;;;;;:::i;:::-;;:::i;15277:331::-;;;;;;;;;;-1:-1:-1;15277:331:0;;;;;:::i;:::-;;:::i;6417:83::-;;;;;;;;;;-1:-1:-1;6417:83:0;;4267:1;4530:36:1;;4518:2;4503:18;6417:83:0;4388:184:1;7552:103:0;;;;;;;;;;-1:-1:-1;7552:103:0;;;;;:::i;:::-;;:::i;20137:153::-;;;;;;;;;;;;;:::i;6611:117::-;;;;;;;;;;-1:-1:-1;6611:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6704:16:0;6677:7;6704:16;;;:7;:16;;;;;;;6611:117;2599:148;;;;;;;;;;;;;:::i;14954:315::-;;;;;;;;;;-1:-1:-1;14954:315:0;;;;;:::i;:::-;;:::i;2385:79::-;;;;;;;;;;-1:-1:-1;2423:7:0;2450:6;2385:79;;-1:-1:-1;;;;;2450:6:0;;;4969:51:1;;4957:2;4942:18;2385:79:0;4823:203:1;6322:87:0;;;;;;;;;;-1:-1:-1;6394:7:0;;;;;;;;;;;;-1:-1:-1;;;6394:7:0;;;;6322:87;;15842:188;;;;;;;;;;-1:-1:-1;15842:188:0;;;;;:::i;:::-;;:::i;6736:167::-;;;;;;;;;;-1:-1:-1;6736:167:0;;;;;:::i;:::-;;:::i;14608:338::-;;;;;;;;;;-1:-1:-1;14608:338:0;;;;;:::i;:::-;;:::i;19971:154::-;;;;;;;;;;;;;:::i;12898:1020::-;;;;;;;;;;;;;:::i;6911:143::-;;;;;;;;;;-1:-1:-1;6911:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7019:18:0;;;6992:7;7019:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6911:143;7663:94;;;;;;;;;;-1:-1:-1;7663:94:0;;;;;:::i;:::-;;:::i;16800:108::-;;;;;;;;;;-1:-1:-1;16800:108:0;;;;;:::i;:::-;;:::i;14144:216::-;;;;;;;;;;-1:-1:-1;14144:216:0;;;;;:::i;:::-;;:::i;13926:210::-;;;;;;;;;;-1:-1:-1;13926:210:0;;;;;:::i;:::-;;:::i;20298:160::-;;;;;;;;;;;;;:::i;7062:161::-;7137:4;7154:39;183:10;7177:7;7186:6;7154:8;:39::i;:::-;-1:-1:-1;7211:4:0;7062:161;;;;;:::o;15616:214::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;;;;;;;;;15718:6:::1;15713:110;15734:8;:15;15730:1;:19;15713:110;;;15805:6;15771:18;:31;15790:8;15799:1;15790:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15771:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15771:31:0;:40;;-1:-1:-1;;15771:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15751:3;::::1;::::0;::::1;:::i;:::-;;;;15713:110;;;;15616:214:::0;;:::o;6508:95::-;6561:7;4320:13;4267:1;4320:2;:13;:::i;:::-;4312:22;;:4;:22;:::i;:::-;6581:14;;6508:95;:::o;16412:380::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;16606:2:::1;16584:18:::0;16548:33:::1;16565:16:::0;16548:14;:33:::1;:::i;:::-;:54;;;;:::i;:::-;:60;;16540:103;;;::::0;-1:-1:-1;;;16540:103:0;;8080:2:1;16540:103:0::1;::::0;::::1;8062:21:1::0;8119:2;8099:18;;;8092:30;8158:32;8138:18;;;8131:60;8208:18;;16540:103:0::1;7878:354:1::0;16540:103:0::1;16654:15;:32:::0;;;;16697:17:::1;:36:::0;16744:19:::1;:40:::0;16412:380::o;7231:313::-;7329:4;7346:36;7356:6;7364:9;7375:6;7346:9;:36::i;:::-;7393:121;7402:6;183:10;7424:89;7462:6;7424:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7424:19:0;;;;;;:11;:19;;;;;;;;183:10;7424:33;;;;;;;;;;:37;:89::i;:::-;7393:8;:121::i;:::-;-1:-1:-1;7532:4:0;7231:313;;;;;:::o;16038:366::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;16225:2:::1;16204:17:::0;16170:31:::1;16186:15:::0;16170:13;:31:::1;:::i;:::-;:51;;;;:::i;:::-;:57;;16162:99;;;::::0;-1:-1:-1;;;16162:99:0;;8439:2:1;16162:99:0::1;::::0;::::1;8421:21:1::0;8478:2;8458:18;;;8451:30;8517:31;8497:18;;;8490:59;8566:18;;16162:99:0::1;8237:353:1::0;16162:99:0::1;16272:14;:30:::0;;;;16313:16:::1;:34:::0;16358:18:::1;:38:::0;16038:366::o;14372:224::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14474:13:::1;4267:1;14474:2;:13;:::i;:::-;14466:22;::::0;:4:::1;:22;:::i;:::-;14454:8;:34;;14446:104;;;::::0;-1:-1:-1;;;14446:104:0;;8797:2:1;14446:104:0::1;::::0;::::1;8779:21:1::0;8836:2;8816:18;;;8809:30;8875:34;8855:18;;;8848:62;8946:27;8926:18;;;8919:55;8991:19;;14446:104:0::1;8595:421:1::0;14446:104:0::1;14561:16;:27:::0;14372:224::o;15277:331::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15368:29:0;::::1;15360:77;;;::::0;-1:-1:-1;;;15360:77:0;;9223:2:1;15360:77:0::1;::::0;::::1;9205:21:1::0;9262:2;9242:18;;;9235:30;9301:34;9281:18;;;9274:62;-1:-1:-1;;;9352:18:1;;;9345:33;9395:19;;15360:77:0::1;9021:399:1::0;15360:77:0::1;15467:16;::::0;;-1:-1:-1;;;;;15467:16:0;;::::1;15487:5;15448:36:::0;;;:18:::1;:36;::::0;;;;;:44;;-1:-1:-1;;15448:44:0;;::::1;::::0;;;15503:43;;-1:-1:-1;;;;;;15503:43:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;15557:36;;;;;:43;;;;::::1;-1:-1:-1::0;15557:43:0::1;::::0;;15277:331::o;7552:103::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;7624:15:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;7624:23:0;;::::1;::::0;;;::::1;::::0;;7552:103::o;20137:153::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;20218:21:::1;20250:32;20218:21:::0;20250:12:::1;:32::i;:::-;20178:112;20137:153::o:0;2599:148::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;2706:1:::1;2690:6:::0;;2669:40:::1;::::0;-1:-1:-1;;;;;2690:6:0;;::::1;::::0;2669:40:::1;::::0;2706:1;;2669:40:::1;2737:1;2720:19:::0;;-1:-1:-1;;;;;;2720:19:0::1;::::0;;2599:148::o;14954:315::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15041:27:0;::::1;15033:73;;;::::0;-1:-1:-1;;;15033:73:0;;9627:2:1;15033:73:0::1;::::0;::::1;9609:21:1::0;9666:2;9646:18;;;9639:30;9705:34;9685:18;;;9678:62;-1:-1:-1;;;9756:18:1;;;9749:31;9797:19;;15033:73:0::1;9425:397:1::0;15033:73:0::1;15136:14;::::0;;-1:-1:-1;;;;;15136:14:0;;::::1;15154:5;15117:34:::0;;;:18:::1;:34;::::0;;;;;:42;;-1:-1:-1;;15117:42:0;;::::1;::::0;;;15170:39;;-1:-1:-1;;;;;;15170:39:0::1;::::0;;;::::1;::::0;;::::1;::::0;;;15220:34;;;;;:41;;;;::::1;-1:-1:-1::0;15220:41:0::1;::::0;;14954:315::o;15842:188::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;15932:6:::1;15927:96;15948:8;:15;15944:1;:19;15927:96;;;16005:6;15985:4;:17;15990:8;15999:1;15990:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15985:17:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15985:17:0;:26;;-1:-1:-1;;15985:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15965:3;::::1;::::0;::::1;:::i;:::-;;;;15927:96;;6736:167:::0;6814:4;6831:42;183:10;6855:9;6866:6;6831:9;:42::i;14608:338::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14715:13:::1;4267:1;14715:2;:13;:::i;:::-;14707:22;::::0;:4:::1;:22;:::i;:::-;14694:9;:35;;14686:100;;;::::0;-1:-1:-1;;;14686:100:0;;10029:2:1;14686:100:0::1;::::0;::::1;10011:21:1::0;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:50;10218:19;;14686:100:0::1;9827:416:1::0;14686:100:0::1;14826:13;4267:1;14826:2;:13;:::i;:::-;14818:22;::::0;:4:::1;:22;:::i;:::-;14805:9;:35;;14797:100;;;::::0;-1:-1:-1;;;14797:100:0;;10450:2:1;14797:100:0::1;::::0;::::1;10432:21:1::0;10489:2;10469:18;;;10462:30;10528:34;10508:18;;;10501:62;-1:-1:-1;;;10579:18:1;;;10572:50;10639:19;;14797:100:0::1;10248:416:1::0;14797:100:0::1;14908:18;:30:::0;14608:338::o;19971:154::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;20067:4:::1;20023:23;6704:16:::0;;;:7;:16;;;;;;20084:33:::1;6704:16:::0;20084::::1;:33::i;12898:1020::-:0;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;12962:11:::1;::::0;::::1;;12961:12;12953:47;;;::::0;-1:-1:-1;;;12953:47:0;;10871:2:1;12953:47:0::1;::::0;::::1;10853:21:1::0;10910:2;10890:18;;;10883:30;10949:25;10929:18;;;10922:53;10992:18;;12953:47:0::1;10669:347:1::0;12953:47:0::1;13122:15;:34:::0;;-1:-1:-1;;;;;;13122:34:0::1;13068:42;13122:34:::0;;::::1;::::0;;;13167:58:::1;13184:4;13068:42:::0;4320:13:::1;4267:1;4320:2;:13;:::i;:::-;4312:22;::::0;:4:::1;:22;:::i;13167:58::-;13270:16;-1:-1:-1::0;;;;;13270:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13252:56:0::1;;13317:4;13324:16;-1:-1:-1::0;;;;;13324:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13252:96;::::0;-1:-1:-1;;;;;;13252:96:0::1;::::0;;;;;;-1:-1:-1;;;;;11507:15:1;;;13252:96:0::1;::::0;::::1;11489:34:1::0;11559:15;;11539:18;;;11532:43;11424:18;;13252:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13236:13;:112:::0;;-1:-1:-1;;;;;13236:112:0;;::::1;-1:-1:-1::0;;;;;;13236:112:0;;::::1;;::::0;;13359:15:::1;::::0;::::1;:31;13398:21;13429:4;13435:24;13429:4:::0;-1:-1:-1;;;;;6704:16:0;6677:7;6704:16;;;:7;:16;;;;;;;6611:117;13435:24:::1;13460:1;13462::::0;13464:7:::1;2423::::0;2450:6;-1:-1:-1;;;;;2450:6:0;;2385:79;13464:7:::1;13472:15;13359:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13499:11:0::1;:18:::0;;-1:-1:-1;;13528:22:0;;;;;-1:-1:-1;13585:13:0::1;4267:1;13585:2;:13;:::i;:::-;13577:22;::::0;:4:::1;:22;:::i;:::-;13561:13;:38:::0;;;13635:13:::1;::::0;:2:::1;:13;:::i;:::-;13627:22;::::0;:4:::1;:22;:::i;:::-;13610:14;:39:::0;;;13687:13:::1;::::0;4267:1:::1;::::0;13687:13:::1;:::i;:::-;13679:22;::::0;:4:::1;:22;:::i;:::-;13660:16;:41:::0;13741:13:::1;4267:1;13741:2;:13;:::i;:::-;13733:22;::::0;:4:::1;:22;:::i;:::-;13712:18;:43:::0;13766:11:::1;:18:::0;;-1:-1:-1;;13766:18:0::1;13780:4;13766:18;::::0;;13816:12:::1;13795:18;:33:::0;13846:13:::1;::::0;13877:15:::1;::::0;13839:71:::1;::::0;-1:-1:-1;;;13839:71:0;;-1:-1:-1;;;;;13877:15:0;;::::1;13839:71;::::0;::::1;12683:51:1::0;-1:-1:-1;;12750:18:1;;;12743:34;13846:13:0;::::1;::::0;13839:29:::1;::::0;12656:18:1;;13839:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12942:976;12898:1020::o:0;7663:94::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;7730:11:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;7730:19:0;;::::1;::::0;;;::::1;::::0;;7663:94::o;16800:108::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;16874:17:::1;:26:::0;16800:108::o;14144:216::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14242:13:::1;4267:1;14242:2;:13;:::i;:::-;14234:22;::::0;:4:::1;:22;:::i;:::-;14223:7;:33;;14215:102;;;::::0;-1:-1:-1;;;14215:102:0;;13240:2:1;14215:102:0::1;::::0;::::1;13222:21:1::0;13279:2;13259:18;;;13252:30;13318:34;13298:18;;;13291:62;13389:26;13369:18;;;13362:54;13433:19;;14215:102:0::1;13038:420:1::0;14215:102:0::1;14328:14;:24:::0;14144:216::o;13926:210::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;14021:13:::1;4267:1;14021:2;:13;:::i;:::-;14013:22;::::0;:4:::1;:22;:::i;:::-;14003:6;:32;;13995:100;;;::::0;-1:-1:-1;;;13995:100:0;;13665:2:1;13995:100:0::1;::::0;::::1;13647:21:1::0;13704:2;13684:18;;;13677:30;13743:34;13723:18;;;13716:62;13814:25;13794:18;;;13787:53;13857:19;;13995:100:0::1;13463:419:1::0;13995:100:0::1;14106:13;:22:::0;13926:210::o;20298:160::-;2512:6;;-1:-1:-1;;;;;2512:6:0;183:10;2512:22;2504:67;;;;-1:-1:-1;;;2504:67:0;;;;;;;:::i;:::-;20392:58:::1;::::0;20356:12:::1;::::0;20400:10:::1;::::0;20424:21:::1;::::0;20356:12;20392:58;20356:12;20392:58;20424:21;20400:10;20392:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;20298:160:0:o;7765:335::-;-1:-1:-1;;;;;7858:19:0;;7850:68;;;;-1:-1:-1;;;7850:68:0;;14299:2:1;7850:68:0;;;14281:21:1;14338:2;14318:18;;;14311:30;14377:34;14357:18;;;14350:62;-1:-1:-1;;;14428:18:1;;;14421:34;14472:19;;7850:68:0;14097:400:1;7850:68:0;-1:-1:-1;;;;;7937:21:0;;7929:68;;;;-1:-1:-1;;;7929:68:0;;14704:2:1;7929:68:0;;;14686:21:1;14743:2;14723:18;;;14716:30;14782:34;14762:18;;;14755:62;-1:-1:-1;;;14833:18:1;;;14826:32;14875:19;;7929:68:0;14502:398:1;7929:68:0;-1:-1:-1;;;;;8008:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8060:32;;3133:25:1;;;8060:32:0;;3106:18:1;8060:32:0;;;;;;;;7765:335;;;:::o;8108:2117::-;-1:-1:-1;;;;;8196:18:0;;8188:68;;;;-1:-1:-1;;;8188:68:0;;15107:2:1;8188:68:0;;;15089:21:1;15146:2;15126:18;;;15119:30;15185:34;15165:18;;;15158:62;-1:-1:-1;;;15236:18:1;;;15229:35;15281:19;;8188:68:0;14905:401:1;8188:68:0;-1:-1:-1;;;;;8275:16:0;;8267:64;;;;-1:-1:-1;;;8267:64:0;;15513:2:1;8267:64:0;;;15495:21:1;15552:2;15532:18;;;15525:30;15591:34;15571:18;;;15564:62;-1:-1:-1;;;15642:18:1;;;15635:33;15685:19;;8267:64:0;15311:399:1;8267:64:0;8359:1;8350:6;:10;8342:64;;;;-1:-1:-1;;;8342:64:0;;15917:2:1;8342:64:0;;;15899:21:1;15956:2;15936:18;;;15929:30;15995:34;15975:18;;;15968:62;-1:-1:-1;;;16046:18:1;;;16039:39;16095:19;;8342:64:0;15715:405:1;8342:64:0;8417:12;8448:15;8494:7;2423;2450:6;-1:-1:-1;;;;;2450:6:0;;2385:79;8494:7;-1:-1:-1;;;;;8486:15:0;:4;-1:-1:-1;;;;;8486:15:0;;;:32;;;;-1:-1:-1;2423:7:0;2450:6;-1:-1:-1;;;;;8505:13:0;;;2450:6;;8505:13;;8486:32;:52;;;;-1:-1:-1;;;;;;8522:16:0;;;;8486:52;:77;;;;-1:-1:-1;;;;;;8542:21:0;;8556:6;8542:21;;8486:77;:90;;;;-1:-1:-1;8568:8:0;;;;;;;8567:9;8486:90;8482:1206;;;-1:-1:-1;;;;;8602:10:0;;;;;;:4;:10;;;;;;;;8601:11;:24;;;;-1:-1:-1;;;;;;8617:8:0;;;;;;:4;:8;;;;;;;;8616:9;8601:24;8593:33;;;;;;8647:15;;;;;;;8643:411;;;8701:15;;-1:-1:-1;;;;;8687:30:0;;;8701:15;;8687:30;;;;:62;;-1:-1:-1;8735:13:0;;-1:-1:-1;;;;;8721:28:0;;;8735:13;;8721:28;;8687:62;8683:356;;;8803:16;8818:1;8803:12;:16;:::i;:::-;8790:9;8781:19;;;;:8;:19;;;;;;:38;:73;;;;-1:-1:-1;8838:16:0;8853:1;8838:12;:16;:::i;:::-;-1:-1:-1;;;;;8823:12:0;;;;;;:8;:12;;;;;;:31;8781:73;8773:139;;;;-1:-1:-1;;;8773:139:0;;16457:2:1;8773:139:0;;;16439:21:1;16496:2;16476:18;;;16469:30;16535:34;16515:18;;;16508:62;-1:-1:-1;;;16586:18:1;;;16579:51;16647:19;;8773:139:0;16255:417:1;8773:139:0;8944:9;8935:19;;;;:8;:19;;;;;;8957:12;8935:34;;;;-1:-1:-1;;;;;8992:12:0;;;;;;:27;8683:356;9111:13;;9080:4;;-1:-1:-1;;;;;;9103:21:0;;;9111:13;;9103:21;:55;;;;-1:-1:-1;9142:15:0;;-1:-1:-1;;;;;9128:30:0;;;9142:15;;9128:30;;9103:55;:82;;;;-1:-1:-1;;;;;;9163:22:0;;;;;;:18;:22;;;;;;;;9162:23;9103:82;9099:310;;;9224:13;;9214:6;:23;;9206:77;;;;-1:-1:-1;;;9206:77:0;;16879:2:1;9206:77:0;;;16861:21:1;16918:2;16898:18;;;16891:30;16957:34;16937:18;;;16930:62;-1:-1:-1;;;17008:18:1;;;17001:39;17057:19;;9206:77:0;16677:405:1;9206:77:0;9336:16;;9326:6;9310:13;9320:2;-1:-1:-1;;;;;6704:16:0;6677:7;6704:16;;;:7;:16;;;;;;;6611:117;9310:13;:22;;;;:::i;:::-;:42;;9302:91;;;;-1:-1:-1;;;9302:91:0;;17289:2:1;9302:91:0;;;17271:21:1;17328:2;17308:18;;;17301:30;17367:34;17347:18;;;17340:62;-1:-1:-1;;;17418:18:1;;;17411:34;17462:19;;9302:91:0;17087:400:1;9302:91:0;9447:13;;-1:-1:-1;;;;;9441:19:0;;;9447:13;;9441:19;:55;;;;-1:-1:-1;9480:15:0;;-1:-1:-1;;;;;9464:32:0;;;9480:15;;9464:32;;9441:55;:84;;;;-1:-1:-1;;;;;;9501:24:0;;;;;;:18;:24;;;;;;;;9500:25;9441:84;9437:240;;;9564:14;;9554:6;:24;;9546:79;;;;-1:-1:-1;;;9546:79:0;;17694:2:1;9546:79:0;;;17676:21:1;17733:2;17713:18;;;17706:30;17772:34;17752:18;;;17745:62;-1:-1:-1;;;17823:18:1;;;17816:40;17873:19;;9546:79:0;17492:406:1;9546:79:0;-1:-1:-1;9657:4:0;9437:240;-1:-1:-1;;;;;9703:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9731:22:0;;;;;;:18;:22;;;;;;;;9703:50;9700:97;;;9780:5;9770:15;;9700:97;9858:4;9809:28;6704:16;;;:7;:16;;;;;;9809:55;;9875:12;9914:18;;9891:20;:41;9890:57;;;;;9937:10;9890:57;9875:72;;9964:7;:22;;;;-1:-1:-1;9975:11:0;;;;;;;9964:22;:35;;;;-1:-1:-1;9991:8:0;;;;;;;9990:9;9964:35;:64;;;;-1:-1:-1;;;;;;10004:24:0;;;;;;:18;:24;;;;;;;;10003:25;9964:64;:91;;;;-1:-1:-1;;;;;;10033:22:0;;;;;;:18;:22;;;;;;;;10032:23;9964:91;9960:195;;;10072:8;:15;;-1:-1:-1;;10072:15:0;;;;;10102:10;:8;:10::i;:::-;10127:8;:16;;-1:-1:-1;;10127:16:0;;;9960:195;10167:50;10182:4;10187:2;10190:6;10197:7;10206:10;10167:14;:50::i;:::-;8177:2048;;;;8108:2117;;;:::o;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1386:9:0;1398:5;1402:1;1398;:5;:::i;:::-;1386:17;1240:190;-1:-1:-1;;;;;1240:190:0:o;12790:96::-;12847:14;;:31;;-1:-1:-1;;;;;12847:14:0;;;;:31;;;;;12871:6;;12847:14;:31;:14;:31;12871:6;12847:14;:31;;;;;;;;;;;;;;;;;;;11860:483;5677:6;:13;;-1:-1:-1;;5677:13:0;;;;;11962:16:::1;::::0;;5677:6;11962:16;;;;;::::1;::::0;;-1:-1:-1;;11962:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11962:16:0::1;11938:40;;12007:4;11989;11994:1;11989:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11989:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12033:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12033:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11989:7;;12033:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12023:4;12028:1;12023:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12023:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12098:15:::1;::::0;12066:62:::1;::::0;12083:4:::1;::::0;12098:15:::1;12116:11:::0;12066:8:::1;:62::i;:::-;12139:15;::::0;:196:::1;::::0;-1:-1:-1;;;12139:196:0;;-1:-1:-1;;;;;12139:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12220:11;;12139:15:::1;::::0;12262:4;;12289::::1;::::0;12309:15:::1;::::0;12139:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5713:6:0;:14;;-1:-1:-1;;5713:14:0;;;-1:-1:-1;;;;11860:483:0:o;10233:1619::-;10316:4;10272:23;6704:16;;;:7;:16;;;;;;10272:50;;10333:25;10401:20;;10382:16;;10361:18;;:37;;;;:::i;:::-;:60;;;;:::i;:::-;10333:88;-1:-1:-1;10432:12:0;10468:20;;;:46;;-1:-1:-1;10492:22:0;;10468:46;10465:60;;;10517:7;;;10233:1619::o;10465:60::-;10558:18;;:23;;10579:2;10558:23;:::i;:::-;10540:15;:41;10537:114;;;10616:18;;:23;;10637:2;10616:23;:::i;:::-;10598:41;;10537:114;10720:23;10805:1;10785:17;10764:18;;10746:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;10720:86;-1:-1:-1;10817:26:0;10846:36;:15;10720:86;10846:19;:36::i;:::-;10817:65;-1:-1:-1;10931:21:0;10965:36;10817:65;10965:16;:36::i;:::-;11023:18;11044:44;:21;11070:17;11044:25;:44::i;:::-;11023:65;;11109:21;11133:55;11170:17;11133:32;11148:16;;11133:10;:14;;:32;;;;:::i;:::-;:36;;:55::i;:::-;11109:79;;11199:25;11227:59;11268:17;11227:36;11242:20;;11227:10;:14;;:36;;;;:::i;:59::-;11199:87;-1:-1:-1;11317:23:0;11199:87;11343:26;11356:13;11343:10;:26;:::i;:::-;:46;;;;:::i;:::-;11441:1;11420:18;:22;;;11453:16;:20;;;11484;:24;11317:72;-1:-1:-1;11532:19:0;;;;;:42;;;11573:1;11555:15;:19;11532:42;11529:210;;;11590:46;11603:15;11620;11590:12;:46::i;:::-;11708:18;;11656:71;;;19312:25:1;;;19368:2;19353:18;;19346:34;;;19396:18;;;19389:34;;;;11656:71:0;;;;;;19300:2:1;11656:71:0;;;11529:210;11790:14;;11782:62;;-1:-1:-1;;;;;11790:14:0;;;;11818:21;;11782:62;;;;11818:21;11790:14;11782:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;10233:1619:0:o;18065:389::-;18190:7;18186:129;;18214:14;:12;:14::i;:::-;18186:129;;;18270:33;18280:6;18288;18296;18270:9;:33::i;:::-;18261:42;;18186:129;18327:44;18345:6;18353:9;18364:6;18327:17;:44::i;:::-;18396:7;18392:55;;18420:15;17739:22;;17722:14;:39;17791:24;;17772:16;:43;17847:26;;17826:18;:47;17902:23;;17884:15;:41;17956:25;;17936:17;:45;18014:27;;17992:19;:49;17678:371;18420:15;18065:389;;;;;:::o;1096:136::-;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1174:50;1096:136;-1:-1:-1;;;1096:136:0:o;1438:246::-;1496:7;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1573:9;1585:5;1589:1;1585;:5;:::i;:::-;1573:17;-1:-1:-1;1618:1:0;1609:5;1613:1;1573:17;1609:5;:::i;:::-;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;19636:2:1;1601:56:0;;;19618:21:1;19675:2;19655:18;;;19648:30;19714:34;19694:18;;;19687:62;-1:-1:-1;;;19765:18:1;;;19758:31;19806:19;;1601:56:0;19434:397:1;1692:132:0;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;12351:423::-;12464:15;;12432:62;;12449:4;;-1:-1:-1;;;;;12464:15:0;12482:11;12432:8;:62::i;:::-;12505:15;;12709:16;;12505:261;;-1:-1:-1;;;12505:261:0;;-1:-1:-1;;;;;12505:15:0;;;;:31;;12544:9;;12505:261;;12577:4;;12597:11;;12505:15;;;;12709:16;;12740:15;;12505:261;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16916:750::-;16962:14;;:19;:44;;;;-1:-1:-1;16985:16:0;;:21;16962:44;:71;;;;-1:-1:-1;17010:18:0;;:23;16962:71;:95;;;;-1:-1:-1;17037:15:0;;:20;16962:95;:121;;;;-1:-1:-1;17061:17:0;;:22;16962:121;:149;;;;-1:-1:-1;17087:19:0;;:24;16962:149;16959:161;;;16916:750::o;16959:161::-;17165:14;;;17140:22;:39;17217:16;;;17190:24;:43;17273:18;;;17244:26;:47;17328:15;;;17302:23;:41;17382:17;;;17354:25;:45;17440:19;;;17410:27;:49;-1:-1:-1;17480:18:0;;;;17509:20;;;;17540:22;;;;17573:19;;;17603:21;;;17635:23;16916:750::o;18737:1185::-;18818:7;18838:18;18867:15;18893:14;18918;18988:12;18967:17;;18946:18;;:38;;;;:::i;:::-;:54;18943:579;;-1:-1:-1;19029:2:0;;-1:-1:-1;19056:2:0;;-1:-1:-1;19056:2:0;;-1:-1:-1;19056:2:0;18943:579;;;19156:21;19170:6;19156:13;:21::i;:::-;19143:34;;19196:6;19192:319;;;19233:15;;19223:25;;19276:17;;19267:26;;19321:19;;19312:28;;19192:319;;;19391:14;;19381:24;;19433:16;;19424:25;;19477:18;;19468:27;;19192:319;19534:12;19549:31;19576:3;19549:22;:6;19560:10;19549;:22::i;:31::-;19534:46;-1:-1:-1;19628:10:0;19611:14;19618:7;19534:46;19611:14;:::i;:::-;:27;;;;:::i;:::-;19591:16;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;19687:10:0;;-1:-1:-1;19671:13:0;19678:6;19671:4;:13;:::i;:::-;:26;;;;:::i;:::-;19649:18;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;19748:10:0;;-1:-1:-1;19732:13:0;19739:6;19732:4;:13;:::i;:::-;:26;;;;:::i;:::-;19708:20;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;19786:8:0;;19783:86;;19811:46;19829:6;19845:4;19852;19811:17;:46::i;:::-;19900:14;19910:4;19900:14;;:::i;:::-;;18737:1185;-1:-1:-1;;;;;;;;;18737:1185:0:o;18462:267::-;-1:-1:-1;;;;;18578:15:0;;;;;;:7;:15;;;;;;:28;;18598:7;18578:19;:28::i;:::-;-1:-1:-1;;;;;18560:15:0;;;;;;;:7;:15;;;;;;:46;;;;18638:18;;;;;;;:31;;18661:7;18638:22;:31::i;:::-;-1:-1:-1;;;;;18617:18:0;;;;;;;:7;:18;;;;;;;:52;;;;18685:36;;;;;;;;;;18713:7;3133:25:1;;3121:2;3106:18;;2987:177;1832:189:0;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1977:9:0;1989:5;1993:1;1989;:5;:::i;20466:259::-;20523:7;20547:6;20543:103;;;20615:19;;20595:17;;20577:15;;:35;;;;:::i;:::-;:57;;;;:::i;20543:103::-;20699:18;;20680:16;;20663:14;;:33;;;;:::i;909:179::-;967:7;;999:5;1003:1;999;:5;:::i;:::-;987:17;;1028:1;1023;:6;;1015:46;;;;-1:-1:-1;;;1015:46:0;;20658:2:1;1015:46:0;;;20640:21:1;20697:2;20677:18;;;20670:30;20736:29;20716:18;;;20709:57;20783:18;;1015:46:0;20456:351:1;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:127::-;1464:10;1459:3;1455:20;1452:1;1445:31;1495:4;1492:1;1485:15;1519:4;1516:1;1509:15;1535:118;1621:5;1614:13;1607:21;1600:5;1597:32;1587:60;;1643:1;1640;1633:12;1658:128;1723:20;;1752:28;1723:20;1752:28;:::i;1791:1191::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:52;;;1958:1;1955;1948:12;1910:52;1998:9;1985:23;2027:18;2068:2;2060:6;2057:14;2054:34;;;2084:1;2081;2074:12;2054:34;2122:6;2111:9;2107:22;2097:32;;2167:7;2160:4;2156:2;2152:13;2148:27;2138:55;;2189:1;2186;2179:12;2138:55;2225:2;2212:16;2247:4;2270:2;2266;2263:10;2260:36;;;2276:18;;:::i;:::-;2322:2;2319:1;2315:10;2354:2;2348:9;2417:2;2413:7;2408:2;2404;2400:11;2396:25;2388:6;2384:38;2472:6;2460:10;2457:22;2452:2;2440:10;2437:18;2434:46;2431:72;;;2483:18;;:::i;:::-;2519:2;2512:22;2569:18;;;2603:15;;;;-1:-1:-1;2645:11:1;;;2641:20;;;2673:19;;;2670:39;;;2705:1;2702;2695:12;2670:39;2729:11;;;;2749:148;2765:6;2760:3;2757:15;2749:148;;;2831:23;2850:3;2831:23;:::i;:::-;2819:36;;2782:12;;;;2875;;;;2749:148;;;2916:6;-1:-1:-1;2941:35:1;;-1:-1:-1;2957:18:1;;;2941:35;:::i;:::-;2931:45;;;;;;1791:1191;;;;;:::o;3169:316::-;3246:6;3254;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;-1:-1:-1;;3354:23:1;;;3424:2;3409:18;;3396:32;;-1:-1:-1;3475:2:1;3460:18;;;3447:32;;3169:316;-1:-1:-1;3169:316:1:o;3490:456::-;3567:6;3575;3583;3636:2;3624:9;3615:7;3611:23;3607:32;3604:52;;;3652:1;3649;3642:12;3604:52;3691:9;3678:23;3710:31;3735:5;3710:31;:::i;:::-;3760:5;-1:-1:-1;3817:2:1;3802:18;;3789:32;3830:33;3789:32;3830:33;:::i;:::-;3490:456;;3882:7;;-1:-1:-1;;;3936:2:1;3921:18;;;;3908:32;;3490:456::o;3951:180::-;4010:6;4063:2;4051:9;4042:7;4038:23;4034:32;4031:52;;;4079:1;4076;4069:12;4031:52;-1:-1:-1;4102:23:1;;3951:180;-1:-1:-1;3951:180:1:o;4136:247::-;4195:6;4248:2;4236:9;4227:7;4223:23;4219:32;4216:52;;;4264:1;4261;4254:12;4216:52;4303:9;4290:23;4322:31;4347:5;4322:31;:::i;4577:241::-;4633:6;4686:2;4674:9;4665:7;4661:23;4657:32;4654:52;;;4702:1;4699;4692:12;4654:52;4741:9;4728:23;4760:28;4782:5;4760:28;:::i;5031:388::-;5099:6;5107;5160:2;5148:9;5139:7;5135:23;5131:32;5128:52;;;5176:1;5173;5166:12;5128:52;5215:9;5202:23;5234:31;5259:5;5234:31;:::i;:::-;5284:5;-1:-1:-1;5341:2:1;5326:18;;5313:32;5354:33;5313:32;5354:33;:::i;:::-;5406:7;5396:17;;;5031:388;;;;;:::o;5424:356::-;5626:2;5608:21;;;5645:18;;;5638:30;5704:34;5699:2;5684:18;;5677:62;5771:2;5756:18;;5424:356::o;5785:127::-;5846:10;5841:3;5837:20;5834:1;5827:31;5877:4;5874:1;5867:15;5901:4;5898:1;5891:15;5917:127;5978:10;5973:3;5969:20;5966:1;5959:31;6009:4;6006:1;5999:15;6033:4;6030:1;6023:15;6049:135;6088:3;-1:-1:-1;;6109:17:1;;6106:43;;;6129:18;;:::i;:::-;-1:-1:-1;6176:1:1;6165:13;;6049:135::o;6189:422::-;6278:1;6321:5;6278:1;6335:270;6356:7;6346:8;6343:21;6335:270;;;6415:4;6411:1;6407:6;6403:17;6397:4;6394:27;6391:53;;;6424:18;;:::i;:::-;6474:7;6464:8;6460:22;6457:55;;;6494:16;;;;6457:55;6573:22;;;;6533:15;;;;6335:270;;;6339:3;6189:422;;;;;:::o;6616:806::-;6665:5;6695:8;6685:80;;-1:-1:-1;6736:1:1;6750:5;;6685:80;6784:4;6774:76;;-1:-1:-1;6821:1:1;6835:5;;6774:76;6866:4;6884:1;6879:59;;;;6952:1;6947:130;;;;6859:218;;6879:59;6909:1;6900:10;;6923:5;;;6947:130;6984:3;6974:8;6971:17;6968:43;;;6991:18;;:::i;:::-;-1:-1:-1;;7047:1:1;7033:16;;7062:5;;6859:218;;7161:2;7151:8;7148:16;7142:3;7136:4;7133:13;7129:36;7123:2;7113:8;7110:16;7105:2;7099:4;7096:12;7092:35;7089:77;7086:159;;;-1:-1:-1;7198:19:1;;;7230:5;;7086:159;7277:34;7302:8;7296:4;7277:34;:::i;:::-;7347:6;7343:1;7339:6;7335:19;7326:7;7323:32;7320:58;;;7358:18;;:::i;:::-;7396:20;;6616:806;-1:-1:-1;;;6616:806:1:o;7427:140::-;7485:5;7514:47;7555:4;7545:8;7541:19;7535:4;7514:47;:::i;7572:168::-;7612:7;7678:1;7674;7670:6;7666:14;7663:1;7660:21;7655:1;7648:9;7641:17;7637:45;7634:71;;;7685:18;;:::i;:::-;-1:-1:-1;7725:9:1;;7572:168::o;7745:128::-;7785:3;7816:1;7812:6;7809:1;7806:13;7803:39;;;7822:18;;:::i;:::-;-1:-1:-1;7858:9:1;;7745:128::o;11021:251::-;11091:6;11144:2;11132:9;11123:7;11119:23;11115:32;11112:52;;;11160:1;11157;11150:12;11112:52;11192:9;11186:16;11211:31;11236:5;11211:31;:::i;11586:607::-;-1:-1:-1;;;;;11945:15:1;;;11927:34;;11992:2;11977:18;;11970:34;;;;12035:2;12020:18;;12013:34;;;;12078:2;12063:18;;12056:34;;;;12127:15;;;12121:3;12106:19;;12099:44;11907:3;12159:19;;12152:35;;;;11876:3;11861:19;;11586:607::o;12198:306::-;12286:6;12294;12302;12355:2;12343:9;12334:7;12330:23;12326:32;12323:52;;;12371:1;12368;12361:12;12323:52;12400:9;12394:16;12384:26;;12450:2;12439:9;12435:18;12429:25;12419:35;;12494:2;12483:9;12479:18;12473:25;12463:35;;12198:306;;;;;:::o;12788:245::-;12855:6;12908:2;12896:9;12887:7;12883:23;12879:32;12876:52;;;12924:1;12921;12914:12;12876:52;12956:9;12950:16;12975:28;12997:5;12975:28;:::i;16125:125::-;16165:4;16193:1;16190;16187:8;16184:34;;;16198:18;;:::i;:::-;-1:-1:-1;16235:9:1;;16125:125::o;17903:980::-;18165:4;18213:3;18202:9;18198:19;18244:6;18233:9;18226:25;18270:2;18308:6;18303:2;18292:9;18288:18;18281:34;18351:3;18346:2;18335:9;18331:18;18324:31;18375:6;18410;18404:13;18441:6;18433;18426:22;18479:3;18468:9;18464:19;18457:26;;18518:2;18510:6;18506:15;18492:29;;18539:1;18549:195;18563:6;18560:1;18557:13;18549:195;;;18628:13;;-1:-1:-1;;;;;18624:39:1;18612:52;;18719:15;;;;18684:12;;;;18660:1;18578:9;18549:195;;;-1:-1:-1;;;;;;;18800:32:1;;;;18795:2;18780:18;;18773:60;-1:-1:-1;;;18864:3:1;18849:19;18842:35;18761:3;17903:980;-1:-1:-1;;;17903:980:1:o;18888:217::-;18928:1;18954;18944:132;;18998:10;18993:3;18989:20;18986:1;18979:31;19033:4;19030:1;19023:15;19061:4;19058:1;19051:15;18944:132;-1:-1:-1;19090:9:1;;18888:217::o

Swarm Source

ipfs://d42c457b1004b3dd141ec216a420a8eec1d204304c8eb3b8f822512e60b6a8e4

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.